Index: chrome/browser/ui/panels/detached_panel_strip.h |
diff --git a/chrome/browser/ui/panels/detached_panel_strip.h b/chrome/browser/ui/panels/detached_panel_strip.h |
index 0beedf94ab9f25c37ad97220ab9a846c0a94b57c..ce8f3e9f3c4de1ced3f9f19211459f7688a79ad6 100644 |
--- a/chrome/browser/ui/panels/detached_panel_strip.h |
+++ b/chrome/browser/ui/panels/detached_panel_strip.h |
@@ -27,7 +27,8 @@ class DetachedPanelStrip : public PanelStrip { |
// PanelStrip OVERRIDES: |
virtual void SetDisplayArea(const gfx::Rect& display_area) OVERRIDE; |
virtual void RefreshLayout() OVERRIDE; |
- virtual void AddPanel(Panel* panel) OVERRIDE; |
+ virtual void AddPanel(Panel* panel, |
+ PositioningMask positioning_mask) OVERRIDE; |
virtual void RemovePanel(Panel* panel) OVERRIDE; |
virtual void CloseAll() OVERRIDE; |
virtual void ResizePanelWindow( |
@@ -39,10 +40,16 @@ class DetachedPanelStrip : public PanelStrip { |
virtual void RestorePanel(Panel* panel) OVERRIDE; |
virtual bool IsPanelMinimized(const Panel* panel) const OVERRIDE; |
virtual bool CanShowPanelAsActive(const Panel* panel) const OVERRIDE; |
+ virtual void SavePanelPlacement(Panel* panel) OVERRIDE; |
+ virtual void RestorePanelToSavedPlacement() OVERRIDE; |
+ virtual void DiscardSavedPanelPlacement() OVERRIDE; |
virtual bool CanDragPanel(const Panel* panel) const OVERRIDE; |
- virtual void StartDraggingPanel(Panel* panel) OVERRIDE; |
- virtual void DragPanel(Panel* panel, int delta_x, int delta_y) OVERRIDE; |
- virtual void EndDraggingPanel(Panel* panel, bool cancelled) OVERRIDE; |
+ virtual void StartDraggingPanelWithinStrip(Panel* panel) OVERRIDE; |
+ virtual void DragPanelWithinStrip(Panel* panel, |
+ int delta_x, |
+ int delta_y) OVERRIDE; |
+ virtual void EndDraggingPanelWithinStrip(Panel* panel, |
+ bool aborted) OVERRIDE; |
bool HasPanel(Panel* panel) const; |
@@ -50,6 +57,13 @@ class DetachedPanelStrip : public PanelStrip { |
const Panels& panels() const { return panels_; } |
private: |
+ struct PanelPlacement { |
+ Panel* panel; |
+ gfx::Point position; |
+ |
+ PanelPlacement() : panel(NULL) { } |
+ }; |
+ |
PanelManager* panel_manager_; // Weak, owns us. |
// All panels in the panel strip must fit within this area. |
@@ -58,6 +72,9 @@ class DetachedPanelStrip : public PanelStrip { |
// Collection of all panels. |
Panels panels_; |
+ // Used to save the placement information for a panel. |
+ PanelPlacement saved_panel_placement_; |
+ |
DISALLOW_COPY_AND_ASSIGN(DetachedPanelStrip); |
}; |