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

Side by Side Diff: ui/app_list/cocoa/apps_grid_controller.h

Issue 187483005: Extending the Views-on-Mac experiment: whole app list grid. Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: still compiles r263560 + crrev/195793005 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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_COCOA_APPS_GRID_CONTROLLER_H_ 5 #ifndef UI_APP_LIST_COCOA_APPS_GRID_CONTROLLER_H_
6 #define UI_APP_LIST_COCOA_APPS_GRID_CONTROLLER_H_ 6 #define UI_APP_LIST_COCOA_APPS_GRID_CONTROLLER_H_
7 7
8 #import <Cocoa/Cocoa.h> 8 #import <Cocoa/Cocoa.h>
9 9
10 #include "base/mac/scoped_nsobject.h" 10 #include "base/mac/scoped_nsobject.h"
11 #include "base/memory/scoped_ptr.h" 11 #include "base/memory/scoped_ptr.h"
12 #include "ui/app_list/app_list_export.h" 12 #include "ui/app_list/app_list_export.h"
13 #import "ui/app_list/cocoa/app_list_pager_view.h" 13 #import "ui/app_list/cocoa/app_list_pager_view.h"
14 #import "ui/app_list/cocoa/scroll_view_with_no_scrollbars.h" 14 #include "ui/views_core/bridged_view_mac.h"
15 15
16 namespace app_list { 16 namespace app_list {
17 class AppListModel; 17 class AppListModel;
18 class AppListViewDelegate; 18 class AppListViewDelegate;
19 class AppsGridDelegateBridge; 19 class AppsGridView;
20 class AppsGridViewDelegateBridge;
21 class PaginationModel;
20 } 22 }
21 23
22 @class AppsGridViewItem;
23 @protocol AppsPaginationModelObserver; 24 @protocol AppsPaginationModelObserver;
24 @class AppsCollectionViewDragManager;
25 25
26 // Controls a grid of views, representing AppListItemList sub models. 26 // Controls a grid of views, representing AppListItemList sub models.
27 APP_LIST_EXPORT 27 APP_LIST_EXPORT
28 @interface AppsGridController : NSViewController<GestureScrollDelegate, 28 @interface AppsGridController : NSViewController<AppListPagerDelegate> {
29 AppListPagerDelegate,
30 NSCollectionViewDelegate> {
31 @private 29 @private
32 app_list::AppListViewDelegate* delegate_; // Weak. Owned by view controller. 30 app_list::AppListViewDelegate* delegate_; // Weak. Owned by view controller.
33 scoped_ptr<app_list::AppsGridDelegateBridge> bridge_;
34 31
35 base::scoped_nsobject<AppsCollectionViewDragManager> dragManager_; 32 scoped_ptr<app_list::AppsGridViewDelegateBridge> gridDelegate_;
36 base::scoped_nsobject<NSMutableArray> pages_; 33 scoped_ptr<app_list::PaginationModel> paginationModel_;
37 base::scoped_nsobject<NSMutableArray> items_;
38 base::scoped_nsobject<NSTimer> scrollWhileDraggingTimer_;
39 34
35 views::BridgedView<app_list::AppsGridView> gridView_;
40 id<AppsPaginationModelObserver> paginationObserver_; 36 id<AppsPaginationModelObserver> paginationObserver_;
41
42 // Index of the currently visible page.
43 size_t visiblePage_;
44 // The page to which the view is currently animating a scroll.
45 size_t targetScrollPage_;
46 // The page to start scrolling to when the timer expires.
47 size_t scheduledScrollPage_;
48
49 // Whether we are currently animating a scroll to the nearest page.
50 BOOL animatingScroll_;
51 } 37 }
52 38
53 @property(assign, nonatomic) id<AppsPaginationModelObserver> paginationObserver; 39 @property(assign, nonatomic) id<AppsPaginationModelObserver> paginationObserver;
54 40
55 + (void)setScrollAnimationDuration:(NSTimeInterval)duration; 41 + (void)setScrollAnimationDuration:(NSTimeInterval)duration;
56 42
57 // The amount the grid view has been extended to hold the sometimes present 43 // The amount the grid view has been extended to hold the sometimes present
58 // invisible scroller that allows for gesture scrolling. 44 // invisible scroller that allows for gesture scrolling.
59 + (CGFloat)scrollerPadding; 45 + (CGFloat)scrollerPadding;
60 46
61 - (NSCollectionView*)collectionViewAtPageIndex:(size_t)pageIndex; 47 - (NSCollectionView*)collectionViewAtPageIndex:(size_t)pageIndex;
62 - (size_t)pageIndexForCollectionView:(NSCollectionView*)page; 48 - (size_t)pageIndexForCollectionView:(NSCollectionView*)page;
63 49
64 - (AppsGridViewItem*)itemAtIndex:(size_t)itemIndex;
65
66 - (app_list::AppListModel*)model; 50 - (app_list::AppListModel*)model;
67 51
68 - (void)setDelegate:(app_list::AppListViewDelegate*)newDelegate; 52 - (void)setDelegate:(app_list::AppListViewDelegate*)newDelegate;
69 53
70 - (size_t)visiblePage; 54 - (size_t)visiblePage;
71 55
72 // Calls item->Activate for the currently selected item by simulating a click. 56 // Calls item->Activate for the currently selected item by simulating a click.
73 - (void)activateSelection; 57 - (void)activateSelection;
74 58
75 // Return the number of pages of icons in the grid. 59 // Return the number of pages of icons in the grid.
(...skipping 29 matching lines...) Expand all
105 - (void)selectItemAtIndex:(NSUInteger)index; 89 - (void)selectItemAtIndex:(NSUInteger)index;
106 90
107 // Handle key actions. Similar to doCommandBySelector from NSResponder but that 91 // Handle key actions. Similar to doCommandBySelector from NSResponder but that
108 // requires this class to be in the responder chain. Instead this method is 92 // requires this class to be in the responder chain. Instead this method is
109 // invoked by the AppListViewController. 93 // invoked by the AppListViewController.
110 // Returns YES if this handled navigation or launched an app. 94 // Returns YES if this handled navigation or launched an app.
111 - (BOOL)handleCommandBySelector:(SEL)command; 95 - (BOOL)handleCommandBySelector:(SEL)command;
112 96
113 @end 97 @end
114 98
115 @interface AppsGridController(TestingAPI)
116
117 - (AppsCollectionViewDragManager*)dragManager;
118 - (size_t)scheduledScrollPage;
119
120 @end
121
122 #endif // UI_APP_LIST_COCOA_APPS_GRID_CONTROLLER_H_ 99 #endif // UI_APP_LIST_COCOA_APPS_GRID_CONTROLLER_H_
OLDNEW
« no previous file with comments | « ui/app_list/cocoa/apps_collection_view_drag_manager.mm ('k') | ui/app_list/cocoa/apps_grid_controller.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698