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 4b4848bebb78fea8ab0fc7cf86789c936013dd6f..c161e9a40c4bdad7d19da7333f5e193225bbfe8b 100644 |
--- a/chrome/browser/ui/panels/panel_manager.cc |
+++ b/chrome/browser/ui/panels/panel_manager.cc |
@@ -10,8 +10,10 @@ |
#include "chrome/browser/fullscreen.h" |
#include "chrome/browser/ui/browser.h" |
#include "chrome/browser/ui/browser_list.h" |
+#include "chrome/browser/ui/panels/detached_panel_strip.h" |
#include "chrome/browser/ui/panels/docked_panel_strip.h" |
#include "chrome/browser/ui/panels/overflow_panel_strip.h" |
+#include "chrome/browser/ui/panels/panel_drag_controller.h" |
#include "chrome/browser/ui/panels/panel_mouse_watcher.h" |
#include "chrome/common/chrome_notification_types.h" |
#include "chrome/common/chrome_switches.h" |
@@ -63,8 +65,10 @@ PanelManager::PanelManager() |
: panel_mouse_watcher_(PanelMouseWatcher::Create()), |
auto_sizing_enabled_(true), |
is_full_screen_(false) { |
+ detached_strip_.reset(new DetachedPanelStrip(this)); |
docked_strip_.reset(new DockedPanelStrip(this)); |
overflow_strip_.reset(new OverflowPanelStrip(this)); |
+ drag_controller_.reset(new PanelDragController()); |
auto_hiding_desktop_bar_ = AutoHidingDesktopBar::Create(this); |
OnDisplayChanged(); |
} |
@@ -159,16 +163,20 @@ void PanelManager::OnPanelRemoved(Panel* panel) { |
content::NotificationService::NoDetails()); |
} |
+bool PanelManager::CanDrag(Panel* panel) const { |
+ return panel->panel_strip()->CanDragPanel(panel); |
+} |
+ |
void PanelManager::StartDragging(Panel* panel) { |
- docked_strip_->StartDragging(panel); |
+ drag_controller_->StartDragging(panel); |
} |
-void PanelManager::Drag(int delta_x) { |
- docked_strip_->Drag(delta_x); |
+void PanelManager::Drag(int delta_x, int delta_y) { |
+ drag_controller_->Drag(delta_x, delta_y); |
} |
void PanelManager::EndDragging(bool cancelled) { |
- docked_strip_->EndDragging(cancelled); |
+ drag_controller_->EndDragging(cancelled); |
} |
void PanelManager::OnPanelExpansionStateChanged(Panel* panel) { |
@@ -244,12 +252,17 @@ void PanelManager::OnAutoHidingDesktopBarVisibilityChanged( |
} |
void PanelManager::CloseAll() { |
+ DCHECK(!drag_controller_->dragging_panel()); |
+ |
+ detached_strip_->CloseAll(); |
docked_strip_->CloseAll(); |
overflow_strip_->CloseAll(); |
} |
int PanelManager::num_panels() const { |
- return docked_strip_->num_panels() + overflow_strip_->num_panels(); |
+ return detached_strip_->num_panels() + |
+ docked_strip_->num_panels() + |
+ overflow_strip_->num_panels(); |
} |
std::vector<Panel*> PanelManager::panels() const { |
jennb
2012/02/17 21:28:45
Need to include detached panels here.
jianli
2012/02/17 23:52:56
Done.
|