diff options
author | Adrien Plazas <kekun.plazas@laposte.net> | 2018-04-23 11:06:17 +0200 |
---|---|---|
committer | Adrien Plazas <kekun.plazas@laposte.net> | 2018-06-29 23:02:21 +0200 |
commit | 504eb891559e7cca70b4bf4f3b308ce9829a00d4 (patch) | |
tree | 3dac3dfeae4c0cf4110467c03627c14c8972dd2a | |
parent | b75b5e900a2aec70670a1cdca6ac07dd8eb8d7cf (diff) | |
download | gtk+-504eb891559e7cca70b4bf4f3b308ce9829a00d4.tar.gz |
ModelButton: Add 'use-markup' property
Binds this property to the button's label, allowing a model button to
have text with markup.
This will be convenient for buttons like 'Online Accounts <sup>↗</sup>'.
-rw-r--r-- | gtk/gtkmodelbutton.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/gtk/gtkmodelbutton.c b/gtk/gtkmodelbutton.c index a38e51b80b..1ed8cce15c 100644 --- a/gtk/gtkmodelbutton.c +++ b/gtk/gtkmodelbutton.c @@ -174,6 +174,7 @@ enum PROP_ROLE, PROP_ICON, PROP_TEXT, + PROP_USE_MARKUP, PROP_ACTIVE, PROP_MENU_NAME, PROP_INVERTED, @@ -397,6 +398,19 @@ gtk_model_button_set_text (GtkModelButton *button, } static void +gtk_model_button_set_use_markup (GtkModelButton *button, + gboolean use_markup) +{ + use_markup = !!use_markup; + if (gtk_label_get_use_markup (GTK_LABEL (button->label)) == use_markup) + return; + + gtk_label_set_use_markup (GTK_LABEL (button->label), use_markup); + update_visibility (button); + g_object_notify_by_pspec (G_OBJECT (button), properties[PROP_USE_MARKUP]); +} + +static void gtk_model_button_set_active (GtkModelButton *button, gboolean active) { @@ -518,6 +532,10 @@ gtk_model_button_get_property (GObject *object, g_value_set_string (value, gtk_label_get_text (GTK_LABEL (button->label))); break; + case PROP_USE_MARKUP: + g_value_set_boolean (value, gtk_label_get_use_markup (GTK_LABEL (button->label))); + break; + case PROP_ACTIVE: g_value_set_boolean (value, button->active); break; @@ -566,6 +584,10 @@ gtk_model_button_set_property (GObject *object, gtk_model_button_set_text (button, g_value_get_string (value)); break; + case PROP_USE_MARKUP: + gtk_model_button_set_use_markup (button, g_value_get_boolean (value)); + break; + case PROP_ACTIVE: gtk_model_button_set_active (button, g_value_get_boolean (value)); break; @@ -1139,6 +1161,20 @@ gtk_model_button_class_init (GtkModelButtonClass *class) G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS); /** + * GtkModelButton:use-markup: + * + * If %TRUE, XML tags in the text of the button are interpreted as by + * pango_parse_markup() to format the enclosed spans of text. If %FALSE, the + * text will be displayed verbatim. + */ + properties[PROP_USE_MARKUP] = + g_param_spec_boolean ("use-markup", + P_("Use markup"), + P_("The text of the button includes XML markup. See pango_parse_markup()"), + FALSE, + G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS); + + /** * GtkModelButton:active: * * The state of the button. This is reflecting the state of the associated |