summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2011-01-04 02:18:51 +0100
committerCarlos Garnacho <carlosg@gnome.org>2011-01-04 03:06:17 +0100
commit554e649a68e873fc552a11d44e70f99b3c226734 (patch)
tree907a4ec51d24def9db5c38f7f43c6047cebf0494 /gtk
parent41389cb4355666bcff7f52eb069b7c9e106675a7 (diff)
downloadgtk+-554e649a68e873fc552a11d44e70f99b3c226734.tar.gz
Make GtkTooltip use GtkStyleContext
Diffstat (limited to 'gtk')
-rw-r--r--gtk/gtkcssprovider.c3
-rw-r--r--gtk/gtktooltip.c60
2 files changed, 39 insertions, 24 deletions
diff --git a/gtk/gtkcssprovider.c b/gtk/gtkcssprovider.c
index dbd0fa31da..1bd7bcd5fa 100644
--- a/gtk/gtkcssprovider.c
+++ b/gtk/gtkcssprovider.c
@@ -3654,6 +3654,9 @@ gtk_css_provider_get_default (void)
".tooltip {\n"
" background-color: @tooltip_bg_color; \n"
" color: @tooltip_fg_color; \n"
+ " border-color: @tooltip_fg_color; \n"
+ " border-width: 1;\n"
+ " border-style: solid;\n"
"}\n"
"\n"
".button,\n"
diff --git a/gtk/gtktooltip.c b/gtk/gtktooltip.c
index 8c4ef8987f..f44fb2dccd 100644
--- a/gtk/gtktooltip.c
+++ b/gtk/gtktooltip.c
@@ -155,7 +155,7 @@ static void gtk_tooltip_class_init (GtkTooltipClass *klass);
static void gtk_tooltip_init (GtkTooltip *tooltip);
static void gtk_tooltip_dispose (GObject *object);
-static void gtk_tooltip_window_style_set (GtkTooltip *tooltip);
+static void gtk_tooltip_window_style_updated (GtkTooltip *tooltip);
static gboolean gtk_tooltip_paint_window (GtkTooltip *tooltip,
cairo_t *cr);
static void gtk_tooltip_window_hide (GtkWidget *widget,
@@ -182,7 +182,8 @@ gtk_tooltip_class_init (GtkTooltipClass *klass)
static void
gtk_tooltip_init (GtkTooltip *tooltip)
{
- GtkStyle *style;
+ GtkStyleContext *context;
+ GtkBorder padding, border;
tooltip->timeout_id = 0;
tooltip->browse_mode_timeout_id = 0;
@@ -207,21 +208,27 @@ gtk_tooltip_init (GtkTooltip *tooltip)
g_signal_connect (tooltip->window, "hide",
G_CALLBACK (gtk_tooltip_window_hide), tooltip);
- style = gtk_widget_get_style (tooltip->window);
+ context = gtk_widget_get_style_context (tooltip->window);
+ gtk_style_context_add_class (context, GTK_STYLE_CLASS_TOOLTIP);
+
+ gtk_style_context_get_padding (context, 0, &padding);
+ gtk_style_context_get_border (context, 0, &border);
tooltip->alignment = gtk_alignment_new (0.5, 0.5, 1.0, 1.0);
gtk_alignment_set_padding (GTK_ALIGNMENT (tooltip->alignment),
- style->ythickness, style->ythickness,
- style->xthickness, style->xthickness);
+ border.top + padding.top,
+ border.bottom + padding.bottom,
+ border.left + padding.left,
+ border.right + padding.right);
gtk_container_add (GTK_CONTAINER (tooltip->window), tooltip->alignment);
gtk_widget_show (tooltip->alignment);
- g_signal_connect_swapped (tooltip->window, "style-set",
- G_CALLBACK (gtk_tooltip_window_style_set), tooltip);
+ g_signal_connect_swapped (tooltip->window, "style-updated",
+ G_CALLBACK (gtk_tooltip_window_style_updated), tooltip);
g_signal_connect_swapped (tooltip->window, "draw",
G_CALLBACK (gtk_tooltip_paint_window), tooltip);
- tooltip->box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, style->xthickness);
+ tooltip->box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, padding.left);
gtk_container_add (GTK_CONTAINER (tooltip->alignment), tooltip->box);
gtk_widget_show (tooltip->box);
@@ -569,18 +576,22 @@ gtk_tooltip_reset (GtkTooltip *tooltip)
}
static void
-gtk_tooltip_window_style_set (GtkTooltip *tooltip)
+gtk_tooltip_window_style_updated (GtkTooltip *tooltip)
{
- GtkStyle *style;
+ GtkStyleContext *context;
+ GtkBorder padding, border;
- style = gtk_widget_get_style (tooltip->window);
+ context = gtk_widget_get_style_context (tooltip->window);
+ gtk_style_context_get_padding (context, 0, &padding);
+ gtk_style_context_get_border (context, 0, &border);
gtk_alignment_set_padding (GTK_ALIGNMENT (tooltip->alignment),
- style->ythickness, style->ythickness,
- style->xthickness, style->xthickness);
+ border.top + padding.top,
+ border.bottom + padding.bottom,
+ border.left + padding.left,
+ border.right + padding.right);
- gtk_box_set_spacing (GTK_BOX (tooltip->box),
- style->xthickness);
+ gtk_box_set_spacing (GTK_BOX (tooltip->box), padding.left);
gtk_widget_queue_draw (tooltip->window);
}
@@ -589,15 +600,16 @@ static gboolean
gtk_tooltip_paint_window (GtkTooltip *tooltip,
cairo_t *cr)
{
- gtk_paint_flat_box (gtk_widget_get_style (tooltip->window),
- cr,
- GTK_STATE_NORMAL,
- GTK_SHADOW_OUT,
- tooltip->window,
- "tooltip",
- 0, 0,
- gtk_widget_get_allocated_width (tooltip->window),
- gtk_widget_get_allocated_height (tooltip->window));
+ GtkStyleContext *context;
+
+ context = gtk_widget_get_style_context (tooltip->window);
+
+ gtk_render_background (context, cr, 0, 0,
+ gtk_widget_get_allocated_width (tooltip->window),
+ gtk_widget_get_allocated_height (tooltip->window));
+ gtk_render_frame (context, cr, 0, 0,
+ gtk_widget_get_allocated_width (tooltip->window),
+ gtk_widget_get_allocated_height (tooltip->window));
return FALSE;
}