diff options
author | erg@google.com <erg@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-08 00:10:41 +0000 |
---|---|---|
committer | erg@google.com <erg@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-08 00:10:41 +0000 |
commit | 1b1a9d3489b7446b2087957b7d31f03a674cff46 (patch) | |
tree | 59917478a102271a0e463000e9c5a5e616090e97 /chrome | |
parent | 3254563421b09469b9668ff69562d098a8661d23 (diff) | |
download | chromium_src-1b1a9d3489b7446b2087957b7d31f03a674cff46.zip chromium_src-1b1a9d3489b7446b2087957b7d31f03a674cff46.tar.gz chromium_src-1b1a9d3489b7446b2087957b7d31f03a674cff46.tar.bz2 |
GTK Themes: Use the correct text color in the tab strip.
BUG=http://crbug.com/13967
Review URL: http://codereview.chromium.org/155183
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20102 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/browser_theme_provider.cc | 2 | ||||
-rw-r--r-- | chrome/browser/gtk/browser_window_gtk.cc | 1 | ||||
-rwxr-xr-x | chrome/browser/gtk/tabs/tab_renderer_gtk.cc | 18 | ||||
-rw-r--r-- | chrome/browser/gtk/tabs/tab_renderer_gtk.h | 7 | ||||
-rwxr-xr-x | chrome/browser/gtk/tabs/tab_strip_gtk.cc | 14 | ||||
-rw-r--r-- | chrome/browser/gtk/tabs/tab_strip_gtk.h | 4 |
6 files changed, 41 insertions, 5 deletions
diff --git a/chrome/browser/browser_theme_provider.cc b/chrome/browser/browser_theme_provider.cc index 78cad0d..b8e6b6d 100644 --- a/chrome/browser/browser_theme_provider.cc +++ b/chrome/browser/browser_theme_provider.cc @@ -556,7 +556,7 @@ std::string BrowserThemeProvider::AlignmentToString(int alignment) { } void BrowserThemeProvider::SetColor(const char* key, const SkColor& color) { - colors_[kColorFrame] = color; + colors_[key] = color; } void BrowserThemeProvider::SetTint(const char* key, const skia::HSL& tint) { diff --git a/chrome/browser/gtk/browser_window_gtk.cc b/chrome/browser/gtk/browser_window_gtk.cc index b8b5fd6..fc65627 100644 --- a/chrome/browser/gtk/browser_window_gtk.cc +++ b/chrome/browser/gtk/browser_window_gtk.cc @@ -746,6 +746,7 @@ void BrowserWindowGtk::UserChangedTheme() { GtkThemeProperties properties(browser_->profile()); bookmark_bar_->UserChangedTheme(&properties); status_bubble_->UserChangedTheme(&properties); + tabstrip_->UserChangedTheme(&properties); } int BrowserWindowGtk::GetExtraRenderViewHeight() const { diff --git a/chrome/browser/gtk/tabs/tab_renderer_gtk.cc b/chrome/browser/gtk/tabs/tab_renderer_gtk.cc index a8de38a..e42f7a3 100755 --- a/chrome/browser/gtk/tabs/tab_renderer_gtk.cc +++ b/chrome/browser/gtk/tabs/tab_renderer_gtk.cc @@ -29,8 +29,6 @@ const int kTitleCloseButtonSpacing = 5; const int kStandardTitleWidth = 175; const int kFavIconSize = 16; const int kDropShadowOffset = 2; -const int kSelectedTitleColor = SK_ColorBLACK; -const int kUnselectedTitleColor = SkColorSetRGB(64, 64, 64); // How long the hover state takes. const int kHoverDurationMs = 90; @@ -95,6 +93,8 @@ gfx::Font* TabRendererGtk::title_font_ = NULL; int TabRendererGtk::title_font_height_ = 0; int TabRendererGtk::close_button_width_ = 0; int TabRendererGtk::close_button_height_ = 0; +SkColor TabRendererGtk::selected_title_color_ = SK_ColorBLACK; +SkColor TabRendererGtk::unselected_title_color_ = SkColorSetRGB(64, 64, 64); //////////////////////////////////////////////////////////////////////////////// // TabRendererGtk::LoadingAnimation, public: @@ -302,6 +302,16 @@ void TabRendererGtk::LoadTabImages() { close_button_height_ = rb.GetBitmapNamed(IDR_TAB_CLOSE)->height(); } +// static +void TabRendererGtk::SetSelectedTitleColor(SkColor color) { + selected_title_color_ = color; +} + +// static +void TabRendererGtk::SetUnselectedTitleColor(SkColor color) { + unselected_title_color_ = color; +} + void TabRendererGtk::SetBounds(const gfx::Rect& bounds) { gtk_widget_set_size_request(tab_.get(), bounds.width(), bounds.height()); bounds_ = bounds; @@ -421,8 +431,8 @@ void TabRendererGtk::Paint(gfx::Canvas* canvas) { Browser::FormatTitleForDisplay(&title); } - SkColor title_color = IsSelected() ? kSelectedTitleColor - : kUnselectedTitleColor; + SkColor title_color = IsSelected() ? selected_title_color_ + : unselected_title_color_; canvas->DrawStringInt(title, *title_font_, title_color, title_bounds_.x(), title_bounds_.y(), title_bounds_.width(), title_bounds_.height()); diff --git a/chrome/browser/gtk/tabs/tab_renderer_gtk.h b/chrome/browser/gtk/tabs/tab_renderer_gtk.h index fd0343c..4b38df0 100644 --- a/chrome/browser/gtk/tabs/tab_renderer_gtk.h +++ b/chrome/browser/gtk/tabs/tab_renderer_gtk.h @@ -121,6 +121,10 @@ class TabRendererGtk : public AnimationDelegate { // Loads the images to be used for the tab background. static void LoadTabImages(); + // Sets the colors used for painting text on the tabs. + static void SetSelectedTitleColor(SkColor color); + static void SetUnselectedTitleColor(SkColor color); + // Returns the bounds of the Tab. int x() const { return bounds_.x(); } int y() const { return bounds_.y(); } @@ -258,6 +262,9 @@ class TabRendererGtk : public AnimationDelegate { static int close_button_width_; static int close_button_height_; + static SkColor selected_title_color_; + static SkColor unselected_title_color_; + // The GtkDrawingArea we draw the tab on. OwnedWidgetGtk tab_; diff --git a/chrome/browser/gtk/tabs/tab_strip_gtk.cc b/chrome/browser/gtk/tabs/tab_strip_gtk.cc index 7565815..6488ac8 100755 --- a/chrome/browser/gtk/tabs/tab_strip_gtk.cc +++ b/chrome/browser/gtk/tabs/tab_strip_gtk.cc @@ -15,6 +15,7 @@ #include "chrome/browser/browser_theme_provider.h" #include "chrome/browser/gtk/custom_button.h" #include "chrome/browser/gtk/gtk_dnd_util.h" +#include "chrome/browser/gtk/gtk_theme_provider.h" #include "chrome/browser/gtk/tabs/dragged_tab_controller_gtk.h" #include "chrome/browser/profile.h" #include "chrome/browser/tab_contents/tab_contents.h" @@ -442,6 +443,11 @@ TabStripGtk::TabStripGtk(TabStripModel* model) model_(model), resize_layout_factory_(this), added_as_message_loop_observer_(false) { + ThemeProvider* theme_provider = model->profile()->GetThemeProvider(); + TabRendererGtk::SetSelectedTitleColor(theme_provider->GetColor( + BrowserThemeProvider::COLOR_TAB_TEXT)); + TabRendererGtk::SetUnselectedTitleColor(theme_provider->GetColor( + BrowserThemeProvider::COLOR_BACKGROUND_TAB_TEXT)); } TabStripGtk::~TabStripGtk() { @@ -633,6 +639,14 @@ gfx::Point TabStripGtk::GetTabStripOriginForWidget(GtkWidget* target) { return gfx::Point(x, y); } +void TabStripGtk::UserChangedTheme(GtkThemeProperties* properties) { + ThemeProvider* theme_provider = properties->provider; + TabRendererGtk::SetSelectedTitleColor(theme_provider->GetColor( + BrowserThemeProvider::COLOR_TAB_TEXT)); + TabRendererGtk::SetUnselectedTitleColor(theme_provider->GetColor( + BrowserThemeProvider::COLOR_BACKGROUND_TAB_TEXT)); +} + //////////////////////////////////////////////////////////////////////////////// // TabStripGtk, TabStripModelObserver implementation: diff --git a/chrome/browser/gtk/tabs/tab_strip_gtk.h b/chrome/browser/gtk/tabs/tab_strip_gtk.h index 6cb6ef1..c7c3b1f 100644 --- a/chrome/browser/gtk/tabs/tab_strip_gtk.h +++ b/chrome/browser/gtk/tabs/tab_strip_gtk.h @@ -18,6 +18,7 @@ class CustomDrawButton; class DraggedTabControllerGtk; +class GtkThemeProperties; class TabStripGtk : public TabStripModelObserver, public TabGtk::TabDelegate, @@ -83,6 +84,9 @@ class TabStripGtk : public TabStripModelObserver, // allocated. gfx::Point GetTabStripOriginForWidget(GtkWidget* widget); + // Alerts us that the theme changed, and we might need to change theme images. + void UserChangedTheme(GtkThemeProperties* properties); + protected: // TabStripModelObserver implementation: virtual void TabInsertedAt(TabContents* contents, |