## FoSpace FoSpace |

## Synopsis

                        FoSpace;
                        FoSpaceClass;
    FoDatatype*         fo_space_new                        (void);
    FoDatatype*         fo_space_new_from_length            (FoDatatype *length);
    void                fo_space_set_minimum                (FoDatatype *datatype,
                                                             gfloat new_minimum);
    gfloat              fo_space_get_minimum                (FoDatatype *datatype);
    void                fo_space_set_optimum                (FoDatatype *datatype,
                                                             gfloat new_optimum);
    gfloat              fo_space_get_optimum                (FoDatatype *datatype);
    void                fo_space_set_maximum                (FoDatatype *datatype,
                                                             gfloat new_maximum);
    gfloat              fo_space_get_maximum                (FoDatatype *datatype);
    void                fo_space_set_precedence             (FoDatatype *datatype,
                                                             gint new_precedence);
    gint                fo_space_get_precedence             (FoDatatype *datatype);
    void                fo_space_set_condity                (FoDatatype *datatype,
                                                             gboolean new_condity);
    gboolean            fo_space_get_condity                (FoDatatype *datatype);

    FoDatatype*         fo_space_get_space_0pt              (void);

    FoDatatype*         fo_space_resolve                    (FoDatatype *shortform,
                                                             FoDatatype *minimum,
                                                             FoDatatype *optimum,
                                                             FoDatatype *maximum,
                                                             FoDatatype *precedence,
                                                             FoDatatype *condity,
                                                             gfloat hundred_percent,
                                                             GError **error);

## Object Hierarchy

      GObject
       +----FoObject
             +----FoDatatype
                   +----FoSpace

## Properties

      "conditionality"           gboolean              : Read / Write / Construct Only
      "maximum"                  gfloat                : Read / Write / Construct Only
      "minimum"                  gfloat                : Read / Write / Construct Only
      "optimum"                  gfloat                : Read / Write / Construct Only
      "precedence"               gint                  : Read / Write / Construct Only

## Description

## Details

### FoSpace

    typedef struct _FoSpace FoSpace;

### FoSpaceClass

    typedef struct _FoSpaceClass FoSpaceClass;

### fo_space_new ()

    FoDatatype*         fo_space_new                        (void);

Creates a new FoSpace initialized to default value.

Returns : | the new FoSpace

### fo_space_new_from_length ()

    FoDatatype*         fo_space_new_from_length            (FoDatatype *length);

Creates a new FoSpace with .minimum, .optimum, and .maximum components set to `length` and .conditionality and .precedence components set to default values.

`length` : | FoLength to use as initial value
Returns : | New FoSpace

### fo_space_set_minimum ()

    void                fo_space_set_minimum                (FoDatatype *datatype,
                                                             gfloat new_minimum);

Sets the .minimum component of `datatype`

`datatype` : | FoSpace
`new_minimum` : | New .minimum value

### fo_space_get_minimum ()

    gfloat              fo_space_get_minimum                (FoDatatype *datatype);

Gets the .minimum component value of `datatype`

`datatype` : | FoSpace
Returns : | The .minimum value of `datatype`

### fo_space_set_optimum ()

    void                fo_space_set_optimum                (FoDatatype *datatype,
                                                             gfloat new_optimum);

Sets the .optimum component of `datatype`

`datatype` : | FoSpace
`new_optimum` : | New .optimum value

### fo_space_get_optimum ()

    gfloat              fo_space_get_optimum                (FoDatatype *datatype);

Gets the .optimum component value of `datatype`

`datatype` : | FoSpace
Returns : | The .optimum value of `datatype`

### fo_space_set_maximum ()

    void                fo_space_set_maximum                (FoDatatype *datatype,
                                                             gfloat new_maximum);

Sets the .maximum component of `datatype`

`datatype` : | FoSpace
`new_maximum` : | New .maximum value

### fo_space_get_maximum ()

    gfloat              fo_space_get_maximum                (FoDatatype *datatype);

Gets the .maximum component value of `datatype`

`datatype` : | FoSpace
Returns : | The .maximum value of `datatype`

### fo_space_set_precedence ()

    void                fo_space_set_precedence             (FoDatatype *datatype,
                                                             gint new_precedence);

Sets the .precedence component of `datatype`

`datatype` : | FoSpace
`new_precedence` : | New .precedence value

### fo_space_get_precedence ()

    gint                fo_space_get_precedence             (FoDatatype *datatype);

Gets the .precedence component value of `datatype`

`datatype` : | FoSpace
Returns : | The .precedence value of `datatype`

### fo_space_set_condity ()

    void                fo_space_set_condity                (FoDatatype *datatype,
                                                             gboolean new_condity);

Sets the .conditionality component value of `datatype`

`datatype` : | FoSpace.
`new_condity` : | New .conditionality component value.

### fo_space_get_condity ()

    gboolean            fo_space_get_condity                (FoDatatype *datatype);

Gets the .conditionality component value of `datatype`

`datatype` : | FoSpace
Returns : | The .conditionality value of `datatype`

### fo_space_get_space_0pt ()

    FoDatatype*         fo_space_get_space_0pt              (void);

Create and return an FoSpace with the well-known value 0pt.

This saves creation of multiple FoSpace objects that all have the value 0pt.

Returns : | FoSpace with value 0pt.

### fo_space_resolve ()

    FoDatatype*         fo_space_resolve                    (FoDatatype *shortform,
                                                             FoDatatype *minimum,
                                                             FoDatatype *optimum,
                                                             FoDatatype *maximum,
                                                             FoDatatype *precedence,
                                                             FoDatatype *condity,
                                                             gfloat hundred_percent,
                                                             GError **error);

Resolve the shortform and components of the space in accordance with Section 5.11, Datatypes, of the XSL 1.0 Recommendation.

`shortform` : | Single-value short form of the space, or NULL
`minimum` : | .minimum component of the space, or NULL
`optimum` : | .optimum component of the space, or NULL
`maximum` : | .maximum component of the space, or NULL
`precedence` : | .precedence component of the space, or NULL
`condity` : | .conditionality component of the space, or NULL
`hundred_percent` : | Length to use as 100% when components expressed as percentages
`error` : | GError used for reporting errors
Returns : | Compound space datatype, or NULL if an error occurred

## Property Details

### The `"conditionality"` property

      "conditionality"           gboolean              : Read / Write / Construct Only

Whether or not the space must always be retained.

Default value: FALSE

### The `"maximum"` property

      "maximum"                  gfloat                : Read / Write / Construct Only

Space range maximum value.

Default value: 0

### The `"minimum"` property

      "minimum"                  gfloat                : Read / Write / Construct Only

Space range minimum value.

Default value: 0

### The `"optimum"` property

      "optimum"                  gfloat                : Read / Write / Construct Only

Space range optimum value.

Default value: 0

### The `"precedence"` property

      "precedence"               gint                  : Read / Write / Construct Only

Precedence of this space compared to others.

Default value: 0