Chromium Code Reviews| Index: ui/app_list/views/apps_grid_view.h |
| diff --git a/ui/app_list/views/apps_grid_view.h b/ui/app_list/views/apps_grid_view.h |
| index f98843bd92d8f95f33abaaf5f35695544fea7341..94b1316962d4d7031120f14cf96d57e9131a31da 100644 |
| --- a/ui/app_list/views/apps_grid_view.h |
| +++ b/ui/app_list/views/apps_grid_view.h |
| @@ -235,6 +235,12 @@ class APP_LIST_EXPORT AppsGridView : public views::View, |
| bool operator!=(const Index& other) const { |
| return page != other.page || slot != other.slot; |
| } |
| + bool operator<(const Index& other) const { |
| + if (page != other.page) |
| + return page < other.page; |
| + |
| + return slot < other.slot; |
| + } |
| int page; // Which page an item view is on. |
| int slot; // Which slot in the page an item view is in. |
| @@ -266,6 +272,9 @@ class APP_LIST_EXPORT AppsGridView : public views::View, |
| Index GetIndexOfView(const views::View* view) const; |
| views::View* GetViewAtIndex(const Index& index) const; |
| + // Gets the index of the AppListItemView at the end of the view model. |
| + Index GetLastViewIndex() const; |
| + |
| void MoveSelected(int page_delta, int slot_x_delta, int slot_y_delta); |
| void CalculateIdealBounds(); |
| @@ -288,19 +297,22 @@ class APP_LIST_EXPORT AppsGridView : public views::View, |
| void ExtractDragLocation(const ui::LocatedEvent& event, |
| gfx::Point* drag_point); |
| - // Calculates reorder and folder drop targets based on |drag_point|. |
| - // |drag_point| is in the grid view's coordinates. When |
| - // |use_page_button_hovering| is true and |drag_point| is hovering on a page |
| - // button, use the last slot on that page as drop target. |
| - void CalculateDropTarget(const gfx::Point& drag_point, |
| - bool use_page_button_hovering); |
| + // Updates |reorder_drop_target_|, |folder_drop_target_| and |drop_attempt_| |
| + // based on |drag_view_|'s position. |
| + void CalculateDropTarget(); |
| + |
| + // If |point| is a valid folder drop target, returns true and sets |
| + // |drop_target| to the index of the view to do a folder drop for. |
| + bool CalculateFolderDropTarget(const gfx::Point& point, Index* drop_target); |
| + |
| + // Calculates the reorder target |point| and sets |drop_target| to the index |
| + // of the view to reorder. |
| + void CalculateReorderDropTarget(const gfx::Point& point, Index* drop_target); |
| // Same as CalculateDropTarget, but with folder UI enabled. The drop target |
|
tapted
2014/09/15 06:12:53
I think this comment is a stray now
calamity
2014/09/15 06:36:15
Done.
|
| // can be either a target for re-ordering, or a target folder to move the |
| // dragged item into if |drag_view_| enters its re-ordering or folder |
| // dropping circle. |
| - void CalculateDropTargetWithFolderEnabled(const gfx::Point& drag_point, |
| - bool use_page_button_hovering); |
| // Prepares |drag_and_drop_host_| for dragging. |grid_location| contains |
| // the drag point in this grid view's coordinates. |
| @@ -390,31 +402,18 @@ class APP_LIST_EXPORT AppsGridView : public views::View, |
| // dropped into it. |
| bool CanDropIntoTarget(const Index& drop_target); |
| - // Calculates the visual index of the nearest tile for which |drag_view_| |
| - // enters either its re-ordering or folder dropping circle. |
| - void CalculateNearestTileForDragView(); |
| - |
| - // Calculates |nearest_tile| in which |vertex| of the |drag_view| is |
| - // enclosed. |
| - // *|nearest_tile| and *|d_min| will be updated based on the calculation. |
| - // *|d_min| is the distance between |nearest_tile| and |drag_view_|. |
| - void CalculateNearestTileForVertex( |
| - const gfx::Point& vertex, Index* nearest_tile, int* d_min); |
| - |
| - // Returns the bounds of the tile in which |point| is enclosed if there |
| - // is a valid item sits on the tile. |
| - gfx::Rect GetTileBoundsForPoint(const gfx::Point& point, Index* tile_index); |
| - |
| // Returns the size of the entire tile grid. |
| gfx::Size GetTileGridSize() const; |
| - // Gets the expected bounds of a tile located at |row| and |col| on the |
| - // current page. |
| - gfx::Rect GetExpectedTileBounds(int row, int col) const; |
| + // Returns the slot number which the given |point| falls into or the closest |
| + // slot if |point| if outside the page's bounds. |
|
tapted
2014/09/15 06:12:53
nit: if outside -> is outside
calamity
2014/09/15 06:36:15
Done.
|
| + Index GetNearestTileIndexForPoint(const gfx::Point& point) const; |
| - // Returns true if the slot of |index| is the last possible slot to drop |
| - // an item, i.e. first empty slot next to the last item on the last page. |
| - bool IsLastPossibleDropTarget(const Index& index) const; |
| + // Gets the bounds of the tile located at |slot| on the current page. |
| + gfx::Rect GetExpectedTileBounds(int slot) const; |
| + |
| + // Gets the bounds of the tile located at |row| and |col| on the current page. |
| + gfx::Rect GetExpectedTileBounds(int row, int col) const; |
| // Gets the item view located at |slot| on the current page. If there is |
| // no item located at |slot|, returns NULL. |
| @@ -520,6 +519,10 @@ class APP_LIST_EXPORT AppsGridView : public views::View, |
| // The most recent folder drop target. |
| Index folder_drop_target_; |
| + // The index where an empty slot has been left as a placeholder for the |
| + // reorder drop target. This updates when the reorder animation triggers. |
| + Index reorder_placeholder_; |
| + |
| // The current action that ending a drag will perform. |
| DropAttempt drop_attempt_; |