Index: chrome/browser/ui/views/toolbar/browser_actions_container.h |
diff --git a/chrome/browser/ui/views/toolbar/browser_actions_container.h b/chrome/browser/ui/views/toolbar/browser_actions_container.h |
index 51a03ef087d0004cf9a7da4227eae1574f677fa9..ec08d4895637703d33b799ffd60cfd2d6e3e9fd8 100644 |
--- a/chrome/browser/ui/views/toolbar/browser_actions_container.h |
+++ b/chrome/browser/ui/views/toolbar/browser_actions_container.h |
@@ -291,6 +291,9 @@ class BrowserActionsContainer |
friend class BrowserActionView; // So it can access IconWidth(). |
friend class ShowFolderMenuTask; |
+ // A struct representing the position at which an action will be dropped. |
+ struct DropPosition; |
+ |
typedef std::vector<BrowserActionView*> BrowserActionViews; |
// Returns the width of an icon, optionally with its padding. |
@@ -330,7 +333,10 @@ class BrowserActionsContainer |
// Sets the drop indicator position (and schedules paint if the position has |
// changed). |
- void SetDropIndicator(int x_pos); |
+ void SetDropPosition(size_t row, size_t icon_in_row); |
+ |
+ // Resets the drop position to NULL (removing the indicator). |
+ void ResetDropPosition(); |
// Given a number of |icons| and whether to |display_chevron|, returns the |
// amount of pixels needed to draw the entire container. For convenience, |
@@ -367,6 +373,9 @@ class BrowserActionsContainer |
ExtensionPopup::ShowAction show_action, |
bool grant_tab_permissions); |
+ // Return the index of the first visible icon. |
+ size_t GetFirstVisibleIconIndex() const; |
+ |
// Whether this container is in overflow mode (as opposed to in 'main' |
// mode). See class comments for details on the difference. |
bool in_overflow_mode() const { return main_container_ != NULL; } |
@@ -431,8 +440,9 @@ class BrowserActionsContainer |
// are done animating. |
int animation_target_size_; |
- // The x position for where to draw the drop indicator. -1 if no indicator. |
- int drop_indicator_position_; |
+ // The DropPosition for the current drag-and-drop operation, or NULL if there |
+ // is none. |
+ scoped_ptr<DropPosition> drop_position_; |
Peter Kasting
2014/07/21 20:24:09
I wonder if instead of using NULL to mean "none",
Devlin
2014/07/22 17:30:47
I personally prefer the scoped ptr approach, becau
Peter Kasting
2014/07/22 18:21:11
Let me back up for a second. You start by saying
Devlin
2014/07/22 20:29:33
But, if we define a constructor (default or otherw
Peter Kasting
2014/07/22 21:10:00
Oof, I didn't recall that.
It's funny too, we're
Devlin
2014/07/22 22:13:20
Aggregate initialization isn't too bad, but we can
|
// The class that registers for keyboard shortcuts for extension commands. |
scoped_ptr<ExtensionKeybindingRegistryViews> extension_keybinding_registry_; |