summaryrefslogtreecommitdiffstats
path: root/chrome/browser
diff options
context:
space:
mode:
authorglen@chromium.org <glen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-23 23:34:31 +0000
committerglen@chromium.org <glen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-23 23:34:31 +0000
commitaeafccdc5f9c736cc2266960f6336331d2f0b17c (patch)
treef8c481f2fbacba48faa4f47ac9b8bd4d26a35cde /chrome/browser
parentf44ea0d6f8a6da9b98ecfe3fc30235ef65e28635 (diff)
downloadchromium_src-aeafccdc5f9c736cc2266960f6336331d2f0b17c.zip
chromium_src-aeafccdc5f9c736cc2266960f6336331d2f0b17c.tar.gz
chromium_src-aeafccdc5f9c736cc2266960f6336331d2f0b17c.tar.bz2
Make the tab close button color match the tab text.
BUG=17378 TEST=Install themes with different tab text colors and verify that the tab close button changes color appropriately. Review URL: http://codereview.chromium.org/155882 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21474 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
-rw-r--r--chrome/browser/views/tabs/tab_renderer.cc15
-rw-r--r--chrome/browser/views/tabs/tab_renderer.h3
2 files changed, 18 insertions, 0 deletions
diff --git a/chrome/browser/views/tabs/tab_renderer.cc b/chrome/browser/views/tabs/tab_renderer.cc
index 2b29341..1f428521 100644
--- a/chrome/browser/views/tabs/tab_renderer.cc
+++ b/chrome/browser/views/tabs/tab_renderer.cc
@@ -54,6 +54,7 @@ static const double kHoverOpacity = 0.33;
static gfx::Font* title_font = NULL;
static int title_font_height = 0;
static SkBitmap* close_button_n = NULL;
+static SkBitmap* close_button_m = NULL;
static SkBitmap* close_button_h = NULL;
static SkBitmap* close_button_p = NULL;
static int close_button_height = 0;
@@ -81,6 +82,7 @@ void InitResources() {
title_font_height = title_font->height();
close_button_n = rb.GetBitmapNamed(IDR_TAB_CLOSE);
+ close_button_m = rb.GetBitmapNamed(IDR_TAB_CLOSE_MASK);
close_button_h = rb.GetBitmapNamed(IDR_TAB_CLOSE_H);
close_button_p = rb.GetBitmapNamed(IDR_TAB_CLOSE_P);
close_button_width = close_button_n->width();
@@ -232,6 +234,7 @@ TabRenderer::TabRenderer()
showing_icon_(false),
showing_close_button_(false),
fav_icon_hiding_offset_(0),
+ close_button_color_(NULL),
crash_animation_(NULL),
should_display_crashed_favicon_(false),
theme_provider_(NULL) {
@@ -481,6 +484,18 @@ void TabRenderer::Layout() {
close_button_->SetBounds(lb.width() + kCloseButtonHorzFuzz,
close_button_top, close_button_width,
close_button_height);
+
+ // If the close button color has changed, generate a new one.
+ SkColor tab_text_color =
+ GetThemeProvider()->GetColor(BrowserThemeProvider::COLOR_TAB_TEXT);
+ if (!close_button_color_ || tab_text_color != close_button_color_) {
+ close_button_color_ = tab_text_color;
+ ResourceBundle& rb = ResourceBundle::GetSharedInstance();
+ close_button_->SetBackground(close_button_color_,
+ rb.GetBitmapNamed(IDR_TAB_CLOSE),
+ rb.GetBitmapNamed(IDR_TAB_CLOSE_MASK));
+ }
+
close_button_->SetVisible(true);
} else {
close_button_->SetBounds(0, 0, 0, 0);
diff --git a/chrome/browser/views/tabs/tab_renderer.h b/chrome/browser/views/tabs/tab_renderer.h
index 8042acc..e913e0e 100644
--- a/chrome/browser/views/tabs/tab_renderer.h
+++ b/chrome/browser/views/tabs/tab_renderer.h
@@ -155,6 +155,9 @@ class TabRenderer : public views::View,
// Close Button.
views::ImageButton* close_button_;
+ // The current color of the close button.
+ SkColor close_button_color_;
+
// Hover animation.
scoped_ptr<SlideAnimation> hover_animation_;