| 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_
|
|
|