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_PANELS_PANEL_LAYOUT_MANAGER_H_ | 5 #ifndef ASH_WM_PANELS_PANEL_LAYOUT_MANAGER_H_ |
6 #define ASH_WM_PANELS_PANEL_LAYOUT_MANAGER_H_ | 6 #define ASH_WM_PANELS_PANEL_LAYOUT_MANAGER_H_ |
7 | 7 |
8 #include <list> | 8 #include <list> |
9 | 9 |
10 #include "ash/ash_export.h" | 10 #include "ash/ash_export.h" |
(...skipping 19 matching lines...) Expand all Loading... |
30 | 30 |
31 namespace gfx { | 31 namespace gfx { |
32 class Rect; | 32 class Rect; |
33 } | 33 } |
34 | 34 |
35 namespace views { | 35 namespace views { |
36 class Widget; | 36 class Widget; |
37 } | 37 } |
38 | 38 |
39 namespace ash { | 39 namespace ash { |
40 class Launcher; | 40 class Shelf; |
41 | 41 |
42 namespace internal { | 42 namespace internal { |
43 class PanelCalloutWidget; | 43 class PanelCalloutWidget; |
44 class ShelfLayoutManager; | 44 class ShelfLayoutManager; |
45 | 45 |
46 // PanelLayoutManager is responsible for organizing panels within the | 46 // PanelLayoutManager is responsible for organizing panels within the |
47 // workspace. It is associated with a specific container window (i.e. | 47 // workspace. It is associated with a specific container window (i.e. |
48 // kShellWindowId_PanelContainer) and controls the layout of any windows | 48 // kShellWindowId_PanelContainer) and controls the layout of any windows |
49 // added to that container. | 49 // added to that container. |
50 // | 50 // |
(...skipping 19 matching lines...) Expand all Loading... |
70 void Shutdown(); | 70 void Shutdown(); |
71 | 71 |
72 void StartDragging(aura::Window* panel); | 72 void StartDragging(aura::Window* panel); |
73 void FinishDragging(); | 73 void FinishDragging(); |
74 | 74 |
75 void ToggleMinimize(aura::Window* panel); | 75 void ToggleMinimize(aura::Window* panel); |
76 | 76 |
77 // Returns the callout widget (arrow) for |panel|. | 77 // Returns the callout widget (arrow) for |panel|. |
78 views::Widget* GetCalloutWidgetForPanel(aura::Window* panel); | 78 views::Widget* GetCalloutWidgetForPanel(aura::Window* panel); |
79 | 79 |
80 ash::Launcher* launcher() { return launcher_; } | 80 Shelf* shelf() { return shelf_; } |
81 void SetLauncher(ash::Launcher* launcher); | 81 void SetShelf(Shelf* shelf); |
82 | 82 |
83 // Overridden from aura::LayoutManager: | 83 // Overridden from aura::LayoutManager: |
84 virtual void OnWindowResized() OVERRIDE; | 84 virtual void OnWindowResized() OVERRIDE; |
85 virtual void OnWindowAddedToLayout(aura::Window* child) OVERRIDE; | 85 virtual void OnWindowAddedToLayout(aura::Window* child) OVERRIDE; |
86 virtual void OnWillRemoveWindowFromLayout(aura::Window* child) OVERRIDE; | 86 virtual void OnWillRemoveWindowFromLayout(aura::Window* child) OVERRIDE; |
87 virtual void OnWindowRemovedFromLayout(aura::Window* child) OVERRIDE; | 87 virtual void OnWindowRemovedFromLayout(aura::Window* child) OVERRIDE; |
88 virtual void OnChildWindowVisibilityChanged(aura::Window* child, | 88 virtual void OnChildWindowVisibilityChanged(aura::Window* child, |
89 bool visibile) OVERRIDE; | 89 bool visibile) OVERRIDE; |
90 virtual void SetChildBounds(aura::Window* child, | 90 virtual void SetChildBounds(aura::Window* child, |
91 const gfx::Rect& requested_bounds) OVERRIDE; | 91 const gfx::Rect& requested_bounds) OVERRIDE; |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
165 // Parent window associated with this layout manager. | 165 // Parent window associated with this layout manager. |
166 aura::Window* panel_container_; | 166 aura::Window* panel_container_; |
167 // Protect against recursive calls to OnWindowAddedToLayout(). | 167 // Protect against recursive calls to OnWindowAddedToLayout(). |
168 bool in_add_window_; | 168 bool in_add_window_; |
169 // Protect against recursive calls to Relayout(). | 169 // Protect against recursive calls to Relayout(). |
170 bool in_layout_; | 170 bool in_layout_; |
171 // Ordered list of unowned pointers to panel windows. | 171 // Ordered list of unowned pointers to panel windows. |
172 PanelList panel_windows_; | 172 PanelList panel_windows_; |
173 // The panel being dragged. | 173 // The panel being dragged. |
174 aura::Window* dragged_panel_; | 174 aura::Window* dragged_panel_; |
175 // The launcher we are observing for launcher icon changes. | 175 // The shelf we are observing for shelf icon changes. |
176 Launcher* launcher_; | 176 Shelf* shelf_; |
177 // The shelf layout manager being observed for visibility changes. | 177 // The shelf layout manager being observed for visibility changes. |
178 ShelfLayoutManager* shelf_layout_manager_; | 178 ShelfLayoutManager* shelf_layout_manager_; |
179 | 179 |
180 // When not NULL, the shelf is hidden (i.e. full screen) and this tracks the | 180 // When not NULL, the shelf is hidden (i.e. full screen) and this tracks the |
181 // set of panel windows which have been temporarily hidden and need to be | 181 // set of panel windows which have been temporarily hidden and need to be |
182 // restored when the shelf becomes visible again. | 182 // restored when the shelf becomes visible again. |
183 scoped_ptr<aura::WindowTracker> restore_windows_on_shelf_visible_; | 183 scoped_ptr<aura::WindowTracker> restore_windows_on_shelf_visible_; |
184 | 184 |
185 // The last active panel. Used to maintain stacking order even if no panels | 185 // The last active panel. Used to maintain stacking order even if no panels |
186 // are currently focused. | 186 // are currently focused. |
187 aura::Window* last_active_panel_; | 187 aura::Window* last_active_panel_; |
188 base::WeakPtrFactory<PanelLayoutManager> weak_factory_; | 188 base::WeakPtrFactory<PanelLayoutManager> weak_factory_; |
189 | 189 |
190 DISALLOW_COPY_AND_ASSIGN(PanelLayoutManager); | 190 DISALLOW_COPY_AND_ASSIGN(PanelLayoutManager); |
191 }; | 191 }; |
192 | 192 |
193 } // namespace internal | 193 } // namespace internal |
194 } // namespace ash | 194 } // namespace ash |
195 | 195 |
196 #endif // ASH_WM_PANELS_PANEL_LAYOUT_MANAGER_H_ | 196 #endif // ASH_WM_PANELS_PANEL_LAYOUT_MANAGER_H_ |
OLD | NEW |