summaryrefslogtreecommitdiffstats
path: root/chrome/browser/views/frame/browser_view.cc
diff options
context:
space:
mode:
authorsky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-29 03:20:27 +0000
committersky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-29 03:20:27 +0000
commitad3d7273dff93e5107a947c05c6a47c35ea7eea7 (patch)
treedd34fa6e3aaa7080885f5d28e046c76751f7d25f /chrome/browser/views/frame/browser_view.cc
parent21bd81995a2dbeb92833ee6b55612ec30ce6122f (diff)
downloadchromium_src-ad3d7273dff93e5107a947c05c6a47c35ea7eea7.zip
chromium_src-ad3d7273dff93e5107a947c05c6a47c35ea7eea7.tar.gz
chromium_src-ad3d7273dff93e5107a947c05c6a47c35ea7eea7.tar.bz2
Relands your patch to have an option for enabling vertical tabs. I've
added the following additions: . made the layout work for opaque_browser_frame. . Only show the menu if the user supplied --enable-vertical-tabs. BUG=none TEST=none Review URL: http://codereview.chromium.org/1708014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45906 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/views/frame/browser_view.cc')
-rw-r--r--chrome/browser/views/frame/browser_view.cc47
1 files changed, 34 insertions, 13 deletions
diff --git a/chrome/browser/views/frame/browser_view.cc b/chrome/browser/views/frame/browser_view.cc
index e8ee1d9..70fcc10 100644
--- a/chrome/browser/views/frame/browser_view.cc
+++ b/chrome/browser/views/frame/browser_view.cc
@@ -530,8 +530,8 @@ bool BrowserView::IsTabStripVisible() const {
return browser_->SupportsWindowFeature(Browser::FEATURE_TABSTRIP);
}
-bool BrowserView::UsingSideTabs() const {
- return SideTabStrip::Visible(browser_->profile());
+bool BrowserView::UseVerticalTabs() const {
+ return browser_->tabstrip_model()->delegate()->UseVerticalTabs();
}
bool BrowserView::IsOffTheRecord() const {
@@ -1206,6 +1206,11 @@ void BrowserView::Paste() {
false, false);
}
+void BrowserView::ToggleTabStripMode() {
+ InitTabStrip(browser_->tabstrip_model());
+ frame_->TabStripDisplayModeChanged();
+}
+
///////////////////////////////////////////////////////////////////////////////
// BrowserView, BrowserWindowTesting implementation:
@@ -1609,13 +1614,34 @@ views::LayoutManager* BrowserView::CreateLayoutManager() const {
return new BrowserViewLayout;
}
-BaseTabStrip* BrowserView::CreateTabStrip(TabStripModel* model) {
- if (UsingSideTabs()) {
+void BrowserView::InitTabStrip(TabStripModel* model) {
+// Throw away the existing tabstrip if we're switching display modes.
+ if (tabstrip_) {
+ tabstrip_->GetParent()->RemoveChildView(tabstrip_);
+ delete tabstrip_;
+ }
+
+ TabStrip* tabstrip_as_tabstrip = NULL;
+ BrowserTabStripController* tabstrip_controller = NULL;
+
+ if (UseVerticalTabs()) {
SideTabStrip* tabstrip = new SideTabStrip;
- tabstrip->SetModel(new BrowserTabStripController(model, tabstrip));
- return tabstrip;
+ tabstrip_controller = new BrowserTabStripController(model, tabstrip);
+ tabstrip->SetModel(tabstrip_controller);
+ tabstrip_ = tabstrip;
+ } else {
+ tabstrip_as_tabstrip = new TabStrip(model);
+ tabstrip_ = tabstrip_as_tabstrip;
}
- return new TabStrip(model);
+ tabstrip_->SetAccessibleName(l10n_util::GetString(IDS_ACCNAME_TABSTRIP));
+ if (browser_->extension_app() && tabstrip_->AsTabStrip())
+ tabstrip_->AsTabStrip()->set_new_tab_button_enabled(false);
+ AddChildView(tabstrip_);
+
+ if (tabstrip_controller)
+ tabstrip_controller->InitFromModel();
+ else
+ tabstrip_as_tabstrip->InitFromModel();
}
///////////////////////////////////////////////////////////////////////////////
@@ -1674,12 +1700,7 @@ void BrowserView::Init() {
}
}
- tabstrip_ = CreateTabStrip(browser_->tabstrip_model());
- tabstrip_->SetAccessibleName(l10n_util::GetString(IDS_ACCNAME_TABSTRIP));
- if (browser_->extension_app() && tabstrip_->AsTabStrip())
- tabstrip_->AsTabStrip()->set_new_tab_button_enabled(false);
- AddChildView(tabstrip_);
- frame_->TabStripCreated(tabstrip_);
+ InitTabStrip(browser_->tabstrip_model());
toolbar_ = new ToolbarView(browser_.get());
AddChildView(toolbar_);