Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1201)

Unified Diff: chrome/browser/ui/panels/panel_manager.h

Issue 11669018: Support dragging panels to stack and snap. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix CrOS build for relanding Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/ui/panels/panel_drag_controller.cc ('k') | chrome/browser/ui/panels/panel_manager.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
index 679236c123bb50e3b0c0ec06d4cca8811b25e591..b75187b3188fa0c7e278fb83379b1c4b1df41d2c 100644
--- a/chrome/browser/ui/panels/panel_manager.h
+++ b/chrome/browser/ui/panels/panel_manager.h
@@ -5,6 +5,7 @@
#ifndef CHROME_BROWSER_UI_PANELS_PANEL_MANAGER_H_
#define CHROME_BROWSER_UI_PANELS_PANEL_MANAGER_H_
+#include <list>
#include <vector>
#include "base/basictypes.h"
#include "base/lazy_instance.h"
@@ -21,11 +22,14 @@ class GURL;
class PanelDragController;
class PanelResizeController;
class PanelMouseWatcher;
+class StackedPanelCollection;
// This class manages a set of panels.
class PanelManager : public DisplaySettingsProvider::DisplayAreaObserver,
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.
@@ -63,6 +67,12 @@ class PanelManager : public DisplaySettingsProvider::DisplayAreaObserver,
// 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;
@@ -96,9 +106,14 @@ class PanelManager : public DisplaySettingsProvider::DisplayAreaObserver,
// 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();
}
@@ -183,6 +198,7 @@ class PanelManager : public DisplaySettingsProvider::DisplayAreaObserver,
scoped_ptr<DetachedPanelCollection> detached_collection_;
scoped_ptr<DockedPanelCollection> docked_collection_;
+ Stacks stacks_;
scoped_ptr<PanelDragController> drag_controller_;
scoped_ptr<PanelResizeController> resize_controller_;
« no previous file with comments | « chrome/browser/ui/panels/panel_drag_controller.cc ('k') | chrome/browser/ui/panels/panel_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698