OLD | NEW |
---|---|
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 #include <string> | 9 #include <string> |
10 | 10 |
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
228 struct Index { | 228 struct Index { |
229 Index() : page(-1), slot(-1) {} | 229 Index() : page(-1), slot(-1) {} |
230 Index(int page, int slot) : page(page), slot(slot) {} | 230 Index(int page, int slot) : page(page), slot(slot) {} |
231 | 231 |
232 bool operator==(const Index& other) const { | 232 bool operator==(const Index& other) const { |
233 return page == other.page && slot == other.slot; | 233 return page == other.page && slot == other.slot; |
234 } | 234 } |
235 bool operator!=(const Index& other) const { | 235 bool operator!=(const Index& other) const { |
236 return page != other.page || slot != other.slot; | 236 return page != other.page || slot != other.slot; |
237 } | 237 } |
238 bool operator<(const Index& other) const { | |
239 if (page == other.page) | |
tapted
2014/09/11 08:08:55
optional-nit: This is fine, but I usually write th
calamity
2014/09/15 03:26:11
Done.
| |
240 return slot < other.slot; | |
241 | |
242 return page < other.page; | |
243 } | |
238 | 244 |
239 int page; // Which page an item view is on. | 245 int page; // Which page an item view is on. |
240 int slot; // Which slot in the page an item view is in. | 246 int slot; // Which slot in the page an item view is in. |
241 }; | 247 }; |
242 | 248 |
243 int tiles_per_page() const { return cols_ * rows_per_page_; } | 249 int tiles_per_page() const { return cols_ * rows_per_page_; } |
244 | 250 |
245 // Updates from model. | 251 // Updates from model. |
246 void Update(); | 252 void Update(); |
247 | 253 |
(...skipping 11 matching lines...) Expand all Loading... | |
259 // struct above with page/slot info of where to display the item. | 265 // struct above with page/slot info of where to display the item. |
260 Index GetIndexFromModelIndex(int model_index) const; | 266 Index GetIndexFromModelIndex(int model_index) const; |
261 int GetModelIndexFromIndex(const Index& index) const; | 267 int GetModelIndexFromIndex(const Index& index) const; |
262 | 268 |
263 void SetSelectedItemByIndex(const Index& index); | 269 void SetSelectedItemByIndex(const Index& index); |
264 bool IsValidIndex(const Index& index) const; | 270 bool IsValidIndex(const Index& index) const; |
265 | 271 |
266 Index GetIndexOfView(const views::View* view) const; | 272 Index GetIndexOfView(const views::View* view) const; |
267 views::View* GetViewAtIndex(const Index& index) const; | 273 views::View* GetViewAtIndex(const Index& index) const; |
268 | 274 |
275 // Gets the index of the AppListItemView in the view model. | |
tapted
2014/09/11 08:08:55
`in the view model.` -> `at the end of the view mo
calamity
2014/09/15 03:26:11
Done.
| |
276 Index GetLastViewIndex() const; | |
277 | |
269 void MoveSelected(int page_delta, int slot_x_delta, int slot_y_delta); | 278 void MoveSelected(int page_delta, int slot_x_delta, int slot_y_delta); |
270 | 279 |
271 void CalculateIdealBounds(); | 280 void CalculateIdealBounds(); |
272 void AnimateToIdealBounds(); | 281 void AnimateToIdealBounds(); |
273 | 282 |
274 // Invoked when the given |view|'s current bounds and target bounds are on | 283 // Invoked when the given |view|'s current bounds and target bounds are on |
275 // different rows. To avoid moving diagonally, |view| would be put into a | 284 // different rows. To avoid moving diagonally, |view| would be put into a |
276 // slot prior |target| and fade in while moving to |target|. In the meanwhile, | 285 // slot prior |target| and fade in while moving to |target|. In the meanwhile, |
277 // a layer copy of |view| would start at |current| and fade out while moving | 286 // a layer copy of |view| would start at |current| and fade out while moving |
278 // to succeeding slot of |current|. |animate_current| controls whether to run | 287 // to succeeding slot of |current|. |animate_current| controls whether to run |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
383 // If |hide| is set the view will get hidden, otherwise it gets shown. | 392 // If |hide| is set the view will get hidden, otherwise it gets shown. |
384 void SetViewHidden(views::View* view, bool hide, bool immediate); | 393 void SetViewHidden(views::View* view, bool hide, bool immediate); |
385 | 394 |
386 // Whether the folder drag-and-drop UI should be enabled. | 395 // Whether the folder drag-and-drop UI should be enabled. |
387 bool EnableFolderDragDropUI(); | 396 bool EnableFolderDragDropUI(); |
388 | 397 |
389 // Whether target specified by |drap_target| can accept more items to be | 398 // Whether target specified by |drap_target| can accept more items to be |
390 // dropped into it. | 399 // dropped into it. |
391 bool CanDropIntoTarget(const Index& drop_target); | 400 bool CanDropIntoTarget(const Index& drop_target); |
392 | 401 |
393 // Calculates the visual index of the nearest tile for which |drag_view_| | |
394 // enters either its re-ordering or folder dropping circle. | |
395 void CalculateNearestTileForDragView(); | |
396 | |
397 // Calculates |nearest_tile| in which |vertex| of the |drag_view| is | |
398 // enclosed. | |
399 // *|nearest_tile| and *|d_min| will be updated based on the calculation. | |
400 // *|d_min| is the distance between |nearest_tile| and |drag_view_|. | |
401 void CalculateNearestTileForVertex( | |
402 const gfx::Point& vertex, Index* nearest_tile, int* d_min); | |
403 | |
404 // Returns the bounds of the tile in which |point| is enclosed if there | |
405 // is a valid item sits on the tile. | |
406 gfx::Rect GetTileBoundsForPoint(const gfx::Point& point, Index* tile_index); | |
407 | |
408 // Returns the size of the entire tile grid. | 402 // Returns the size of the entire tile grid. |
409 gfx::Size GetTileGridSize() const; | 403 gfx::Size GetTileGridSize() const; |
410 | 404 |
411 // Gets the expected bounds of a tile located at |row| and |col| on the | 405 // Returns the slot number which the given |point| falls into. |
tapted
2014/09/11 08:08:55
nit: This comment suggests to me that if |point| i
calamity
2014/09/15 03:26:11
Returns an Index, changed description.
| |
412 // current page. | 406 int GetNearestTileSlotForPoint(const gfx::Point& point); |
tapted
2014/09/11 08:08:55
nit: declare const?
calamity
2014/09/15 03:26:11
Done.
| |
407 | |
408 // Gets the bounds of the tile located at |slot| on current page. | |
409 gfx::Rect GetExpectedTileBounds(int slot) const; | |
tapted
2014/09/11 08:08:55
maybe take an AppsGridView::Index ? looks like it'
calamity
2014/09/15 03:26:11
I think slot is better since using an Index kind o
| |
410 | |
411 // Gets the bounds of the tile located at |row| and |col| on current page. | |
tapted
2014/09/11 08:08:55
nit: on -> on the
calamity
2014/09/15 03:26:11
Done.
| |
413 gfx::Rect GetExpectedTileBounds(int row, int col) const; | 412 gfx::Rect GetExpectedTileBounds(int row, int col) const; |
414 | 413 |
415 // Returns true if the slot of |index| is the last possible slot to drop | |
416 // an item, i.e. first empty slot next to the last item on the last page. | |
417 bool IsLastPossibleDropTarget(const Index& index) const; | |
418 | |
419 // Gets the item view located at |slot| on the current page. If there is | 414 // Gets the item view located at |slot| on the current page. If there is |
420 // no item located at |slot|, returns NULL. | 415 // no item located at |slot|, returns NULL. |
421 views::View* GetViewAtSlotOnCurrentPage(int slot); | 416 views::View* GetViewAtSlotOnCurrentPage(int slot); |
422 | 417 |
423 // Sets state of the view with |target_index| to |is_target_folder| for | 418 // Sets state of the view with |target_index| to |is_target_folder| for |
424 // dropping |drag_view_|. | 419 // dropping |drag_view_|. |
425 void SetAsFolderDroppingTarget(const Index& target_index, | 420 void SetAsFolderDroppingTarget(const Index& target_index, |
426 bool is_target_folder); | 421 bool is_target_folder); |
427 | 422 |
428 // Invoked when |reorder_timer_| fires to show re-order preview UI. | 423 // Invoked when |reorder_timer_| fires to show re-order preview UI. |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
506 #if defined(OS_WIN) | 501 #if defined(OS_WIN) |
507 // Created when a drag is started (ie: drag exceeds the drag threshold), but | 502 // Created when a drag is started (ie: drag exceeds the drag threshold), but |
508 // not Run() until supplied with a shortcut path. | 503 // not Run() until supplied with a shortcut path. |
509 scoped_refptr<SynchronousDrag> synchronous_drag_; | 504 scoped_refptr<SynchronousDrag> synchronous_drag_; |
510 | 505 |
511 // Whether to use SynchronousDrag to support dropping to task bar etc. | 506 // Whether to use SynchronousDrag to support dropping to task bar etc. |
512 bool use_synchronous_drag_; | 507 bool use_synchronous_drag_; |
513 #endif | 508 #endif |
514 | 509 |
515 Pointer drag_pointer_; | 510 Pointer drag_pointer_; |
511 | |
512 // The index where a folder drop is being attempted. | |
513 Index folder_drop_target_; | |
514 | |
515 // The index where a reorder is being attempted. | |
516 Index reorder_drop_target_; | 516 Index reorder_drop_target_; |
517 Index folder_drop_target_; | 517 |
518 // The index where a reorder's blank placeholder is located. | |
519 Index reorder_placeholder_; | |
tapted
2014/09/11 08:08:55
Can you say more about this in the comment - I'm n
calamity
2014/09/15 03:26:11
Done.
| |
520 | |
521 // The type of drop being attempted. | |
518 DropAttempt drop_attempt_; | 522 DropAttempt drop_attempt_; |
519 | 523 |
520 // Timer for re-ordering the |drop_target_| and |drag_view_|. | 524 // Timer for re-ordering the |drop_target_| and |drag_view_|. |
521 base::OneShotTimer<AppsGridView> reorder_timer_; | 525 base::OneShotTimer<AppsGridView> reorder_timer_; |
522 | 526 |
523 // Timer for dropping |drag_view_| into the folder containing | 527 // Timer for dropping |drag_view_| into the folder containing |
524 // the |drop_target_|. | 528 // the |drop_target_|. |
525 base::OneShotTimer<AppsGridView> folder_dropping_timer_; | 529 base::OneShotTimer<AppsGridView> folder_dropping_timer_; |
526 | 530 |
527 // Timer for dragging a folder item out of folder container ink bubble. | 531 // Timer for dragging a folder item out of folder container ink bubble. |
(...skipping 30 matching lines...) Expand all Loading... | |
558 | 562 |
559 // True if the drag_view_ item is a folder item being dragged for reparenting. | 563 // True if the drag_view_ item is a folder item being dragged for reparenting. |
560 bool dragging_for_reparent_item_; | 564 bool dragging_for_reparent_item_; |
561 | 565 |
562 DISALLOW_COPY_AND_ASSIGN(AppsGridView); | 566 DISALLOW_COPY_AND_ASSIGN(AppsGridView); |
563 }; | 567 }; |
564 | 568 |
565 } // namespace app_list | 569 } // namespace app_list |
566 | 570 |
567 #endif // UI_APP_LIST_VIEWS_APPS_GRID_VIEW_H_ | 571 #endif // UI_APP_LIST_VIEWS_APPS_GRID_VIEW_H_ |
OLD | NEW |