Commit 1b1a9d34 authored by erg@google.com's avatar erg@google.com

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
parent 32545634
...@@ -556,7 +556,7 @@ std::string BrowserThemeProvider::AlignmentToString(int alignment) { ...@@ -556,7 +556,7 @@ std::string BrowserThemeProvider::AlignmentToString(int alignment) {
} }
void BrowserThemeProvider::SetColor(const char* key, const SkColor& color) { 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) { void BrowserThemeProvider::SetTint(const char* key, const skia::HSL& tint) {
......
...@@ -746,6 +746,7 @@ void BrowserWindowGtk::UserChangedTheme() { ...@@ -746,6 +746,7 @@ void BrowserWindowGtk::UserChangedTheme() {
GtkThemeProperties properties(browser_->profile()); GtkThemeProperties properties(browser_->profile());
bookmark_bar_->UserChangedTheme(&properties); bookmark_bar_->UserChangedTheme(&properties);
status_bubble_->UserChangedTheme(&properties); status_bubble_->UserChangedTheme(&properties);
tabstrip_->UserChangedTheme(&properties);
} }
int BrowserWindowGtk::GetExtraRenderViewHeight() const { int BrowserWindowGtk::GetExtraRenderViewHeight() const {
......
...@@ -29,8 +29,6 @@ const int kTitleCloseButtonSpacing = 5; ...@@ -29,8 +29,6 @@ const int kTitleCloseButtonSpacing = 5;
const int kStandardTitleWidth = 175; const int kStandardTitleWidth = 175;
const int kFavIconSize = 16; const int kFavIconSize = 16;
const int kDropShadowOffset = 2; const int kDropShadowOffset = 2;
const int kSelectedTitleColor = SK_ColorBLACK;
const int kUnselectedTitleColor = SkColorSetRGB(64, 64, 64);
// How long the hover state takes. // How long the hover state takes.
const int kHoverDurationMs = 90; const int kHoverDurationMs = 90;
...@@ -95,6 +93,8 @@ gfx::Font* TabRendererGtk::title_font_ = NULL; ...@@ -95,6 +93,8 @@ gfx::Font* TabRendererGtk::title_font_ = NULL;
int TabRendererGtk::title_font_height_ = 0; int TabRendererGtk::title_font_height_ = 0;
int TabRendererGtk::close_button_width_ = 0; int TabRendererGtk::close_button_width_ = 0;
int TabRendererGtk::close_button_height_ = 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: // TabRendererGtk::LoadingAnimation, public:
...@@ -302,6 +302,16 @@ void TabRendererGtk::LoadTabImages() { ...@@ -302,6 +302,16 @@ void TabRendererGtk::LoadTabImages() {
close_button_height_ = rb.GetBitmapNamed(IDR_TAB_CLOSE)->height(); 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) { void TabRendererGtk::SetBounds(const gfx::Rect& bounds) {
gtk_widget_set_size_request(tab_.get(), bounds.width(), bounds.height()); gtk_widget_set_size_request(tab_.get(), bounds.width(), bounds.height());
bounds_ = bounds; bounds_ = bounds;
...@@ -421,8 +431,8 @@ void TabRendererGtk::Paint(gfx::Canvas* canvas) { ...@@ -421,8 +431,8 @@ void TabRendererGtk::Paint(gfx::Canvas* canvas) {
Browser::FormatTitleForDisplay(&title); Browser::FormatTitleForDisplay(&title);
} }
SkColor title_color = IsSelected() ? kSelectedTitleColor SkColor title_color = IsSelected() ? selected_title_color_
: kUnselectedTitleColor; : unselected_title_color_;
canvas->DrawStringInt(title, *title_font_, title_color, title_bounds_.x(), canvas->DrawStringInt(title, *title_font_, title_color, title_bounds_.x(),
title_bounds_.y(), title_bounds_.width(), title_bounds_.y(), title_bounds_.width(),
title_bounds_.height()); title_bounds_.height());
......
...@@ -121,6 +121,10 @@ class TabRendererGtk : public AnimationDelegate { ...@@ -121,6 +121,10 @@ class TabRendererGtk : public AnimationDelegate {
// Loads the images to be used for the tab background. // Loads the images to be used for the tab background.
static void LoadTabImages(); 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. // Returns the bounds of the Tab.
int x() const { return bounds_.x(); } int x() const { return bounds_.x(); }
int y() const { return bounds_.y(); } int y() const { return bounds_.y(); }
...@@ -258,6 +262,9 @@ class TabRendererGtk : public AnimationDelegate { ...@@ -258,6 +262,9 @@ class TabRendererGtk : public AnimationDelegate {
static int close_button_width_; static int close_button_width_;
static int close_button_height_; static int close_button_height_;
static SkColor selected_title_color_;
static SkColor unselected_title_color_;
// The GtkDrawingArea we draw the tab on. // The GtkDrawingArea we draw the tab on.
OwnedWidgetGtk tab_; OwnedWidgetGtk tab_;
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
#include "chrome/browser/browser_theme_provider.h" #include "chrome/browser/browser_theme_provider.h"
#include "chrome/browser/gtk/custom_button.h" #include "chrome/browser/gtk/custom_button.h"
#include "chrome/browser/gtk/gtk_dnd_util.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/gtk/tabs/dragged_tab_controller_gtk.h"
#include "chrome/browser/profile.h" #include "chrome/browser/profile.h"
#include "chrome/browser/tab_contents/tab_contents.h" #include "chrome/browser/tab_contents/tab_contents.h"
...@@ -442,6 +443,11 @@ TabStripGtk::TabStripGtk(TabStripModel* model) ...@@ -442,6 +443,11 @@ TabStripGtk::TabStripGtk(TabStripModel* model)
model_(model), model_(model),
resize_layout_factory_(this), resize_layout_factory_(this),
added_as_message_loop_observer_(false) { 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() { TabStripGtk::~TabStripGtk() {
...@@ -633,6 +639,14 @@ gfx::Point TabStripGtk::GetTabStripOriginForWidget(GtkWidget* target) { ...@@ -633,6 +639,14 @@ gfx::Point TabStripGtk::GetTabStripOriginForWidget(GtkWidget* target) {
return gfx::Point(x, y); 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: // TabStripGtk, TabStripModelObserver implementation:
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
class CustomDrawButton; class CustomDrawButton;
class DraggedTabControllerGtk; class DraggedTabControllerGtk;
class GtkThemeProperties;
class TabStripGtk : public TabStripModelObserver, class TabStripGtk : public TabStripModelObserver,
public TabGtk::TabDelegate, public TabGtk::TabDelegate,
...@@ -83,6 +84,9 @@ class TabStripGtk : public TabStripModelObserver, ...@@ -83,6 +84,9 @@ class TabStripGtk : public TabStripModelObserver,
// allocated. // allocated.
gfx::Point GetTabStripOriginForWidget(GtkWidget* widget); gfx::Point GetTabStripOriginForWidget(GtkWidget* widget);
// Alerts us that the theme changed, and we might need to change theme images.
void UserChangedTheme(GtkThemeProperties* properties);
protected: protected:
// TabStripModelObserver implementation: // TabStripModelObserver implementation:
virtual void TabInsertedAt(TabContents* contents, virtual void TabInsertedAt(TabContents* contents,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment