summaryrefslogtreecommitdiffstats
path: root/WebCore/platform/gtk/RenderThemeGtk.cpp
diff options
context:
space:
mode:
authorLeon Clarke <leonclarke@google.com>2010-06-03 14:33:32 +0100
committerLeon Clarke <leonclarke@google.com>2010-06-08 12:24:51 +0100
commit5af96e2c7b73ebc627c6894727826a7576d31758 (patch)
treef9d5e6f6175ccd7e3d14de9b290f08937a0d17ba /WebCore/platform/gtk/RenderThemeGtk.cpp
parent8cc4fcf4f6adcbc0e0aebfc24fbad9a4cddf2cfb (diff)
downloadexternal_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.cpp27
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)