| Index: chrome/browser/ui/views/tabs/tab_strip.cc
|
| ===================================================================
|
| --- chrome/browser/ui/views/tabs/tab_strip.cc (revision 92539)
|
| +++ chrome/browser/ui/views/tabs/tab_strip.cc (working copy)
|
| @@ -11,7 +11,6 @@
|
| #include "base/compiler_specific.h"
|
| #include "base/stl_util-inl.h"
|
| #include "base/utf_string_conversions.h"
|
| -#include "chrome/browser/defaults.h"
|
| #include "chrome/browser/tabs/tab_strip_selection_model.h"
|
| #include "chrome/browser/themes/theme_service.h"
|
| #include "chrome/browser/ui/view_ids.h"
|
| @@ -77,8 +76,9 @@
|
|
|
| class NewTabButton : public views::ImageButton {
|
| public:
|
| - explicit NewTabButton(views::ButtonListener* listener)
|
| - : views::ImageButton(listener) {
|
| + explicit NewTabButton(TabStrip* tab_strip, views::ButtonListener* listener)
|
| + : views::ImageButton(listener),
|
| + tab_strip_(tab_strip) {
|
| }
|
| virtual ~NewTabButton() {}
|
|
|
| @@ -88,7 +88,7 @@
|
| // When the button is sized to the top of the tab strip we want the user to
|
| // be able to click on complete bounds, and so don't return a custom hit
|
| // mask.
|
| - return !browser_defaults::kSizeTabButtonToTopOfTabStrip;
|
| + return !tab_strip_->SizeTabButtonToTopOfTabStrip();
|
| }
|
| virtual void GetHitTestMask(gfx::Path* path) const {
|
| DCHECK(path);
|
| @@ -110,6 +110,9 @@
|
| }
|
|
|
| private:
|
| + // Tab strip that contains this button.
|
| + TabStrip* tab_strip_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(NewTabButton);
|
| };
|
|
|
| @@ -149,22 +152,14 @@
|
| RemoveAllChildViews(true);
|
| }
|
|
|
| -void TabStrip::InitTabStripButtons() {
|
| - newtab_button_ = new NewTabButton(this);
|
| - if (browser_defaults::kSizeTabButtonToTopOfTabStrip) {
|
| - newtab_button_->SetImageAlignment(views::ImageButton::ALIGN_LEFT,
|
| - views::ImageButton::ALIGN_BOTTOM);
|
| - }
|
| - LoadNewTabButtonImage();
|
| - newtab_button_->SetAccessibleName(
|
| - l10n_util::GetStringUTF16(IDS_ACCNAME_NEWTAB));
|
| - AddChildView(newtab_button_);
|
| -}
|
| -
|
| gfx::Rect TabStrip::GetNewTabButtonBounds() {
|
| return newtab_button_->bounds();
|
| }
|
|
|
| +bool TabStrip::SizeTabButtonToTopOfTabStrip() {
|
| + return controller()->SizeTabButtonToTopOfTabStrip();
|
| +}
|
| +
|
| void TabStrip::MouseMovedOutOfView() {
|
| ResizeLayoutTabs();
|
| }
|
| @@ -481,8 +476,19 @@
|
| BaseTabStrip::DoLayout();
|
|
|
| // It is possible we don't have a new tab button yet.
|
| - if (newtab_button_)
|
| + if (newtab_button_) {
|
| + if (SizeTabButtonToTopOfTabStrip()) {
|
| + newtab_button_bounds_.set_height(
|
| + kNewTabButtonHeight + kNewTabButtonVOffset);
|
| + newtab_button_->SetImageAlignment(views::ImageButton::ALIGN_LEFT,
|
| + views::ImageButton::ALIGN_BOTTOM);
|
| + } else {
|
| + newtab_button_bounds_.set_height(kNewTabButtonHeight);
|
| + newtab_button_->SetImageAlignment(views::ImageButton::ALIGN_LEFT,
|
| + views::ImageButton::ALIGN_TOP);
|
| + }
|
| newtab_button_->SetBoundsRect(newtab_button_bounds_);
|
| + }
|
| }
|
|
|
| void TabStrip::LayoutDraggedTabsAt(const std::vector<BaseTab*>& tabs,
|
| @@ -562,10 +568,6 @@
|
| void TabStrip::Init() {
|
| set_id(VIEW_ID_TAB_STRIP);
|
| newtab_button_bounds_.SetRect(0, 0, kNewTabButtonWidth, kNewTabButtonHeight);
|
| - if (browser_defaults::kSizeTabButtonToTopOfTabStrip) {
|
| - newtab_button_bounds_.set_height(
|
| - kNewTabButtonHeight + kNewTabButtonVOffset);
|
| - }
|
| if (drop_indicator_width == 0) {
|
| // Direction doesn't matter, both images are the same size.
|
| SkBitmap* drop_image = GetDropArrowImage(true);
|
| @@ -574,6 +576,14 @@
|
| }
|
| }
|
|
|
| +void TabStrip::InitTabStripButtons() {
|
| + newtab_button_ = new NewTabButton(this, this);
|
| + LoadNewTabButtonImage();
|
| + newtab_button_->SetAccessibleName(
|
| + l10n_util::GetStringUTF16(IDS_ACCNAME_NEWTAB));
|
| + AddChildView(newtab_button_);
|
| +}
|
| +
|
| void TabStrip::LoadNewTabButtonImage() {
|
| ui::ThemeProvider* tp = GetThemeProvider();
|
|
|
| @@ -938,8 +948,7 @@
|
|
|
| // Update bounds of new tab button.
|
| int new_tab_x;
|
| - int new_tab_y = browser_defaults::kSizeTabButtonToTopOfTabStrip ?
|
| - 0 : kNewTabButtonVOffset;
|
| + int new_tab_y = SizeTabButtonToTopOfTabStrip() ? 0 : kNewTabButtonVOffset;
|
| if (abs(Round(unselected) - Tab::GetStandardSize().width()) > 1 &&
|
| !in_tab_close_) {
|
| // We're shrinking tabs, so we need to anchor the New Tab button to the
|
|
|