Github User Fetcher 1.0.0
C Application with Server and GUI
Loading...
Searching...
No Matches
pango-glyph-item.h File Reference

Go to the source code of this file.

Data Structures

struct  _PangoGlyphItem
 
struct  _PangoGlyphItemIter
 

Macros

#define PANGO_TYPE_GLYPH_ITEM   (pango_glyph_item_get_type ())
 
#define PANGO_TYPE_GLYPH_ITEM_ITER   (pango_glyph_item_iter_get_type ())
 

Typedefs

typedef typedefG_BEGIN_DECLS struct _PangoGlyphItem PangoGlyphItem
 
typedef struct _PangoGlyphItemIter PangoGlyphItemIter
 

Functions

PANGO_AVAILABLE_IN_ALL GType pango_glyph_item_get_type (void) G_GNUC_CONST
 
PANGO_AVAILABLE_IN_1_2 PangoGlyphItempango_glyph_item_split (PangoGlyphItem *orig, const char *text, int split_index)
 
PANGO_AVAILABLE_IN_1_20 PangoGlyphItempango_glyph_item_copy (PangoGlyphItem *orig)
 
PANGO_AVAILABLE_IN_1_6 void pango_glyph_item_free (PangoGlyphItem *glyph_item)
 
PANGO_AVAILABLE_IN_1_2 GSListpango_glyph_item_apply_attrs (PangoGlyphItem *glyph_item, const char *text, PangoAttrList *list)
 
PANGO_AVAILABLE_IN_1_6 void pango_glyph_item_letter_space (PangoGlyphItem *glyph_item, const char *text, PangoLogAttr *log_attrs, int letter_spacing)
 
PANGO_AVAILABLE_IN_1_26 void pango_glyph_item_get_logical_widths (PangoGlyphItem *glyph_item, const char *text, int *logical_widths)
 
PANGO_AVAILABLE_IN_1_22 GType pango_glyph_item_iter_get_type (void) G_GNUC_CONST
 
PANGO_AVAILABLE_IN_1_22 PangoGlyphItemIterpango_glyph_item_iter_copy (PangoGlyphItemIter *orig)
 
PANGO_AVAILABLE_IN_1_22 void pango_glyph_item_iter_free (PangoGlyphItemIter *iter)
 
PANGO_AVAILABLE_IN_1_22 gboolean pango_glyph_item_iter_init_start (PangoGlyphItemIter *iter, PangoGlyphItem *glyph_item, const char *text)
 
PANGO_AVAILABLE_IN_1_22 gboolean pango_glyph_item_iter_init_end (PangoGlyphItemIter *iter, PangoGlyphItem *glyph_item, const char *text)
 
PANGO_AVAILABLE_IN_1_22 gboolean pango_glyph_item_iter_next_cluster (PangoGlyphItemIter *iter)
 
PANGO_AVAILABLE_IN_1_22 gboolean pango_glyph_item_iter_prev_cluster (PangoGlyphItemIter *iter)
 

Macro Definition Documentation

◆ PANGO_TYPE_GLYPH_ITEM

#define PANGO_TYPE_GLYPH_ITEM   (pango_glyph_item_get_type ())

Definition at line 61 of file pango-glyph-item.h.

◆ PANGO_TYPE_GLYPH_ITEM_ITER

#define PANGO_TYPE_GLYPH_ITEM_ITER   (pango_glyph_item_iter_get_type ())

Definition at line 151 of file pango-glyph-item.h.

Typedef Documentation

◆ PangoGlyphItem

typedef typedefG_BEGIN_DECLS struct _PangoGlyphItem PangoGlyphItem

PangoGlyphItem: @item: corresponding PangoItem @glyphs: corresponding PangoGlyphString @y_offset: shift of the baseline, relative to the baseline of the containing line. Positive values shift upwards @start_x_offset: horizontal displacement to apply before the glyph item. Positive values shift right @end_x_offset: horizontal displacement to apply after th glyph item. Positive values shift right

A PangoGlyphItem is a pair of a PangoItem and the glyphs resulting from shaping the items text.

As an example of the usage of PangoGlyphItem, the results of shaping text with PangoLayout is a list of PangoLayoutLine, each of which contains a list of PangoGlyphItem.

Definition at line 50 of file pango-glyph-item.h.

◆ PangoGlyphItemIter

PangoGlyphItemIter:

A PangoGlyphItemIter is an iterator over the clusters in a PangoGlyphItem.

