| 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 122381d7eab04ef898441659dff274a70421761b..30eb6cd95df05814e63b4b48a5ebe3500667a3f1 100644
|
| --- a/chrome/browser/ui/panels/panel_manager.cc
|
| +++ b/chrome/browser/ui/panels/panel_manager.cc
|
| @@ -10,6 +10,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"
|
| @@ -41,6 +42,7 @@ PanelManager::PanelManager()
|
| auto_sizing_enabled_(true),
|
| is_full_screen_(false) {
|
| panel_strip_.reset(new PanelStrip(this));
|
| + panel_overflow_strip_.reset(new PanelOverflowStrip(this));
|
| auto_hiding_desktop_bar_ = AutoHidingDesktopBar::Create(this);
|
| OnDisplayChanged();
|
| }
|
| @@ -81,6 +83,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) {
|
| @@ -113,6 +119,7 @@ void PanelManager::CheckFullScreenMode() {
|
| return;
|
| is_full_screen_ = is_full_screen_new;
|
| panel_strip_->OnFullScreenModeChanged(is_full_screen_);
|
| + panel_overflow_strip_->OnFullScreenModeChanged(is_full_screen_);
|
| }
|
|
|
| void PanelManager::Remove(Panel* panel) {
|
| @@ -121,7 +128,8 @@ void PanelManager::Remove(Panel* panel) {
|
|
|
| if (panel_strip_->Remove(panel))
|
| return;
|
| - // TODO(jianli): else try removing from overflow strip
|
| + bool removed = panel_overflow_strip_->Remove(panel);
|
| + DCHECK(removed);
|
| }
|
|
|
| void PanelManager::OnPanelRemoved(Panel* panel) {
|
| @@ -144,8 +152,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(
|
| @@ -180,11 +191,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.
|
| @@ -199,10 +205,6 @@ BrowserWindow* PanelManager::GetNextBrowserWindowToActivate(
|
| return NULL;
|
| }
|
|
|
| -void PanelManager::MoveToOverflowStrip(Panel* panel, bool is_new) {
|
| - // TODO(jianli) - implement.
|
| -}
|
| -
|
| void PanelManager::OnAutoHidingDesktopBarThicknessChanged() {
|
| AdjustWorkAreaForAutoHidingDesktopBars();
|
| Layout();
|
| @@ -216,12 +218,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 {
|
|
|