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

Side by Side Diff: ash/wm/dock/docked_window_layout_manager.h

Issue 98373006: Animating docked background in sync with shelf (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Animating docked background in sync with shelf (rebase) Created 7 years 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/system/tray/tray_background_view.cc ('k') | ash/wm/dock/docked_window_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 (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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_DOCK_DOCKED_WINDOW_LAYOUT_MANAGER_H_ 5 #ifndef ASH_WM_DOCK_DOCKED_WINDOW_LAYOUT_MANAGER_H_
6 #define ASH_WM_DOCK_DOCKED_WINDOW_LAYOUT_MANAGER_H_ 6 #define ASH_WM_DOCK_DOCKED_WINDOW_LAYOUT_MANAGER_H_
7 7
8 #include "ash/ash_export.h" 8 #include "ash/ash_export.h"
9 #include "ash/shelf/shelf_layout_manager_observer.h" 9 #include "ash/shelf/shelf_layout_manager_observer.h"
10 #include "ash/shell_observer.h" 10 #include "ash/shell_observer.h"
(...skipping 23 matching lines...) Expand all
34 } 34 }
35 35
36 namespace views { 36 namespace views {
37 class Widget; 37 class Widget;
38 } 38 }
39 39
40 namespace ash { 40 namespace ash {
41 class Launcher; 41 class Launcher;
42 42
43 namespace internal { 43 namespace internal {
44 class DockedBackgroundWidget;
44 class DockedWindowLayoutManagerObserver; 45 class DockedWindowLayoutManagerObserver;
45 class DockedWindowResizerTest; 46 class DockedWindowResizerTest;
46 class ShelfLayoutManager; 47 class ShelfLayoutManager;
47 class WorkspaceController; 48 class WorkspaceController;
48 49
49 struct WindowWithHeight { 50 struct WindowWithHeight {
50 explicit WindowWithHeight(aura::Window* window) : 51 explicit WindowWithHeight(aura::Window* window) :
51 window_(window), 52 window_(window),
52 height_(window->bounds().height()) { } 53 height_(window->bounds().height()) { }
53 aura::Window* window() { return window_; } 54 aura::Window* window() { return window_; }
(...skipping 13 matching lines...) Expand all
67 // new DockedWindowLayoutManager(dock_container)); 68 // new DockedWindowLayoutManager(dock_container));
68 // 69 //
69 // TODO(varkha): extend BaseLayoutManager instead of LayoutManager to inherit 70 // TODO(varkha): extend BaseLayoutManager instead of LayoutManager to inherit
70 // common functionality. 71 // common functionality.
71 class ASH_EXPORT DockedWindowLayoutManager 72 class ASH_EXPORT DockedWindowLayoutManager
72 : public aura::LayoutManager, 73 : public aura::LayoutManager,
73 public ash::ShellObserver, 74 public ash::ShellObserver,
74 public aura::WindowObserver, 75 public aura::WindowObserver,
75 public aura::client::ActivationChangeObserver, 76 public aura::client::ActivationChangeObserver,
76 public keyboard::KeyboardControllerObserver, 77 public keyboard::KeyboardControllerObserver,
78 public ShelfLayoutManagerObserver,
77 public wm::WindowStateObserver { 79 public wm::WindowStateObserver {
78 public: 80 public:
79 // Maximum width of the docked windows area. 81 // Maximum width of the docked windows area.
80 static const int kMaxDockWidth; 82 static const int kMaxDockWidth;
81 83
82 // Minimum width of the docked windows area. 84 // Minimum width of the docked windows area.
83 static const int kMinDockWidth; 85 static const int kMinDockWidth;
84 86
85 DockedWindowLayoutManager(aura::Window* dock_container, 87 DockedWindowLayoutManager(aura::Window* dock_container,
86 WorkspaceController* workspace_controller); 88 WorkspaceController* workspace_controller);
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 bool visibile) OVERRIDE; 143 bool visibile) OVERRIDE;
142 virtual void SetChildBounds(aura::Window* child, 144 virtual void SetChildBounds(aura::Window* child,
143 const gfx::Rect& requested_bounds) OVERRIDE; 145 const gfx::Rect& requested_bounds) OVERRIDE;
144 146
145 // ash::ShellObserver: 147 // ash::ShellObserver:
146 virtual void OnDisplayWorkAreaInsetsChanged() OVERRIDE; 148 virtual void OnDisplayWorkAreaInsetsChanged() OVERRIDE;
147 virtual void OnFullscreenStateChanged(bool is_fullscreen, 149 virtual void OnFullscreenStateChanged(bool is_fullscreen,
148 aura::Window* root_window) OVERRIDE; 150 aura::Window* root_window) OVERRIDE;
149 virtual void OnShelfAlignmentChanged(aura::Window* root_window) OVERRIDE; 151 virtual void OnShelfAlignmentChanged(aura::Window* root_window) OVERRIDE;
150 152
153 // ShelfLayoutManagerObserver:
154 virtual void OnBackgroundUpdated(
155 ShelfBackgroundType background_type,
156 BackgroundAnimatorChangeType change_type) OVERRIDE;
157
151 // wm::WindowStateObserver: 158 // wm::WindowStateObserver:
152 virtual void OnWindowShowTypeChanged(wm::WindowState* window_state, 159 virtual void OnWindowShowTypeChanged(wm::WindowState* window_state,
153 wm::WindowShowType old_type) OVERRIDE; 160 wm::WindowShowType old_type) OVERRIDE;
154 161
155 // aura::WindowObserver: 162 // aura::WindowObserver:
156 virtual void OnWindowBoundsChanged(aura::Window* window, 163 virtual void OnWindowBoundsChanged(aura::Window* window,
157 const gfx::Rect& old_bounds, 164 const gfx::Rect& old_bounds,
158 const gfx::Rect& new_bounds) OVERRIDE; 165 const gfx::Rect& new_bounds) OVERRIDE;
159 virtual void OnWindowVisibilityChanging(aura::Window* window, 166 virtual void OnWindowVisibilityChanging(aura::Window* window,
160 bool visible) OVERRIDE; 167 bool visible) OVERRIDE;
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 // True if the window being dragged is currently docked. 255 // True if the window being dragged is currently docked.
249 bool is_dragged_window_docked_; 256 bool is_dragged_window_docked_;
250 257
251 // Previously docked windows use a more relaxed dragging sorting algorithm 258 // Previously docked windows use a more relaxed dragging sorting algorithm
252 // that uses assumption that a window starts being dragged out of position 259 // that uses assumption that a window starts being dragged out of position
253 // that was previously established in Relayout. This allows easier reordering. 260 // that was previously established in Relayout. This allows easier reordering.
254 bool is_dragged_from_dock_; 261 bool is_dragged_from_dock_;
255 262
256 // The launcher to respond to launcher alignment changes. 263 // The launcher to respond to launcher alignment changes.
257 Launcher* launcher_; 264 Launcher* launcher_;
265
258 // Workspace controller that can be checked for fullscreen mode. 266 // Workspace controller that can be checked for fullscreen mode.
259 WorkspaceController* workspace_controller_; 267 WorkspaceController* workspace_controller_;
260 // Tracks if any window in the same root window is in fullscreen mode. 268 // Tracks if any window in the same root window is in fullscreen mode.
261 bool in_fullscreen_; 269 bool in_fullscreen_;
262 // Current width of the dock. 270 // Current width of the dock.
263 int docked_width_; 271 int docked_width_;
264 272
265 // Last bounds that were sent to observers. 273 // Last bounds that were sent to observers.
266 gfx::Rect docked_bounds_; 274 gfx::Rect docked_bounds_;
267 275
268 // Target bounds of a docked window being dragged. 276 // Target bounds of a docked window being dragged.
269 gfx::Rect dragged_bounds_; 277 gfx::Rect dragged_bounds_;
270 278
271 // Side of the screen that the dock is positioned at. 279 // Side of the screen that the dock is positioned at.
272 DockedAlignment alignment_; 280 DockedAlignment alignment_;
273 281
274 // The last active window. Used to maintain stacking order even if no windows 282 // The last active window. Used to maintain stacking order even if no windows
275 // are currently focused. 283 // are currently focused.
276 aura::Window* last_active_window_; 284 aura::Window* last_active_window_;
277 285
278 // Timestamp of the last user-initiated action that changed docked state. 286 // Timestamp of the last user-initiated action that changed docked state.
279 // Used in UMA metrics. 287 // Used in UMA metrics.
280 base::Time last_action_time_; 288 base::Time last_action_time_;
281 289
282 // Widget used to paint a background for the docked area. 290 // Widget used to paint a background for the docked area.
283 scoped_ptr<views::Widget> background_widget_; 291 scoped_ptr<DockedBackgroundWidget> background_widget_;
284 292
285 // Observers of dock bounds changes. 293 // Observers of dock bounds changes.
286 ObserverList<DockedWindowLayoutManagerObserver> observer_list_; 294 ObserverList<DockedWindowLayoutManagerObserver> observer_list_;
287 295
288 DISALLOW_COPY_AND_ASSIGN(DockedWindowLayoutManager); 296 DISALLOW_COPY_AND_ASSIGN(DockedWindowLayoutManager);
289 }; 297 };
290 298
291 } // namespace internal 299 } // namespace internal
292 } // namespace ash 300 } // namespace ash
293 301
294 #endif // ASH_WM_DOCK_DOCKED_WINDOW_LAYOUT_MANAGER_H_ 302 #endif // ASH_WM_DOCK_DOCKED_WINDOW_LAYOUT_MANAGER_H_
OLDNEW
« no previous file with comments | « ash/system/tray/tray_background_view.cc ('k') | ash/wm/dock/docked_window_layout_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698