Index: ash/common/wm/panels/panel_layout_manager.h |
diff --git a/ash/common/wm/panels/panel_layout_manager.h b/ash/common/wm/panels/panel_layout_manager.h |
deleted file mode 100644 |
index ff1047eb7d3199b66dc26f83c133e8d2d71326e4..0000000000000000000000000000000000000000 |
--- a/ash/common/wm/panels/panel_layout_manager.h |
+++ /dev/null |
@@ -1,205 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#ifndef ASH_COMMON_WM_PANELS_PANEL_LAYOUT_MANAGER_H_ |
-#define ASH_COMMON_WM_PANELS_PANEL_LAYOUT_MANAGER_H_ |
- |
-#include <list> |
-#include <memory> |
- |
-#include "ash/ash_export.h" |
-#include "ash/common/shelf/wm_shelf_observer.h" |
-#include "ash/common/shell_observer.h" |
-#include "ash/common/wm/window_state_observer.h" |
-#include "ash/common/wm_activation_observer.h" |
-#include "ash/common/wm_display_observer.h" |
-#include "ash/common/wm_layout_manager.h" |
-#include "ash/root_window_controller.h" |
-#include "base/compiler_specific.h" |
-#include "base/macros.h" |
-#include "base/memory/weak_ptr.h" |
-#include "ui/aura/window_observer.h" |
-#include "ui/aura/window_tracker.h" |
-#include "ui/keyboard/keyboard_controller.h" |
-#include "ui/keyboard/keyboard_controller_observer.h" |
- |
-namespace gfx { |
-class Rect; |
-} |
- |
-namespace views { |
-class Widget; |
-} |
- |
-namespace ash { |
-class PanelCalloutWidget; |
-class WmShelf; |
- |
-namespace wm { |
-class RootWindowController; |
-} |
- |
-// PanelLayoutManager is responsible for organizing panels within the |
-// workspace. It is associated with a specific container window (i.e. |
-// kShellWindowId_PanelContainer) and controls the layout of any windows |
-// added to that container. |
-// |
-// The constructor takes a |panel_container| argument which is expected to set |
-// its layout manager to this instance, e.g.: |
-// panel_container->SetLayoutManager(new PanelLayoutManager(panel_container)); |
- |
-class ASH_EXPORT PanelLayoutManager |
- : public WmLayoutManager, |
- public wm::WindowStateObserver, |
- public WmActivationObserver, |
- public WmDisplayObserver, |
- public ShellObserver, |
- public aura::WindowObserver, |
- public keyboard::KeyboardControllerObserver, |
- public WmShelfObserver { |
- public: |
- explicit PanelLayoutManager(WmWindow* panel_container); |
- ~PanelLayoutManager() override; |
- |
- // Returns the PanelLayoutManager in the specified hierarchy. This searches |
- // from the root of |window|. |
- static PanelLayoutManager* Get(WmWindow* window); |
- |
- // Call Shutdown() before deleting children of panel_container. |
- void Shutdown(); |
- |
- void StartDragging(WmWindow* panel); |
- void FinishDragging(); |
- |
- void ToggleMinimize(WmWindow* panel); |
- |
- // Hide / Show the panel callout widgets. |
- void SetShowCalloutWidgets(bool show); |
- |
- // Returns the callout widget (arrow) for |panel|. |
- views::Widget* GetCalloutWidgetForPanel(WmWindow* panel); |
- |
- WmShelf* shelf() { return shelf_; } |
- void SetShelf(WmShelf* shelf); |
- |
- // Overridden from WmLayoutManager |
- void OnWindowResized() override; |
- void OnWindowAddedToLayout(WmWindow* child) override; |
- void OnWillRemoveWindowFromLayout(WmWindow* child) override; |
- void OnWindowRemovedFromLayout(WmWindow* child) override; |
- void OnChildWindowVisibilityChanged(WmWindow* child, bool visibile) override; |
- void SetChildBounds(WmWindow* child, |
- const gfx::Rect& requested_bounds) override; |
- |
- // Overridden from ShellObserver: |
- void OnOverviewModeEnded() override; |
- void OnShelfAlignmentChanged(WmWindow* root_window) override; |
- |
- // Overridden from aura::WindowObserver |
- void OnWindowPropertyChanged(aura::Window* window, |
- const void* key, |
- intptr_t old) override; |
- |
- // Overridden from wm::WindowStateObserver |
- void OnPostWindowStateTypeChange(wm::WindowState* window_state, |
- wm::WindowStateType old_type) override; |
- |
- // Overridden from WmActivationObserver |
- void OnWindowActivated(WmWindow* gained_active, |
- WmWindow* lost_active) override; |
- |
- // Overridden from WindowTreeHostManager::Observer |
- void OnDisplayConfigurationChanged() override; |
- |
- // Overridden from WmShelfObserver |
- void WillChangeVisibilityState(ShelfVisibilityState new_state) override; |
- void OnShelfIconPositionsChanged() override; |
- |
- private: |
- friend class PanelLayoutManagerTest; |
- friend class PanelWindowResizerTest; |
- friend class DockedWindowResizerTest; |
- friend class DockedWindowLayoutManagerTest; |
- friend class WorkspaceControllerTest; |
- friend class AcceleratorControllerTest; |
- |
- views::Widget* CreateCalloutWidget(); |
- |
- struct ASH_EXPORT PanelInfo { |
- PanelInfo() : window(NULL), callout_widget(NULL), slide_in(false) {} |
- |
- bool operator==(const WmWindow* other_window) const { |
- return window == other_window; |
- } |
- |
- // Returns |callout_widget| as a widget. Used by tests. |
- views::Widget* CalloutWidget(); |
- |
- // A weak pointer to the panel window. |
- WmWindow* window; |
- |
- // The callout widget for this panel. This pointer must be managed |
- // manually as this structure is used in a std::list. See |
- // http://www.chromium.org/developers/smart-pointer-guidelines |
- PanelCalloutWidget* callout_widget; |
- |
- // True on new and restored panel windows until the panel has been |
- // positioned. The first time Relayout is called the panel will be shown, |
- // and slide into position and this will be set to false. |
- bool slide_in; |
- }; |
- |
- typedef std::list<PanelInfo> PanelList; |
- |
- void MinimizePanel(WmWindow* panel); |
- void RestorePanel(WmWindow* panel); |
- |
- // Called whenever the panel layout might change. |
- void Relayout(); |
- |
- // Called whenever the panel stacking order needs to be updated (e.g. focus |
- // changes or a panel is moved). |
- void UpdateStacking(WmWindow* active_panel); |
- |
- // Update the callout arrows for all managed panels. |
- void UpdateCallouts(); |
- |
- // Overridden from keyboard::KeyboardControllerObserver: |
- void OnKeyboardBoundsChanging(const gfx::Rect& keyboard_bounds) override; |
- void OnKeyboardClosed() override; |
- |
- // Parent window associated with this layout manager. |
- WmWindow* panel_container_; |
- |
- RootWindowController* root_window_controller_; |
- |
- // Protect against recursive calls to OnWindowAddedToLayout(). |
- bool in_add_window_; |
- // Protect against recursive calls to Relayout(). |
- bool in_layout_; |
- // Indicates if the panel callout widget should be created. |
- bool show_callout_widgets_; |
- // Ordered list of unowned pointers to panel windows. |
- PanelList panel_windows_; |
- // The panel being dragged. |
- WmWindow* dragged_panel_; |
- // The shelf we are observing for shelf icon changes. |
- WmShelf* shelf_; |
- |
- // When not NULL, the shelf is hidden (i.e. full screen) and this tracks the |
- // set of panel windows which have been temporarily hidden and need to be |
- // restored when the shelf becomes visible again. |
- std::unique_ptr<aura::WindowTracker> restore_windows_on_shelf_visible_; |
- |
- // The last active panel. Used to maintain stacking order even if no panels |
- // are currently focused. |
- WmWindow* last_active_panel_; |
- base::WeakPtrFactory<PanelLayoutManager> weak_factory_; |
- |
- DISALLOW_COPY_AND_ASSIGN(PanelLayoutManager); |
-}; |
- |
-} // namespace ash |
- |
-#endif // ASH_COMMON_WM_PANELS_PANEL_LAYOUT_MANAGER_H_ |