## FoLayout

FoLayout

## Synopsis

                        FoLayout;
                        FoLayoutClass;
    #define             FO_LAYOUT_ERROR
    GQuark              fo_layout_error_quark               (void);
    enum                FoLayoutError;
                        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

### FoLayout

    typedef struct _FoLayout FoLayout;

### FoLayoutClass

    typedef struct _FoLayoutClass 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;

### FoRectangle

    typedef struct {
      int x;
      int y;
      int width;
      int height;
    } FoRectangle;

### 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.