## FoLayout

FoLayout —

## Synopsis

    struct      FoLayout;
    struct      FoLayoutClass;
    #define     FO_LAYOUT_ERROR
    GQuark      fo_layout_error_quark           (void);
    enum        FoLayoutError;
    struct      FoRectangle;
    FoLayout*   fo_layout_new                   (void);
    FoLayout*   fo_layout_new_from_fo_doc       (FoDoc *fo_doc);
    FoLayout*   fo_layout_copy                  (FoLayout *src);
    void        fo_layout_set_attributes        (FoLayout *fo_layout,
                                                 GList *attr_glist);
    void        fo_layout_set_text              (FoLayout *fo_layout,
                                                 GString *text);
    void        fo_layout_set_width             (FoLayout *fo_layout,
                                                 gfloat width);
    void        fo_layout_set_font_desc         (FoLayout *fo_layout,
                                                 const FoFontDesc *desc);
    void        fo_layout_set_alignment         (FoLayout *fo_layout,
                                                 FoEnumAreaDirection alignment);
    void        fo_layout_set_indent            (FoLayout *fo_layout,
                                                 gfloat indent);
    void        fo_layout_set_justify           (FoLayout *fo_layout,
                                                 gboolean justify);
    gint        fo_layout_get_line_count        (FoLayout *fo_layout);
    void        fo_layout_get_extents           (FoLayout *fo_layout,
                                                 FoRectangle *logical_rect);
    void        fo_layout_get_line_extents      (FoLayout *fo_layout,
                                                 gint line_index,
                                                 FoRectangle *logical_rect);
    void        fo_layout_set_line_height       (FoLayout *fo_layout,
                                                 gfloat line_height);
    void        fo_layout_set_line_stacking_strategy
                                                (FoLayout *fo_layout,
                                                 FoEnumEnum line_stacking_strategy);

## Description

## Details

### struct FoLayout

    struct FoLayout;

### struct FoLayoutClass

    struct FoLayoutClass;

### FO_LAYOUT_ERROR

    #define FO_LAYOUT_ERROR fo_layout_error_quark ()

### fo_layout_error_quark ()

    GQuark      fo_layout_error_quark           (void);

Get the error quark for FoLayout.

If the quark does not yet exist, create it.

Returns : | GQuark associated with FoLayout errors.

### enum FoLayoutError

    typedef enum
    {
      FO_LAYOUT_ERROR_FAILED
    } FoLayoutError;

### struct FoRectangle

    struct FoRectangle {

      int x;
      int y;
      int width;
      int height;
    };

### fo_layout_new ()

    FoLayout*   fo_layout_new                   (void);

Creates a new FoLayout.

Returns : | the newly created FoLayout.

### fo_layout_new_from_fo_doc ()

    FoLayout*   fo_layout_new_from_fo_doc       (FoDoc *fo_doc);

Creates a new FoLayout.

`fo_doc` : | FoDoc.
Returns : | the newly created FoLayout.

### fo_layout_copy ()

    FoLayout*   fo_layout_copy                  (FoLayout *src);

`src` : |
Returns : |

### fo_layout_set_attributes ()

    void        fo_layout_set_attributes        (FoLayout *fo_layout,
                                                 GList *attr_glist);

Sets the attributes of `fo_layout` to `attr_glist`.

`fo_layout` : | FoLayout for which to set attributes.
`attr_glist` : | Attributes to apply to `fo_layout`.

### fo_layout_set_text ()

    void        fo_layout_set_text              (FoLayout *fo_layout,
                                                 GString *text);

Sets the text of `fo_layout` to `text`.

`fo_layout` : | FoLayout for which to set text.
`text` : | New text of `fo_layout`.

### fo_layout_set_width ()

    void        fo_layout_set_width             (FoLayout *fo_layout,
                                                 gfloat width);

Sets the width of `fo_layout` to `width`.

`fo_layout` : | FoLayout for which to set width.
`width` : | New width, in points, of `fo_layout`.

### fo_layout_set_font_desc ()

    void        fo_layout_set_font_desc         (FoLayout *fo_layout,
                                                 const FoFontDesc *desc);

Sets the FoFontDesc of `fo_layout` to `desc`.

`fo_layout` : | FoLayout for which to set font desc.
`desc` : | New FoFontDesc of `fo_layout`.

### fo_layout_set_alignment ()

    void        fo_layout_set_alignment         (FoLayout *fo_layout,
                                                 FoEnumAreaDirection alignment);

Sets the alignment of `fo_layout`.

`fo_layout` : | FoLayout to have alignment set.
`alignment` : | FoEnumAreaDirection value indicating new alignment.

### fo_layout_set_indent ()

    void        fo_layout_set_indent            (FoLayout *fo_layout,
                                                 gfloat indent);

Sets the indent of `fo_layout` to `indent`.

`fo_layout` : | FoLayout for which to set indent.
`indent` : | New indent, in points, of `fo_layout`.

### fo_layout_set_justify ()

    void        fo_layout_set_justify           (FoLayout *fo_layout,
                                                 gboolean justify);

Sets whether or not to justify `fo_layout`.

`fo_layout` : | FoLayout for which to set justify.
`justify` : | Sets whether or not to justify `fo_layout`.

### fo_layout_get_line_count ()

    gint        fo_layout_get_line_count        (FoLayout *fo_layout);

Gets the number of lines in `fo_layout`.

`fo_layout` : | FoLayout for which to get line count.
Returns : | Number of lines in `fo_layout`.

### fo_layout_get_extents ()

    void        fo_layout_get_extents           (FoLayout *fo_layout,
                                                 FoRectangle *logical_rect);

Gets the extents of `fo_layout` and puts them in `logical_rect`.

`fo_layout` : | FoLayout for which to get extents
`logical_rect` : | FoRectangle to hold extents

### fo_layout_get_line_extents ()

    void        fo_layout_get_line_extents      (FoLayout *fo_layout,
                                                 gint line_index,
                                                 FoRectangle *logical_rect);

Puts the extents of the line of `fo_layout` given by `line_index` in `logical_rect`.

The first line has `line_index` value of 0.

`fo_layout` : | FoLayout for which to get line extents.
`line_index` : | Number of line for which to get extents.
`logical_rect` : | Holds result.

### fo_layout_set_line_height ()

    void        fo_layout_set_line_height       (FoLayout *fo_layout,
                                                 gfloat line_height);

Set the 'line-height' of `fo_layout` to `line_height`.

`fo_layout` : | FoLayout.
`line_height` : | 'line-height' in points.

### fo_layout_set_line_stacking_strategy ()

    void        fo_layout_set_line_stacking_strategy
                                                (FoLayout *fo_layout,
                                                 FoEnumEnum line_stacking_strategy);

Set the 'line-stacking-strategy' property of `fo_layout` to `line_stacking_strategy`.

`fo_layout` : | FoLayout.
`line_stacking_strategy` : | Line stacking strategy to use.