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 ASH_WM_WORKSPACE_WINDOW_RESIZER_H_ | 5 #ifndef ASH_WM_WORKSPACE_WINDOW_RESIZER_H_ |
6 #define ASH_WM_WORKSPACE_WINDOW_RESIZER_H_ | 6 #define ASH_WM_WORKSPACE_WINDOW_RESIZER_H_ |
7 | 7 |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "ash/wm/window_resizer.h" | 10 #include "ash/wm/window_resizer.h" |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
48 // this close to an edge of the screen it snaps to the edge. | 48 // this close to an edge of the screen it snaps to the edge. |
49 static const int kScreenEdgeInset; | 49 static const int kScreenEdgeInset; |
50 | 50 |
51 // Distance in pixels that the cursor must move past an edge for a window | 51 // Distance in pixels that the cursor must move past an edge for a window |
52 // to move or resize beyond that edge. | 52 // to move or resize beyond that edge. |
53 static const int kStickyDistancePixels; | 53 static const int kStickyDistancePixels; |
54 | 54 |
55 virtual ~WorkspaceWindowResizer(); | 55 virtual ~WorkspaceWindowResizer(); |
56 | 56 |
57 static WorkspaceWindowResizer* Create( | 57 static WorkspaceWindowResizer* Create( |
58 aura::Window* window, | 58 wm::WindowState* window_state, |
59 const gfx::Point& location_in_parent, | |
60 int window_component, | |
61 aura::client::WindowMoveSource source, | |
62 const std::vector<aura::Window*>& attached_windows); | 59 const std::vector<aura::Window*>& attached_windows); |
63 | 60 |
64 // WindowResizer: | 61 // WindowResizer: |
65 virtual void Drag(const gfx::Point& location_in_parent, | 62 virtual void Drag(const gfx::Point& location_in_parent, |
66 int event_flags) OVERRIDE; | 63 int event_flags) OVERRIDE; |
67 virtual void CompleteDrag() OVERRIDE; | 64 virtual void CompleteDrag() OVERRIDE; |
68 virtual void RevertDrag() OVERRIDE; | 65 virtual void RevertDrag() OVERRIDE; |
69 virtual aura::Window* GetTarget() OVERRIDE; | |
70 virtual const gfx::Point& GetInitialLocation() const OVERRIDE; | |
71 | 66 |
72 private: | 67 private: |
73 WorkspaceWindowResizer(const Details& details, | 68 WorkspaceWindowResizer(wm::WindowState* window_state, |
74 const std::vector<aura::Window*>& attached_windows); | 69 const std::vector<aura::Window*>& attached_windows); |
75 | 70 |
76 private: | 71 private: |
77 friend class WorkspaceWindowResizerTest; | 72 friend class WorkspaceWindowResizerTest; |
78 | 73 |
79 // Returns the final bounds to place the window at. This differs from | 74 // Returns the final bounds to place the window at. This differs from |
80 // the current when snapping. | 75 // the current when snapping. |
81 gfx::Rect GetFinalBounds(const gfx::Rect& bounds) const; | 76 gfx::Rect GetFinalBounds(const gfx::Rect& bounds) const; |
82 | 77 |
83 // Lays out the attached windows. |bounds| is the bounds of the main window. | 78 // Lays out the attached windows. |bounds| is the bounds of the main window. |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
156 void RestackWindows(); | 151 void RestackWindows(); |
157 | 152 |
158 // Returns the SnapType for the specified point. SNAP_NONE is used if no | 153 // Returns the SnapType for the specified point. SNAP_NONE is used if no |
159 // snapping should be used. | 154 // snapping should be used. |
160 SnapType GetSnapType(const gfx::Point& location) const; | 155 SnapType GetSnapType(const gfx::Point& location) const; |
161 | 156 |
162 // Docks the dragged window if |should_dock| and the window can be docked. | 157 // Docks the dragged window if |should_dock| and the window can be docked. |
163 // Undocks the window if |should_dock| is false. | 158 // Undocks the window if |should_dock| is false. |
164 void SetDraggedWindowDocked(bool should_dock); | 159 void SetDraggedWindowDocked(bool should_dock); |
165 | 160 |
166 aura::Window* window() const { return details_.window; } | 161 wm::WindowState* window_state() { return window_state_; } |
167 | |
168 wm::WindowState* window_state() { return details_.window_state; } | |
169 | |
170 const Details details_; | |
171 | 162 |
172 const std::vector<aura::Window*> attached_windows_; | 163 const std::vector<aura::Window*> attached_windows_; |
173 | 164 |
174 bool did_lock_cursor_; | 165 bool did_lock_cursor_; |
175 | 166 |
176 // Set to true once Drag() is invoked and the bounds of the window change. | 167 // Set to true once Drag() is invoked and the bounds of the window change. |
177 bool did_move_or_resize_; | 168 bool did_move_or_resize_; |
178 | 169 |
179 // True if the window initially had |bounds_changed_by_user_| set in state. | 170 // True if the window initially had |bounds_changed_by_user_| set in state. |
180 bool initial_bounds_changed_by_user_; | 171 bool initial_bounds_changed_by_user_; |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
227 // Current instance for use by the WorkspaceWindowResizerTest. | 218 // Current instance for use by the WorkspaceWindowResizerTest. |
228 static WorkspaceWindowResizer* instance_; | 219 static WorkspaceWindowResizer* instance_; |
229 | 220 |
230 DISALLOW_COPY_AND_ASSIGN(WorkspaceWindowResizer); | 221 DISALLOW_COPY_AND_ASSIGN(WorkspaceWindowResizer); |
231 }; | 222 }; |
232 | 223 |
233 } // namespace internal | 224 } // namespace internal |
234 } // namespace ash | 225 } // namespace ash |
235 | 226 |
236 #endif // ASH_WM_WORKSPACE_WINDOW_RESIZER_H_ | 227 #endif // ASH_WM_WORKSPACE_WINDOW_RESIZER_H_ |
OLD | NEW |