From 79bfe3a2a055ac3d33509de9e68faa85c069e1ba Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Sat, 11 Feb 2012 21:24:47 +0000 Subject: Provide custom API to ease optimal binding to libcss svn path=/trunk/libdom/; revision=13440 --- src/core/element.c | 37 +++++++++++++++++++++++++++++++++++++ src/core/element.h | 8 +++++++- 2 files changed, 44 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/core/element.c b/src/core/element.c index 89c62a3..cf15a5f 100644 --- a/src/core/element.c +++ b/src/core/element.c @@ -883,6 +883,43 @@ dom_exception _dom_element_set_id_attribute_node(struct dom_element *element, } +/** + * Obtain a pre-parsed array of class names for an element + * + * \param element Element containing classes + * \param classes Pointer to location to receive allocated array + * \param n_classes Pointer to location to receive number of classes + * \return DOM_NO_ERR on success, + * DOM_NO_MEM_ERR on memory exhaustion + */ +dom_exception _dom_element_get_classes(struct dom_element *element, + lwc_string ***classes, uint32_t *n_classes) +{ + UNUSED(element); + UNUSED(classes); + UNUSED(n_classes); + + return DOM_NOT_SUPPORTED_ERR; +} + +/** + * Determine if an element has an associated class + * + * \param element Element to consider + * \param name Class name to look for + * \param match Pointer to location to receive result + * \return DOM_NO_ERR. + */ +dom_exception _dom_element_has_class(struct dom_element *element, + lwc_string *name, bool *match) +{ + UNUSED(element); + UNUSED(name); + UNUSED(match); + + return DOM_NOT_SUPPORTED_ERR; +} + /*------------- The overload virtual functions ------------------------*/ /* Overload function of Node, please refer src/core/node.c for detail */ diff --git a/src/core/element.h b/src/core/element.h index 77a040b..ae7d155 100644 --- a/src/core/element.h +++ b/src/core/element.h @@ -101,6 +101,10 @@ dom_exception _dom_element_set_id_attribute_ns(struct dom_element *element, bool is_id); dom_exception _dom_element_set_id_attribute_node(struct dom_element *element, struct dom_attr *id_attr, bool is_id); +dom_exception _dom_element_get_classes(struct dom_element *element, + lwc_string ***classes, uint32_t *n_classes); +dom_exception _dom_element_has_class(struct dom_element *element, + lwc_string *name, bool *match); #define DOM_ELEMENT_VTABLE \ _dom_element_get_tag_name, \ @@ -122,7 +126,9 @@ dom_exception _dom_element_set_id_attribute_node(struct dom_element *element, _dom_element_get_schema_type_info, \ _dom_element_set_id_attribute, \ _dom_element_set_id_attribute_ns, \ - _dom_element_set_id_attribute_node + _dom_element_set_id_attribute_node, \ + _dom_element_get_classes, \ + _dom_element_has_class /* Overloading dom_node functions */ dom_exception _dom_element_get_attributes(dom_node_internal *node, -- cgit v1.2.3