| 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 6137a6b4870e90fbaee319c7307b3ec44bfff1b6..99acbf9ebcbd93eca537838ef306cdc7a20f4935 100644
|
| --- a/chrome/browser/ui/panels/panel_manager.cc
|
| +++ b/chrome/browser/ui/panels/panel_manager.cc
|
| @@ -9,6 +9,7 @@
|
| #include "chrome/browser/ui/browser.h"
|
| #include "chrome/browser/ui/browser_list.h"
|
| #include "chrome/browser/ui/panels/panel_mouse_watcher.h"
|
| +#include "chrome/browser/ui/panels/panel_overflow_strip.h"
|
| #include "chrome/browser/ui/panels/panel_strip.h"
|
| #include "chrome/browser/ui/window_sizer.h"
|
| #include "chrome/common/chrome_notification_types.h"
|
| @@ -37,6 +38,7 @@ PanelManager::PanelManager()
|
| : panel_mouse_watcher_(PanelMouseWatcher::Create()),
|
| auto_sizing_enabled_(true) {
|
| panel_strip_.reset(new PanelStrip(this));
|
| + panel_overflow_strip_.reset(new PanelOverflowStrip(this));
|
| auto_hiding_desktop_bar_ = AutoHidingDesktopBar::Create(this);
|
| OnDisplayChanged();
|
| }
|
| @@ -77,6 +79,10 @@ void PanelManager::Layout() {
|
| kPanelStripLeftMargin - kPanelStripRightMargin);
|
| panel_strip_bounds.set_height(height);
|
| panel_strip_->SetDisplayArea(panel_strip_bounds);
|
| +
|
| + gfx::Rect overflow_area(adjusted_work_area_);
|
| + overflow_area.set_width(kOverflowStripThickness);
|
| + panel_overflow_strip_->SetDisplayArea(overflow_area);
|
| }
|
|
|
| Panel* PanelManager::CreatePanel(Browser* browser) {
|
| @@ -100,7 +106,7 @@ int PanelManager::StartingRightPosition() const {
|
| void PanelManager::Remove(Panel* panel) {
|
| if (panel_strip_->Remove(panel))
|
| return;
|
| - // TODO(jianli): else try removing from overflow strip
|
| + panel_overflow_strip_->Remove(panel);
|
| }
|
|
|
| void PanelManager::OnPanelRemoved(Panel* panel) {
|
| @@ -123,8 +129,11 @@ void PanelManager::EndDragging(bool cancelled) {
|
| }
|
|
|
| void PanelManager::OnPanelExpansionStateChanged(
|
| - Panel::ExpansionState old_state, Panel::ExpansionState new_state) {
|
| - panel_strip_->OnPanelExpansionStateChanged(old_state, new_state);
|
| + Panel* panel, Panel::ExpansionState old_state) {
|
| + if (panel->expansion_state() == Panel::IN_OVERFLOW)
|
| + panel_overflow_strip_->OnPanelExpansionStateChanged(panel, old_state);
|
| + else
|
| + panel_strip_->OnPanelExpansionStateChanged(panel, old_state);
|
| }
|
|
|
| void PanelManager::OnPreferredWindowSizeChanged(
|
| @@ -159,11 +168,6 @@ void PanelManager::AdjustWorkAreaForAutoHidingDesktopBars() {
|
| }
|
| }
|
|
|
| -int PanelManager::GetBottomPositionForExpansionState(
|
| - Panel::ExpansionState expansion_state) const {
|
| - return panel_strip_->GetBottomPositionForExpansionState(expansion_state);
|
| -}
|
| -
|
| BrowserWindow* PanelManager::GetNextBrowserWindowToActivate(
|
| Panel* panel) const {
|
| // Find the last active browser window that is not minimized.
|
| @@ -178,10 +182,6 @@ BrowserWindow* PanelManager::GetNextBrowserWindowToActivate(
|
| return NULL;
|
| }
|
|
|
| -void PanelManager::MoveToOverflowStrip(Panel* panel, bool is_new) {
|
| - // TODO(jianli) - implement.
|
| -}
|
| -
|
| void PanelManager::OnAutoHidingDesktopBarThicknessChanged() {
|
| AdjustWorkAreaForAutoHidingDesktopBars();
|
| Layout();
|
| @@ -195,12 +195,11 @@ void PanelManager::OnAutoHidingDesktopBarVisibilityChanged(
|
|
|
| void PanelManager::RemoveAll() {
|
| panel_strip_->RemoveAll();
|
| - // TODO(jianli): overflow_strip_->RemoveAll();
|
| + panel_overflow_strip_->RemoveAll();
|
| }
|
|
|
| int PanelManager::num_panels() const {
|
| - return panel_strip_->num_panels();
|
| - // TODO(jianli): + overflow_strip_->num_panels();
|
| + return panel_strip_->num_panels()+ panel_overflow_strip_->num_panels();
|
| }
|
|
|
| bool PanelManager::is_dragging_panel() const {
|
|
|