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