Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(96)

Side by Side Diff: ash/wm/workspace/workspace_window_resizer.h

Issue 10823199: While dragging a window, show a semi-transparent aura window instead of the standard gray phantom wi (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix win_aura Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 int window_component, 45 int window_component,
46 const std::vector<aura::Window*>& attached_windows); 46 const std::vector<aura::Window*>& attached_windows);
47 47
48 // Returns true if the drag will result in changing the window in anyway. 48 // Returns true if the drag will result in changing the window in anyway.
49 bool is_resizable() const { return details_.is_resizable; } 49 bool is_resizable() const { return details_.is_resizable; }
50 50
51 const gfx::Point& initial_location_in_parent() const { 51 const gfx::Point& initial_location_in_parent() const {
52 return details_.initial_location_in_parent; 52 return details_.initial_location_in_parent;
53 } 53 }
54 54
55 PhantomWindowController* snap_phantom_window_controller_for_testing() const {
56 return snap_phantom_window_controller_.get();
57 }
58
59 PhantomWindowController* drag_phantom_window_controller_for_testing() const {
60 return drag_phantom_window_controller_.get();
61 }
62
55 // Overridden from WindowResizer: 63 // Overridden from WindowResizer:
56 virtual void Drag(const gfx::Point& location, int event_flags) OVERRIDE; 64 virtual void Drag(const gfx::Point& location, int event_flags) OVERRIDE;
57 virtual void CompleteDrag(int event_flags) OVERRIDE; 65 virtual void CompleteDrag(int event_flags) OVERRIDE;
58 virtual void RevertDrag() OVERRIDE; 66 virtual void RevertDrag() OVERRIDE;
59 67
60 private: 68 private:
61 WorkspaceWindowResizer(const Details& details, 69 WorkspaceWindowResizer(const Details& details,
62 const std::vector<aura::Window*>& attached_windows); 70 const std::vector<aura::Window*>& attached_windows);
63 71
64 private: 72 private:
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 // left/right multi window resize and top/bottom resize. 116 // left/right multi window resize and top/bottom resize.
109 int PrimaryAxisSize(const gfx::Size& size) const; 117 int PrimaryAxisSize(const gfx::Size& size) const;
110 int PrimaryAxisCoordinate(int x, int y) const; 118 int PrimaryAxisCoordinate(int x, int y) const;
111 119
112 // Updates the bounds of the phantom window for window snapping. 120 // Updates the bounds of the phantom window for window snapping.
113 void UpdateSnapPhantomWindow(const gfx::Point& location, 121 void UpdateSnapPhantomWindow(const gfx::Point& location,
114 const gfx::Rect& bounds, 122 const gfx::Rect& bounds,
115 int grid_size); 123 int grid_size);
116 124
117 // Updates the bounds of the phantom window for window dragging. 125 // Updates the bounds of the phantom window for window dragging.
118 void UpdateDragPhantomWindow(const gfx::Rect& bounds); 126 void UpdateDragPhantomWindow(const gfx::Rect& bounds, bool in_original_root);
119 127
120 // Restacks the windows z-order position so that one of the windows is at the 128 // Restacks the windows z-order position so that one of the windows is at the
121 // top of the z-order, and the rest directly underneath it. 129 // top of the z-order, and the rest directly underneath it.
122 void RestackWindows(); 130 void RestackWindows();
123 131
124 // Returns the SnapType for the specified point. SNAP_NONE is used if no 132 // Returns the SnapType for the specified point. SNAP_NONE is used if no
125 // snapping should be used. 133 // snapping should be used.
126 SnapType GetSnapType(const gfx::Point& location) const; 134 SnapType GetSnapType(const gfx::Point& location) const;
127 135
128 // Returns true if we should allow the mouse pointer to warp. 136 // Returns true if we should allow the mouse pointer to warp.
(...skipping 29 matching lines...) Expand all
158 // Sum of sizes in |min_size_|. 166 // Sum of sizes in |min_size_|.
159 int total_min_; 167 int total_min_;
160 168
161 // Sum of the sizes in |initial_size_|. 169 // Sum of the sizes in |initial_size_|.
162 int total_initial_size_; 170 int total_initial_size_;
163 171
164 // Gives a previews of where the the window will end up. Only used if there 172 // Gives a previews of where the the window will end up. Only used if there
165 // is a grid and the caption is being dragged. 173 // is a grid and the caption is being dragged.
166 scoped_ptr<PhantomWindowController> snap_phantom_window_controller_; 174 scoped_ptr<PhantomWindowController> snap_phantom_window_controller_;
167 175
168 // For now, we show a phantom window on the other root window during dragging. 176 // Shows a semi-transparent image of the window being dragged.
169 // TODO(yusukes): Show a semi-transparent image (screen shot) of the window
170 // instead.
171 scoped_ptr<PhantomWindowController> drag_phantom_window_controller_; 177 scoped_ptr<PhantomWindowController> drag_phantom_window_controller_;
172 178
173 // Used to determine the target position of a snap. 179 // Used to determine the target position of a snap.
174 scoped_ptr<SnapSizer> snap_sizer_; 180 scoped_ptr<SnapSizer> snap_sizer_;
175 181
176 // Last SnapType. 182 // Last SnapType.
177 SnapType snap_type_; 183 SnapType snap_type_;
178 184
179 // Number of mouse moves since the last bounds change. Only used for phantom 185 // Number of mouse moves since the last bounds change. Only used for phantom
180 // placement to track when the mouse is moved while pushed against the edge of 186 // placement to track when the mouse is moved while pushed against the edge of
181 // the screen. 187 // the screen.
182 int num_mouse_moves_since_bounds_change_; 188 int num_mouse_moves_since_bounds_change_;
183 189
184 // The mouse location passed to Drag(). 190 // The mouse location passed to Drag().
185 gfx::Point last_mouse_location_; 191 gfx::Point last_mouse_location_;
186 192
187 DISALLOW_COPY_AND_ASSIGN(WorkspaceWindowResizer); 193 DISALLOW_COPY_AND_ASSIGN(WorkspaceWindowResizer);
188 }; 194 };
189 195
190 } // namespace internal 196 } // namespace internal
191 } // namespace ash 197 } // namespace ash
192 198
193 #endif // ASH_WM_WORKSPACE_WINDOW_RESIZER_H_ 199 #endif // ASH_WM_WORKSPACE_WINDOW_RESIZER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698