| CCSS Reference Manual | ||||
|---|---|---|---|---|
| Top | Description | ||||
ccss_property_class_t;
typedef ccss_property_t;
ccss_property_generic_t;
enum ccss_property_state_t;
enum ccss_property_type_t;
ccss_property_t * (*ccss_property_create_f) (struct ccss_grammar_ const *grammar,
CRTerm const *values,
void *user_data);
void (*ccss_property_destroy_f) (ccss_property_t *self);
bool (*ccss_property_convert_f) (ccss_property_t const *self,
ccss_property_type_t target,
void *value);
bool (*ccss_property_factory_f) (struct ccss_grammar_ const *grammar,
struct ccss_block_ *block,
char const *name,
CRTerm const *values,
void *user_data);
bool (*ccss_property_inherit_f) (struct ccss_style_ const *container_style,
struct ccss_style_ *style);
char * (*ccss_property_serialize_f) (ccss_property_t const *self);
void ccss_property_init (ccss_property_t *self,
ccss_property_class_t const *property_class);
typedef struct {
char const *name;
ccss_property_create_f create;
ccss_property_destroy_f destroy;
ccss_property_convert_f convert;
ccss_property_factory_f factory;
ccss_property_inherit_f inherit;
ccss_property_serialize_f serialize;
} ccss_property_class_t;
Property interpretation vtable entry.
char const * |
property name. |
ccss_property_create_f |
allocation hook, see ccss_property_create_f. |
ccss_property_destroy_f |
deallocation hook, see ccss_property_destroy_f. |
ccss_property_convert_f |
conversion hook, see ccss_property_convert_f. |
ccss_property_factory_f |
factory hook, see ccss_property_factory_f. |
ccss_property_inherit_f |
inherit hook, see ccss_property_inherit_f. |
ccss_property_serialize_f |
serialize hook, see ccss_property_serialize_f. |
typedef struct ccss_property_ ccss_property_t;
This structure has to be embedded at the beginning of every custom property.
typedef struct {
ccss_property_t base;
char *name;
CRTerm *values;
} ccss_property_generic_t;
Implementation of a generic, single-value property.
ccss_property_t |
base property. |
char * |
name of the property, e.g. color.
|
CRTerm * |
linked list of values. |
typedef enum {
CCSS_PROPERTY_STATE_INVALID = 0,
CCSS_PROPERTY_STATE_NONE,
CCSS_PROPERTY_STATE_INHERIT,
CCSS_PROPERTY_STATE_SET,
CCSS_PROPERTY_STATE_ERROR_OVERFLOW
} ccss_property_state_t;
This enum must be embedded as first field in every property implementation.
| error state, invalid property. | |
| property set to `none', switched off. | |
| inherit property from container. | |
| property is valid and set. | |
| error state, used for bounds checking. |
typedef enum {
CCSS_PROPERTY_TYPE_DOUBLE,
CCSS_PROPERTY_TYPE_STRING
} ccss_property_type_t;
Type descriptions for generic properties.
ccss_property_t * (*ccss_property_create_f) (struct ccss_grammar_ const *grammar, CRTerm const *values, void *user_data);
Hook function for instantiating a property.
|
the grammar associated with this property. |
|
libcroco CSS values to parse for the property, see CRTerm. |
|
user data passed to property- or function-handler. |
Returns : |
pointer to the allocated property instance or NULL if parsing fails.
|
void (*ccss_property_destroy_f) (ccss_property_t *self);
Hook function for deallocating a property instance.
|
pointer to property instance. |
bool (*ccss_property_convert_f) (ccss_property_t const *self, ccss_property_type_t target, void *value);
Hook function for converting a property instance.
|
pointer to property instance. |
|
conversion target type, see ccss_property_type_t. |
|
pointer to memory location where to place the converted value. |
Returns : |
TRUE if the conversion was successful.
|
bool (*ccss_property_factory_f) (struct ccss_grammar_ const *grammar,
struct ccss_block_ *block,
char const *name,
CRTerm const *values,
void *user_data);
Hook function to handle the creation of multiple properties from a single CSS property, e.g. `border'.
|
the grammar associated with this property. |
|
the ccss_block_t the properties will be associated to. |
|
name of the property. |
|
libcroco CSS values to parse for the property, see CRTerm. |
|
user data passed to property- or function-handler. |
Returns : |
TRUE when sucessful.
|
bool (*ccss_property_inherit_f) (struct ccss_style_ const *container_style,
struct ccss_style_ *style);
Hook function to inherit multi-value properties like `border'.
|
style to inherit from. |
|
style to inherit to. |
Returns : |
TRUE if property inheritance could be resolved.
|
char * (*ccss_property_serialize_f) (ccss_property_t const *self);
Hook function to reformat a property to CSS syntax.
|
pointer to property instance. |
Returns : |
TRUE if property inheritance could be resolved.
|
void ccss_property_init (ccss_property_t *self, ccss_property_class_t const *property_class);
Initializes self, needs to be called before the property is
registered with ccss.
|
a ccss_property_t. |
|
a ccss_property_class_t vtable. |