Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(331)

Side by Side Diff: ash/shelf/shelf_view.h

Issue 2820693004: shelf: Allow dragging items from main shelf to overflow shelf. (Closed)
Patch Set: Rebased. Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | ash/shelf/shelf_view.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef ASH_SHELF_SHELF_VIEW_H_ 5 #ifndef ASH_SHELF_SHELF_VIEW_H_
6 #define ASH_SHELF_SHELF_VIEW_H_ 6 #define ASH_SHELF_SHELF_VIEW_H_
7 7
8 #include <memory> 8 #include <memory>
9 #include <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 // Fades |view| from an opacity of 0 to 1. This is when adding a new item. 223 // Fades |view| from an opacity of 0 to 1. This is when adding a new item.
224 void FadeIn(views::View* view); 224 void FadeIn(views::View* view);
225 225
226 // Invoked when the pointer has moved enough to trigger a drag. Sets 226 // Invoked when the pointer has moved enough to trigger a drag. Sets
227 // internal state in preparation for the drag. 227 // internal state in preparation for the drag.
228 void PrepareForDrag(Pointer pointer, const ui::LocatedEvent& event); 228 void PrepareForDrag(Pointer pointer, const ui::LocatedEvent& event);
229 229
230 // Invoked when the mouse is dragged. Updates the models as appropriate. 230 // Invoked when the mouse is dragged. Updates the models as appropriate.
231 void ContinueDrag(const ui::LocatedEvent& event); 231 void ContinueDrag(const ui::LocatedEvent& event);
232 232
233 // Ends the drag on the other shelf. (ie if we are on main shelf, ends drag on
234 // the overflow shelf). Invoked when a shelf item is being dragged from one
235 // shelf to the other.
236 void EndDragOnOtherShelf(bool cancel);
237
233 // Handles ripping off an item from the shelf. Returns true when the item got 238 // Handles ripping off an item from the shelf. Returns true when the item got
234 // removed. 239 // removed.
235 bool HandleRipOffDrag(const ui::LocatedEvent& event); 240 bool HandleRipOffDrag(const ui::LocatedEvent& event);
236 241
237 // Finalize the rip off dragging by either |cancel| the action or validating. 242 // Finalize the rip off dragging by either |cancel| the action or validating.
238 void FinalizeRipOffDrag(bool cancel); 243 void FinalizeRipOffDrag(bool cancel);
239 244
240 // Check if an item can be ripped off or not. 245 // Check if an item can be ripped off or not.
241 RemovableState RemovableByRipOff(int index) const; 246 RemovableState RemovableByRipOff(int index) const;
242 247
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
439 444
440 // The cursor offset to the middle of the dragged item. 445 // The cursor offset to the middle of the dragged item.
441 gfx::Vector2d drag_image_offset_; 446 gfx::Vector2d drag_image_offset_;
442 447
443 // The view which gets replaced by our drag icon proxy. 448 // The view which gets replaced by our drag icon proxy.
444 views::View* drag_replaced_view_ = nullptr; 449 views::View* drag_replaced_view_ = nullptr;
445 450
446 // True when the icon was dragged off the shelf. 451 // True when the icon was dragged off the shelf.
447 bool dragged_off_shelf_ = false; 452 bool dragged_off_shelf_ = false;
448 453
454 // True when an item is dragged from one shelf to another (eg. overflow).
455 bool dragged_to_another_shelf_ = false;
456
449 // The rip off view when a snap back operation is underway. 457 // The rip off view when a snap back operation is underway.
450 views::View* snap_back_from_rip_off_view_ = nullptr; 458 views::View* snap_back_from_rip_off_view_ = nullptr;
451 459
452 // True when this ShelfView is used for Overflow Bubble. 460 // True when this ShelfView is used for Overflow Bubble.
453 bool overflow_mode_ = false; 461 bool overflow_mode_ = false;
454 462
455 // Holds a pointer to main ShelfView when a ShelfView is in overflow mode. 463 // Holds a pointer to main ShelfView when a ShelfView is in overflow mode.
456 ShelfView* main_shelf_ = nullptr; 464 ShelfView* main_shelf_ = nullptr;
457 465
458 // True when ripped item from overflow bubble is entered into Shelf. 466 // True when ripped item from overflow bubble is entered into Shelf.
(...skipping 12 matching lines...) Expand all
471 ShelfButtonPressedMetricTracker shelf_button_pressed_metric_tracker_; 479 ShelfButtonPressedMetricTracker shelf_button_pressed_metric_tracker_;
472 480
473 base::WeakPtrFactory<ShelfView> weak_factory_; 481 base::WeakPtrFactory<ShelfView> weak_factory_;
474 482
475 DISALLOW_COPY_AND_ASSIGN(ShelfView); 483 DISALLOW_COPY_AND_ASSIGN(ShelfView);
476 }; 484 };
477 485
478 } // namespace ash 486 } // namespace ash
479 487
480 #endif // ASH_SHELF_SHELF_VIEW_H_ 488 #endif // ASH_SHELF_SHELF_VIEW_H_
OLDNEW
« no previous file with comments | « no previous file | ash/shelf/shelf_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698