ccss_node_t

ccss_node_t

Functions

Types and Values

Description

Functions

ccss_node_is_a_f ()

bool
(*ccss_node_is_a_f) (ccss_node_t *self,
                     char const *type_name);

Hook function to query whether a ccss_node_t is of a certain type.

Parameters

self

a ccss_node_t.

 

type_name

name to match against, e.g. div.

 

Returns

TRUE if matches.


ccss_node_get_container_f ()

ccss_node_t *
(*ccss_node_get_container_f) (ccss_node_t const *self);

Hook function to query the container of a ccss_node_t.

Parameters

self

a ccss_node_t.

 

Returns

newly allocated container node or NULL.


ccss_node_get_base_style_f ()

ccss_node_t *
(*ccss_node_get_base_style_f) (ccss_node_t const *self);

Hook function to query the name of the style a ccss_node_t derives from.

Parameters

self

a ccss_node_t.

 

Returns

base style or NULL. The returned value must be valid until it is released.


ccss_node_get_instance_f ()

ptrdiff_t
(*ccss_node_get_instance_f) (ccss_node_t const *self);

Hook function to query for a unique numerical representation of a ccss_node_t.

Parameters

self

a ccss_node_t.

 

Returns

unique numerical id or 0. If 0 is returned, node-based css style will not be considered.


ccss_node_get_id_f ()

const char *
(*ccss_node_get_id_f) (ccss_node_t const *self);

Hook function to query the ID of a ccss_node_t.

Parameters

self

a ccss_node_t.

 

Returns

node ID or NULL. The returned value must be valid until the current stylesheet query returns.


ccss_node_get_type_f ()

const char *
(*ccss_node_get_type_f) (ccss_node_t const *self);

Hook function to query the type name of a ccss_node_t.

Parameters

self

a ccss_node_t.

 

Returns

node type name or NULL. The returned value must be valid until the current stylesheet query returns.


ccss_node_get_class_f ()

const char *
(*ccss_node_get_class_f) (ccss_node_t const *self);

Hook function to query the class name of a ccss_node_t.

Parameters

self

a ccss_node_t.

 

Returns

node class name or NULL. The returned value must be valid until the current stylesheet query returns.


ccss_node_get_attribute_f ()

char *
(*ccss_node_get_attribute_f) (ccss_node_t const *self,
                              char const *name);

Hook function to query a ccss_node_t's attributes.

Parameters

self

a ccss_node_t.

 

name

attribute name.

 

Returns

attribute value or NULL. The returned value must be valid until the current stylesheet query returns.


ccss_node_get_style_f ()

const char *
(*ccss_node_get_style_f) (ccss_node_t const *self,
                          unsigned int descriptor);

Hook function to query a ccss_node_t's inline CSS style.

See: ccss_stylesheet_unload().

Parameters

self

a ccss_node_t.

 

descriptor

handle to unload this style from the stylesheet later on.

 

Returns

the node's CSS properties or NULL.


ccss_node_get_viewport_f ()

bool
(*ccss_node_get_viewport_f) (ccss_node_t const *self,
                             double *x,
                             double *y,
                             double *width,
                             double *height);

Hook function to determine the position of a node in the viewport.

Parameters

self

a ccss_node_t.

 

x

horizontal position.

 

y

vertical position.

 

width

width of viewport.

 

height

height of viewport.

 

Returns

TRUE if a valid viewport position has been assigned to the out parameters.


ccss_node_release_f ()

void
(*ccss_node_release_f) (ccss_node_t *self);

Hook function to deallocate a ccss_node_t instance.

Parameters

self

a ccss_node_t.

 

ccss_node_init ()

void
ccss_node_init (ccss_node_t *self,
                ccss_node_class_t *node_class);

Initializes node_class by filling unset functions with the default implementations and attaches it to self .

Parameters

self

a ccss_node_t embedding structure.

 

node_class

a ccss_node_class_t vtable.

 

Types and Values

ccss_node_t

typedef struct ccss_node_ ccss_node_t;

Stack-allocatable struct representing a document node. Used for querying the ccss_stylesheet_t.

Memory management: Unless specified otherwise, objects of this kind are under the responsibility of the libccss consumer.


ccss_node_class_t

typedef struct {
	ccss_node_is_a_f		is_a;
	ccss_node_get_container_f get_container;
	ccss_node_get_base_style_f get_base_style;
	ccss_node_get_instance_f get_instance;
	ccss_node_get_id_f		get_id;
	ccss_node_get_type_f		get_type;
	ccss_node_get_class_f		get_class;
	ccss_node_get_pseudo_classes_f get_pseudo_classes;
	ccss_node_get_attribute_f get_attribute;
	ccss_node_get_style_f		get_style;
	ccss_node_get_viewport_f get_viewport;
	ccss_node_release_f		release;
} ccss_node_class_t;

Dispatch table a CCSS consumer has to fill so the selection engine can retrieve information about the document the document.

The implemented dispatch table needs to be passed to ccss_node_init.

Members