The forward direction of the iterator is the logical direction of text. That is, with increasing @start_index and @start_char values. If @glyph_item is right-to-left (that is, if glyph_item->item->analysis.level is odd), then @start_glyph decreases as the iterator moves forward. Moreover, in right-to-left cases, @start_glyph is greater than @end_glyph.

An iterator should be initialized using either pango_glyph_item_iter_init_start() or pango_glyph_item_iter_init_end(), for forward and backward iteration respectively, and walked over using any desired mixture of pango_glyph_item_iter_next_cluster() and pango_glyph_item_iter_prev_cluster().

A common idiom for doing a forward iteration over the clusters is:

PangoGlyphItemIter cluster_iter;
gboolean have_cluster;
for (have_cluster = pango_glyph_item_iter_init_start (&cluster_iter,
glyph_item, text);
have_cluster;
have_cluster = pango_glyph_item_iter_next_cluster (&cluster_iter))
{
...
}
gint gboolean
Definition gtypes.h:56
PANGO_AVAILABLE_IN_1_22 gboolean pango_glyph_item_iter_next_cluster(PangoGlyphItemIter *iter)
PANGO_AVAILABLE_IN_1_22 gboolean pango_glyph_item_iter_init_start(PangoGlyphItemIter *iter, PangoGlyphItem *glyph_item, const char *text)

Note that @text is the start of the text for layout, which is then indexed by glyph_item->item->offset to get to the text of @glyph_item. The @start_index and @end_index values can directly index into @text. The @start_glyph, @end_glyph, @start_char, and @end_char values however are zero-based for the @glyph_item. For each cluster, the item pointed at by the start variables is included in the cluster while the one pointed at by end variables is not.

None of the members of a PangoGlyphItemIter should be modified manually.

Since: 1.22

Definition at line 135 of file pango-glyph-item.h.

Function Documentation

◆ pango_glyph_item_apply_attrs()

PANGO_AVAILABLE_IN_1_2 GSList * pango_glyph_item_apply_attrs ( PangoGlyphItem * glyph_item,
const char * text,
PangoAttrList * list )

◆ pango_glyph_item_copy()

PANGO_AVAILABLE_IN_1_20 PangoGlyphItem * pango_glyph_item_copy ( PangoGlyphItem * orig)

◆ pango_glyph_item_free()

PANGO_AVAILABLE_IN_1_6 void pango_glyph_item_free ( PangoGlyphItem * glyph_item)

◆ pango_glyph_item_get_logical_widths()

PANGO_AVAILABLE_IN_1_26 void pango_glyph_item_get_logical_widths ( PangoGlyphItem * glyph_item,
const char * text,
int * logical_widths )

◆ pango_glyph_item_get_type()

PANGO_AVAILABLE_IN_ALL GType pango_glyph_item_get_type ( void )

◆ pango_glyph_item_iter_copy()

PANGO_AVAILABLE_IN_1_22 PangoGlyphItemIter * pango_glyph_item_iter_copy ( PangoGlyphItemIter * orig)

◆ pango_glyph_item_iter_free()

PANGO_AVAILABLE_IN_1_22 void pango_glyph_item_iter_free ( PangoGlyphItemIter * iter)

◆ pango_glyph_item_iter_get_type()

PANGO_AVAILABLE_IN_1_22 GType pango_glyph_item_iter_get_type ( void )

◆ pango_glyph_item_iter_init_end()

PANGO_AVAILABLE_IN_1_22 gboolean pango_glyph_item_iter_init_end ( PangoGlyphItemIter * iter,
PangoGlyphItem * glyph_item,
const char * text )

◆ pango_glyph_item_iter_init_start()

PANGO_AVAILABLE_IN_1_22 gboolean pango_glyph_item_iter_init_start ( PangoGlyphItemIter * iter,
PangoGlyphItem * glyph_item,
const char * text )

◆ pango_glyph_item_iter_next_cluster()

PANGO_AVAILABLE_IN_1_22 gboolean pango_glyph_item_iter_next_cluster ( PangoGlyphItemIter * iter)

◆ pango_glyph_item_iter_prev_cluster()

PANGO_AVAILABLE_IN_1_22 gboolean pango_glyph_item_iter_prev_cluster ( PangoGlyphItemIter * iter)

◆ pango_glyph_item_letter_space()

PANGO_AVAILABLE_IN_1_6 void pango_glyph_item_letter_space ( PangoGlyphItem * glyph_item,
const char * text,
PangoLogAttr * log_attrs,
int letter_spacing )

◆ pango_glyph_item_split()

PANGO_AVAILABLE_IN_1_2 PangoGlyphItem * pango_glyph_item_split ( PangoGlyphItem * orig,
const char * text,
int split_index )