## cr-fonts

cr-fonts

## Functions

CRFontFamily * | cr_font_family_new ()
CRFontFamily * | cr_font_family_append ()
guchar * | cr_font_family_to_string ()
CRFontFamily * | cr_font_family_prepend ()
enum CRStatus | cr_font_family_destroy ()
enum CRStatus | cr_font_family_set_name ()
CRFontSize * | cr_font_size_new ()
enum CRStatus | cr_font_size_clear ()
enum CRStatus | cr_font_size_copy ()
enum CRStatus | cr_font_size_set_predefined_absolute_font_size ()
enum CRStatus | cr_font_size_set_relative_font_size ()
enum CRStatus | cr_font_size_set_absolute_font_size ()
enum CRStatus | cr_font_size_set_to_inherit ()
gboolean | cr_font_size_is_set_to_inherit ()
gchar * | cr_font_size_to_string ()
void | cr_font_size_destroy ()
CRFontSizeAdjust * | cr_font_size_adjust_new ()
gchar * | cr_font_size_adjust_to_string ()
void | cr_font_size_adjust_destroy ()
void | cr_font_size_get_smaller_predefined_font_size ()
void | cr_font_size_get_larger_predefined_font_size ()
gboolean | cr_font_size_is_predefined_absolute_font_size ()
const gchar * | cr_font_style_to_string ()
const gchar * | cr_font_weight_to_string ()
enum CRFontWeight | cr_font_weight_get_bolder ()
const gchar * | cr_font_variant_to_string ()
const gchar * | cr_font_stretch_to_string ()

## Types and Values

struct | CRFontFamily
enum | CRFontSizeType
struct | CRFontSize
struct | CRFontSizeAdjust

## Description

## Functions

### cr_font_family_new ()

    CRFontFamily *
    cr_font_family_new (enum CRFontFamilyType a_type,
                        guchar *a_name);

create a font family.

Returns the newly built font family.

#### Parameters

a_type | the type of font family to create. |
a_name | the name of the font family. |

### cr_font_family_append ()

    CRFontFamily *
    cr_font_family_append (CRFontFamily *a_this,
                           CRFontFamily *a_family_to_append);

Returns the new font family list.

#### Parameters

a_this | the current instance of CRFontFamily. |
a_family_to_append | the font family to append to the list |

### cr_font_family_to_string ()

    guchar *
    cr_font_family_to_string (CRFontFamily const *a_this,
                              gboolean a_walk_font_family_list);

Returns the seriliazed font family. The caller has to free it using `g_free()`.

#### Parameters

a_this | the current instance of CRFontFamily. |
a_walk_font_family_list | wether the serialize the entire list. |

### cr_font_family_prepend ()

    CRFontFamily *
    cr_font_family_prepend (CRFontFamily *a_this,
                            CRFontFamily *a_family_to_prepend);

Returns the font family list.

#### Parameters

a_this | the current instance CRFontFamily. |
a_family_to_prepend | the font family to prepend to the list. |

### cr_font_family_destroy ()

    enum CRStatus
    cr_font_family_destroy (CRFontFamily *a_this);

Returns CR_OK upon sucessful completion, an error code otherwise.

#### Parameters

a_this | the current instance of CRFontFamily. |

### cr_font_family_set_name ()

    enum CRStatus
    cr_font_family_set_name (CRFontFamily *a_this,
                             guchar *a_name);

Returns CR_OK upon sucessful completion, an error code otherwise.

#### Parameters

a_this | the current instance of CRFontFamily. |
a_name | the new name |

### cr_font_size_new ()

    CRFontSize *
    cr_font_size_new (void);

Returns the newly created font size.

### cr_font_size_clear ()

    enum CRStatus
    cr_font_size_clear (CRFontSize *a_this);

Returns CR_OK upon successful completion, an error code otherwise.

#### Parameters

a_this | the current instance of CRFontSize |

### cr_font_size_copy ()

    enum CRStatus
    cr_font_size_copy (CRFontSize *a_dst,
                       CRFontSize const *a_src);

Returns CR_OK upon successful completion, an error code otherwise.

#### Parameters

a_dst | the destination CRFontSize (where to copy to). |
a_src | the source CRFontSize (where to copy from). |

### cr_font_size_set_predefined_absolute_font_size ()

    enum CRStatus
    cr_font_size_set_predefined_absolute_font_size
                                   (CRFontSize *a_this,
                                    enum CRPredefinedAbsoluteFontSize a_predefined);

Returns CR_OK upon sucessful completion, an error code otherwise.

#### Parameters

a_this | the current instance of CRFontSize. |
a_predefined | what to set. |

### cr_font_size_set_relative_font_size ()

    enum CRStatus
    cr_font_size_set_relative_font_size (CRFontSize *a_this,
                                         enum CRRelativeFontSize a_relative);

Returns CR_OK upon successful completion, an error code otherwise.

#### Parameters

a_this | the current instance of CRFontSize |
a_relative | the new relative font size |

### cr_font_size_set_absolute_font_size ()

    enum CRStatus
    cr_font_size_set_absolute_font_size (CRFontSize *a_this,
                                         enum CRNumType a_num_type,
                                         gdouble a_value);

