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

Side by Side Diff: ash/common/shelf/shelf_layout_manager.h

Issue 2700523004: Remove docked windows entirely in M59. (Closed)
Patch Set: Rebase Created 3 years, 9 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/ash_switches.cc ('k') | ash/common/shelf/shelf_layout_manager.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 2012 The Chromium Authors. All rights reserved. 1 // Copyright 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_COMMON_SHELF_SHELF_LAYOUT_MANAGER_H_ 5 #ifndef ASH_COMMON_SHELF_SHELF_LAYOUT_MANAGER_H_
6 #define ASH_COMMON_SHELF_SHELF_LAYOUT_MANAGER_H_ 6 #define ASH_COMMON_SHELF_SHELF_LAYOUT_MANAGER_H_
7 7
8 #include <memory> 8 #include <memory>
9 9
10 #include "ash/ash_export.h" 10 #include "ash/ash_export.h"
11 #include "ash/common/session/session_state_observer.h" 11 #include "ash/common/session/session_state_observer.h"
12 #include "ash/common/shelf/wm_shelf.h" 12 #include "ash/common/shelf/wm_shelf.h"
13 #include "ash/common/shell_observer.h" 13 #include "ash/common/shell_observer.h"
14 #include "ash/common/wm/dock/docked_window_layout_manager_observer.h"
15 #include "ash/common/wm/lock_state_observer.h" 14 #include "ash/common/wm/lock_state_observer.h"
16 #include "ash/common/wm/wm_snap_to_pixel_layout_manager.h" 15 #include "ash/common/wm/wm_snap_to_pixel_layout_manager.h"
17 #include "ash/common/wm/workspace/workspace_types.h" 16 #include "ash/common/wm/workspace/workspace_types.h"
18 #include "ash/public/cpp/shelf_types.h" 17 #include "ash/public/cpp/shelf_types.h"
19 #include "base/macros.h" 18 #include "base/macros.h"
20 #include "base/observer_list.h" 19 #include "base/observer_list.h"
21 #include "base/scoped_observer.h" 20 #include "base/scoped_observer.h"
22 #include "base/timer/timer.h" 21 #include "base/timer/timer.h"
23 #include "ui/gfx/geometry/insets.h" 22 #include "ui/gfx/geometry/insets.h"
24 #include "ui/gfx/geometry/rect.h" 23 #include "ui/gfx/geometry/rect.h"
(...skipping 21 matching lines...) Expand all
46 // ShelfLayoutManager is the layout manager responsible for the shelf and 45 // ShelfLayoutManager is the layout manager responsible for the shelf and
47 // status widgets. The shelf is given the total available width and told the 46 // status widgets. The shelf is given the total available width and told the
48 // width of the status area. This allows the shelf to draw the background and 47 // width of the status area. This allows the shelf to draw the background and
49 // layout to the status area. 48 // layout to the status area.
50 // To respond to bounds changes in the status area StatusAreaLayoutManager works 49 // To respond to bounds changes in the status area StatusAreaLayoutManager works
51 // closely with ShelfLayoutManager. 50 // closely with ShelfLayoutManager.
52 // On mus, widget bounds management is handled by the window manager. 51 // On mus, widget bounds management is handled by the window manager.
53 class ASH_EXPORT ShelfLayoutManager 52 class ASH_EXPORT ShelfLayoutManager
54 : public ShellObserver, 53 : public ShellObserver,
55 public aura::client::ActivationChangeObserver, 54 public aura::client::ActivationChangeObserver,
56 public DockedWindowLayoutManagerObserver,
57 public keyboard::KeyboardControllerObserver, 55 public keyboard::KeyboardControllerObserver,
58 public LockStateObserver, 56 public LockStateObserver,
59 public wm::WmSnapToPixelLayoutManager, 57 public wm::WmSnapToPixelLayoutManager,
60 public SessionStateObserver { 58 public SessionStateObserver {
61 public: 59 public:
62 ShelfLayoutManager(ShelfWidget* shelf_widget, WmShelf* wm_shelf); 60 ShelfLayoutManager(ShelfWidget* shelf_widget, WmShelf* wm_shelf);
63 ~ShelfLayoutManager() override; 61 ~ShelfLayoutManager() override;
64 62
65 bool updating_bounds() const { return updating_bounds_; } 63 bool updating_bounds() const { return updating_bounds_; }
66 64
67 // Clears internal data for shutdown process. 65 // Clears internal data for shutdown process.
68 void PrepareForShutdown(); 66 void PrepareForShutdown();
69 67
70 // Returns whether the shelf and its contents (shelf, status) are visible 68 // Returns whether the shelf and its contents (shelf, status) are visible
71 // on the screen. 69 // on the screen.
72 bool IsVisible() const; 70 bool IsVisible() const;
73 71
74 // Returns the ideal bounds of the shelf assuming it is visible. 72 // Returns the ideal bounds of the shelf assuming it is visible.
75 gfx::Rect GetIdealBounds(); 73 gfx::Rect GetIdealBounds();
76 74
77 // Returns the preferred size of the shelf for the target visibility state. 75 // Returns the preferred size of the shelf for the target visibility state.
78 gfx::Size GetPreferredSize(); 76 gfx::Size GetPreferredSize();
79 77
80 // Returns the docked area bounds.
81 const gfx::Rect& dock_bounds() const { return dock_bounds_; }
82
83 // Returns the bounds within the root window not occupied by the shelf nor the 78 // Returns the bounds within the root window not occupied by the shelf nor the
84 // virtual keyboard. 79 // virtual keyboard.
85 const gfx::Rect& user_work_area_bounds() const { 80 const gfx::Rect& user_work_area_bounds() const {
86 return user_work_area_bounds_; 81 return user_work_area_bounds_;
87 } 82 }
88 83
89 // Stops any animations and sets the bounds of the shelf and status widgets. 84 // Stops any animations and sets the bounds of the shelf and status widgets.
90 void LayoutShelfAndUpdateBounds(bool change_work_area); 85 void LayoutShelfAndUpdateBounds(bool change_work_area);
91 86
92 // Stops any animations, sets the bounds of the shelf and status widgets, and 87 // Stops any animations, sets the bounds of the shelf and status widgets, and
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
268 // Returns the AutoHideState. This value is determined from the shelf and 263 // Returns the AutoHideState. This value is determined from the shelf and
269 // tray. 264 // tray.
270 ShelfAutoHideState CalculateAutoHideState( 265 ShelfAutoHideState CalculateAutoHideState(
271 ShelfVisibilityState visibility_state) const; 266 ShelfVisibilityState visibility_state) const;
272 267
273 // Returns true if |window| is a descendant of the shelf. 268 // Returns true if |window| is a descendant of the shelf.
274 bool IsShelfWindow(WmWindow* window); 269 bool IsShelfWindow(WmWindow* window);
275 270
276 int GetWorkAreaInsets(const State& state, int size) const; 271 int GetWorkAreaInsets(const State& state, int size) const;
277 272
278 // Overridden from DockedWindowLayoutManagerObserver:
279 void OnDockBoundsChanging(
280 const gfx::Rect& dock_bounds,
281 DockedWindowLayoutManagerObserver::Reason reason) override;
282
283 // Called when the LoginUI changes from visible to invisible. 273 // Called when the LoginUI changes from visible to invisible.
284 void UpdateShelfVisibilityAfterLoginUIChange(); 274 void UpdateShelfVisibilityAfterLoginUIChange();
285 275
286 // Compute |target_bounds| opacity based on gesture and shelf visibility. 276 // Compute |target_bounds| opacity based on gesture and shelf visibility.
287 float ComputeTargetOpacity(const State& state); 277 float ComputeTargetOpacity(const State& state);
288 278
289 // Returns true if there is a fullscreen window open that causes the shelf 279 // Returns true if there is a fullscreen window open that causes the shelf
290 // to be hidden. 280 // to be hidden.
291 bool IsShelfHiddenForFullscreen() const; 281 bool IsShelfHiddenForFullscreen() const;
292 282
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
340 330
341 // Manage the auto-hide state during the gesture. 331 // Manage the auto-hide state during the gesture.
342 ShelfAutoHideState gesture_drag_auto_hide_state_; 332 ShelfAutoHideState gesture_drag_auto_hide_state_;
343 333
344 // Used to delay updating shelf background. 334 // Used to delay updating shelf background.
345 UpdateShelfObserver* update_shelf_observer_; 335 UpdateShelfObserver* update_shelf_observer_;
346 336
347 // The bounds of the keyboard. 337 // The bounds of the keyboard.
348 gfx::Rect keyboard_bounds_; 338 gfx::Rect keyboard_bounds_;
349 339
350 // The bounds of the dock.
351 gfx::Rect dock_bounds_;
352
353 // The bounds within the root window not occupied by the shelf nor the virtual 340 // The bounds within the root window not occupied by the shelf nor the virtual
354 // keyboard. 341 // keyboard.
355 gfx::Rect user_work_area_bounds_; 342 gfx::Rect user_work_area_bounds_;
356 343
357 // The height of the ChromeVox panel at the top of the screen, which 344 // The height of the ChromeVox panel at the top of the screen, which
358 // needs to be removed from the available work area. 345 // needs to be removed from the available work area.
359 int chromevox_panel_height_; 346 int chromevox_panel_height_;
360 347
361 // The show hide animation duration override or 0 for default. 348 // The show hide animation duration override or 0 for default.
362 int duration_override_in_ms_; 349 int duration_override_in_ms_;
363 350
364 // The current shelf background. Should not be assigned to directly, use 351 // The current shelf background. Should not be assigned to directly, use
365 // MaybeUpdateShelfBackground() instead. 352 // MaybeUpdateShelfBackground() instead.
366 ShelfBackgroundType shelf_background_type_; 353 ShelfBackgroundType shelf_background_type_;
367 354
368 ScopedObserver<keyboard::KeyboardController, 355 ScopedObserver<keyboard::KeyboardController,
369 keyboard::KeyboardControllerObserver> 356 keyboard::KeyboardControllerObserver>
370 keyboard_observer_; 357 keyboard_observer_;
371 358
372 DISALLOW_COPY_AND_ASSIGN(ShelfLayoutManager); 359 DISALLOW_COPY_AND_ASSIGN(ShelfLayoutManager);
373 }; 360 };
374 361
375 } // namespace ash 362 } // namespace ash
376 363
377 #endif // ASH_COMMON_SHELF_SHELF_LAYOUT_MANAGER_H_ 364 #endif // ASH_COMMON_SHELF_SHELF_LAYOUT_MANAGER_H_
OLDNEW
« no previous file with comments | « ash/common/ash_switches.cc ('k') | ash/common/shelf/shelf_layout_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698