Parole

## Parole Parole |

## Synopsis

    #define             PAROLE_MAJOR_VERSION
    #define             PAROLE_MINOR_VERSION
    #define             PAROLE_MICRO_VERSION
    #define             PAROLE_CHECK_VERSION                (major,minor,micro)
    #define             PAROLE_DEFINE_TYPE                  (TN, t_n, T_P)
    #define             PAROLE_DEFINE_TYPE_EXTENDED         (TN, t_n, T_P, _f_, _C_)
    #define             PAROLE_DEFINE_TYPE_WITH_CODE        (TN, t_n, T_P, _C_)
    #define             PAROLE_DEFINE_ABSTRACT_TYPE         (TN, t_n, T_P)
    #define             PAROLE_DEFINE_ABSTRACT_TYPE_WITH_CODE(TN, t_n, T_P, _C_)
    #define             PAROLE_IMPLEMENT_INTERFACE          (TYPE_IFACE, iface_init)

## Description

## Details

### PAROLE_MAJOR_VERSION

    #define PAROLE_MAJOR_VERSION		0

### PAROLE_MINOR_VERSION

    #define PAROLE_MINOR_VERSION		2

### PAROLE_MICRO_VERSION

    #define PAROLE_MICRO_VERSION		0.2

### PAROLE_CHECK_VERSION()

    #define             PAROLE_CHECK_VERSION(major,minor,micro)

Checks the parole version.

`major` : | major version number.
`minor` : | minor version number.
`micro` : | micor version number.

Since 0.2

### PAROLE_DEFINE_TYPE()

    #define PAROLE_DEFINE_TYPE(TN, t_n, T_P)			PAROLE_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, 0, {})

`TN` : | The name of the new type, in Camel case.
`t_n` : | The name of the new type, in lowercase, with words separated by '_'.
`T_P` : | The GType of the parent type.

Since 0.2

### PAROLE_DEFINE_TYPE_EXTENDED()

    #define PAROLE_DEFINE_TYPE_EXTENDED(TN, t_n, T_P, _f_, _C_) _PAROLE_DEFINE_TYPE_EXTENDED_BEGIN(TN, t_n, T_P, _f_) {_C_;} _PAROLE_DEFINE_TYPE_EXTENDED_END()

`TN` : | The name of the new type, in Camel case.
`t_n` : | The name of the new type, in lowercase, with words separated by '_'.
`T_P` : | The GType of the parent type.
`_f_` : | GTypeFlags to pass to `g_type_module_register_type()`.
`_C_` : | Custom code that gets inserted in *_get_type() function.

Since 0.2

### PAROLE_DEFINE_TYPE_WITH_CODE()

    #define PAROLE_DEFINE_TYPE_WITH_CODE(TN, t_n, T_P, _C_)		_PAROLE_DEFINE_TYPE_EXTENDED_BEGIN(TN, t_n, T_P, 0) {_C_;} _PAROLE_DEFINE_TYPE_EXTENDED_END()

`TN` : | The name of the new type, in Camel case.
`t_n` : | The name of the new type, in lowercase, with words separated by '_'.
`T_P` : | The GType of the parent type.
`_C_` : | Custom code that gets inserted in *_get_type() function.

Since 0.2

### PAROLE_DEFINE_ABSTRACT_TYPE()

    #define PAROLE_DEFINE_ABSTRACT_TYPE(TN, t_n, T_P)		PAROLE_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, G_TYPE_FLAG_ABSTRACT, {})

`TN` : | The name of the new type, in Camel case.
`t_n` : | The name of the new type, in lowercase, with words separated by '_'.
`T_P` : | The GType of the parent type.

Since 0.2

### PAROLE_DEFINE_ABSTRACT_TYPE_WITH_CODE()

    #define PAROLE_DEFINE_ABSTRACT_TYPE_WITH_CODE(TN, t_n, T_P, _C_) PAROLE_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, G_TYPE_FLAG_ABSTRACT, _C_)

`TN` : | The name of the new type, in Camel case.
`t_n` : | The name of the new type, in lowercase, with words separated by '_'.
`T_P` : | The GType of the parent type.
`_C_` : | Custom code that gets inserted in *_get_type() function.

Since 0.2

### PAROLE_IMPLEMENT_INTERFACE()

    #define             PAROLE_IMPLEMENT_INTERFACE(TYPE_IFACE, iface_init)

`TYPE_IFACE` : | the GType of the interface to add.
`iface_init` : | The interface init function.