diff options
author | Leon Clarke <leonclarke@google.com> | 2010-06-03 14:33:32 +0100 |
---|---|---|
committer | Leon Clarke <leonclarke@google.com> | 2010-06-08 12:24:51 +0100 |
commit | 5af96e2c7b73ebc627c6894727826a7576d31758 (patch) | |
tree | f9d5e6f6175ccd7e3d14de9b290f08937a0d17ba /WebCore/platform/gtk/RenderThemeGtk.cpp | |
parent | 8cc4fcf4f6adcbc0e0aebfc24fbad9a4cddf2cfb (diff) | |
download | external_webkit-5af96e2c7b73ebc627c6894727826a7576d31758.zip external_webkit-5af96e2c7b73ebc627c6894727826a7576d31758.tar.gz external_webkit-5af96e2c7b73ebc627c6894727826a7576d31758.tar.bz2 |
Merge webkit.org at r60469 : Initial merge by git.
Change-Id: I66a0047aa2af802f66bb0c7f2a8b02247a596234
Diffstat (limited to 'WebCore/platform/gtk/RenderThemeGtk.cpp')
-rw-r--r-- | WebCore/platform/gtk/RenderThemeGtk.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/WebCore/platform/gtk/RenderThemeGtk.cpp b/WebCore/platform/gtk/RenderThemeGtk.cpp index aec50f6..c572e77 100644 --- a/WebCore/platform/gtk/RenderThemeGtk.cpp +++ b/WebCore/platform/gtk/RenderThemeGtk.cpp @@ -25,6 +25,7 @@ #include "RenderThemeGtk.h" #include "AffineTransform.h" +#include "CSSValueKeywords.h" #include "GOwnPtr.h" #include "Gradient.h" #include "GraphicsContext.h" @@ -126,6 +127,7 @@ static int mozGtkRefCount = 0; RenderThemeGtk::RenderThemeGtk() : m_gtkWindow(0) , m_gtkContainer(0) + , m_gtkButton(0) , m_gtkEntry(0) , m_gtkTreeView(0) , m_panelColor(Color::white) @@ -605,6 +607,18 @@ void RenderThemeGtk::systemFont(int, FontDescription&) const notImplemented(); } +Color RenderThemeGtk::systemColor(int cssValueId) const +{ + switch (cssValueId) { + case CSSValueButtontext: + return Color(gtkButton()->style->fg[GTK_STATE_NORMAL]); + case CSSValueCaptiontext: + return Color(gtkEntry()->style->fg[GTK_STATE_NORMAL]); + default: + return RenderTheme::systemColor(cssValueId); + } +} + static void gtkStyleSetCallback(GtkWidget* widget, GtkStyle* previous, RenderTheme* renderTheme) { // FIXME: Make sure this function doesn't get called many times for a single GTK+ style change signal. @@ -625,6 +639,19 @@ GtkContainer* RenderThemeGtk::gtkContainer() const return m_gtkContainer; } +GtkWidget* RenderThemeGtk::gtkButton() const +{ + if (m_gtkButton) + return m_gtkButton; + + m_gtkButton = gtk_button_new(); + g_signal_connect(m_gtkButton, "style-set", G_CALLBACK(gtkStyleSetCallback), const_cast<RenderThemeGtk*>(this)); + gtk_container_add(gtkContainer(), m_gtkButton); + gtk_widget_realize(m_gtkButton); + + return m_gtkButton; +} + GtkWidget* RenderThemeGtk::gtkEntry() const { if (m_gtkEntry) |