Tab Stops

Tab Stops — Structures for storing tab stops

Synopsis




            PangoTabArray;
#define     PANGO_TYPE_TAB_ARRAY
enum        PangoTabAlign;
#define     PANGO_TYPE_TAB_ALIGN
PangoTabArray* pango_tab_array_new          (gint initial_size,
                                             gboolean positions_in_pixels);
PangoTabArray* pango_tab_array_new_with_positions
                                            (gint size,
                                             gboolean positions_in_pixels,
                                             PangoTabAlign first_alignment,
                                             gint first_position,
                                             ...);
PangoTabArray* pango_tab_array_copy         (PangoTabArray *src);
void        pango_tab_array_free            (PangoTabArray *tab_array);
gint        pango_tab_array_get_size        (PangoTabArray *tab_array);
void        pango_tab_array_resize          (PangoTabArray *tab_array,
                                             gint new_size);
void        pango_tab_array_set_tab         (PangoTabArray *tab_array,
                                             gint tab_index,
                                             PangoTabAlign alignment,
                                             gint location);
void        pango_tab_array_get_tab         (PangoTabArray *tab_array,
                                             gint tab_index,
                                             PangoTabAlign *alignment,
                                             gint *location);
void        pango_tab_array_get_tabs        (PangoTabArray *tab_array,
                                             PangoTabAlign **alignments,
                                             gint **locations);
gboolean    pango_tab_array_get_positions_in_pixels
                                            (PangoTabArray *tab_array);

Description

Functions in this section are used to deal with PangoTabArray objects that can be used to set tab stop positions in a PangoLayout.

Details

PangoTabArray

typedef struct _PangoTabArray PangoTabArray;

A PangoTabArray struct contains an array of tab stops. Each tab stop has an alignment and a position.


PANGO_TYPE_TAB_ARRAY

#define PANGO_TYPE_TAB_ARRAY (pango_tab_array_get_type ())

The GObject type for PangoTabArray.


enum PangoTabAlign

typedef enum
{
  PANGO_TAB_LEFT

  /* These are not supported now, but may be in the
   * future.
   *
   *  PANGO_TAB_RIGHT,
   *  PANGO_TAB_CENTER,
   *  PANGO_TAB_NUMERIC
   */
} PangoTabAlign;

A PangoTabAlign specifies where a tab stop appears relative to the text.

PANGO_TAB_LEFT the tab stop appears to the left of the text.

PANGO_TYPE_TAB_ALIGN

#define PANGO_TYPE_TAB_ALIGN (pango_tab_align_get_type())

The GObject type for PangoTabAlign.


pango_tab_array_new ()

PangoTabArray* pango_tab_array_new          (gint initial_size,
                                             gboolean positions_in_pixels);

Creates an array of initial_size tab stops. Tab stops are specified in pixel units if positions_in_pixels is TRUE, otherwise in Pango units. All stops are initially at position 0.

initial_size : Initial number of tab stops to allocate, can be 0
positions_in_pixels : whether positions are in pixel units
Returns : the newly allocated PangoTabArray, which should be freed with pango_tab_array_free().

pango_tab_array_new_with_positions ()

PangoTabArray* pango_tab_array_new_with_positions
                                            (gint size,
                                             gboolean positions_in_pixels,
                                             PangoTabAlign first_alignment,
                                             gint first_position,
                                             ...);

This is a convenience function that creates a PangoTabArray and allows you to specify the alignment and position of each tab stop. You must provide an alignment and position for size tab stops.

size : number of tab stops in the array
positions_in_pixels : whether positions are in pixel units
first_alignment : alignment of first tab stop
first_position : position of first tab stop
... : additional alignment/position pairs
Returns : the newly allocated PangoTabArray, which should be freed with pango_tab_array_free().

pango_tab_array_copy ()

PangoTabArray* pango_tab_array_copy         (PangoTabArray *src);

Copies a PangoTabArray

src : PangoTabArray to copy
Returns : the newly allocated PangoTabArray, which should be freed with pango_tab_array_free().

pango_tab_array_free ()

void        pango_tab_array_free            (PangoTabArray *tab_array);

Frees a tab array and associated resources.

tab_array : a PangoTabArray

pango_tab_array_get_size ()

gint        pango_tab_array_get_size        (PangoTabArray *tab_array);

Gets the number of tab stops in tab_array.

tab_array : a PangoTabArray
Returns : the number of tab stops in the array.

pango_tab_array_resize ()

void        pango_tab_array_resize          (PangoTabArray *tab_array,
                                             gint new_size);

Resizes a tab array. You must subsequently initialize any tabs that were added as a result of growing the array.

tab_array : a PangoTabArray
new_size : new size of the array

pango_tab_array_set_tab ()

void        pango_tab_array_set_tab         (PangoTabArray *tab_array,
                                             gint tab_index,
                                             PangoTabAlign alignment,
                                             gint location);

Sets the alignment and location of a tab stop. alignment must always be PANGO_TAB_LEFT in the current implementation.

tab_array : a PangoTabArray
tab_index : the index of a tab stop
alignment : tab alignment
location : tab location in Pango units

pango_tab_array_get_tab ()

void        pango_tab_array_get_tab         (PangoTabArray *tab_array,
                                             gint tab_index,
                                             PangoTabAlign *alignment,
                                             gint *location);

Gets the alignment and position of a tab stop.

tab_array : a PangoTabArray
tab_index : tab stop index
alignment : location to store alignment, or NULL
location : location to store tab position, or NULL

pango_tab_array_get_tabs ()

void        pango_tab_array_get_tabs        (PangoTabArray *tab_array,
                                             PangoTabAlign **alignments,
                                             gint **locations);

If non-NULL, alignments and locations are filled with allocated arrays of length pango_tab_array_get_size(). You must free the returned array.

tab_array : a PangoTabArray
alignments : location to store an array of tab stop alignments, or NULL
locations : location to store an array of tab positions, or NULL

pango_tab_array_get_positions_in_pixels ()

gboolean    pango_tab_array_get_positions_in_pixels
                                            (PangoTabArray *tab_array);

Returns TRUE if the tab positions are in pixels, FALSE if they are in Pango units.

tab_array : a PangoTabArray
Returns : whether positions are in pixels.