diff options
author | Matthias Clasen <mclasen@redhat.com> | 2021-08-20 20:06:38 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2021-08-22 15:57:50 -0400 |
commit | 417b3f9c6b849a833c2ff71890ba15b25b5b07b7 (patch) | |
tree | fe7bf27c999bf104fd7fe093151ab815b423e2da /gtk/gtktexttag.c | |
parent | 2d84a1c63ef7d8d24b1476b4b90afa3acb1171d7 (diff) | |
download | gtk+-417b3f9c6b849a833c2ff71890ba15b25b5b07b7.tar.gz |
Implement text transforms for GtkTextView
Add a property to GtkTextTag and do all the
legwork to translate it to the Pango attribute.
Diffstat (limited to 'gtk/gtktexttag.c')
-rw-r--r-- | gtk/gtktexttag.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/gtk/gtktexttag.c b/gtk/gtktexttag.c index cebc1ddbe4..f998ad9a40 100644 --- a/gtk/gtktexttag.c +++ b/gtk/gtktexttag.c @@ -134,6 +134,7 @@ enum { PROP_ALLOW_BREAKS, PROP_SHOW_SPACES, PROP_INSERT_HYPHENS, + PROP_TEXT_TRANSFORM, /* Behavior args */ PROP_ACCUMULATIVE_MARGIN, @@ -176,6 +177,7 @@ enum { PROP_ALLOW_BREAKS_SET, PROP_SHOW_SPACES_SET, PROP_INSERT_HYPHENS_SET, + PROP_TEXT_TRANSFORM_SET, LAST_ARG }; @@ -857,6 +859,22 @@ gtk_text_tag_class_init (GtkTextTagClass *klass) GTK_PARAM_READWRITE)); /** + * GtkTextTag:text-transform: + * + * How to transform the text for display. + * + * Since: 4.6 + */ + g_object_class_install_property (object_class, + PROP_TEXT_TRANSFORM, + g_param_spec_enum ("text-transform", + P_("Text Transform"), + P_("Whether to transform text for display."), + PANGO_TYPE_TEXT_TRANSFORM, + PANGO_TEXT_TRANSFORM_NONE, + GTK_PARAM_READWRITE)); + + /** * GtkTextTag:accumulative-margin: * * Whether the margins accumulate or override each other. @@ -1034,6 +1052,10 @@ gtk_text_tag_class_init (GtkTextTagClass *klass) ADD_SET_PROP ("insert-hyphens-set", PROP_INSERT_HYPHENS_SET, P_("Insert hyphens set"), P_("Whether this tag affects insertion of hyphens")); + + ADD_SET_PROP ("text-transform-set", PROP_TEXT_TRANSFORM_SET, + P_("Text transform set"), + P_("Whether this tag affects text transformation")); } static void @@ -1783,6 +1805,12 @@ gtk_text_tag_set_property (GObject *object, g_object_notify (object, "insert-hyphens-set"); break; + case PROP_TEXT_TRANSFORM: + priv->text_transform_set = TRUE; + priv->values->text_transform = g_value_get_enum (value); + g_object_notify (object, "text-transform-set"); + break; + case PROP_ACCUMULATIVE_MARGIN: priv->accumulative_margin = g_value_get_boolean (value); g_object_notify (object, "accumulative-margin"); @@ -1947,6 +1975,10 @@ gtk_text_tag_set_property (GObject *object, priv->insert_hyphens_set = g_value_get_boolean (value); break; + case PROP_TEXT_TRANSFORM_SET: + priv->text_transform_set = g_value_get_boolean (value); + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -2159,6 +2191,10 @@ gtk_text_tag_get_property (GObject *object, g_value_set_boolean (value, !priv->values->no_hyphens); break; + case PROP_TEXT_TRANSFORM: + g_value_set_enum (value, priv->values->text_transform); + break; + case PROP_ACCUMULATIVE_MARGIN: g_value_set_boolean (value, priv->accumulative_margin); break; @@ -2301,6 +2337,10 @@ gtk_text_tag_get_property (GObject *object, g_value_set_boolean (value, priv->insert_hyphens_set); break; + case PROP_TEXT_TRANSFORM_SET: + g_value_set_boolean (value, priv->text_transform_set); + break; + case PROP_BACKGROUND: case PROP_FOREGROUND: case PROP_PARAGRAPH_BACKGROUND: |