diff options
author | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-29 03:20:27 +0000 |
---|---|---|
committer | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-29 03:20:27 +0000 |
commit | ad3d7273dff93e5107a947c05c6a47c35ea7eea7 (patch) | |
tree | dd34fa6e3aaa7080885f5d28e046c76751f7d25f /chrome/browser/views/frame/browser_view.cc | |
parent | 21bd81995a2dbeb92833ee6b55612ec30ce6122f (diff) | |
download | chromium_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.cc | 47 |
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_); |