## FoProperty

FoProperty — FoProperty is wonderful

## Synopsis

    struct      FoProperty;
    struct      FoPropertyClass;
    #define     FO_PROPERTY_ERROR
    GQuark      fo_property_error_quark         (void);
    enum        FoPropertyError;
    FoProperty* fo_property_new                 (void);
    FoDatatype* fo_property_get_value           (FoProperty *property);
    void        fo_property_set_value           (FoProperty *property,
                                                 FoDatatype *new_value);
    gboolean    fo_property_class_is_inherited  (FoPropertyClass *property_class);
    gboolean    fo_property_is_inherited        (FoProperty *property);
    gboolean    fo_property_class_is_shorthand  (FoPropertyClass *property_class);
    gboolean    fo_property_is_shorthand        (FoProperty *property);
    FoDatatype* (*FoResolveEnumFunc)            (const gchar *token,
                                                 FoContext *context,
                                                 GError **err);
    FoDatatype* (*FoResolvePercentFunc)         (gdouble percentage,
                                                 const FoDatatype *font_size,
                                                 const FoFo *fo_node,
                                                 const FoContext *context,
                                                 GError **err);
    FoProperty* fo_property_new_from_expr       (FoPropertyClass *property_class,
                                                 const gchar *expression,
                                                 FoContext *context,
                                                 FoProperty *current_font_size,
                                                 FoFo *fo_node,
                                                 GError **error);

## Object Hierarchy

      GObject
       +----FoObject
             +----FoProperty

## Properties

      "value"                FoDatatype           : Read / Write

## Description

FoProperty is really wonderful.

## Details

### struct FoProperty

    struct FoProperty;

### struct FoPropertyClass

    struct FoPropertyClass;

### FO_PROPERTY_ERROR

    #define FO_PROPERTY_ERROR fo_property_error_quark ()

### fo_property_error_quark ()

    GQuark      fo_property_error_quark         (void);

Returns : |

### enum FoPropertyError

    typedef enum
    {
      FO_PROPERTY_ERROR_FAILED,
      FO_PROPERTY_ERROR_EXPRESSION,
      FO_PROPERTY_ERROR_NO_ENUMERATION,
      FO_PROPERTY_ERROR_ILLEGAL_NEGATIVE,
      FO_PROPERTY_ERROR_LAST
    } FoPropertyError;

### fo_property_new ()

    FoProperty* fo_property_new                 (void);

Creates a new FoProperty initialized to default value.

Returns : | the new FoProperty.

### fo_property_get_value ()

    FoDatatype* fo_property_get_value           (FoProperty *property);

Returns the current value property value of `property`.

`property` : | FoProperty object whose value is to be retrieved.
Returns : | The current 'value' property value.

### fo_property_set_value ()

    void        fo_property_set_value           (FoProperty *property,
                                                 FoDatatype *new_value);

Sets the 'value' property of `property`.

`property` : | FoProperty object whose value is to be set.
`new_value` : | New value for the property.

### fo_property_class_is_inherited ()

    gboolean    fo_property_class_is_inherited  (FoPropertyClass *property_class);

Indicates whether the XSL property represented by `property_class` is defined in the XSL 1.0 Recommendation as an inherited property.

`property_class` : | FoPropertyClass or a subclass of FoPropertyClass.
Returns : | TRUE if `property_class` is inherited, FALSE if not.

### fo_property_is_inherited ()

    gboolean    fo_property_is_inherited        (FoProperty *property);

Indicates whether the XSL property represented by `property` is defined in the XSL 1.0 Recommendation as an inherited property.

`property` : |
Returns : | TRUE if `property` is inherited, FALSE otherwise

### fo_property_class_is_shorthand ()

    gboolean    fo_property_class_is_shorthand  (FoPropertyClass *property_class);

Indicates whether the XSL property represented by `property_class` is defined in the XSL 1.0 Recommendation as a shorthand property.

`property_class` : | FoPropertyClass or a subclass of FoPropertyClass.
Returns : | TRUE if `property_class` is a shorthand, FALSE if not.

### fo_property_is_shorthand ()

    gboolean    fo_property_is_shorthand        (FoProperty *property);

Indicates whether the XSL property represented by `property` is defined in the XSL 1.0 Recommendation as a shorthand property.

`property` : |
Returns : | TRUE if `property` is a shorthand, FALSE otherwise

### FoResolveEnumFunc ()

    FoDatatype* (*FoResolveEnumFunc)            (const gchar *token,
                                                 FoContext *context,
                                                 GError **err);

`token` : |
`context` : |
`err` : |
Returns : |

### FoResolvePercentFunc ()

    FoDatatype* (*FoResolvePercentFunc)         (gdouble percentage,
                                                 const FoDatatype *font_size,
                                                 const FoFo *fo_node,
                                                 const FoContext *context,
                                                 GError **err);

`percentage` : |
`font_size` : |
`fo_node` : |
`context` : |
`err` : |
Returns : |

### fo_property_new_from_expr ()

    FoProperty* fo_property_new_from_expr       (FoPropertyClass *property_class,
                                                 const gchar *expression,
                                                 FoContext *context,
                                                 FoProperty *current_font_size,
                                                 FoFo *fo_node,
                                                 GError **error);

`property_class` : |
`expression` : |
`context` : |
`current_font_size` : |
`fo_node` : |
`error` : |
Returns : |

## Properties

"`value`" (FoDatatype : Read / Write) | Property value.