diff options
Diffstat (limited to 'src/html/html_element.c')
-rw-r--r-- | src/html/html_element.c | 38 |
1 files changed, 29 insertions, 9 deletions
diff --git a/src/html/html_element.c b/src/html/html_element.c index d436898..85380ff 100644 --- a/src/html/html_element.c +++ b/src/html/html_element.c @@ -38,9 +38,9 @@ static struct dom_element_protected_vtable _dom_html_element_protect_vtable = { DOM_ELEMENT_PROTECT_VTABLE }; -dom_exception _dom_html_element_create(struct dom_html_document *doc, - dom_string *name, dom_string *namespace, - dom_string *prefix, struct dom_html_element **result) +dom_exception _dom_html_element_create( + struct dom_html_element_create_params *params, + struct dom_html_element **result) { dom_exception error; dom_html_element *el; @@ -52,8 +52,7 @@ dom_exception _dom_html_element_create(struct dom_html_document *doc, el->base.base.base.vtable = &_dom_html_element_vtable; el->base.base.vtable = &_dom_html_element_protect_vtable; - error = _dom_html_element_initialise(doc, el, name, namespace, - prefix); + error = _dom_html_element_initialise(params, el); if (error != DOM_NO_ERR) { free(el); return error; @@ -64,13 +63,16 @@ dom_exception _dom_html_element_create(struct dom_html_document *doc, return DOM_NO_ERR; } -dom_exception _dom_html_element_initialise(struct dom_html_document *doc, - struct dom_html_element *el, dom_string *name, - dom_string *namespace, dom_string *prefix) +dom_exception _dom_html_element_initialise( + struct dom_html_element_create_params *params, + struct dom_html_element *el) { dom_exception err; - err = _dom_element_initialise(&doc->base, &el->base, name, namespace, prefix); + el->type = params->type; + + err = _dom_element_initialise(¶ms->doc->base, &el->base, + params->name, params->namespace, params->prefix); if (err != DOM_NO_ERR) return err; @@ -280,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 */ |