Chromium Code Reviews| 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.
|