| Index: chrome/browser/ui/panels/panel_manager.h
|
| diff --git a/chrome/browser/ui/panels/panel_manager.h b/chrome/browser/ui/panels/panel_manager.h
|
| deleted file mode 100644
|
| index 31ae6ef268542c9d13672c176326f19a304bb1c7..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/ui/panels/panel_manager.h
|
| +++ /dev/null
|
| @@ -1,251 +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 CHROME_BROWSER_UI_PANELS_PANEL_MANAGER_H_
|
| -#define CHROME_BROWSER_UI_PANELS_PANEL_MANAGER_H_
|
| -
|
| -#include <list>
|
| -#include <memory>
|
| -#include <vector>
|
| -
|
| -#include "base/lazy_instance.h"
|
| -#include "base/macros.h"
|
| -#include "chrome/browser/ui/panels/display_settings_provider.h"
|
| -#include "chrome/browser/ui/panels/panel.h"
|
| -#include "chrome/browser/ui/panels/panel_collection.h"
|
| -#include "chrome/browser/ui/panels/panel_constants.h"
|
| -#include "ui/gfx/geometry/rect.h"
|
| -
|
| -class DetachedPanelCollection;
|
| -class DockedPanelCollection;
|
| -class GURL;
|
| -class PanelDragController;
|
| -class PanelResizeController;
|
| -class PanelMouseWatcher;
|
| -class StackedPanelCollection;
|
| -
|
| -namespace content {
|
| -class SiteInstance;
|
| -}
|
| -
|
| -// This class manages a set of panels.
|
| -class PanelManager : public DisplaySettingsProvider::DisplayObserver,
|
| - public DisplaySettingsProvider::FullScreenObserver {
|
| - public:
|
| - typedef std::list<StackedPanelCollection*> Stacks;
|
| -
|
| - enum CreateMode {
|
| - CREATE_AS_DOCKED, // Creates a docked panel. The default.
|
| - CREATE_AS_DETACHED // Creates a detached panel.
|
| - };
|
| -
|
| - // Returns a single instance.
|
| - static PanelManager* GetInstance();
|
| -
|
| - // Tells PanelManager to use |provider| for testing purpose. This has to be
|
| - // called before GetInstance.
|
| - static void SetDisplaySettingsProviderForTesting(
|
| - DisplaySettingsProvider* provider);
|
| -
|
| - // Returns true if panels should be used for the extension.
|
| - static bool ShouldUsePanels(const std::string& extension_id);
|
| -
|
| - // Returns true if panel stacking support is enabled.
|
| - static bool IsPanelStackingEnabled();
|
| -
|
| - // Returns true if a panel can be system-minimized by the desktop
|
| - // environment. Some desktop environment, like Unity, does not trigger the
|
| - // "window-state-event" which prevents the minimize and unminimize from
|
| - // working.
|
| - static bool CanUseSystemMinimize();
|
| -
|
| - // Returns the default top-left position for a detached panel.
|
| - gfx::Point GetDefaultDetachedPanelOrigin();
|
| -
|
| - // Creates a panel and returns it. The panel might be queued for display
|
| - // later.
|
| - // |app_name| is the default title for Panels when the page content does not
|
| - // provide a title. For extensions, this is usually the application name
|
| - // generated from the extension id.
|
| - // |source_site_instance| indicates the SiteInstance that requested to create
|
| - // this panel.
|
| - // |requested_bounds| is the desired bounds for the panel, but actual
|
| - // bounds may differ after panel layout depending on create |mode|.
|
| - // |mode| indicates whether panel should be created as docked or detached.
|
| - Panel* CreatePanel(const std::string& app_name,
|
| - Profile* profile,
|
| - const GURL& url,
|
| - content::SiteInstance* source_site_instance,
|
| - const gfx::Rect& requested_bounds,
|
| - CreateMode mode);
|
| -
|
| - // Close all panels (asynchronous). Panels will be removed after closing.
|
| - void CloseAll();
|
| -
|
| - // Asynchronous confirmation of panel having been closed.
|
| - void OnPanelClosed(Panel* panel);
|
| -
|
| - // Creates a StackedPanelCollection and returns it.
|
| - StackedPanelCollection* CreateStack();
|
| -
|
| - // Deletes |stack|. The stack must be empty at the time of deletion.
|
| - void RemoveStack(StackedPanelCollection* stack);
|
| -
|
| - // Returns the maximum size that panel can be auto-resized or resized by the
|
| - // API.
|
| - int GetMaxPanelWidth(const gfx::Rect& work_area) const;
|
| - int GetMaxPanelHeight(const gfx::Rect& work_area) const;
|
| -
|
| - // Drags the given panel.
|
| - // |mouse_location| is in screen coordinate system.
|
| - void StartDragging(Panel* panel, const gfx::Point& mouse_location);
|
| - void Drag(const gfx::Point& mouse_location);
|
| - void EndDragging(bool cancelled);
|
| -
|
| - // Resizes the given panel.
|
| - // |mouse_location| is in screen coordinate system.
|
| - void StartResizingByMouse(Panel* panel, const gfx::Point& mouse_location,
|
| - int component);
|
| - void ResizeByMouse(const gfx::Point& mouse_location);
|
| - void EndResizingByMouse(bool cancelled);
|
| -
|
| - // Invoked when a panel's expansion state changes.
|
| - void OnPanelExpansionStateChanged(Panel* panel);
|
| -
|
| - // Moves the |panel| to a different collection.
|
| - void MovePanelToCollection(Panel* panel,
|
| - PanelCollection* target_collection,
|
| - PanelCollection::PositioningMask positioning_mask);
|
| -
|
| - // Returns true if we should bring up the titlebars, given the current mouse
|
| - // point.
|
| - bool ShouldBringUpTitlebars(int mouse_x, int mouse_y) const;
|
| -
|
| - // Brings up or down the titlebars for all minimized panels.
|
| - void BringUpOrDownTitlebars(bool bring_up);
|
| -
|
| - std::vector<Panel*> GetDetachedAndStackedPanels() const;
|
| -
|
| - int num_panels() const;
|
| - std::vector<Panel*> panels() const;
|
| -
|
| - const Stacks& stacks() const { return stacks_; }
|
| - int num_stacks() const { return stacks_.size(); }
|
| -
|
| - PanelDragController* drag_controller() const {
|
| - return drag_controller_.get();
|
| - }
|
| -
|
| -#ifdef UNIT_TEST
|
| - PanelResizeController* resize_controller() const {
|
| - return resize_controller_.get();
|
| - }
|
| -#endif
|
| -
|
| - DisplaySettingsProvider* display_settings_provider() const {
|
| - return display_settings_provider_.get();
|
| - }
|
| -
|
| - PanelMouseWatcher* mouse_watcher() const {
|
| - return panel_mouse_watcher_.get();
|
| - }
|
| -
|
| - DetachedPanelCollection* detached_collection() const {
|
| - return detached_collection_.get();
|
| - }
|
| -
|
| - DockedPanelCollection* docked_collection() const {
|
| - return docked_collection_.get();
|
| - }
|
| -
|
| - // Reduces time interval in tests to shorten test run time.
|
| - // Wrapper should be used around all time intervals in panels code.
|
| - static inline double AdjustTimeInterval(double interval) {
|
| - if (shorten_time_intervals_)
|
| - return interval / 500.0;
|
| - else
|
| - return interval;
|
| - }
|
| -
|
| -
|
| - bool auto_sizing_enabled() const {
|
| - return auto_sizing_enabled_;
|
| - }
|
| -
|
| - // Called from native level when panel animation ends.
|
| - void OnPanelAnimationEnded(Panel* panel);
|
| -
|
| -#ifdef UNIT_TEST
|
| - static void shorten_time_intervals_for_testing() {
|
| - shorten_time_intervals_ = true;
|
| - }
|
| -
|
| - void set_display_settings_provider(
|
| - DisplaySettingsProvider* display_settings_provider) {
|
| - display_settings_provider_.reset(display_settings_provider);
|
| - }
|
| -
|
| - void enable_auto_sizing(bool enabled) {
|
| - auto_sizing_enabled_ = enabled;
|
| - }
|
| -
|
| - void SetMouseWatcherForTesting(PanelMouseWatcher* watcher) {
|
| - SetMouseWatcher(watcher);
|
| - }
|
| -#endif
|
| -
|
| - private:
|
| - friend struct base::DefaultLazyInstanceTraits<PanelManager>;
|
| -
|
| - PanelManager();
|
| - virtual ~PanelManager();
|
| -
|
| - void Initialize(DisplaySettingsProvider* provider);
|
| -
|
| - // Overridden from DisplaySettingsProvider::DisplayObserver:
|
| - void OnDisplayChanged() override;
|
| -
|
| - // Overridden from DisplaySettingsProvider::FullScreenObserver:
|
| - void OnFullScreenModeChanged(bool is_full_screen) override;
|
| -
|
| - // Returns the collection to which a new panel should add. The new panel
|
| - // is expected to be created with |bounds| and |mode|. The size of |bounds|
|
| - // could be used to determine which collection is more appropriate to have
|
| - // the new panel. Upon return, |positioning_mask| contains the required mask
|
| - // to be applied when the new panel is being added to the collection.
|
| - PanelCollection* GetCollectionForNewPanel(
|
| - Panel* new_panel,
|
| - const gfx::Rect& bounds,
|
| - CreateMode mode,
|
| - PanelCollection::PositioningMask* positioning_mask);
|
| -
|
| - // Tests may want to use a mock panel mouse watcher.
|
| - void SetMouseWatcher(PanelMouseWatcher* watcher);
|
| -
|
| - // Tests may want to shorten time intervals to reduce running time.
|
| - static bool shorten_time_intervals_;
|
| -
|
| - std::unique_ptr<DetachedPanelCollection> detached_collection_;
|
| - std::unique_ptr<DockedPanelCollection> docked_collection_;
|
| - Stacks stacks_;
|
| -
|
| - std::unique_ptr<PanelDragController> drag_controller_;
|
| - std::unique_ptr<PanelResizeController> resize_controller_;
|
| -
|
| - // Use a mouse watcher to know when to bring up titlebars to "peek" at
|
| - // minimized panels. Mouse movement is only tracked when there is a minimized
|
| - // panel.
|
| - std::unique_ptr<PanelMouseWatcher> panel_mouse_watcher_;
|
| -
|
| - std::unique_ptr<DisplaySettingsProvider> display_settings_provider_;
|
| -
|
| - // Whether or not bounds will be updated when the preferred content size is
|
| - // changed. The testing code could set this flag to false so that other tests
|
| - // will not be affected.
|
| - bool auto_sizing_enabled_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(PanelManager);
|
| -};
|
| -
|
| -#endif // CHROME_BROWSER_UI_PANELS_PANEL_MANAGER_H_
|
|
|