Chromium Code Reviews| Index: ash/wm/workspace/snap_sizer.h |
| diff --git a/ash/wm/workspace/snap_sizer.h b/ash/wm/workspace/snap_sizer.h |
| index bd5f719ae482d1d78be1c20d70fd0895e3eb0703..b4cae25739b8dc244593816fa3af0a1a5e2629e5 100644 |
| --- a/ash/wm/workspace/snap_sizer.h |
| +++ b/ash/wm/workspace/snap_sizer.h |
| @@ -19,6 +19,8 @@ class Window; |
| namespace ash { |
| namespace internal { |
| +class DockedWindowLayoutManager; |
| + |
| // SnapSizer is responsible for determining the resulting bounds of a window |
| // that is being snapped to the left or right side of the screen. |
| // The bounds used in this class are in the container's coordinates. |
| @@ -31,6 +33,7 @@ class ASH_EXPORT SnapSizer { |
| enum InputType { |
| TOUCH_MAXIMIZE_BUTTON_INPUT, |
| + WORKSPACE_DRAG_INPUT, |
| OTHER_INPUT |
| }; |
| @@ -63,6 +66,13 @@ class ASH_EXPORT SnapSizer { |
| // For unit test purposes this function is not private. |
| gfx::Rect GetTargetBoundsForSize(size_t size_index) const; |
| + // Returns true when snapping sequence is at its last (docking) step. |
|
sky
2013/09/11 19:38:40
Why do we need snapsizer to know about docked wind
varkha
2013/09/11 20:02:10
We moved to the model where docking is the last st
varkha
2013/09/12 19:49:23
Done.
|
| + bool ShouldDockWindow() const; |
| + |
| + // Returns true when a window can be docked. Windows cannot be docked at the |
| + // edge used by the launcher shelf or the edge opposite from existing dock. |
| + static bool CanDockWindow(aura::Window* window, SnapSizer::Edge edge); |
| + |
| private: |
| // Calculates the amount to increment by. This returns one of -1, 0 or 1 and |
| // is intended to by applied to |size_index_|. |x| is the current |
| @@ -81,6 +91,10 @@ class ASH_EXPORT SnapSizer { |
| // Returns true if the specified point is along the edge of the screen. |
| bool AlongEdge(int x) const; |
| + // Dock when a window is at its last step in snapping sequence, undock |
| + // otherwise. |
| + void UpdateDockedState(); |
| + |
| // Window being snapped. |
| aura::Window* window_; |
| @@ -118,8 +132,12 @@ class ASH_EXPORT SnapSizer { |
| const InputType input_type_; |
| // A list of usable window widths for size. This gets created when the |
| - // sizer gets created. |
| - const std::vector<int> usable_width_; |
| + // sizer gets created. Possible last 0 entry indicates that computing bounds |
| + // needs to be delegated to DockedWindowLayoutManager. |
| + std::vector<int> usable_width_; |
| + |
| + // Dock container window layout manager. |
| + DockedWindowLayoutManager* dock_layout_; |
| DISALLOW_COPY_AND_ASSIGN(SnapSizer); |
| }; |