## FoTree FoTree — Top of the FO tree |

## Synopsis

                        FoTree;
                        FoTreeClass;
    FoFo*               fo_tree_new                         (void);

    void                fo_tree_id_add                      (FoFo *tree,
                                                             const gchar *id,
                                                             FoFo *fo);
    FoFo*               fo_tree_id_get                      (FoFo *tree,
                                                             const gchar *id);
    void                fo_tree_master_name_add             (FoFo *tree,
                                                             const gchar *name,
                                                             FoFo *fo);
    FoFo*               fo_tree_master_name_get             (FoFo *tree,
                                                             const gchar *name);
    void                fo_tree_page_sequence_master_name_add
                                                            (FoFo *tree,
                                                             const gchar *name,
                                                             FoFo *fo);
    FoFo*               fo_tree_page_sequence_master_name_get
                                                            (FoFo *tree,
                                                             const gchar *name);
    FoFo*               fo_tree_default_master_get          (FoFo *tree);

## Object Hierarchy

      GObject
       +----FoObject
             +----FoNode
                   +----FoFo
                         +----FoTree

## Description

FoTree is above FoRoot (which represents the fo:root formatting object). FoTree is used for aspects such as id-FO mapping that apply to the FO tree as a whole but are outside the definition of XSL formatting objects.

## Details

### FoTree

    typedef struct _FoTree FoTree;

### FoTreeClass

    typedef struct _FoTreeClass FoTreeClass;

### fo_tree_new ()

    FoFo*               fo_tree_new                         (void);

Creates a new FoTree initialized to default value.

Returns : | the new FoTree

### fo_tree_id_add ()

    void                fo_tree_id_add                      (FoFo *tree,
                                                             const gchar *id,
                                                             FoFo *fo);

Adds `fo` to `tree` under `name`.

`tree` : | FoTree to which to add a FoFo.
`id` : | Id to use for the FoFo.
`fo` : | FoFo to add.

### fo_tree_id_get ()

    FoFo*               fo_tree_id_get                      (FoFo *tree,
                                                             const gchar *id);

Gets the FoFo of `tree` corresponding to `id`.

`tree` : | FoTree for which to get a FoFo.
`id` : | Id of the FoFo to get.
Returns : | FoFo matching `id`, or NULL.

### fo_tree_master_name_add ()

    void                fo_tree_master_name_add             (FoFo *tree,
                                                             const gchar *name,
                                                             FoFo *fo);

Adds `fo` to `tree` under `name`.

`tree` : | FoTree to which to add a FoPageMaster.
`name` : | Name to use for the FoPageMaster.
`fo` : | FoPageMaster to add.

### fo_tree_master_name_get ()

    FoFo*               fo_tree_master_name_get             (FoFo *tree,
                                                             const gchar *name);

Gets the FoPageMaster of `tree` corresponding to `name`.

`tree` : | FoTree for which to get a FoPageMaster.
`name` : | Name of the FoPageMaster to get.
Returns : | FoPageMaster matching `name`, or NULL.

### fo_tree_page_sequence_master_name_add ()

    void                fo_tree_page_sequence_master_name_add
                                                            (FoFo *tree,
                                                             const gchar *name,
                                                             FoFo *fo);

Adds `fo` to to `tree`.

`tree` : | FoTree for which to add a FoPageSequenceMaster.
`name` : | Name of the FoPageSequenceMaster.
`fo` : | FoPageSequenceMaster to add.

### fo_tree_page_sequence_master_name_get ()

    FoFo*               fo_tree_page_sequence_master_name_get
                                                            (FoFo *tree,
                                                             const gchar *name);

Gets the FoPageSequenceMaster of `tree` with name matching `name`.

`tree` : | FoTree for which to get a named FoPageSequenceMaster.
`name` : | Name of the FoPageSequenceMaster.
Returns : | FoPageSequenceMaster corresponding to `name`, or NULL.

### fo_tree_default_master_get ()

    FoFo*               fo_tree_default_master_get          (FoFo *tree);

Gets the default page master of `tree`.

`tree` : | FoTree for which to get the default master.
Returns : | The default page sequence master of `fo`.