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

Side by Side Diff: ui/app_list/views/apps_grid_view.h

Issue 210583004: Make cancelling of app list correctly clean up folder UI. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 6 years, 8 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 | « ui/app_list/views/app_list_folder_view.cc ('k') | ui/app_list/views/apps_grid_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 UI_APP_LIST_VIEWS_APPS_GRID_VIEW_H_ 5 #ifndef UI_APP_LIST_VIEWS_APPS_GRID_VIEW_H_
6 #define UI_APP_LIST_VIEWS_APPS_GRID_VIEW_H_ 6 #define UI_APP_LIST_VIEWS_APPS_GRID_VIEW_H_
7 7
8 #include <set> 8 #include <set>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 class SynchronousDrag; 44 class SynchronousDrag;
45 #endif 45 #endif
46 46
47 namespace test { 47 namespace test {
48 class AppsGridViewTestApi; 48 class AppsGridViewTestApi;
49 } 49 }
50 50
51 class ApplicationDragAndDropHost; 51 class ApplicationDragAndDropHost;
52 class AppListItemView; 52 class AppListItemView;
53 class AppsGridViewDelegate; 53 class AppsGridViewDelegate;
54 class AppsGridViewFolderDelegate;
54 class PageSwitcher; 55 class PageSwitcher;
55 class PaginationModel; 56 class PaginationModel;
56 57
57 // AppsGridView displays a grid for AppListItemList sub model. 58 // AppsGridView displays a grid for AppListItemList sub model.
58 class APP_LIST_EXPORT AppsGridView : public views::View, 59 class APP_LIST_EXPORT AppsGridView : public views::View,
59 public views::ButtonListener, 60 public views::ButtonListener,
60 public AppListItemListObserver, 61 public AppListItemListObserver,
61 public PaginationModelObserver, 62 public PaginationModelObserver,
62 public AppListModelObserver, 63 public AppListModelObserver,
63 public ui::ImplicitAnimationObserver { 64 public ui::ImplicitAnimationObserver {
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 const views::ViewModel* view_model_for_test() const { return &view_model_; } 190 const views::ViewModel* view_model_for_test() const { return &view_model_; }
190 191
191 // For test: Return if the drag and drop handler was set. 192 // For test: Return if the drag and drop handler was set.
192 bool has_drag_and_drop_host_for_test() { return NULL != drag_and_drop_host_; } 193 bool has_drag_and_drop_host_for_test() { return NULL != drag_and_drop_host_; }
193 194
194 // For test: Return if the drag and drop operation gets dispatched. 195 // For test: Return if the drag and drop operation gets dispatched.
195 bool forward_events_to_drag_and_drop_host_for_test() { 196 bool forward_events_to_drag_and_drop_host_for_test() {
196 return forward_events_to_drag_and_drop_host_; 197 return forward_events_to_drag_and_drop_host_;
197 } 198 }
198 199
199 void set_is_root_level(bool value) { is_root_level_ = value; } 200 void set_folder_delegate(AppsGridViewFolderDelegate* folder_delegate) {
201 folder_delegate_ = folder_delegate;
202 }
200 203
201 AppListItemView* activated_item_view() const { 204 AppListItemView* activated_item_view() const {
202 return activated_item_view_; 205 return activated_item_view_;
203 } 206 }
204 207
205 private: 208 private:
206 friend class test::AppsGridViewTestApi; 209 friend class test::AppsGridViewTestApi;
207 210
208 enum DropAttempt { 211 enum DropAttempt {
209 DROP_FOR_NONE, 212 DROP_FOR_NONE,
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
420 // Updates drag state for dragging inside a folder's grid view. 423 // Updates drag state for dragging inside a folder's grid view.
421 void UpdateDragStateInsideFolder(Pointer pointer, 424 void UpdateDragStateInsideFolder(Pointer pointer,
422 const ui::LocatedEvent& event); 425 const ui::LocatedEvent& event);
423 426
424 // Returns true if drag event is happening in the root level AppsGridView 427 // Returns true if drag event is happening in the root level AppsGridView
425 // for reparenting a folder item. 428 // for reparenting a folder item.
426 bool IsDraggingForReparentInRootLevelGridView() const; 429 bool IsDraggingForReparentInRootLevelGridView() const;
427 430
428 // Returns true if drag event is happening in the hidden AppsGridView of the 431 // Returns true if drag event is happening in the hidden AppsGridView of the
429 // folder during reparenting a folder item. 432 // folder during reparenting a folder item.
430 bool IsDraggingForReprentInHiddenGridView() const; 433 bool IsDraggingForReparentInHiddenGridView() const;
431 434
432 // Returns the target icon bounds for |drag_item_view| to fly back 435 // Returns the target icon bounds for |drag_item_view| to fly back
433 // to its parent |folder_item_view| in animation. 436 // to its parent |folder_item_view| in animation.
434 gfx::Rect GetTargetIconRectInFolder(AppListItemView* drag_item_view, 437 gfx::Rect GetTargetIconRectInFolder(AppListItemView* drag_item_view,
435 AppListItemView* folder_item_view); 438 AppListItemView* folder_item_view);
436 439
437 // Returns true if the grid view is under an OEM folder. 440 // Returns true if the grid view is under an OEM folder.
438 bool IsUnderOEMFolder(); 441 bool IsUnderOEMFolder();
439 442
440 AppListModel* model_; // Owned by AppListView. 443 AppListModel* model_; // Owned by AppListView.
441 AppListItemList* item_list_; // Not owned. 444 AppListItemList* item_list_; // Not owned.
442 AppsGridViewDelegate* delegate_; 445 AppsGridViewDelegate* delegate_;
446
447 // This can be NULL. Only grid views inside folders have a folder delegate.
448 AppsGridViewFolderDelegate* folder_delegate_;
449
443 PaginationModel* pagination_model_; // Owned by AppListController. 450 PaginationModel* pagination_model_; // Owned by AppListController.
444 PageSwitcher* page_switcher_view_; // Owned by views hierarchy. 451 PageSwitcher* page_switcher_view_; // Owned by views hierarchy.
445 452
446 gfx::Size icon_size_; 453 gfx::Size icon_size_;
447 int cols_; 454 int cols_;
448 int rows_per_page_; 455 int rows_per_page_;
449 456
450 // Tracks app item views. There is a view per item in |model_|. 457 // Tracks app item views. There is a view per item in |model_|.
451 views::ViewModel view_model_; 458 views::ViewModel view_model_;
452 459
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
507 514
508 // Target page to switch to when |page_flip_timer_| fires. 515 // Target page to switch to when |page_flip_timer_| fires.
509 int page_flip_target_; 516 int page_flip_target_;
510 517
511 // Delay in milliseconds of when |page_flip_timer_| should fire after user 518 // Delay in milliseconds of when |page_flip_timer_| should fire after user
512 // drags an item near the edges. 519 // drags an item near the edges.
513 int page_flip_delay_in_ms_; 520 int page_flip_delay_in_ms_;
514 521
515 views::BoundsAnimator bounds_animator_; 522 views::BoundsAnimator bounds_animator_;
516 523
517 // If true, AppsGridView is rending items at the root level of the app list.
518 bool is_root_level_;
519
520 // The most recent activated item view. 524 // The most recent activated item view.
521 AppListItemView* activated_item_view_; 525 AppListItemView* activated_item_view_;
522 526
523 // Tracks if drag_view_ is dragged out of the folder container bubble 527 // Tracks if drag_view_ is dragged out of the folder container bubble
524 // when dragging a item inside a folder. 528 // when dragging a item inside a folder.
525 bool drag_out_of_folder_container_; 529 bool drag_out_of_folder_container_;
526 530
527 // True if the drag_view_ item is a folder item being dragged for reparenting. 531 // True if the drag_view_ item is a folder item being dragged for reparenting.
528 bool dragging_for_reparent_item_; 532 bool dragging_for_reparent_item_;
529 533
530 base::WeakPtrFactory<AppsGridView> weak_factory_; 534 base::WeakPtrFactory<AppsGridView> weak_factory_;
531 535
532 DISALLOW_COPY_AND_ASSIGN(AppsGridView); 536 DISALLOW_COPY_AND_ASSIGN(AppsGridView);
533 }; 537 };
534 538
535 } // namespace app_list 539 } // namespace app_list
536 540
537 #endif // UI_APP_LIST_VIEWS_APPS_GRID_VIEW_H_ 541 #endif // UI_APP_LIST_VIEWS_APPS_GRID_VIEW_H_
OLDNEW
« no previous file with comments | « ui/app_list/views/app_list_folder_view.cc ('k') | ui/app_list/views/apps_grid_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698