diff options
author | Matthias Clasen <mclasen@redhat.com> | 2011-06-07 22:31:34 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2011-06-07 22:31:34 -0400 |
commit | 6176e23b30c0ee6f22b04f60f2bf6c8f3ddccde3 (patch) | |
tree | c73c06a48a0759962e2a1f25385f13594f19e88f /gtk/gtktooltip.c | |
parent | 15a4a41b7228d96ea5c6dffe8160792ac690a079 (diff) | |
download | gtk+-6176e23b30c0ee6f22b04f60f2bf6c8f3ddccde3.tar.gz |
Don't use a GtkAlignment
Diffstat (limited to 'gtk/gtktooltip.c')
-rw-r--r-- | gtk/gtktooltip.c | 98 |
1 files changed, 35 insertions, 63 deletions
diff --git a/gtk/gtktooltip.c b/gtk/gtktooltip.c index 8e70c29822..00aa6bf41d 100644 --- a/gtk/gtktooltip.c +++ b/gtk/gtktooltip.c @@ -32,7 +32,6 @@ #include "gtklabel.h" #include "gtkimage.h" #include "gtkhbox.h" -#include "gtkalignment.h" #include "gtksizerequest.h" #include "gtkwindowprivate.h" @@ -156,7 +155,6 @@ 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_updated (GtkTooltip *tooltip); static gboolean gtk_tooltip_paint_window (GtkTooltip *tooltip, cairo_t *cr); static void gtk_tooltip_window_hide (GtkWidget *widget, @@ -184,7 +182,10 @@ static void gtk_tooltip_init (GtkTooltip *tooltip) { GtkStyleContext *context; - GtkBorder padding, border; + GtkWidget *window; + GtkWidget *box; + GtkWidget *image; + GtkWidget *label; tooltip->timeout_id = 0; tooltip->browse_mode_timeout_id = 0; @@ -200,48 +201,40 @@ gtk_tooltip_init (GtkTooltip *tooltip) tooltip->last_window = NULL; - tooltip->window = g_object_ref (gtk_window_new (GTK_WINDOW_POPUP)); - gtk_window_set_type_hint (GTK_WINDOW (tooltip->window), - GDK_WINDOW_TYPE_HINT_TOOLTIP); - gtk_widget_set_app_paintable (tooltip->window, TRUE); - gtk_window_set_resizable (GTK_WINDOW (tooltip->window), FALSE); - gtk_widget_set_name (tooltip->window, "gtk-tooltip"); - g_signal_connect (tooltip->window, "hide", - G_CALLBACK (gtk_tooltip_window_hide), tooltip); + window = g_object_ref (gtk_window_new (GTK_WINDOW_POPUP)); + gtk_window_set_type_hint (GTK_WINDOW (window), GDK_WINDOW_TYPE_HINT_TOOLTIP); + gtk_widget_set_app_paintable (window, TRUE); + gtk_window_set_resizable (GTK_WINDOW (window), FALSE); + gtk_widget_set_name (window, "gtk-tooltip"); + g_signal_connect (window, "hide", + G_CALLBACK (gtk_tooltip_window_hide), tooltip); - context = gtk_widget_get_style_context (tooltip->window); + context = gtk_widget_get_style_context (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), - 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-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, padding.left); - gtk_container_add (GTK_CONTAINER (tooltip->alignment), tooltip->box); - gtk_widget_show (tooltip->box); - - tooltip->image = gtk_image_new (); - gtk_box_pack_start (GTK_BOX (tooltip->box), tooltip->image, - FALSE, FALSE, 0); - - tooltip->label = gtk_label_new (""); - gtk_label_set_line_wrap (GTK_LABEL (tooltip->label), TRUE); - gtk_box_pack_start (GTK_BOX (tooltip->box), tooltip->label, - FALSE, FALSE, 0); - + g_signal_connect_swapped (window, "draw", + G_CALLBACK (gtk_tooltip_paint_window), tooltip); + + /* FIXME: don't hardcode the padding */ + box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); + gtk_widget_set_margin_left (box, 6); + gtk_widget_set_margin_right (box, 6); + gtk_widget_set_margin_top (box, 6); + gtk_widget_set_margin_bottom (box, 6); + gtk_container_add (GTK_CONTAINER (window), box); + gtk_widget_show (box); + + image = gtk_image_new (); + gtk_box_pack_start (GTK_BOX (box), image, FALSE, FALSE, 0); + + label = gtk_label_new (""); + gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); + gtk_box_pack_start (GTK_BOX (box), label, FALSE, FALSE, 0); + + tooltip->window = window; + tooltip->box = box; + tooltip->image = image; + tooltip->label = label; tooltip->custom_widget = NULL; } @@ -576,27 +569,6 @@ gtk_tooltip_reset (GtkTooltip *tooltip) tooltip->custom_was_reset = FALSE; } -static void -gtk_tooltip_window_style_updated (GtkTooltip *tooltip) -{ - GtkStyleContext *context; - GtkBorder padding, border; - - 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), - border.top + padding.top, - border.bottom + padding.bottom, - border.left + padding.left, - border.right + padding.right); - - gtk_box_set_spacing (GTK_BOX (tooltip->box), padding.left); - - gtk_widget_queue_draw (tooltip->window); -} - static gboolean gtk_tooltip_paint_window (GtkTooltip *tooltip, cairo_t *cr) |