forked from AuroraMiddleware/gtk
Improving handling of tooltip-text property. Also check result of tooltip
2007-06-15 Mathias Hasselmann <mathias.hasselmann@gmx.de> * gtk/gtkwidget.c: Improving handling of tooltip-text property. * tests/testtooltips.c: Also check result of tooltip getters. svn path=/trunk/; revision=18143
This commit is contained in:
parent
9b604e29a2
commit
ced0bab02f
@ -1,3 +1,8 @@
|
||||
2007-06-15 Mathias Hasselmann <mathias.hasselmann@gmx.de>
|
||||
|
||||
* gtk/gtkwidget.c: Improving handling of tooltip-text property.
|
||||
* tests/testtooltips.c: Also check result of tooltip getters.
|
||||
|
||||
2007-06-15 Mathias Hasselmann <mathias.hasselmann@gmx.de>
|
||||
|
||||
* docs/reference/gtk/gtk-sections.txt, gtk/gtk.symbols,
|
||||
|
@ -2042,8 +2042,7 @@ gtk_widget_set_property (GObject *object,
|
||||
g_object_set_qdata_full (object, quark_tooltip_markup,
|
||||
tooltip_markup, g_free);
|
||||
|
||||
tmp = (tooltip_window != NULL || tooltip_markup != NULL);
|
||||
gtk_widget_set_has_tooltip (widget, tmp, FALSE);
|
||||
gtk_widget_set_has_tooltip (widget, TRUE, FALSE);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@ -2145,20 +2144,12 @@ gtk_widget_get_property (GObject *object,
|
||||
case PROP_TOOLTIP_TEXT:
|
||||
{
|
||||
gchar *escaped = g_object_get_qdata (object, quark_tooltip_markup);
|
||||
if (!escaped)
|
||||
g_value_set_string (value, NULL);
|
||||
else
|
||||
{
|
||||
gchar *text;
|
||||
gchar *text = NULL;
|
||||
|
||||
if (pango_parse_markup (escaped, -1, 0, NULL, &text, NULL, NULL))
|
||||
{
|
||||
g_value_set_string (value, text);
|
||||
g_free (text);
|
||||
}
|
||||
else
|
||||
g_value_set_string (value, NULL);
|
||||
}
|
||||
if (escaped && !pango_parse_markup (escaped, -1, 0, NULL, &text, NULL, NULL))
|
||||
g_assert (NULL == text); /* text should still be NULL in case of markup errors */
|
||||
|
||||
g_value_set_string (value, text);
|
||||
}
|
||||
break;
|
||||
case PROP_TOOLTIP_MARKUP:
|
||||
|
@ -273,6 +273,8 @@ main (int argc, char *argv[])
|
||||
GtkTextIter iter;
|
||||
GtkTextTag *tag;
|
||||
|
||||
gchar *text, *markup;
|
||||
|
||||
gtk_init (&argc, &argv);
|
||||
|
||||
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
||||
@ -289,6 +291,12 @@ main (int argc, char *argv[])
|
||||
gtk_widget_set_tooltip_text (button, "Hello, I am a static tooltip.");
|
||||
gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0);
|
||||
|
||||
text = gtk_widget_get_tooltip_text (button);
|
||||
markup = gtk_widget_get_tooltip_markup (button);
|
||||
g_assert (g_str_equal ("Hello, I am a static tooltip.", text));
|
||||
g_assert (g_str_equal ("Hello, I am a static tooltip.", markup));
|
||||
g_free (text); g_free (markup);
|
||||
|
||||
/* A check button using the query-tooltip signal */
|
||||
button = gtk_check_button_new_with_label ("I use the query-tooltip signal");
|
||||
g_object_set (button, "has-tooltip", TRUE, NULL);
|
||||
@ -302,12 +310,24 @@ main (int argc, char *argv[])
|
||||
gtk_widget_set_tooltip_text (button, "Label & and tooltip");
|
||||
gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0);
|
||||
|
||||
text = gtk_widget_get_tooltip_text (button);
|
||||
markup = gtk_widget_get_tooltip_markup (button);
|
||||
g_assert (g_str_equal ("Label & and tooltip", text));
|
||||
g_assert (g_str_equal ("Label & and tooltip", markup));
|
||||
g_free (text); g_free (markup);
|
||||
|
||||
/* A selectable label */
|
||||
button = gtk_label_new ("I am a selectable label");
|
||||
gtk_label_set_selectable (GTK_LABEL (button), TRUE);
|
||||
gtk_widget_set_tooltip_markup (button, "<b>Another</b> Label tooltip");
|
||||
gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0);
|
||||
|
||||
text = gtk_widget_get_tooltip_text (button);
|
||||
markup = gtk_widget_get_tooltip_markup (button);
|
||||
g_assert (g_str_equal ("Another Label tooltip", text));
|
||||
g_assert (g_str_equal ("<b>Another</b> Label tooltip", markup));
|
||||
g_free (text); g_free (markup);
|
||||
|
||||
/* Another one, with a custom tooltip window */
|
||||
button = gtk_check_button_new_with_label ("This one has a custom tooltip window!");
|
||||
gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0);
|
||||
|
Loading…
Reference in New Issue
Block a user