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

Side by Side Diff: ash/common/wm_window.h

Issue 2344783002: Wires up WmWindowMus::SetBoundsInScreen() (Closed)
Patch Set: feedback2 Created 4 years, 3 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
« no previous file with comments | « ash/common/wm_root_window_controller.cc ('k') | ash/display/screen_position_controller.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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_COMMON_WM_WINDOW_H_ 5 #ifndef ASH_COMMON_WM_WINDOW_H_
6 #define ASH_COMMON_WM_WINDOW_H_ 6 #define ASH_COMMON_WM_WINDOW_H_
7 7
8 #include <memory> 8 #include <memory>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 virtual WmWindow* GetToplevelWindow() = 0; 148 virtual WmWindow* GetToplevelWindow() = 0;
149 // The implementation of this matches 149 // The implementation of this matches
150 // aura::client::ActivationClient::GetToplevelWindow(). 150 // aura::client::ActivationClient::GetToplevelWindow().
151 virtual WmWindow* GetToplevelWindowForFocus() = 0; 151 virtual WmWindow* GetToplevelWindowForFocus() = 0;
152 152
153 // See aura::client::ParentWindowWithContext() for details of what this does. 153 // See aura::client::ParentWindowWithContext() for details of what this does.
154 virtual void SetParentUsingContext(WmWindow* context, 154 virtual void SetParentUsingContext(WmWindow* context,
155 const gfx::Rect& screen_bounds) = 0; 155 const gfx::Rect& screen_bounds) = 0;
156 virtual void AddChild(WmWindow* window) = 0; 156 virtual void AddChild(WmWindow* window) = 0;
157 157
158 virtual WmWindow* GetParent() = 0; 158 WmWindow* GetParent() {
159 return const_cast<WmWindow*>(
160 const_cast<const WmWindow*>(this)->GetParent());
161 }
162 virtual const WmWindow* GetParent() const = 0;
159 163
160 WmWindow* GetTransientParent() { 164 WmWindow* GetTransientParent() {
161 return const_cast<WmWindow*>( 165 return const_cast<WmWindow*>(
162 const_cast<const WmWindow*>(this)->GetTransientParent()); 166 const_cast<const WmWindow*>(this)->GetTransientParent());
163 } 167 }
164 virtual const WmWindow* GetTransientParent() const = 0; 168 virtual const WmWindow* GetTransientParent() const = 0;
165 virtual Windows GetTransientChildren() = 0; 169 virtual Windows GetTransientChildren() = 0;
166 170
167 virtual void SetLayoutManager( 171 virtual void SetLayoutManager(
168 std::unique_ptr<WmLayoutManager> layout_manager) = 0; 172 std::unique_ptr<WmLayoutManager> layout_manager) = 0;
(...skipping 24 matching lines...) Expand all
193 virtual void SetBoundsDirectCrossFade(const gfx::Rect& bounds) = 0; 197 virtual void SetBoundsDirectCrossFade(const gfx::Rect& bounds) = 0;
194 198
195 // Sets the bounds in two distinct ways. The exact behavior is dictated by 199 // Sets the bounds in two distinct ways. The exact behavior is dictated by
196 // the value of BoundsInScreenBehavior set on the parent: 200 // the value of BoundsInScreenBehavior set on the parent:
197 // 201 //
198 // USE_LOCAL_COORDINATES: the bounds are applied as is to the window. In other 202 // USE_LOCAL_COORDINATES: the bounds are applied as is to the window. In other
199 // words this behaves the same as if SetBounds(bounds_in_screen) was used. 203 // words this behaves the same as if SetBounds(bounds_in_screen) was used.
200 // This is the default. 204 // This is the default.
201 // USE_SCREEN_COORDINATES: the bounds are actual screen bounds and converted 205 // USE_SCREEN_COORDINATES: the bounds are actual screen bounds and converted
202 // from the display. In this case the window may move to a different 206 // from the display. In this case the window may move to a different
203 // display if allowed (see SetDescendantsStayInSameRootWindow()). 207 // display if allowed (see SetLockedToRoot()).
204 virtual void SetBoundsInScreen(const gfx::Rect& bounds_in_screen, 208 virtual void SetBoundsInScreen(const gfx::Rect& bounds_in_screen,
205 const display::Display& dst_display) = 0; 209 const display::Display& dst_display) = 0;
206 virtual gfx::Rect GetBoundsInScreen() const = 0; 210 virtual gfx::Rect GetBoundsInScreen() const = 0;
207 virtual const gfx::Rect& GetBounds() const = 0; 211 virtual const gfx::Rect& GetBounds() const = 0;
208 virtual gfx::Rect GetTargetBounds() = 0; 212 virtual gfx::Rect GetTargetBounds() = 0;
209 213
210 virtual void ClearRestoreBounds() = 0; 214 virtual void ClearRestoreBounds() = 0;
211 virtual void SetRestoreBoundsInScreen(const gfx::Rect& bounds) = 0; 215 virtual void SetRestoreBoundsInScreen(const gfx::Rect& bounds) = 0;
212 virtual gfx::Rect GetRestoreBoundsInScreen() const = 0; 216 virtual gfx::Rect GetRestoreBoundsInScreen() const = 0;
213 217
214 virtual bool Contains(const WmWindow* other) const = 0; 218 virtual bool Contains(const WmWindow* other) const = 0;
215 219
216 virtual void SetShowState(ui::WindowShowState show_state) = 0; 220 virtual void SetShowState(ui::WindowShowState show_state) = 0;
217 virtual ui::WindowShowState GetShowState() const = 0; 221 virtual ui::WindowShowState GetShowState() const = 0;
218 222
219 virtual void SetRestoreShowState(ui::WindowShowState show_state) = 0; 223 virtual void SetRestoreShowState(ui::WindowShowState show_state) = 0;
220 224
221 // Sets the restore bounds and show state overrides. These values take 225 // Sets the restore bounds and show state overrides. These values take
222 // precedence over the restore bounds and restore show state (if set). 226 // precedence over the restore bounds and restore show state (if set).
223 // If |bounds_override| is empty the values are cleared. 227 // If |bounds_override| is empty the values are cleared.
224 virtual void SetRestoreOverrides( 228 virtual void SetRestoreOverrides(
225 const gfx::Rect& bounds_override, 229 const gfx::Rect& bounds_override,
226 ui::WindowShowState window_state_override) = 0; 230 ui::WindowShowState window_state_override) = 0;
227 231
228 // If |value| is true the window can not be moved to another root, regardless 232 // If |value| is true the window can not be moved to another root, regardless
229 // of the bounds set on it. 233 // of the bounds set on it.
230 virtual void SetLockedToRoot(bool value) = 0; 234 virtual void SetLockedToRoot(bool value) = 0;
235 virtual bool IsLockedToRoot() const = 0;
231 236
232 virtual void SetCapture() = 0; 237 virtual void SetCapture() = 0;
233 virtual bool HasCapture() = 0; 238 virtual bool HasCapture() = 0;
234 virtual void ReleaseCapture() = 0; 239 virtual void ReleaseCapture() = 0;
235 240
236 virtual bool HasRestoreBounds() const = 0; 241 virtual bool HasRestoreBounds() const = 0;
237 242
238 virtual void SetAlwaysOnTop(bool value) = 0; 243 virtual void SetAlwaysOnTop(bool value) = 0;
239 virtual bool IsAlwaysOnTop() const = 0; 244 virtual bool IsAlwaysOnTop() const = 0;
240 245
241 virtual void Hide() = 0; 246 virtual void Hide() = 0;
242 virtual void Show() = 0; 247 virtual void Show() = 0;
243 248
244 // Returns the widget associated with this window, or null if not associated 249 // Returns the widget associated with this window, or null if not associated
245 // with a widget. Only ash system UI widgets are returned, not widgets created 250 // with a widget. Only ash system UI widgets are returned, not widgets created
246 // by the mus window manager code to show a non-client frame. 251 // by the mus window manager code to show a non-client frame.
247 virtual views::Widget* GetInternalWidget() = 0; 252 virtual views::Widget* GetInternalWidget() = 0;
248 253
249 // Requests the window to close and destroy itself. This is intended to 254 // Requests the window to close and destroy itself. This is intended to
250 // forward to an associated widget. 255 // forward to an associated widget.
251 virtual void CloseWidget() = 0; 256 virtual void CloseWidget() = 0;
252 257
258 virtual void SetFocused() = 0;
253 virtual bool IsFocused() const = 0; 259 virtual bool IsFocused() const = 0;
254 260
255 virtual bool IsActive() const = 0; 261 virtual bool IsActive() const = 0;
256 virtual void Activate() = 0; 262 virtual void Activate() = 0;
257 virtual void Deactivate() = 0; 263 virtual void Deactivate() = 0;
258 264
259 virtual void SetFullscreen() = 0; 265 virtual void SetFullscreen() = 0;
260 266
261 virtual void Maximize() = 0; 267 virtual void Maximize() = 0;
262 virtual void Minimize() = 0; 268 virtual void Minimize() = 0;
(...skipping 29 matching lines...) Expand all
292 virtual void SetSnapsChildrenToPhysicalPixelBoundary() = 0; 298 virtual void SetSnapsChildrenToPhysicalPixelBoundary() = 0;
293 299
294 // If an ancestor has been set to snap children to pixel boundaries, then 300 // If an ancestor has been set to snap children to pixel boundaries, then
295 // snaps the layer associated with this window to the layer associated with 301 // snaps the layer associated with this window to the layer associated with
296 // the ancestor. 302 // the ancestor.
297 virtual void SnapToPixelBoundaryIfNecessary() = 0; 303 virtual void SnapToPixelBoundaryIfNecessary() = 0;
298 304
299 // Makes the hit region for children slightly larger for easier resizing. 305 // Makes the hit region for children slightly larger for easier resizing.
300 virtual void SetChildrenUseExtendedHitRegion() = 0; 306 virtual void SetChildrenUseExtendedHitRegion() = 0;
301 307
302 // Sets whether descendants of this should not be moved to a different
303 // container. This is used by SetBoundsInScreen().
304 virtual void SetDescendantsStayInSameRootWindow(bool value) = 0;
305
306 // Returns a View that renders the contents of this window's layers. 308 // Returns a View that renders the contents of this window's layers.
307 virtual std::unique_ptr<views::View> CreateViewWithRecreatedLayers() = 0; 309 virtual std::unique_ptr<views::View> CreateViewWithRecreatedLayers() = 0;
308 310
309 virtual void AddObserver(WmWindowObserver* observer) = 0; 311 virtual void AddObserver(WmWindowObserver* observer) = 0;
310 virtual void RemoveObserver(WmWindowObserver* observer) = 0; 312 virtual void RemoveObserver(WmWindowObserver* observer) = 0;
311 virtual bool HasObserver(const WmWindowObserver* observer) const = 0; 313 virtual bool HasObserver(const WmWindowObserver* observer) const = 0;
312 314
313 virtual void AddTransientWindowObserver( 315 virtual void AddTransientWindowObserver(
314 WmTransientWindowObserver* observer) = 0; 316 WmTransientWindowObserver* observer) = 0;
315 virtual void RemoveTransientWindowObserver( 317 virtual void RemoveTransientWindowObserver(
316 WmTransientWindowObserver* observer) = 0; 318 WmTransientWindowObserver* observer) = 0;
317 319
318 // Adds or removes a handler to receive events targeted at this window, before 320 // Adds or removes a handler to receive events targeted at this window, before
319 // this window handles the events itself; the handler does not recieve events 321 // this window handles the events itself; the handler does not recieve events
320 // from embedded windows. This only supports windows with internal widgets; 322 // from embedded windows. This only supports windows with internal widgets;
321 // see GetInternalWidget(). Ownership of the handler is not transferred. 323 // see GetInternalWidget(). Ownership of the handler is not transferred.
322 // 324 //
323 // Also note that the target of these events is always an aura::Window. 325 // Also note that the target of these events is always an aura::Window.
324 virtual void AddLimitedPreTargetHandler(ui::EventHandler* handler) = 0; 326 virtual void AddLimitedPreTargetHandler(ui::EventHandler* handler) = 0;
325 virtual void RemoveLimitedPreTargetHandler(ui::EventHandler* handler) = 0; 327 virtual void RemoveLimitedPreTargetHandler(ui::EventHandler* handler) = 0;
326 328
327 protected: 329 protected:
328 virtual ~WmWindow() {} 330 virtual ~WmWindow() {}
329 }; 331 };
330 332
331 } // namespace ash 333 } // namespace ash
332 334
333 #endif // ASH_COMMON_WM_WINDOW_H_ 335 #endif // ASH_COMMON_WM_WINDOW_H_
OLDNEW
« no previous file with comments | « ash/common/wm_root_window_controller.cc ('k') | ash/display/screen_position_controller.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698