summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2011-05-16 09:32:59 -0400
committerMatthias Clasen <mclasen@redhat.com>2011-05-16 09:32:59 -0400
commitff16b948572c1bdc301d27af41b34566d28c6610 (patch)
tree3b667bcb9bac0f02da3b20aae2d9b4fed31bbcb3
parent4587e5d2231b717dd116253a49badc1ba3aa5db5 (diff)
downloadpango-ff16b948572c1bdc301d27af41b34566d28c6610.tar.gz
Provide access to PangoLayout.n_chars
This lets us avoid a bunch of g_utf8_strlen() calls, when Pango is already maintaining this information anyway. https://bugzilla.gnome.org/show_bug.cgi?id=650208
-rw-r--r--docs/pango-sections.txt1
-rw-r--r--pango/pango-layout.c20
-rw-r--r--pango/pango-layout.h2
-rw-r--r--pango/pango.def1
4 files changed, 24 insertions, 0 deletions
diff --git a/docs/pango-sections.txt b/docs/pango-sections.txt
index d0236a24..d8f2c05e 100644
--- a/docs/pango-sections.txt
+++ b/docs/pango-sections.txt
@@ -442,6 +442,7 @@ pango_layout_context_changed
pango_layout_set_text
pango_layout_get_text
+pango_layout_get_character_count
pango_layout_set_markup
pango_layout_set_markup_with_accel
pango_layout_set_attributes
diff --git a/pango/pango-layout.c b/pango/pango-layout.c
index 0b17ea87..5952fa85 100644
--- a/pango/pango-layout.c
+++ b/pango/pango-layout.c
@@ -1096,6 +1096,26 @@ pango_layout_get_text (PangoLayout *layout)
}
/**
+ * pango_layout_get_character_count:
+ * @layout: a #PangoLayout
+ *
+ * Returns the number of Unicode characters in the
+ * the text of @layout.
+ *
+ * Return value: the number of Unicode characters
+ * in the text of @layout
+ *
+ * Since: 1.30
+ */
+gint
+pango_layout_get_character_count (PangoLayout *layout)
+{
+ g_return_val_if_fail (PANGO_IS_LAYOUT (layout), NULL);
+
+ return layout->n_chars;
+}
+
+/**
* pango_layout_set_markup:
* @layout: a #PangoLayout
* @markup: marked-up text
diff --git a/pango/pango-layout.h b/pango/pango-layout.h
index 52dc36a8..39d2e701 100644
--- a/pango/pango-layout.h
+++ b/pango/pango-layout.h
@@ -103,6 +103,8 @@ void pango_layout_set_text (PangoLayout *layout,
int length);
const char *pango_layout_get_text (PangoLayout *layout);
+gint pango_layout_get_character_count (PangoLayout *layout);
+
void pango_layout_set_markup (PangoLayout *layout,
const char *markup,
int length);
diff --git a/pango/pango.def b/pango/pango.def
index 70e1a50e..3e6a4281 100644
--- a/pango/pango.def
+++ b/pango/pango.def
@@ -233,6 +233,7 @@ EXPORTS
pango_layout_get_attributes
pango_layout_get_auto_dir
pango_layout_get_baseline
+ pango_layout_get_character_count
pango_layout_get_context
pango_layout_get_cursor_pos
pango_layout_get_ellipsize