summaryrefslogtreecommitdiff
path: root/gtk/gtktexttag.c
diff options
context:
space:
mode:
Diffstat (limited to 'gtk/gtktexttag.c')
-rw-r--r--gtk/gtktexttag.c82
1 files changed, 82 insertions, 0 deletions
diff --git a/gtk/gtktexttag.c b/gtk/gtktexttag.c
index f998ad9a40..8b252fb725 100644
--- a/gtk/gtktexttag.c
+++ b/gtk/gtktexttag.c
@@ -135,6 +135,8 @@ enum {
PROP_SHOW_SPACES,
PROP_INSERT_HYPHENS,
PROP_TEXT_TRANSFORM,
+ PROP_WORD,
+ PROP_SENTENCE,
/* Behavior args */
PROP_ACCUMULATIVE_MARGIN,
@@ -178,6 +180,8 @@ enum {
PROP_SHOW_SPACES_SET,
PROP_INSERT_HYPHENS_SET,
PROP_TEXT_TRANSFORM_SET,
+ PROP_WORD_SET,
+ PROP_SENTENCE_SET,
LAST_ARG
};
@@ -875,6 +879,40 @@ gtk_text_tag_class_init (GtkTextTagClass *klass)
GTK_PARAM_READWRITE));
/**
+ * GtkTextTag:word:
+ *
+ * Whether this tag represents a single word.
+ *
+ * This affects line breaks and cursor movement.
+ *
+ * Since: 4.6
+ */
+ g_object_class_install_property (object_class,
+ PROP_WORD,
+ g_param_spec_boolean ("word",
+ P_("Word"),
+ P_("Whether this is a word."),
+ FALSE,
+ GTK_PARAM_READWRITE));
+
+ /**
+ * GtkTextTag:sentence:
+ *
+ * Whether this tag represents a single sentence.
+ *
+ * This affects cursor movement.
+ *
+ * Since: 4.6
+ */
+ g_object_class_install_property (object_class,
+ PROP_SENTENCE,
+ g_param_spec_boolean ("sentence",
+ P_("Sentence"),
+ P_("Whether this is a sentence."),
+ FALSE,
+ GTK_PARAM_READWRITE));
+
+ /**
* GtkTextTag:accumulative-margin:
*
* Whether the margins accumulate or override each other.
@@ -1056,6 +1094,14 @@ gtk_text_tag_class_init (GtkTextTagClass *klass)
ADD_SET_PROP ("text-transform-set", PROP_TEXT_TRANSFORM_SET,
P_("Text transform set"),
P_("Whether this tag affects text transformation"));
+
+ ADD_SET_PROP ("word-set", PROP_WORD_SET,
+ P_("Word set"),
+ P_("Whether this tag represents a single word"));
+
+ ADD_SET_PROP ("sentence-set", PROP_WORD_SET,
+ P_("Sentence set"),
+ P_("Whether this tag represents a single sentence"));
}
static void
@@ -1811,6 +1857,18 @@ gtk_text_tag_set_property (GObject *object,
g_object_notify (object, "text-transform-set");
break;
+ case PROP_WORD:
+ priv->word_set = TRUE;
+ priv->values->word = g_value_get_boolean (value);
+ g_object_notify (object, "word-set");
+ break;
+
+ case PROP_SENTENCE:
+ priv->sentence_set = TRUE;
+ priv->values->sentence = g_value_get_boolean (value);
+ g_object_notify (object, "sentence-set");
+ break;
+
case PROP_ACCUMULATIVE_MARGIN:
priv->accumulative_margin = g_value_get_boolean (value);
g_object_notify (object, "accumulative-margin");
@@ -1979,6 +2037,14 @@ gtk_text_tag_set_property (GObject *object,
priv->text_transform_set = g_value_get_boolean (value);
break;
+ case PROP_WORD_SET:
+ priv->word_set = g_value_get_boolean (value);
+ break;
+
+ case PROP_SENTENCE_SET:
+ priv->sentence_set = g_value_get_boolean (value);
+ break;
+
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -2195,6 +2261,14 @@ gtk_text_tag_get_property (GObject *object,
g_value_set_enum (value, priv->values->text_transform);
break;
+ case PROP_WORD:
+ g_value_set_boolean (value, priv->values->word);
+ break;
+
+ case PROP_SENTENCE:
+ g_value_set_boolean (value, priv->values->sentence);
+ break;
+
case PROP_ACCUMULATIVE_MARGIN:
g_value_set_boolean (value, priv->accumulative_margin);
break;
@@ -2341,6 +2415,14 @@ gtk_text_tag_get_property (GObject *object,
g_value_set_boolean (value, priv->text_transform_set);
break;
+ case PROP_WORD_SET:
+ g_value_set_boolean (value, priv->word_set);
+ break;
+
+ case PROP_SENTENCE_SET:
+ g_value_set_boolean (value, priv->sentence_set);
+ break;
+
case PROP_BACKGROUND:
case PROP_FOREGROUND:
case PROP_PARAGRAPH_BACKGROUND: