diff options
author | John Mark Bell <jmb@netsurf-browser.org> | 2012-02-05 14:33:17 +0000 |
---|---|---|
committer | John Mark Bell <jmb@netsurf-browser.org> | 2012-02-05 14:33:17 +0000 |
commit | 7b193ec6c254488870c0360a2a5bf004d1d848b4 (patch) | |
tree | 8b666110763d6da3297d19a020b9eb5279caf051 /src/html/html_element.c | |
parent | 941e2f52a2b3d4bf0febeff73301c89aab625ae0 (diff) | |
download | libdom-7b193ec6c254488870c0360a2a5bf004d1d848b4.tar.gz libdom-7b193ec6c254488870c0360a2a5bf004d1d848b4.tar.bz2 |
A bunch of panel beating:
* HTMLElement and HTMLDocument now have vtables
* All HTML nodes require an HTMLDocument to create
* Miscellaneous other cleanups
svn path=/trunk/libdom/; revision=13424
Diffstat (limited to 'src/html/html_element.c')
-rw-r--r-- | src/html/html_element.c | 126 |
1 files changed, 123 insertions, 3 deletions
diff --git a/src/html/html_element.c b/src/html/html_element.c index bd095d8..fd7dbd2 100644 --- a/src/html/html_element.c +++ b/src/html/html_element.c @@ -8,6 +8,7 @@ #include <assert.h> #include <stdlib.h> +#include "html/html_document.h" #include "html/html_element.h" #include "core/node.h" @@ -15,13 +16,59 @@ #include "core/document.h" #include "utils/utils.h" -dom_exception _dom_html_element_initialise(struct dom_document *doc, +static struct dom_html_element_vtable _dom_html_element_vtable = { + { + { + { + DOM_NODE_EVENT_TARGET_VTABLE + }, + DOM_NODE_VTABLE_ELEMENT, + }, + DOM_ELEMENT_VTABLE + }, + DOM_HTML_ELEMENT_VTABLE +}; + +static struct dom_element_protected_vtable _dom_html_element_protect_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 error; + dom_html_element *el; + + el = malloc(sizeof(struct dom_html_element)); + if (el == NULL) + return DOM_NO_MEM_ERR; + + 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); + if (error != DOM_NO_ERR) { + free(el); + return error; + } + + *result = el; + + 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 err; - err = _dom_element_initialise(doc, &el->base, name, namespace, prefix); + err = _dom_element_initialise(&doc->base, &el->base, name, namespace, prefix); if (err != DOM_NO_ERR) return err; @@ -37,7 +84,7 @@ void _dom_html_element_finalise(struct dom_html_element *ele) /* The protected virtual functions */ /* The virtual destroy function, see src/core/node.c for detail */ -void _dom_virtual_html_element_destroy(dom_node_internal *node) +void _dom_html_element_destroy(dom_node_internal *node) { UNUSED(node); assert("Should never be here" == NULL); @@ -87,6 +134,79 @@ dom_exception _dom_html_element_set_id(dom_html_element *element, return ret; } +dom_exception _dom_html_element_get_title(dom_html_element *element, + dom_string **title) +{ + UNUSED(element); + UNUSED(title); + + return DOM_NOT_SUPPORTED_ERR; +} + +dom_exception _dom_html_element_set_title(dom_html_element *element, + dom_string *title) +{ + UNUSED(element); + UNUSED(title); + + return DOM_NOT_SUPPORTED_ERR; +} + +dom_exception _dom_html_element_get_lang(dom_html_element *element, + dom_string **lang) +{ + UNUSED(element); + UNUSED(lang); + + return DOM_NOT_SUPPORTED_ERR; +} + +dom_exception _dom_html_element_set_lang(dom_html_element *element, + dom_string *lang) +{ + UNUSED(element); + UNUSED(lang); + + return DOM_NOT_SUPPORTED_ERR; +} + +dom_exception _dom_html_element_get_dir(dom_html_element *element, + dom_string **dir) +{ + UNUSED(element); + UNUSED(dir); + + return DOM_NOT_SUPPORTED_ERR; +} + +dom_exception _dom_html_element_set_dir(dom_html_element *element, + dom_string *dir) +{ + UNUSED(element); + UNUSED(dir); + + return DOM_NOT_SUPPORTED_ERR; +} + +dom_exception _dom_html_element_get_classname(dom_html_element *element, + dom_string **classname) +{ + UNUSED(element); + UNUSED(classname); + + return DOM_NOT_SUPPORTED_ERR; +} + +dom_exception _dom_html_element_set_classname(dom_html_element *element, + dom_string *classname) +{ + UNUSED(element); + UNUSED(classname); + + return DOM_NOT_SUPPORTED_ERR; +} + + /*-----------------------------------------------------------------------*/ /* Common functions */ |