summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrien Plazas <kekun.plazas@laposte.net>2018-04-23 11:06:17 +0200
committerAdrien Plazas <kekun.plazas@laposte.net>2018-06-29 23:02:21 +0200
commit504eb891559e7cca70b4bf4f3b308ce9829a00d4 (patch)
tree3dac3dfeae4c0cf4110467c03627c14c8972dd2a
parentb75b5e900a2aec70670a1cdca6ac07dd8eb8d7cf (diff)
downloadgtk+-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.c36
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