summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorerg@google.com <erg@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-08 00:10:41 +0000
committererg@google.com <erg@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-08 00:10:41 +0000
commit1b1a9d3489b7446b2087957b7d31f03a674cff46 (patch)
tree59917478a102271a0e463000e9c5a5e616090e97 /chrome
parent3254563421b09469b9668ff69562d098a8661d23 (diff)
downloadchromium_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.cc2
-rw-r--r--chrome/browser/gtk/browser_window_gtk.cc1
-rwxr-xr-xchrome/browser/gtk/tabs/tab_renderer_gtk.cc18
-rw-r--r--chrome/browser/gtk/tabs/tab_renderer_gtk.h7
-rwxr-xr-xchrome/browser/gtk/tabs/tab_strip_gtk.cc14
-rw-r--r--chrome/browser/gtk/tabs/tab_strip_gtk.h4
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,