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

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

Issue 11371003: app_list: Add sync animation. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix missed init Created 8 years, 1 month 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
« no previous file with comments | « ui/app_list/app_list_model_observer.h ('k') | ui/app_list/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_APPS_GRID_VIEW_H_ 5 #ifndef UI_APP_LIST_APPS_GRID_VIEW_H_
6 #define UI_APP_LIST_APPS_GRID_VIEW_H_ 6 #define UI_APP_LIST_APPS_GRID_VIEW_H_
7 7
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
11 #include "base/compiler_specific.h" 11 #include "base/compiler_specific.h"
12 #include "base/timer.h" 12 #include "base/timer.h"
13 #include "ui/app_list/app_list_export.h" 13 #include "ui/app_list/app_list_export.h"
14 #include "ui/app_list/app_list_model.h" 14 #include "ui/app_list/app_list_model.h"
15 #include "ui/app_list/app_list_model_observer.h"
15 #include "ui/app_list/pagination_model_observer.h" 16 #include "ui/app_list/pagination_model_observer.h"
16 #include "ui/base/models/list_model_observer.h" 17 #include "ui/base/models/list_model_observer.h"
17 #include "ui/views/animation/bounds_animator.h" 18 #include "ui/views/animation/bounds_animator.h"
18 #include "ui/views/controls/button/button.h" 19 #include "ui/views/controls/button/button.h"
19 #include "ui/views/view.h" 20 #include "ui/views/view.h"
20 #include "ui/views/view_model.h" 21 #include "ui/views/view_model.h"
21 22
22 namespace views { 23 namespace views {
23 class ButtonListener; 24 class ButtonListener;
24 } 25 }
25 26
26 namespace app_list { 27 namespace app_list {
27 28
28 namespace test { 29 namespace test {
29 class AppsGridViewTestApi; 30 class AppsGridViewTestApi;
30 } 31 }
31 32
32 class AppListItemView; 33 class AppListItemView;
33 class AppsGridViewDelegate; 34 class AppsGridViewDelegate;
34 class PageSwitcher; 35 class PageSwitcher;
35 class PaginationModel; 36 class PaginationModel;
36 37
37 // AppsGridView displays a grid for AppListModel::Apps sub model. 38 // AppsGridView displays a grid for AppListModel::Apps sub model.
38 class APP_LIST_EXPORT AppsGridView : public views::View, 39 class APP_LIST_EXPORT AppsGridView : public views::View,
39 public views::ButtonListener, 40 public views::ButtonListener,
40 public ui::ListModelObserver, 41 public ui::ListModelObserver,
41 public PaginationModelObserver { 42 public PaginationModelObserver,
43 public AppListModelObserver {
42 public: 44 public:
43 enum Pointer { 45 enum Pointer {
44 NONE, 46 NONE,
45 MOUSE, 47 MOUSE,
46 TOUCH, 48 TOUCH,
47 }; 49 };
48 50
49 AppsGridView(AppsGridViewDelegate* delegate, 51 AppsGridView(AppsGridViewDelegate* delegate,
50 PaginationModel* pagination_model); 52 PaginationModel* pagination_model);
51 virtual ~AppsGridView(); 53 virtual ~AppsGridView();
52 54
53 // Sets fixed layout parameters. After setting this, CalculateLayout below 55 // Sets fixed layout parameters. After setting this, CalculateLayout below
54 // is no longer called to dynamically choosing those layout params. 56 // is no longer called to dynamically choosing those layout params.
55 void SetLayout(int icon_size, int cols, int rows_per_page); 57 void SetLayout(int icon_size, int cols, int rows_per_page);
56 58
57 // Sets |model| to use. Note this does not take ownership of |model|. 59 // Sets |model| to use. Note this does not take ownership of |model|.
58 void SetModel(AppListModel::Apps* model); 60 void SetModel(AppListModel* model);
59 61
60 void SetSelectedView(views::View* view); 62 void SetSelectedView(views::View* view);
61 void ClearSelectedView(views::View* view); 63 void ClearSelectedView(views::View* view);
62 bool IsSelectedView(const views::View* view) const; 64 bool IsSelectedView(const views::View* view) const;
63 65
64 // Ensures the view is visible. Note that if there is a running page 66 // Ensures the view is visible. Note that if there is a running page
65 // transition, this does nothing. 67 // transition, this does nothing.
66 void EnsureViewVisible(const views::View* view); 68 void EnsureViewVisible(const views::View* view);
67 69
68 void InitiateDrag(views::View* view, 70 void InitiateDrag(views::View* view,
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 }; 108 };
107 109
108 int tiles_per_page() const { return cols_ * rows_per_page_; } 110 int tiles_per_page() const { return cols_ * rows_per_page_; }
109 111
110 // Updates from model. 112 // Updates from model.
111 void Update(); 113 void Update();
112 114
113 // Updates page splits for item views. 115 // Updates page splits for item views.
114 void UpdatePaging(); 116 void UpdatePaging();
115 117
118 // Updates the number of pulsing block views based on AppListModel status and
119 // number of apps.
120 void UpdatePulsingBlockViews();
121
116 views::View* CreateViewForItemAtIndex(size_t index); 122 views::View* CreateViewForItemAtIndex(size_t index);
117 123
118 void SetSelectedItemByIndex(const Index& index); 124 void SetSelectedItemByIndex(const Index& index);
119 bool IsValidIndex(const Index& index) const; 125 bool IsValidIndex(const Index& index) const;
120 126
121 Index GetIndexOfView(const views::View* view) const; 127 Index GetIndexOfView(const views::View* view) const;
122 views::View* GetViewAtIndex(const Index& index) const; 128 views::View* GetViewAtIndex(const Index& index) const;
123 129
124 void MoveSelected(int page_delta, int slot_delta); 130 void MoveSelected(int page_delta, int slot_delta);
125 131
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 virtual void ListItemsAdded(size_t start, size_t count) OVERRIDE; 167 virtual void ListItemsAdded(size_t start, size_t count) OVERRIDE;
162 virtual void ListItemsRemoved(size_t start, size_t count) OVERRIDE; 168 virtual void ListItemsRemoved(size_t start, size_t count) OVERRIDE;
163 virtual void ListItemMoved(size_t index, size_t target_index) OVERRIDE; 169 virtual void ListItemMoved(size_t index, size_t target_index) OVERRIDE;
164 virtual void ListItemsChanged(size_t start, size_t count) OVERRIDE; 170 virtual void ListItemsChanged(size_t start, size_t count) OVERRIDE;
165 171
166 // Overridden from PaginationModelObserver: 172 // Overridden from PaginationModelObserver:
167 virtual void TotalPagesChanged() OVERRIDE; 173 virtual void TotalPagesChanged() OVERRIDE;
168 virtual void SelectedPageChanged(int old_selected, int new_selected) OVERRIDE; 174 virtual void SelectedPageChanged(int old_selected, int new_selected) OVERRIDE;
169 virtual void TransitionChanged() OVERRIDE; 175 virtual void TransitionChanged() OVERRIDE;
170 176
171 AppListModel::Apps* model_; // Owned by AppListModel. 177 // Overridden from AppListModelObserver:
178 virtual void OnAppListModelStatusChanged() OVERRIDE;
179
180 AppListModel* model_; // Owned by AppListView.
172 AppsGridViewDelegate* delegate_; 181 AppsGridViewDelegate* delegate_;
173 PaginationModel* pagination_model_; // Owned by AppListController. 182 PaginationModel* pagination_model_; // Owned by AppListController.
174 PageSwitcher* page_switcher_view_; // Owned by views hierarchy. 183 PageSwitcher* page_switcher_view_; // Owned by views hierarchy.
175 184
176 gfx::Size icon_size_; 185 gfx::Size icon_size_;
177 int cols_; 186 int cols_;
178 int rows_per_page_; 187 int rows_per_page_;
179 188
180 // Tracks app item views. There is a view per item in |model_|. 189 // Tracks app item views. There is a view per item in |model_|.
181 views::ViewModel view_model_; 190 views::ViewModel view_model_;
182 191
192 // Tracks pulsing block views.
193 views::ViewModel pulsing_blocks_model_;
194
183 views::View* selected_view_; 195 views::View* selected_view_;
184 196
185 views::View* drag_view_; 197 views::View* drag_view_;
186 gfx::Point drag_start_; 198 gfx::Point drag_start_;
187 Pointer drag_pointer_; 199 Pointer drag_pointer_;
188 Index drop_target_; 200 Index drop_target_;
189 201
190 gfx::Point last_drag_point_; 202 gfx::Point last_drag_point_;
191 203
192 // Timer to auto flip page when dragging an item near the left/right edges. 204 // Timer to auto flip page when dragging an item near the left/right edges.
193 base::OneShotTimer<AppsGridView> page_flip_timer_; 205 base::OneShotTimer<AppsGridView> page_flip_timer_;
194 206
195 // Target page to switch to when |page_flip_timer_| fires. 207 // Target page to switch to when |page_flip_timer_| fires.
196 int page_flip_target_; 208 int page_flip_target_;
197 209
198 // Delay in milliseconds of when |page_flip_timer_| should fire after user 210 // Delay in milliseconds of when |page_flip_timer_| should fire after user
199 // drags an item near the edges. 211 // drags an item near the edges.
200 int page_flip_delay_in_ms_; 212 int page_flip_delay_in_ms_;
201 213
202 views::BoundsAnimator bounds_animator_; 214 views::BoundsAnimator bounds_animator_;
203 215
204 DISALLOW_COPY_AND_ASSIGN(AppsGridView); 216 DISALLOW_COPY_AND_ASSIGN(AppsGridView);
205 }; 217 };
206 218
207 } // namespace app_list 219 } // namespace app_list
208 220
209 #endif // UI_APP_LIST_APPS_GRID_VIEW_H_ 221 #endif // UI_APP_LIST_APPS_GRID_VIEW_H_
OLDNEW
« no previous file with comments | « ui/app_list/app_list_model_observer.h ('k') | ui/app_list/apps_grid_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698