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) {
}
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) {
......
......@@ -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 {
......
......@@ -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());
......
......@@ -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_;
......
......@@ -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:
......
......@@ -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,
......
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