Returns CR_OK upon succesful completion, an error code otherwise.

#### Parameters

a_this | the current instance of CRFontSize |
a_num_type | the type of number to set. |
a_value | the actual value to set. |

### cr_font_size_set_to_inherit ()

    enum CRStatus
    cr_font_size_set_to_inherit (CRFontSize *a_this);

Returns CR_OK upon succesful completion, an error code otherwise.

#### Parameters

a_this | the current instance of CRFontSize |

### cr_font_size_is_set_to_inherit ()

    gboolean
    cr_font_size_is_set_to_inherit (CRFontSize const *a_this);

Returns TRUE if the current instance is set to 'inherit'.

#### Parameters

a_this | the current instance of CRFontSize. |

### cr_font_size_to_string ()

    gchar *
    cr_font_size_to_string (CRFontSize const *a_this);

Returns the serialized form of CRFontSize. The returned string has to bee freed using `g_free()`.

#### Parameters

a_this | the current instance of CRFontSize |

### cr_font_size_destroy ()

    void
    cr_font_size_destroy (CRFontSize *a_font_size);

#### Parameters

a_font_size | the font size to destroy |

### cr_font_size_adjust_new ()

    CRFontSizeAdjust *
    cr_font_size_adjust_new (void);

Returns a newly built instance of CRFontSizeAdjust

### cr_font_size_adjust_to_string ()

    gchar *
    cr_font_size_adjust_to_string (CRFontSizeAdjust const *a_this);

Returns the serialized form of CRFontSizeAdjust

#### Parameters

a_this | the instance of CRFontSizeAdjust. |

### cr_font_size_adjust_destroy ()

    void
    cr_font_size_adjust_destroy (CRFontSizeAdjust *a_this);

#### Parameters

a_this | the current instance of CRFontSizeAdjust. |

### cr_font_size_get_smaller_predefined_font_size ()

    void
    cr_font_size_get_smaller_predefined_font_size
                                   (enum CRPredefinedAbsoluteFontSize a_font_size,
                                    enum CRPredefinedAbsoluteFontSize *a_smaller_size);

### cr_font_size_get_larger_predefined_font_size ()

    void
    cr_font_size_get_larger_predefined_font_size
                                   (enum CRPredefinedAbsoluteFontSize a_font_size,
                                    enum CRPredefinedAbsoluteFontSize *a_larger_size);

#### Parameters

a_font_size | the font size to consider. |
a_larger_size | out parameter. the font size considered larger than `a_font_size` . |

### cr_font_size_is_predefined_absolute_font_size ()

    gboolean
    cr_font_size_is_predefined_absolute_font_size
                                   (enum CRPredefinedAbsoluteFontSize a_font_size);

Returns TRUE if the instance is an predefined absolute font size, FALSE otherwise.

#### Parameters

a_font_size | the font size to consider. |

### cr_font_style_to_string ()

    const gchar *
    cr_font_style_to_string (enum CRFontStyle a_code);

Returns the serialized CRFontStyle. The caller must free the returned string using `g_free()`.

#### Parameters

a_code | the current instance of CRFontStyle . |

### cr_font_weight_to_string ()

    const gchar *
    cr_font_weight_to_string (enum CRFontWeight a_code);

Returns the serialized form of CRFontWeight.

#### Parameters

a_code | the font weight to consider. |

### cr_font_weight_get_bolder ()

    enum CRFontWeight
    cr_font_weight_get_bolder (enum CRFontWeight a_weight);

Returns a font weight bolder than `a_weight`

#### Parameters

a_weight | the CRFontWeight to consider. |

### cr_font_variant_to_string ()

    const gchar *
    cr_font_variant_to_string (enum CRFontVariant a_code);

Returns the serialized form of CRFontVariant. The caller has to free the returned string using `g_free()`.

#### Parameters

a_code | the current instance of CRFontVariant. |

### cr_font_stretch_to_string ()

    const gchar *
    cr_font_stretch_to_string (enum CRFontStretch a_code);

Returns the serialized form of CRFontStretch.

#### Parameters

a_code | the instance of CRFontStretch to consider. |

## Types and Values

### struct CRFontFamily

    struct CRFontFamily {
    	enum CRFontFamilyType type ;

    	/*
    	 *The name of the font family, in case
    	 *it is non generic.
    	 *Is set only if the type is FONT_FAMILY_NON_GENERIC.
    	 */
    	guchar *name ;

    	CRFontFamily *next ;
    	CRFontFamily *prev ;
    };

### enum CRFontSizeType

#### Members

PREDEFINED_ABSOLUTE_FONT_SIZE |  |
ABSOLUTE_FONT_SIZE |  |
RELATIVE_FONT_SIZE |  |
INHERITED_FONT_SIZE |  |
NB_FONT_SIZE_TYPE |  |

### struct CRFontSize

    struct CRFontSize {
            enum CRFontSizeType type ;
            union  {
                    enum CRPredefinedAbsoluteFontSize predefined ;
                    enum CRRelativeFontSize relative ;
                    CRNum absolute ;
            } value;
    };

### struct CRFontSizeAdjust

    struct CRFontSizeAdjust {
            enum CRFontSizeAdjustType type ;
            CRNum *num ;
    };