From fa2111088b5bb6b24b4acca53c95e1dc0284682e Mon Sep 17 00:00:00 2001 From: Michael Drake Date: Thu, 28 Jan 2016 16:16:23 +0000 Subject: Style: Fix indentation and tidy up. --- include/dom/html/html_element.h | 144 ++++++++++++++++++++++------------------ 1 file changed, 78 insertions(+), 66 deletions(-) (limited to 'include/dom/html/html_element.h') diff --git a/include/dom/html/html_element.h b/include/dom/html/html_element.h index d6d3c88..dc1def1 100644 --- a/include/dom/html/html_element.h +++ b/include/dom/html/html_element.h @@ -13,119 +13,131 @@ typedef struct dom_html_element dom_html_element; typedef struct dom_html_element_vtable { - struct dom_element_vtable base; - - dom_exception (*dom_html_element_get_id)(struct dom_html_element *element, - dom_string **id); - dom_exception (*dom_html_element_set_id)(struct dom_html_element *element, - dom_string *id); - dom_exception (*dom_html_element_get_title)(struct dom_html_element *element, - dom_string **title); - dom_exception (*dom_html_element_set_title)(struct dom_html_element *element, - dom_string *title); - dom_exception (*dom_html_element_get_lang)(struct dom_html_element *element, - dom_string **lang); - dom_exception (*dom_html_element_set_lang)(struct dom_html_element *element, - dom_string *lang); - dom_exception (*dom_html_element_get_dir)(struct dom_html_element *element, - dom_string **dir); - dom_exception (*dom_html_element_set_dir)(struct dom_html_element *element, - dom_string *dir); - dom_exception (*dom_html_element_get_class_name)(struct dom_html_element *element, - dom_string **class_name); - dom_exception (*dom_html_element_set_class_name)(struct dom_html_element *element, - dom_string *class_name); + struct dom_element_vtable base; + + dom_exception (*dom_html_element_get_id)( + struct dom_html_element *element, + dom_string **id); + dom_exception (*dom_html_element_set_id)( + struct dom_html_element *element, + dom_string *id); + dom_exception (*dom_html_element_get_title)( + struct dom_html_element *element, + dom_string **title); + dom_exception (*dom_html_element_set_title)( + struct dom_html_element *element, + dom_string *title); + dom_exception (*dom_html_element_get_lang)( + struct dom_html_element *element, + dom_string **lang); + dom_exception (*dom_html_element_set_lang)( + struct dom_html_element *element, + dom_string *lang); + dom_exception (*dom_html_element_get_dir)( + struct dom_html_element *element, + dom_string **dir); + dom_exception (*dom_html_element_set_dir)( + struct dom_html_element *element, + dom_string *dir); + dom_exception (*dom_html_element_get_class_name)( + struct dom_html_element *element, + dom_string **class_name); + dom_exception (*dom_html_element_set_class_name)( + struct dom_html_element *element, + dom_string *class_name); } dom_html_element_vtable; -static inline dom_exception dom_html_element_get_id(struct dom_html_element *element, - dom_string **id) +static inline dom_exception dom_html_element_get_id( + struct dom_html_element *element, dom_string **id) { - return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)-> - dom_html_element_get_id(element, id); + return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)-> + dom_html_element_get_id(element, id); } #define dom_html_element_get_id(e, id) dom_html_element_get_id( \ (dom_html_element *) (e), (id)) -static inline dom_exception dom_html_element_set_id(struct dom_html_element *element, - dom_string *id) +static inline dom_exception dom_html_element_set_id( + struct dom_html_element *element, dom_string *id) { - return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)-> - dom_html_element_set_id(element, id); + return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)-> + dom_html_element_set_id(element, id); } #define dom_html_element_set_id(e, id) dom_html_element_set_id( \ (dom_html_element *) (e), (id)) -static inline dom_exception dom_html_element_get_title(struct dom_html_element *element, - dom_string **title) +static inline dom_exception dom_html_element_get_title( + struct dom_html_element *element, dom_string **title) { - return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)-> - dom_html_element_get_title(element, title); + return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)-> + dom_html_element_get_title(element, title); } #define dom_html_element_get_title(e, title) dom_html_element_get_title( \ (dom_html_element *) (e), (title)) -static inline dom_exception dom_html_element_set_title(struct dom_html_element *element, - dom_string *title) +static inline dom_exception dom_html_element_set_title( + struct dom_html_element *element, dom_string *title) { - return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)-> - dom_html_element_set_title(element, title); + return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)-> + dom_html_element_set_title(element, title); } #define dom_html_element_set_title(e, title) dom_html_element_set_title( \ (dom_html_element *) (e), (title)) -static inline dom_exception dom_html_element_get_lang(struct dom_html_element *element, - dom_string **lang) +static inline dom_exception dom_html_element_get_lang( + struct dom_html_element *element, dom_string **lang) { - return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)-> - dom_html_element_get_lang(element, lang); + return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)-> + dom_html_element_get_lang(element, lang); } #define dom_html_element_get_lang(e, lang) dom_html_element_get_lang( \ (dom_html_element *) (e), (lang)) -static inline dom_exception dom_html_element_set_lang(struct dom_html_element *element, - dom_string *lang) +static inline dom_exception dom_html_element_set_lang( + struct dom_html_element *element, dom_string *lang) { - return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)-> - dom_html_element_set_lang(element, lang); + return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)-> + dom_html_element_set_lang(element, lang); } #define dom_html_element_set_lang(e, lang) dom_html_element_set_lang( \ (dom_html_element *) (e), (lang)) -static inline dom_exception dom_html_element_get_dir(struct dom_html_element *element, - dom_string **dir) +static inline dom_exception dom_html_element_get_dir( + struct dom_html_element *element, dom_string **dir) { - return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)-> - dom_html_element_get_dir(element, dir); + return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)-> + dom_html_element_get_dir(element, dir); } #define dom_html_element_get_dir(e, dir) dom_html_element_get_dir( \ (dom_html_element *) (e), (dir)) -static inline dom_exception dom_html_element_set_dir(struct dom_html_element *element, - dom_string *dir) +static inline dom_exception dom_html_element_set_dir( + struct dom_html_element *element, dom_string *dir) { - return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)-> - dom_html_element_set_dir(element, dir); + return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)-> + dom_html_element_set_dir(element, dir); } #define dom_html_element_set_dir(e, dir) dom_html_element_set_dir( \ (dom_html_element *) (e), (dir)) -static inline dom_exception dom_html_element_get_class_name(struct dom_html_element *element, - dom_string **class_name) +static inline dom_exception dom_html_element_get_class_name( + struct dom_html_element *element, dom_string **class_name) { - return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)-> - dom_html_element_get_class_name(element, class_name); + return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)-> + dom_html_element_get_class_name(element, class_name); } -#define dom_html_element_get_class_name(e, class_name) dom_html_element_get_class_name( \ - (dom_html_element *) (e), (class_name)) +#define dom_html_element_get_class_name(e, class_name) \ + dom_html_element_get_class_name((dom_html_element *) (e), \ + (class_name)) -static inline dom_exception dom_html_element_set_class_name(struct dom_html_element *element, - dom_string *class_name) +static inline dom_exception dom_html_element_set_class_name( + struct dom_html_element *element, dom_string *class_name) { - return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)-> - dom_html_element_set_class_name(element, class_name); + return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)-> + dom_html_element_set_class_name(element, class_name); } -#define dom_html_element_set_class_name(e, class_name) dom_html_element_set_class_name( \ - (dom_html_element *) (e), (class_name)) +#define dom_html_element_set_class_name(e, class_name) \ + dom_html_element_set_class_name((dom_html_element *) (e), \ + (class_name)) #endif -- cgit v1.2.3 From cedfbbce5ee148d04cfa87c3e459eea26ba397ef Mon Sep 17 00:00:00 2001 From: Michael Drake Date: Thu, 28 Jan 2016 17:13:28 +0000 Subject: Add function to get html element's tag type. --- Makefile | 1 + include/dom/html/html_element.h | 18 ++++++++++++++++++ src/html/html_element.c | 18 ++++++++++++++++++ src/html/html_element.h | 5 ++++- 4 files changed, 41 insertions(+), 1 deletion(-) (limited to 'include/dom/html/html_element.h') diff --git a/Makefile b/Makefile index ddbdbd2..d287455 100644 --- a/Makefile +++ b/Makefile @@ -90,6 +90,7 @@ I := /$(INCLUDEDIR)/dom/html INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_document.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_collection.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_element.h +INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_elements.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_html_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_head_element.h INSTALL_ITEMS := $(INSTALL_ITEMS) $(I):$(Is)/html_link_element.h diff --git a/include/dom/html/html_element.h b/include/dom/html/html_element.h index dc1def1..49a7d59 100644 --- a/include/dom/html/html_element.h +++ b/include/dom/html/html_element.h @@ -9,6 +9,7 @@ #define dom_html_element_h_ #include +#include typedef struct dom_html_element dom_html_element; @@ -45,6 +46,12 @@ typedef struct dom_html_element_vtable { dom_exception (*dom_html_element_set_class_name)( struct dom_html_element *element, dom_string *class_name); + + /* This is for providing clients with a convienent way to deal + * with html elements with a specific tag name. */ + dom_exception (*dom_html_element_get_tag_type)( + const struct dom_html_element *element, + dom_html_element_type *type); } dom_html_element_vtable; static inline dom_exception dom_html_element_get_id( @@ -139,5 +146,16 @@ static inline dom_exception dom_html_element_set_class_name( dom_html_element_set_class_name((dom_html_element *) (e), \ (class_name)) +static inline dom_exception dom_html_element_get_tag_type( + const struct dom_html_element *element, + dom_html_element_type *type) +{ + return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)-> + dom_html_element_get_tag_type(element, type); +} +#define dom_html_element_get_tag_type(e, type) \ + dom_html_element_get_tag_type((const dom_html_element *) (e), \ + (type)) + #endif diff --git a/src/html/html_element.c b/src/html/html_element.c index 39aabda..85380ff 100644 --- a/src/html/html_element.c +++ b/src/html/html_element.c @@ -282,6 +282,24 @@ dom_exception _dom_html_element_get_elements_by_tag_name_ns( return err; } +/** + * Retrieve an HTML element's tag type. + * + * \param element The element to get the tag type of. + * \param type Updated to the tag type of the element. + * \return DOM_NO_ERR + * + * Elements with non-standard tags will be DOM_HTML_ELEMENT_TYPE__UNKNOWN. + */ +dom_exception _dom_html_element_get_tag_type( + const struct dom_html_element *element, + dom_html_element_type *type) +{ + *type = element->type; + + return DOM_NO_ERR; +} + /*-----------------------------------------------------------------------*/ /* Common functions */ diff --git a/src/html/html_element.h b/src/html/html_element.h index 7d86727..92c96ab 100644 --- a/src/html/html_element.h +++ b/src/html/html_element.h @@ -124,6 +124,8 @@ dom_exception _dom_html_element_get_class_name(dom_html_element *element, dom_string **class_name); dom_exception _dom_html_element_set_class_name(dom_html_element *element, dom_string *class_name); +dom_exception _dom_html_element_get_tag_type(const dom_html_element *element, + dom_html_element_type *type); #define DOM_HTML_ELEMENT_VTABLE \ _dom_html_element_get_id, \ @@ -135,7 +137,8 @@ dom_exception _dom_html_element_set_class_name(dom_html_element *element, _dom_html_element_get_dir, \ _dom_html_element_set_dir, \ _dom_html_element_get_class_name, \ - _dom_html_element_set_class_name + _dom_html_element_set_class_name, \ + _dom_html_element_get_tag_type /* Some common functions used by all child classes */ dom_exception dom_html_element_get_bool_property(dom_html_element *ele, -- cgit v1.2.3