summaryrefslogtreecommitdiff
path: root/pango/pango-line-iter.c
diff options
context:
space:
mode:
Diffstat (limited to 'pango/pango-line-iter.c')
-rw-r--r--pango/pango-line-iter.c336
1 files changed, 168 insertions, 168 deletions
diff --git a/pango/pango-line-iter.c b/pango/pango-line-iter.c
index e4c66051..8139e4ef 100644
--- a/pango/pango-line-iter.c
+++ b/pango/pango-line-iter.c
@@ -6,31 +6,31 @@
#include "pango-run-private.h"
/**
- * PangoLineIter:
+ * Pango2LineIter:
*
- * A `PangoLineIter` can be used to iterate over the visual
- * extents of a `PangoLayout` or `PangoLines`.
+ * A `Pango2LineIter` can be used to iterate over the visual
+ * extents of a `Pango2Layout` or `Pango2Lines`.
*
- * To obtain a `PangoLineIter`, use [method@Pango.Layout.get_iter]
- * or [method@Pango.Lines.get_iter].
+ * To obtain a `Pango2LineIter`, use [method@Pango2.Layout.get_iter]
+ * or [method@Pango2.Lines.get_iter].
*
- * The `PangoLineIter` structure is opaque, and has no user-visible
+ * The `Pango2LineIter` structure is opaque, and has no user-visible
* fields.
*/
-/* {{{ PangoLineIter implementation */
+/* {{{ Pango2LineIter implementation */
-struct _PangoLineIter
+struct _Pango2LineIter
{
- PangoLines *lines;
+ Pango2Lines *lines;
guint serial;
int line_no;
Position line_pos;
- PangoLine *line;
+ Pango2Line *line;
GSList *run_link;
- PangoRun *run;
+ Pango2Run *run;
int index;
/* run handling */
@@ -49,8 +49,8 @@ struct _PangoLineIter
int character_position;
};
-G_DEFINE_BOXED_TYPE (PangoLineIter, pango_line_iter,
- pango_line_iter_copy, pango_line_iter_free);
+G_DEFINE_BOXED_TYPE (Pango2LineIter, pango2_line_iter,
+ pango2_line_iter_copy, pango2_line_iter_free);
/* }}} */
@@ -59,18 +59,18 @@ G_DEFINE_BOXED_TYPE (PangoLineIter, pango_line_iter,
#define ITER_IS_VALID(iter) ((iter)->serial == (iter)->lines->serial)
static gboolean
-line_is_terminated (PangoLineIter *iter)
+line_is_terminated (Pango2LineIter *iter)
{
- if (iter->line_no + 1 < pango_lines_get_line_count (iter->lines))
- return pango_line_is_paragraph_end (iter->line);
+ if (iter->line_no + 1 < pango2_lines_get_line_count (iter->lines))
+ return pango2_line_is_paragraph_end (iter->line);
return FALSE;
}
static int
-next_cluster_start (PangoGlyphString *glyphs,
- int cluster_start)
+next_cluster_start (Pango2GlyphString *glyphs,
+ int cluster_start)
{
int i;
@@ -87,8 +87,8 @@ next_cluster_start (PangoGlyphString *glyphs,
}
static int
-cluster_width (PangoGlyphString *glyphs,
- int cluster_start)
+cluster_width (Pango2GlyphString *glyphs,
+ int cluster_start)
{
int i;
int width;
@@ -111,15 +111,15 @@ cluster_width (PangoGlyphString *glyphs,
* is the byte index of the cluster start relative to the run.
*/
static void
-update_cluster (PangoLineIter *iter,
- int cluster_start_index)
+update_cluster (Pango2LineIter *iter,
+ int cluster_start_index)
{
- PangoGlyphItem *glyph_item;
+ Pango2GlyphItem *glyph_item;
char *cluster_text;
int cluster_length;
- PangoRun *run = iter->run_link->data;
+ Pango2Run *run = iter->run_link->data;
- glyph_item = pango_run_get_glyph_item (run);
+ glyph_item = pango2_run_get_glyph_item (run);
iter->character_position = 0;
@@ -165,14 +165,14 @@ update_cluster (PangoLineIter *iter,
* is considered non-empty.
*/
static gboolean
-next_nonempty_line (PangoLineIter *iter,
- gboolean include_terminators)
+next_nonempty_line (Pango2LineIter *iter,
+ gboolean include_terminators)
{
gboolean result;
while (TRUE)
{
- result = pango_line_iter_next_line (iter);
+ result = pango2_line_iter_next_line (iter);
if (!result)
break;
@@ -191,14 +191,14 @@ next_nonempty_line (PangoLineIter *iter,
* paragraph separator is considered non-empty.
*/
static gboolean
-next_nonempty_run (PangoLineIter *iter,
- gboolean include_terminators)
+next_nonempty_run (Pango2LineIter *iter,
+ gboolean include_terminators)
{
gboolean result;
while (TRUE)
{
- result = pango_line_iter_next_run (iter);
+ result = pango2_line_iter_next_run (iter);
if (!result)
break;
@@ -212,22 +212,22 @@ next_nonempty_run (PangoLineIter *iter,
return result;
}
-/* Like pango_layout_next_cluster(), but if @include_terminators
+/* Like pango2_layout_next_cluster(), but if @include_terminators
* is set, includes the fake runs/clusters for empty lines.
* (But not positions introduced by line wrapping).
*/
static gboolean
-next_cluster_internal (PangoLineIter *iter,
- gboolean include_terminators)
+next_cluster_internal (Pango2LineIter *iter,
+ gboolean include_terminators)
{
- PangoGlyphItem *glyph_item;
- PangoRun *run;
+ Pango2GlyphItem *glyph_item;
+ Pango2Run *run;
if (iter->run_link == NULL)
return next_nonempty_line (iter, include_terminators);
run = iter->run_link->data;
- glyph_item = pango_run_get_glyph_item (run);
+ glyph_item = pango2_run_get_glyph_item (run);
if (iter->next_cluster_glyph == glyph_item->glyphs->num_glyphs)
{
@@ -244,19 +244,19 @@ next_cluster_internal (PangoLineIter *iter,
}
static void
-update_run (PangoLineIter *iter,
- int start_index)
+update_run (Pango2LineIter *iter,
+ int start_index)
{
if (iter->run)
{
- PangoGlyphItem *glyph_item = pango_run_get_glyph_item (iter->run);
+ Pango2GlyphItem *glyph_item = pango2_run_get_glyph_item (iter->run);
if (iter->run_link == iter->line->runs)
iter->run_x = 0;
else
iter->run_x += iter->run_width + iter->end_x_offset + glyph_item->start_x_offset;
- iter->run_width = pango_glyph_string_get_width (glyph_item->glyphs);
+ iter->run_width = pango2_glyph_string_get_width (glyph_item->glyphs);
iter->end_x_offset = glyph_item->end_x_offset;
iter->ltr = (glyph_item->item->analysis.level % 2) == 0;
iter->cluster_start = 0;
@@ -281,9 +281,9 @@ update_run (PangoLineIter *iter,
}
static inline void
-offset_line (PangoLineIter *iter,
- PangoRectangle *ink_rect,
- PangoRectangle *logical_rect)
+offset_line (Pango2LineIter *iter,
+ Pango2Rectangle *ink_rect,
+ Pango2Rectangle *logical_rect)
{
if (ink_rect)
{
@@ -298,9 +298,9 @@ offset_line (PangoLineIter *iter,
}
static inline void
-offset_run (PangoLineIter *iter,
- PangoRectangle *ink_rect,
- PangoRectangle *logical_rect)
+offset_run (Pango2LineIter *iter,
+ Pango2Rectangle *ink_rect,
+ Pango2Rectangle *logical_rect)
{
if (ink_rect)
ink_rect->x += iter->run_x;
@@ -309,20 +309,20 @@ offset_run (PangoLineIter *iter,
}
/* }}} */
-/* {{{ Private API */
+/* {{{ Private API */
-PangoLineIter *
-pango_line_iter_new (PangoLines *lines)
+Pango2LineIter *
+pango2_line_iter_new (Pango2Lines *lines)
{
- PangoLineIter *iter;
+ Pango2LineIter *iter;
int run_start_index;
- g_return_val_if_fail (PANGO_IS_LINES (lines), NULL);
+ g_return_val_if_fail (PANGO2_IS_LINES (lines), NULL);
- iter = g_new0 (PangoLineIter, 1);
+ iter = g_new0 (Pango2LineIter, 1);
iter->lines = g_object_ref (lines);
- iter->serial = pango_lines_get_serial (lines);
+ iter->serial = pango2_lines_get_serial (lines);
iter->line_no = 0;
iter->line = g_ptr_array_index (lines->lines, 0);
@@ -331,7 +331,7 @@ pango_line_iter_new (PangoLines *lines)
if (iter->run_link)
{
iter->run = iter->run_link->data;
- run_start_index = pango_run_get_glyph_item (iter->run)->item->offset;
+ run_start_index = pango2_run_get_glyph_item (iter->run)->item->offset;
}
else
{
@@ -348,36 +348,36 @@ pango_line_iter_new (PangoLines *lines)
/* {{{ Public API */
/**
- * pango_line_iter_copy:
- * @iter: (nullable): a `PangoLineIter`
+ * pango2_line_iter_copy:
+ * @iter: (nullable): a `Pango2LineIter`
*
- * Copies a `PangoLineIter`.
+ * Copies a `Pango2LineIter`.
*
- * Return value: (nullable): the newly allocated `PangoLineIter`
+ * Return value: (nullable): the newly allocated `Pango2LineIter`
*/
-PangoLineIter *
-pango_line_iter_copy (PangoLineIter *iter)
+Pango2LineIter *
+pango2_line_iter_copy (Pango2LineIter *iter)
{
- PangoLineIter *copy;
+ Pango2LineIter *copy;
if (iter == NULL)
return NULL;
- copy = g_new0 (PangoLineIter, 1);
- memcpy (iter, copy, sizeof (PangoLineIter));
+ copy = g_new0 (Pango2LineIter, 1);
+ memcpy (iter, copy, sizeof (Pango2LineIter));
g_object_ref (copy->lines);
return copy;
}
/**
- * pango_line_iter_free:
- * @iter: (nullable): a `PangoLineIter`
+ * pango2_line_iter_free:
+ * @iter: (nullable): a `Pango2LineIter`
*
* Frees an iterator that's no longer in use.
*/
void
-pango_line_iter_free (PangoLineIter *iter)
+pango2_line_iter_free (Pango2LineIter *iter)
{
if (iter == NULL)
return;
@@ -387,29 +387,29 @@ pango_line_iter_free (PangoLineIter *iter)
}
/**
- * pango_line_iter_get_lines:
- * @iter: a `PangoLineIter`
+ * pango2_line_iter_get_lines:
+ * @iter: a `Pango2LineIter`
*
- * Gets the `PangoLines` object associated with a `PangoLineIter`.
+ * Gets the `Pango2Lines` object associated with a `Pango2LineIter`.
*
* Return value: (transfer none): the lines associated with @iter
*/
-PangoLines *
-pango_line_iter_get_lines (PangoLineIter *iter)
+Pango2Lines *
+pango2_line_iter_get_lines (Pango2LineIter *iter)
{
return iter->lines;
}
/**
- * pango_line_iter_get_line:
- * @iter: a `PangoLineIter`
+ * pango2_line_iter_get_line:
+ * @iter: a `Pango2LineIter`
*
* Gets the current line.
*
* Return value: (transfer none): the current line
*/
-PangoLine *
-pango_line_iter_get_line (PangoLineIter *iter)
+Pango2Line *
+pango2_line_iter_get_line (Pango2LineIter *iter)
{
g_return_val_if_fail (ITER_IS_VALID (iter), NULL);
@@ -417,24 +417,24 @@ pango_line_iter_get_line (PangoLineIter *iter)
}
/**
- * pango_line_iter_at_last_line:
- * @iter: a `PangoLineIter`
+ * pango2_line_iter_at_last_line:
+ * @iter: a `Pango2LineIter`
*
* Determines whether @iter is on the last line.
*
* Return value: %TRUE if @iter is on the last line
*/
gboolean
-pango_line_iter_at_last_line (PangoLineIter *iter)
+pango2_line_iter_at_last_line (Pango2LineIter *iter)
{
g_return_val_if_fail (ITER_IS_VALID (iter), FALSE);
- return iter->line_no + 1 == pango_lines_get_line_count (iter->lines);
+ return iter->line_no + 1 == pango2_lines_get_line_count (iter->lines);
}
/**
- * pango_line_iter_get_run:
- * @iter: a `PangoLineIter`
+ * pango2_line_iter_get_run:
+ * @iter: a `Pango2LineIter`
*
* Gets the current run.
*
@@ -445,8 +445,8 @@ pango_line_iter_at_last_line (PangoLineIter *iter)
*
* Return value: (transfer none) (nullable): the current run
*/
-PangoRun *
-pango_line_iter_get_run (PangoLineIter *iter)
+Pango2Run *
+pango2_line_iter_get_run (Pango2LineIter *iter)
{
g_return_val_if_fail (ITER_IS_VALID (iter), NULL);
@@ -454,8 +454,8 @@ pango_line_iter_get_run (PangoLineIter *iter)
}
/**
- * pango_line_iter_get_index:
- * @iter: a `PangoLineIter`
+ * pango2_line_iter_get_index:
+ * @iter: a `Pango2LineIter`
*
* Gets the current byte index.
*
@@ -465,12 +465,12 @@ pango_line_iter_get_run (PangoLineIter *iter)
* Note that iterating forward by char moves in visual order,
* not logical order, so indexes may not be sequential. Also,
* the index may be equal to the length of the text in the
- * layout, if on the %NULL run (see [method@Pango.LineIter.get_run]).
+ * layout, if on the %NULL run (see [method@Pango2.LineIter.get_run]).
*
* Return value: current byte index
*/
int
-pango_line_iter_get_index (PangoLineIter *iter)
+pango2_line_iter_get_index (Pango2LineIter *iter)
{
g_return_val_if_fail (ITER_IS_VALID (iter), 0);
@@ -478,8 +478,8 @@ pango_line_iter_get_index (PangoLineIter *iter)
}
/**
- * pango_line_iter_next_line:
- * @iter: a `PangoLineIter`
+ * pango2_line_iter_next_line:
+ * @iter: a `Pango2LineIter`
*
* Moves @iter forward to the start of the next line.
*
@@ -488,7 +488,7 @@ pango_line_iter_get_index (PangoLineIter *iter)
* Return value: whether motion was possible
*/
gboolean
-pango_line_iter_next_line (PangoLineIter *iter)
+pango2_line_iter_next_line (Pango2LineIter *iter)
{
g_return_val_if_fail (ITER_IS_VALID (iter), FALSE);
@@ -511,8 +511,8 @@ pango_line_iter_next_line (PangoLineIter *iter)
}
/**
- * pango_line_iter_next_run:
- * @iter: a `PangoLineIter`
+ * pango2_line_iter_next_run:
+ * @iter: a `Pango2LineIter`
*
* Moves @iter forward to the next run in visual order.
*
@@ -521,26 +521,26 @@ pango_line_iter_next_line (PangoLineIter *iter)
* Return value: whether motion was possible
*/
gboolean
-pango_line_iter_next_run (PangoLineIter *iter)
+pango2_line_iter_next_run (Pango2LineIter *iter)
{
int run_start_index;
g_return_val_if_fail (ITER_IS_VALID (iter), FALSE);
if (iter->run == NULL)
- return pango_line_iter_next_line (iter);
+ return pango2_line_iter_next_line (iter);
iter->run_link = iter->run_link->next;
if (iter->run_link == NULL)
{
- PangoItem *item = pango_run_get_glyph_item (iter->run)->item;
+ Pango2Item *item = pango2_run_get_glyph_item (iter->run)->item;
run_start_index = item->offset + item->length;
iter->run = NULL;
}
else
{
iter->run = iter->run_link->data;
- run_start_index = pango_run_get_glyph_item (iter->run)->item->offset;
+ run_start_index = pango2_run_get_glyph_item (iter->run)->item->offset;
}
update_run (iter, run_start_index);
@@ -549,8 +549,8 @@ pango_line_iter_next_run (PangoLineIter *iter)
}
/**
- * pango_line_iter_next_cluster:
- * @iter: a `PangoLineIter`
+ * pango2_line_iter_next_cluster:
+ * @iter: a `Pango2LineIter`
*
* Moves @iter forward to the next cluster in visual order.
*
@@ -559,7 +559,7 @@ pango_line_iter_next_run (PangoLineIter *iter)
* Return value: whether motion was possible
*/
gboolean
-pango_line_iter_next_cluster (PangoLineIter *iter)
+pango2_line_iter_next_cluster (Pango2LineIter *iter)
{
g_return_val_if_fail (ITER_IS_VALID (iter), FALSE);
@@ -567,8 +567,8 @@ pango_line_iter_next_cluster (PangoLineIter *iter)
}
/**
- * pango_line_iter_next_char:
- * @iter: a `PangoLineIter`
+ * pango2_line_iter_next_char:
+ * @iter: a `Pango2LineIter`
*
* Moves @iter forward to the next character in visual order.
*
@@ -577,7 +577,7 @@ pango_line_iter_next_cluster (PangoLineIter *iter)
* Return value: whether motion was possible
*/
gboolean
-pango_line_iter_next_char (PangoLineIter *iter)
+pango2_line_iter_next_char (Pango2LineIter *iter)
{
const char *text;
@@ -613,88 +613,88 @@ pango_line_iter_next_char (PangoLineIter *iter)
}
/**
- * pango_line_iter_get_layout_extents:
- * @iter: a `PangoLineIter`
+ * pango2_line_iter_get_layout_extents:
+ * @iter: a `Pango2LineIter`
* @ink_rect: (out) (optional): rectangle to fill with ink extents
* @logical_rect: (out) (optional): rectangle to fill with logical extents
*
- * Obtains the extents of the `PangoLines` being iterated over.
+ * Obtains the extents of the `Pango2Lines` being iterated over.
*/
void
-pango_line_iter_get_layout_extents (PangoLineIter *iter,
- PangoRectangle *ink_rect,
- PangoRectangle *logical_rect)
+pango2_line_iter_get_layout_extents (Pango2LineIter *iter,
+ Pango2Rectangle *ink_rect,
+ Pango2Rectangle *logical_rect)
{
g_return_if_fail (ITER_IS_VALID (iter));
- pango_lines_get_extents (iter->lines, ink_rect, logical_rect);
+ pango2_lines_get_extents (iter->lines, ink_rect, logical_rect);
}
/**
- * pango_line_iter_get_line_extents:
- * @iter: a `PangoLineIter`
+ * pango2_line_iter_get_line_extents:
+ * @iter: a `Pango2LineIter`
* @ink_rect: (out) (optional): rectangle to fill with ink extents
* @logical_rect: (out) (optional): rectangle to fill with logical extents
*
* Obtains the extents of the current line.
*
* Extents are in layout coordinates (origin is the top-left corner of the
- * entire `PangoLines`). Thus the extents returned by this function will be
+ * entire `Pango2Lines`). Thus the extents returned by this function will be
* the same width/height but not at the same x/y as the extents returned
- * from [method@Pango.Line.get_extents].
+ * from [method@Pango2.Line.get_extents].
*
* The logical extents returned by this function always have their leading
* trimmed according to paragraph boundaries: if the line starts a paragraph,
* it has its start leading trimmed; if it ends a paragraph, it has its end
* leading trimmed. If you need other trimming, use
- * [method@Pango.Line.get_trimmed_extents].
+ * [method@Pango2.Line.get_trimmed_extents].
*/
void
-pango_line_iter_get_line_extents (PangoLineIter *iter,
- PangoRectangle *ink_rect,
- PangoRectangle *logical_rect)
+pango2_line_iter_get_line_extents (Pango2LineIter *iter,
+ Pango2Rectangle *ink_rect,
+ Pango2Rectangle *logical_rect)
{
g_return_if_fail (ITER_IS_VALID (iter));
- pango_line_get_extents (iter->line, ink_rect, logical_rect);
+ pango2_line_get_extents (iter->line, ink_rect, logical_rect);
offset_line (iter, ink_rect, logical_rect);
}
void
-pango_line_iter_get_trimmed_line_extents (PangoLineIter *iter,
- PangoLeadingTrim trim,
- PangoRectangle *logical_rect)
+pango2_line_iter_get_trimmed_line_extents (Pango2LineIter *iter,
+ Pango2LeadingTrim trim,
+ Pango2Rectangle *logical_rect)
{
g_return_if_fail (ITER_IS_VALID (iter));
- pango_line_get_trimmed_extents (iter->line, trim, logical_rect);
+ pango2_line_get_trimmed_extents (iter->line, trim, logical_rect);
offset_line (iter, NULL, logical_rect);
}
/**
- * pango_line_iter_get_run_extents:
- * @iter: a `PangoLineIter`
+ * pango2_line_iter_get_run_extents:
+ * @iter: a `Pango2LineIter`
* @ink_rect: (out) (optional): rectangle to fill with ink extents
* @logical_rect: (out) (optional): rectangle to fill with logical extents
*
* Gets the extents of the current run in layout coordinates.
*
- * Layout coordinates have the origin at the top left of the entire `PangoLines`.
+ * Layout coordinates have the origin at the top left of the entire `Pango2Lines`.
*
* The logical extents returned by this function always have their leading
* trimmed off. If you need extents that include leading, use
- * [method@Pango.Run.get_extents].
+ * [method@Pango2.Run.get_extents].
*/
void
-pango_line_iter_get_run_extents (PangoLineIter *iter,
- PangoRectangle *ink_rect,
- PangoRectangle *logical_rect)
+pango2_line_iter_get_run_extents (Pango2LineIter *iter,
+ Pango2Rectangle *ink_rect,
+ Pango2Rectangle *logical_rect)
{
g_return_if_fail (ITER_IS_VALID (iter));
if (iter->run)
{
- pango_run_get_extents (iter->run, PANGO_LEADING_TRIM_BOTH, ink_rect, logical_rect);
+ pango2_run_get_extents (iter->run, PANGO2_LEADING_TRIM_BOTH, ink_rect, logical_rect);
}
else
{
@@ -702,9 +702,9 @@ pango_line_iter_get_run_extents (PangoLineIter *iter,
if (runs)
{
/* Virtual run at the end of a nonempty line */
- PangoRun *run = g_slist_last (runs)->data;
+ Pango2Run *run = g_slist_last (runs)->data;
- pango_run_get_extents (run, PANGO_LEADING_TRIM_BOTH, ink_rect, logical_rect);
+ pango2_run_get_extents (run, PANGO2_LEADING_TRIM_BOTH, ink_rect, logical_rect);
if (ink_rect)
{
ink_rect->x += ink_rect->width;
@@ -719,9 +719,9 @@ pango_line_iter_get_run_extents (PangoLineIter *iter,
else
{
/* Empty line */
- PangoRectangle r;
+ Pango2Rectangle r;
- pango_line_get_empty_extents (iter->line, PANGO_LEADING_TRIM_BOTH, &r);
+ pango2_line_get_empty_extents (iter->line, PANGO2_LEADING_TRIM_BOTH, &r);
if (ink_rect)
*ink_rect = r;
@@ -736,39 +736,39 @@ pango_line_iter_get_run_extents (PangoLineIter *iter,
}
/**
- * pango_line_iter_get_cluster_extents:
- * @iter: a `PangoLineIter`
+ * pango2_line_iter_get_cluster_extents:
+ * @iter: a `Pango2LineIter`
* @ink_rect: (out) (optional): rectangle to fill with ink extents
* @logical_rect: (out) (optional): rectangle to fill with logical extents
*
* Gets the extents of the current cluster, in layout coordinates.
*
- * Layout coordinates have the origin at the top left of the entire `PangoLines`.
+ * Layout coordinates have the origin at the top left of the entire `Pango2Lines`.
*/
void
-pango_line_iter_get_cluster_extents (PangoLineIter *iter,
- PangoRectangle *ink_rect,
- PangoRectangle *logical_rect)
+pango2_line_iter_get_cluster_extents (Pango2LineIter *iter,
+ Pango2Rectangle *ink_rect,
+ Pango2Rectangle *logical_rect)
{
- PangoGlyphItem *glyph_item;
+ Pango2GlyphItem *glyph_item;
g_return_if_fail (ITER_IS_VALID (iter));
if (iter->run == NULL)
{
/* When on the NULL run, all extents are the same */
- pango_line_iter_get_run_extents (iter, ink_rect, logical_rect);
+ pango2_line_iter_get_run_extents (iter, ink_rect, logical_rect);
return;
}
- glyph_item = pango_run_get_glyph_item (iter->run);
+ glyph_item = pango2_run_get_glyph_item (iter->run);
- pango_glyph_string_extents_range (glyph_item->glyphs,
- iter->cluster_start,
- iter->next_cluster_glyph,
- glyph_item->item->analysis.font,
- ink_rect,
- logical_rect);
+ pango2_glyph_string_extents_range (glyph_item->glyphs,
+ iter->cluster_start,
+ iter->next_cluster_glyph,
+ glyph_item->item->analysis.font,
+ ink_rect,
+ logical_rect);
offset_line (iter, ink_rect, logical_rect);
if (ink_rect)
@@ -786,22 +786,22 @@ pango_line_iter_get_cluster_extents (PangoLineIter *iter,
}
/**
- * pango_line_iter_get_char_extents:
- * @iter: a `PangoLineIter`
+ * pango2_line_iter_get_char_extents:
+ * @iter: a `Pango2LineIter`
* @logical_rect: (out caller-allocates): rectangle to fill with logical extents
*
* Gets the extents of the current character, in layout coordinates.
*
- * Layout coordinates have the origin at the top left of the entire `PangoLines`.
+ * Layout coordinates have the origin at the top left of the entire `Pango2Lines`.
*
* Only logical extents can sensibly be obtained for characters;
* ink extents make sense only down to the level of clusters.
*/
void
-pango_line_iter_get_char_extents (PangoLineIter *iter,
- PangoRectangle *logical_rect)
+pango2_line_iter_get_char_extents (Pango2LineIter *iter,
+ Pango2Rectangle *logical_rect)
{
- PangoRectangle cluster_rect;
+ Pango2Rectangle cluster_rect;
int x0, x1;
g_return_if_fail (ITER_IS_VALID (iter));
@@ -809,7 +809,7 @@ pango_line_iter_get_char_extents (PangoLineIter *iter,
if (logical_rect == NULL)
return;
- pango_line_iter_get_cluster_extents (iter, NULL, &cluster_rect);
+ pango2_line_iter_get_cluster_extents (iter, NULL, &cluster_rect);
if (iter->run == NULL)
{
@@ -835,18 +835,18 @@ pango_line_iter_get_char_extents (PangoLineIter *iter,
}
/**
- * pango_line_iter_get_line_baseline:
- * @iter: a `PangoLineIter`
+ * pango2_line_iter_get_line_baseline:
+ * @iter: a `Pango2LineIter`
*
* Gets the Y position of the current line's baseline, in layout
* coordinates.
*
- * Layout coordinates have the origin at the top left of the entire `PangoLines`.
+ * Layout coordinates have the origin at the top left of the entire `Pango2Lines`.
*
* Return value: baseline of current line
*/
int
-pango_line_iter_get_line_baseline (PangoLineIter *iter)
+pango2_line_iter_get_line_baseline (Pango2LineIter *iter)
{
g_return_val_if_fail (ITER_IS_VALID (iter), 0);
@@ -854,28 +854,28 @@ pango_line_iter_get_line_baseline (PangoLineIter *iter)
}
/**
- * pango_line_iter_get_run_baseline:
- * @iter: a `PangoLineIter`
+ * pango2_line_iter_get_run_baseline:
+ * @iter: a `Pango2LineIter`
*
* Gets the Y position of the current run's baseline, in layout
* coordinates.
*
- * Layout coordinates have the origin at the top left of the entire `PangoLines`.
+ * Layout coordinates have the origin at the top left of the entire `Pango2Lines`.
*
* The run baseline can be different from the line baseline, for
* example due to superscript or subscript positioning.
*/
int
-pango_line_iter_get_run_baseline (PangoLineIter *iter)
+pango2_line_iter_get_run_baseline (Pango2LineIter *iter)
{
g_return_val_if_fail (ITER_IS_VALID (iter), 0);
if (iter->run)
- return pango_line_iter_get_line_baseline (iter) - pango_run_get_glyph_item (iter->run)->y_offset;
+ return pango2_line_iter_get_line_baseline (iter) - pango2_run_get_glyph_item (iter->run)->y_offset;
else
- return pango_line_iter_get_line_baseline (iter);
+ return pango2_line_iter_get_line_baseline (iter);
}
-/* }}} */
+/* }}} */
/* vim:set foldmethod=marker expandtab: */