| Index: chrome/browser/ui/panels/panel_manager.cc
|
| diff --git a/chrome/browser/ui/panels/panel_manager.cc b/chrome/browser/ui/panels/panel_manager.cc
|
| index 4c45a004a067263daea10762d7051e54bd3ef25f..0c1582b659fe4ec5503b90fa53a8d510b405b1ed 100644
|
| --- a/chrome/browser/ui/panels/panel_manager.cc
|
| +++ b/chrome/browser/ui/panels/panel_manager.cc
|
| @@ -14,6 +14,7 @@
|
| #include "chrome/browser/ui/panels/panel_drag_controller.h"
|
| #include "chrome/browser/ui/panels/panel_mouse_watcher.h"
|
| #include "chrome/browser/ui/panels/panel_resize_controller.h"
|
| +#include "chrome/browser/ui/panels/stacked_panel_collection.h"
|
| #include "chrome/common/chrome_notification_types.h"
|
| #include "chrome/common/chrome_switches.h"
|
| #include "chrome/common/chrome_version_info.h"
|
| @@ -139,6 +140,9 @@ void PanelManager::OnDisplayAreaChanged(const gfx::Rect& display_area) {
|
|
|
| docked_collection_->OnDisplayAreaChanged(old_display_area);
|
| detached_collection_->OnDisplayAreaChanged(old_display_area);
|
| + for (Stacks::const_iterator iter = stacks_.begin();
|
| + iter != stacks_.end(); iter++)
|
| + (*iter)->OnDisplayAreaChanged(old_display_area);
|
| }
|
|
|
| void PanelManager::OnFullScreenModeChanged(bool is_full_screen) {
|
| @@ -242,6 +246,18 @@ void PanelManager::OnPanelClosed(Panel* panel) {
|
| content::NotificationService::NoDetails());
|
| }
|
|
|
| +StackedPanelCollection* PanelManager::CreateStack() {
|
| + StackedPanelCollection* stack = new StackedPanelCollection(this);
|
| + stacks_.push_back(stack);
|
| + return stack;
|
| +}
|
| +
|
| +void PanelManager::RemoveStack(StackedPanelCollection* stack) {
|
| + DCHECK_EQ(0, stack->num_panels());
|
| + stacks_.remove(stack);
|
| + stack->CloseAll();
|
| +}
|
| +
|
| void PanelManager::StartDragging(Panel* panel,
|
| const gfx::Point& mouse_location) {
|
| drag_controller_->StartDragging(panel, mouse_location);
|
| @@ -315,7 +331,12 @@ void PanelManager::CloseAll() {
|
| }
|
|
|
| int PanelManager::num_panels() const {
|
| - return detached_collection_->num_panels() + docked_collection_->num_panels();
|
| + int count = detached_collection_->num_panels() +
|
| + docked_collection_->num_panels();
|
| + for (Stacks::const_iterator iter = stacks_.begin();
|
| + iter != stacks_.end(); iter++)
|
| + count += (*iter)->num_panels();
|
| + return count;
|
| }
|
|
|
| std::vector<Panel*> PanelManager::panels() const {
|
| @@ -328,6 +349,31 @@ std::vector<Panel*> PanelManager::panels() const {
|
| docked_collection_->panels().begin();
|
| iter != docked_collection_->panels().end(); ++iter)
|
| panels.push_back(*iter);
|
| + for (Stacks::const_iterator stack_iter = stacks_.begin();
|
| + stack_iter != stacks_.end(); stack_iter++) {
|
| + for (StackedPanelCollection::Panels::const_iterator iter =
|
| + (*stack_iter)->panels().begin();
|
| + iter != (*stack_iter)->panels().end(); ++stack_iter) {
|
| + panels.push_back(*iter);
|
| + }
|
| + }
|
| + return panels;
|
| +}
|
| +
|
| +std::vector<Panel*> PanelManager::GetDetachedAndStackedPanels() const {
|
| + std::vector<Panel*> panels;
|
| + for (DetachedPanelCollection::Panels::const_iterator iter =
|
| + detached_collection_->panels().begin();
|
| + iter != detached_collection_->panels().end(); ++iter)
|
| + panels.push_back(*iter);
|
| + for (Stacks::const_iterator stack_iter = stacks_.begin();
|
| + stack_iter != stacks_.end(); stack_iter++) {
|
| + for (StackedPanelCollection::Panels::const_iterator iter =
|
| + (*stack_iter)->panels().begin();
|
| + iter != (*stack_iter)->panels().end(); ++iter) {
|
| + panels.push_back(*iter);
|
| + }
|
| + }
|
| return panels;
|
| }
|
|
|
|
|