Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(881)

Unified Diff: chrome/browser/ui/panels/panel_manager.cc

Issue 8776035: Add PanelOverflowStrip to handle panel overflow. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_);
jennb 2011/12/02 19:15:00 Does overflow strip allow for any margins at the t
jianli 2011/12/02 23:23:46 No per the mocks.
+ 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);
jennb 2011/12/02 21:16:58 nit: DCHECK this returns true?
jianli 2011/12/02 23:23:46 Done.
}
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();
jennb 2011/12/02 19:15:00 space before +
jianli 2011/12/02 23:23:46 Done.
}
bool PanelManager::is_dragging_panel() const {

Powered by Google App Engine
This is Rietveld 408576698