summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/core/document.c2
-rw-r--r--src/core/document.h1
-rw-r--r--src/html/html_base_element.c5
-rw-r--r--src/html/html_base_element.h4
-rw-r--r--src/html/html_body_element.c5
-rw-r--r--src/html/html_body_element.h4
-rw-r--r--src/html/html_collection.c5
-rw-r--r--src/html/html_collection.h6
-rw-r--r--src/html/html_document.c42
-rw-r--r--src/html/html_document.h16
-rw-r--r--src/html/html_element.c126
-rw-r--r--src/html/html_element.h43
-rw-r--r--src/html/html_form_element.c10
-rw-r--r--src/html/html_form_element.h4
-rw-r--r--src/html/html_head_element.c5
-rw-r--r--src/html/html_head_element.h4
-rw-r--r--src/html/html_html_element.c5
-rw-r--r--src/html/html_html_element.h4
-rw-r--r--src/html/html_isindex_element.c5
-rw-r--r--src/html/html_isindex_element.h4
-rw-r--r--src/html/html_link_element.c5
-rw-r--r--src/html/html_link_element.h4
-rw-r--r--src/html/html_meta_element.c5
-rw-r--r--src/html/html_meta_element.h4
-rw-r--r--src/html/html_options_collection.c5
-rw-r--r--src/html/html_options_collection.h4
-rw-r--r--src/html/html_select_element.c10
-rw-r--r--src/html/html_select_element.h4
-rw-r--r--src/html/html_style_element.c5
-rw-r--r--src/html/html_style_element.h4
-rw-r--r--src/html/html_title_element.c5
-rw-r--r--src/html/html_title_element.h4
32 files changed, 273 insertions, 86 deletions
diff --git a/src/core/document.c b/src/core/document.c
index 91b2b98..d7c4393 100644
--- a/src/core/document.c
+++ b/src/core/document.c
@@ -1042,7 +1042,7 @@ dom_exception _dom_document_rename_node(dom_document *doc,
/*-----------------------------------------------------------------------*/
-/* Overload protectd virtual functions */
+/* Overload protected virtual functions */
/* The virtual destroy function of this class */
void _dom_document_destroy(dom_node_internal *node)
diff --git a/src/core/document.h b/src/core/document.h
index 9ff7368..002b0ca 100644
--- a/src/core/document.h
+++ b/src/core/document.h
@@ -172,6 +172,7 @@ dom_exception _dom_document_rename_node(dom_document *doc,
_dom_document_rename_node
/* End of vtable */
+/** \todo Unused! */
/**
* The internal used vtable for document
*/
diff --git a/src/html/html_base_element.c b/src/html/html_base_element.c
index 5bfd245..4c51d12 100644
--- a/src/html/html_base_element.c
+++ b/src/html/html_base_element.c
@@ -10,7 +10,6 @@
#include "html/html_base_element.h"
#include "core/node.h"
-#include "core/document.h"
#include "utils/utils.h"
static struct dom_element_protected_vtable _protect_vtable = {
@@ -27,7 +26,7 @@ static struct dom_element_protected_vtable _protect_vtable = {
* \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_base_element_create(struct dom_document *doc,
+dom_exception _dom_html_base_element_create(struct dom_html_document *doc,
struct dom_html_base_element **ele)
{
*ele = malloc(sizeof(dom_html_base_element));
@@ -49,7 +48,7 @@ dom_exception _dom_html_base_element_create(struct dom_document *doc,
* \param ele The dom_html_base_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_base_element_initialise(struct dom_document *doc,
+dom_exception _dom_html_base_element_initialise(struct dom_html_document *doc,
struct dom_html_base_element *ele)
{
dom_string *name = NULL;
diff --git a/src/html/html_base_element.h b/src/html/html_base_element.h
index ab5641a..7a04b29 100644
--- a/src/html/html_base_element.h
+++ b/src/html/html_base_element.h
@@ -18,11 +18,11 @@ struct dom_html_base_element {
};
/* Create a dom_html_base_element object */
-dom_exception _dom_html_base_element_create(struct dom_document *doc,
+dom_exception _dom_html_base_element_create(struct dom_html_document *doc,
struct dom_html_base_element **ele);
/* Initialise a dom_html_base_element object */
-dom_exception _dom_html_base_element_initialise(struct dom_document *doc,
+dom_exception _dom_html_base_element_initialise(struct dom_html_document *doc,
struct dom_html_base_element *ele);
/* Finalise a dom_html_base_element object */
diff --git a/src/html/html_body_element.c b/src/html/html_body_element.c
index d29c86c..e1a6751 100644
--- a/src/html/html_body_element.c
+++ b/src/html/html_body_element.c
@@ -10,7 +10,6 @@
#include "html/html_body_element.h"
#include "core/node.h"
-#include "core/document.h"
#include "utils/utils.h"
static struct dom_element_protected_vtable _protect_vtable = {
@@ -27,7 +26,7 @@ static struct dom_element_protected_vtable _protect_vtable = {
* \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_body_element_create(struct dom_document *doc,
+dom_exception _dom_html_body_element_create(struct dom_html_document *doc,
struct dom_html_body_element **ele)
{
*ele = malloc(sizeof(dom_html_body_element));
@@ -49,7 +48,7 @@ dom_exception _dom_html_body_element_create(struct dom_document *doc,
* \param ele The dom_html_body_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_body_element_initialise(struct dom_document *doc,
+dom_exception _dom_html_body_element_initialise(struct dom_html_document *doc,
struct dom_html_body_element *ele)
{
dom_string *name = NULL;
diff --git a/src/html/html_body_element.h b/src/html/html_body_element.h
index 028cac3..abf77da 100644
--- a/src/html/html_body_element.h
+++ b/src/html/html_body_element.h
@@ -18,11 +18,11 @@ struct dom_html_body_element {
};
/* Create a dom_html_body_element object */
-dom_exception _dom_html_body_element_create(struct dom_document *doc,
+dom_exception _dom_html_body_element_create(struct dom_html_document *doc,
struct dom_html_body_element **ele);
/* Initialise a dom_html_body_element object */
-dom_exception _dom_html_body_element_initialise(struct dom_document *doc,
+dom_exception _dom_html_body_element_initialise(struct dom_html_document *doc,
struct dom_html_body_element *ele);
/* Finalise a dom_html_body_element object */
diff --git a/src/html/html_collection.c b/src/html/html_collection.c
index 03ac6ae..ec96e66 100644
--- a/src/html/html_collection.c
+++ b/src/html/html_collection.c
@@ -13,7 +13,6 @@
#include "html/html_collection.h"
#include "core/node.h"
-#include "core/document.h"
#include "core/element.h"
#include "core/string.h"
@@ -30,7 +29,7 @@
* \param col The result collection object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_collection_create(struct dom_document *doc,
+dom_exception _dom_html_collection_create(struct dom_html_document *doc,
struct dom_node_internal *root,
dom_callback_is_in_collection ic,
struct dom_html_collection **col)
@@ -52,7 +51,7 @@ dom_exception _dom_html_collection_create(struct dom_document *doc,
* belongs to the collection
* \return DOM_NO_ERR on success.
*/
-dom_exception _dom_html_collection_initialise(struct dom_document *doc,
+dom_exception _dom_html_collection_initialise(struct dom_html_document *doc,
struct dom_html_collection *col,
struct dom_node_internal *root,
dom_callback_is_in_collection ic)
diff --git a/src/html/html_collection.h b/src/html/html_collection.h
index dc9e67d..634d2d3 100644
--- a/src/html/html_collection.h
+++ b/src/html/html_collection.h
@@ -23,7 +23,7 @@ struct dom_html_collection {
* whether some node is an element of
* this collection
*/
- struct dom_document *doc; /**< The document created this
+ struct dom_html_document *doc; /**< The document created this
* collection
*/
struct dom_node_internal *root;
@@ -32,12 +32,12 @@ struct dom_html_collection {
/**< Reference counting */
};
-dom_exception _dom_html_collection_create(struct dom_document *doc,
+dom_exception _dom_html_collection_create(struct dom_html_document *doc,
struct dom_node_internal *root,
dom_callback_is_in_collection ic,
struct dom_html_collection **col);
-dom_exception _dom_html_collection_initialise(struct dom_document *doc,
+dom_exception _dom_html_collection_initialise(struct dom_html_document *doc,
struct dom_html_collection *col,
struct dom_node_internal *root,
dom_callback_is_in_collection ic);
diff --git a/src/html/html_document.c b/src/html/html_document.c
index 4cb26e6..673615e 100644
--- a/src/html/html_document.c
+++ b/src/html/html_document.c
@@ -13,9 +13,25 @@
#include "core/string.h"
#include "utils/utils.h"
+static struct dom_html_document_vtable html_document_vtable = {
+ {
+ {
+ {
+ DOM_NODE_EVENT_TARGET_VTABLE
+ },
+ DOM_NODE_VTABLE,
+ },
+ DOM_DOCUMENT_VTABLE
+ }
+};
+
+static struct dom_node_protect_vtable html_document_protect_vtable = {
+ DOM_HTML_DOCUMENT_PROTECT_VTABLE
+};
+
/* Create a HTMLDocument */
-dom_exception dom_html_document_create(
- dom_events_default_action_fetcher daf, dom_ui_handler *ui,
+dom_exception _dom_html_document_create(
+ dom_events_default_action_fetcher daf,
dom_html_document **doc)
{
dom_exception error;
@@ -24,8 +40,11 @@ dom_exception dom_html_document_create(
result = malloc(sizeof(dom_html_document));
if (result == NULL)
return DOM_NO_MEM_ERR;
+
+ result->base.base.base.vtable = &html_document_vtable;
+ result->base.base.vtable = &html_document_protect_vtable;
- error = _dom_html_document_initialise(*doc, daf, ui);
+ error = _dom_html_document_initialise(*doc, daf);
if (error != DOM_NO_ERR) {
free(result);
return error;
@@ -37,12 +56,10 @@ dom_exception dom_html_document_create(
/* Initialise a HTMLDocument */
dom_exception _dom_html_document_initialise(dom_html_document *doc,
- dom_events_default_action_fetcher daf, dom_ui_handler *ui)
+ dom_events_default_action_fetcher daf)
{
dom_exception error;
- UNUSED(ui);
-
error = _dom_document_initialise(&doc->base, daf);
if (error != DOM_NO_ERR)
return error;
@@ -69,13 +86,24 @@ void _dom_html_document_finalise(dom_html_document *doc)
}
/* Destroy a HTMLDocument */
-void _dom_html_document_destroy(dom_html_document *doc)
+void _dom_html_document_destroy(dom_node_internal *node)
{
+ dom_html_document *doc = (dom_html_document *) node;
+
_dom_html_document_finalise(doc);
free(doc);
}
+dom_exception _dom_html_document_copy(dom_node_internal *old,
+ dom_node_internal **copy)
+{
+ UNUSED(old);
+ UNUSED(copy);
+
+ return DOM_NOT_SUPPORTED_ERR;
+}
+
/*-----------------------------------------------------------------------*/
/* The DOM spec public API */
diff --git a/src/html/html_document.h b/src/html/html_document.h
index ad3ff6d..28041d6 100644
--- a/src/html/html_document.h
+++ b/src/html/html_document.h
@@ -25,13 +25,23 @@ struct dom_html_document {
dom_string *cookie; /**< HTML document cookie */
};
+/* Create a HTMLDocument */
+dom_exception _dom_html_document_create(
+ dom_events_default_action_fetcher daf,
+ dom_html_document **doc);
/* Initialise a HTMLDocument */
dom_exception _dom_html_document_initialise(dom_html_document *doc,
- dom_events_default_action_fetcher daf, dom_ui_handler *ui);
+ dom_events_default_action_fetcher daf);
/* Finalise a HTMLDocument */
void _dom_html_document_finalise(dom_html_document *doc);
-/* Destroy a HTMLDocument */
-void _dom_html_document_destroy(dom_html_document *doc);
+
+void _dom_html_document_destroy(dom_node_internal *node);
+dom_exception _dom_html_document_copy(dom_node_internal *old,
+ dom_node_internal **copy);
+
+#define DOM_HTML_DOCUMENT_PROTECT_VTABLE \
+ _dom_html_document_destroy, \
+ _dom_html_document_copy
#endif
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 */
diff --git a/src/html/html_element.h b/src/html/html_element.h
index e183ec3..3194cba 100644
--- a/src/html/html_element.h
+++ b/src/html/html_element.h
@@ -12,6 +12,8 @@
#include "core/element.h"
+struct dom_html_document;
+
/**
* The dom_html_element class
*
@@ -21,22 +23,59 @@ struct dom_html_element {
/**< The base class */
};
-dom_exception _dom_html_element_initialise(struct dom_document *doc,
+dom_exception _dom_html_element_create(struct dom_html_document *doc,
+ dom_string *name, dom_string *namespace,
+ dom_string *prefix, dom_html_element **result);
+
+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);
void _dom_html_element_finalise(struct dom_html_element *ele);
/* The protected virtual functions */
-void _dom_virtual_html_element_destroy(dom_node_internal *node);
+void _dom_html_element_destroy(dom_node_internal *node);
dom_exception _dom_html_element_copy(dom_node_internal *old,
dom_node_internal **copy);
+#define DOM_HTML_ELEMENT_PROTECT_VTABLE \
+ _dom_html_element_destroy, \
+ _dom_html_element_copy
+
+
/* The API functions */
dom_exception _dom_html_element_get_id(dom_html_element *element,
dom_string **id);
dom_exception _dom_html_element_set_id(dom_html_element *element,
dom_string *id);
+dom_exception _dom_html_element_get_title(dom_html_element *element,
+ dom_string **title);
+dom_exception _dom_html_element_set_title(dom_html_element *element,
+ dom_string *title);
+dom_exception _dom_html_element_get_lang(dom_html_element *element,
+ dom_string **lang);
+dom_exception _dom_html_element_set_lang(dom_html_element *element,
+ dom_string *lang);
+dom_exception _dom_html_element_get_dir(dom_html_element *element,
+ dom_string **dir);
+dom_exception _dom_html_element_set_dir(dom_html_element *element,
+ dom_string *dir);
+dom_exception _dom_html_element_get_classname(dom_html_element *element,
+ dom_string **classname);
+dom_exception _dom_html_element_set_classname(dom_html_element *element,
+ dom_string *classname);
+
+#define DOM_HTML_ELEMENT_VTABLE \
+ _dom_html_element_get_id, \
+ _dom_html_element_set_id, \
+ _dom_html_element_get_title, \
+ _dom_html_element_set_title, \
+ _dom_html_element_get_lang, \
+ _dom_html_element_set_lang, \
+ _dom_html_element_get_dir, \
+ _dom_html_element_set_dir, \
+ _dom_html_element_get_classname, \
+ _dom_html_element_set_classname
/* Some common functions used by all child classes */
dom_exception dom_html_element_get_bool_property(dom_html_element *ele,
diff --git a/src/html/html_form_element.c b/src/html/html_form_element.c
index ec5b110..20a9cac 100644
--- a/src/html/html_form_element.c
+++ b/src/html/html_form_element.c
@@ -11,9 +11,9 @@
#include "html/html_form_element.h"
#include "html/html_collection.h"
+#include "html/html_document.h"
#include "core/node.h"
-#include "core/document.h"
#include "utils/utils.h"
static struct dom_element_protected_vtable _protect_vtable = {
@@ -32,7 +32,7 @@ static bool _dom_is_form_control(struct dom_node_internal *node);
* \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_form_element_create(struct dom_document *doc,
+dom_exception _dom_html_form_element_create(struct dom_html_document *doc,
struct dom_html_form_element **ele)
{
*ele = malloc(sizeof(dom_html_form_element));
@@ -54,7 +54,7 @@ dom_exception _dom_html_form_element_create(struct dom_document *doc,
* \param ele The dom_html_form_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_form_element_initialise(struct dom_document *doc,
+dom_exception _dom_html_form_element_initialise(struct dom_html_document *doc,
struct dom_html_form_element *ele)
{
dom_string *name = NULL;
@@ -140,7 +140,7 @@ dom_exception dom_html_form_element_get_elements(dom_html_form_element *ele,
dom_exception err;
if (ele->col == NULL) {
- dom_document *doc = dom_node_get_owner(ele);
+ dom_html_document *doc = (dom_html_document *) dom_node_get_owner(ele);
assert(doc != NULL);
err = _dom_html_collection_create(doc,
(dom_node_internal *) ele,
@@ -170,7 +170,7 @@ dom_exception dom_html_form_element_get_length(dom_html_form_element *ele,
dom_exception err;
if (ele->col == NULL) {
- dom_document *doc = dom_node_get_owner(ele);
+ dom_html_document *doc = (dom_html_document *) dom_node_get_owner(ele);
assert(doc != NULL);
err = _dom_html_collection_create(doc,
(dom_node_internal *) ele,
diff --git a/src/html/html_form_element.h b/src/html/html_form_element.h
index 3dc66e1..dbf6267 100644
--- a/src/html/html_form_element.h
+++ b/src/html/html_form_element.h
@@ -22,11 +22,11 @@ struct dom_html_form_element {
};
/* Create a dom_html_form_element object */
-dom_exception _dom_html_form_element_create(struct dom_document *doc,
+dom_exception _dom_html_form_element_create(struct dom_html_document *doc,
struct dom_html_form_element **ele);
/* Initialise a dom_html_form_element object */
-dom_exception _dom_html_form_element_initialise(struct dom_document *doc,
+dom_exception _dom_html_form_element_initialise(struct dom_html_document *doc,
struct dom_html_form_element *ele);
/* Finalise a dom_html_form_element object */
diff --git a/src/html/html_head_element.c b/src/html/html_head_element.c
index ec8070a..e3e23bd 100644
--- a/src/html/html_head_element.c
+++ b/src/html/html_head_element.c
@@ -10,7 +10,6 @@
#include "html/html_head_element.h"
#include "core/node.h"
-#include "core/document.h"
#include "utils/utils.h"
static struct dom_element_protected_vtable _protect_vtable = {
@@ -27,7 +26,7 @@ static struct dom_element_protected_vtable _protect_vtable = {
* \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_head_element_create(struct dom_document *doc,
+dom_exception _dom_html_head_element_create(struct dom_html_document *doc,
struct dom_html_head_element **ele)
{
*ele = malloc(sizeof(dom_html_head_element));
@@ -49,7 +48,7 @@ dom_exception _dom_html_head_element_create(struct dom_document *doc,
* \param ele The dom_html_head_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_head_element_initialise(struct dom_document *doc,
+dom_exception _dom_html_head_element_initialise(struct dom_html_document *doc,
struct dom_html_head_element *ele)
{
dom_string *name = NULL;
diff --git a/src/html/html_head_element.h b/src/html/html_head_element.h
index c917593..aa6e21a 100644
--- a/src/html/html_head_element.h
+++ b/src/html/html_head_element.h
@@ -18,11 +18,11 @@ struct dom_html_head_element {
};
/* Create a dom_html_head_element object */
-dom_exception _dom_html_head_element_create(struct dom_document *doc,
+dom_exception _dom_html_head_element_create(struct dom_html_document *doc,
struct dom_html_head_element **ele);
/* Initialise a dom_html_head_element object */
-dom_exception _dom_html_head_element_initialise(struct dom_document *doc,
+dom_exception _dom_html_head_element_initialise(struct dom_html_document *doc,
struct dom_html_head_element *ele);
/* Finalise a dom_html_head_element object */
diff --git a/src/html/html_html_element.c b/src/html/html_html_element.c
index 9083394..cb0682c 100644
--- a/src/html/html_html_element.c
+++ b/src/html/html_html_element.c
@@ -10,7 +10,6 @@
#include "html/html_html_element.h"
#include "core/node.h"
-#include "core/document.h"
#include "utils/utils.h"
static struct dom_element_protected_vtable _protect_vtable = {
@@ -27,7 +26,7 @@ static struct dom_element_protected_vtable _protect_vtable = {
* \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_html_element_create(struct dom_document *doc,
+dom_exception _dom_html_html_element_create(struct dom_html_document *doc,
struct dom_html_html_element **ele)
{
*ele = malloc(sizeof(dom_html_html_element));
@@ -49,7 +48,7 @@ dom_exception _dom_html_html_element_create(struct dom_document *doc,
* \param ele The dom_html_html_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_html_element_initialise(struct dom_document *doc,
+dom_exception _dom_html_html_element_initialise(struct dom_html_document *doc,
struct dom_html_html_element *ele)
{
dom_string *name = NULL;
diff --git a/src/html/html_html_element.h b/src/html/html_html_element.h
index e6f1737..f943f7b 100644
--- a/src/html/html_html_element.h
+++ b/src/html/html_html_element.h
@@ -18,11 +18,11 @@ struct dom_html_html_element {
};
/* Create a dom_html_html_element object */
-dom_exception _dom_html_html_element_create(struct dom_document *doc,
+dom_exception _dom_html_html_element_create(struct dom_html_document *doc,
struct dom_html_html_element **ele);
/* Initialise a dom_html_html_element object */
-dom_exception _dom_html_html_element_initialise(struct dom_document *doc,
+dom_exception _dom_html_html_element_initialise(struct dom_html_document *doc,
struct dom_html_html_element *ele);
/* Finalise a dom_html_html_element object */
diff --git a/src/html/html_isindex_element.c b/src/html/html_isindex_element.c
index 0c02c22..48991a9 100644
--- a/src/html/html_isindex_element.c
+++ b/src/html/html_isindex_element.c
@@ -10,7 +10,6 @@
#include "html/html_isindex_element.h"
#include "core/node.h"
-#include "core/document.h"
#include "utils/utils.h"
static struct dom_element_protected_vtable _protect_vtable = {
@@ -28,7 +27,7 @@ static struct dom_element_protected_vtable _protect_vtable = {
* \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_isindex_element_create(struct dom_document *doc,
+dom_exception _dom_html_isindex_element_create(struct dom_html_document *doc,
struct dom_html_form_element *form,
struct dom_html_isindex_element **ele)
{
@@ -52,7 +51,7 @@ dom_exception _dom_html_isindex_element_create(struct dom_document *doc,
* \param ele The dom_html_isindex_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_isindex_element_initialise(struct dom_document *doc,
+dom_exception _dom_html_isindex_element_initialise(struct dom_html_document *doc,
struct dom_html_form_element *form,
struct dom_html_isindex_element *ele)
{
diff --git a/src/html/html_isindex_element.h b/src/html/html_isindex_element.h
index 9cf9a02..12ad26e 100644
--- a/src/html/html_isindex_element.h
+++ b/src/html/html_isindex_element.h
@@ -18,12 +18,12 @@ struct dom_html_isindex_element {
};
/* Create a dom_html_isindex_element object */
-dom_exception _dom_html_isindex_element_create(struct dom_document *doc,
+dom_exception _dom_html_isindex_element_create(struct dom_html_document *doc,
struct dom_html_form_element *form,
struct dom_html_isindex_element **ele);
/* Initialise a dom_html_isindex_element object */
-dom_exception _dom_html_isindex_element_initialise(struct dom_document *doc,
+dom_exception _dom_html_isindex_element_initialise(struct dom_html_document *doc,
struct dom_html_form_element *form,
struct dom_html_isindex_element *ele);
diff --git a/src/html/html_link_element.c b/src/html/html_link_element.c
index 35362c6..eb826ce 100644
--- a/src/html/html_link_element.c
+++ b/src/html/html_link_element.c
@@ -12,7 +12,6 @@
#include "core/node.h"
#include "core/attr.h"
-#include "core/document.h"
#include "utils/utils.h"
static struct dom_element_protected_vtable _protect_vtable = {
@@ -29,7 +28,7 @@ static struct dom_element_protected_vtable _protect_vtable = {
* \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_link_element_create(struct dom_document *doc,
+dom_exception _dom_html_link_element_create(struct dom_html_document *doc,
struct dom_html_link_element **ele)
{
*ele = malloc(sizeof(dom_html_link_element));
@@ -51,7 +50,7 @@ dom_exception _dom_html_link_element_create(struct dom_document *doc,
* \param ele The dom_html_link_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_link_element_initialise(struct dom_document *doc,
+dom_exception _dom_html_link_element_initialise(struct dom_html_document *doc,
struct dom_html_link_element *ele)
{
dom_string *name = NULL;
diff --git a/src/html/html_link_element.h b/src/html/html_link_element.h
index 23abd33..b281cfb 100644
--- a/src/html/html_link_element.h
+++ b/src/html/html_link_element.h
@@ -18,11 +18,11 @@ struct dom_html_link_element {
};
/* Create a dom_html_link_element object */
-dom_exception _dom_html_link_element_create(struct dom_document *doc,
+dom_exception _dom_html_link_element_create(struct dom_html_document *doc,
struct dom_html_link_element **ele);
/* Initialise a dom_html_link_element object */
-dom_exception _dom_html_link_element_initialise(struct dom_document *doc,
+dom_exception _dom_html_link_element_initialise(struct dom_html_document *doc,
struct dom_html_link_element *ele);
/* Finalise a dom_html_link_element object */
diff --git a/src/html/html_meta_element.c b/src/html/html_meta_element.c
index 2ec64c3..646ca48 100644
--- a/src/html/html_meta_element.c
+++ b/src/html/html_meta_element.c
@@ -10,7 +10,6 @@
#include "html/html_meta_element.h"
#include "core/node.h"
-#include "core/document.h"
#include "utils/utils.h"
static struct dom_element_protected_vtable _protect_vtable = {
@@ -27,7 +26,7 @@ static struct dom_element_protected_vtable _protect_vtable = {
* \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_meta_element_create(struct dom_document *doc,
+dom_exception _dom_html_meta_element_create(struct dom_html_document *doc,
struct dom_html_meta_element **ele)
{
*ele = malloc(sizeof(dom_html_meta_element));
@@ -49,7 +48,7 @@ dom_exception _dom_html_meta_element_create(struct dom_document *doc,
* \param ele The dom_html_meta_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_meta_element_initialise(struct dom_document *doc,
+dom_exception _dom_html_meta_element_initialise(struct dom_html_document *doc,
struct dom_html_meta_element *ele)
{
dom_string *name = NULL;
diff --git a/src/html/html_meta_element.h b/src/html/html_meta_element.h
index 5674ceb..d302d24 100644
--- a/src/html/html_meta_element.h
+++ b/src/html/html_meta_element.h
@@ -18,11 +18,11 @@ struct dom_html_meta_element {
};
/* Create a dom_html_meta_element object */
-dom_exception _dom_html_meta_element_create(struct dom_document *doc,
+dom_exception _dom_html_meta_element_create(struct dom_html_document *doc,
struct dom_html_meta_element **ele);
/* Initialise a dom_html_meta_element object */
-dom_exception _dom_html_meta_element_initialise(struct dom_document *doc,
+dom_exception _dom_html_meta_element_initialise(struct dom_html_document *doc,
struct dom_html_meta_element *ele);
/* Finalise a dom_html_meta_element object */
diff --git a/src/html/html_options_collection.c b/src/html/html_options_collection.c
index b24d3a2..918d693 100644
--- a/src/html/html_options_collection.c
+++ b/src/html/html_options_collection.c
@@ -13,7 +13,6 @@
#include "html/html_options_collection.h"
#include "core/node.h"
-#include "core/document.h"
#include "core/element.h"
#include "core/string.h"
#include "utils/utils.h"
@@ -31,7 +30,7 @@
* \param col The result collection object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_options_collection_create(struct dom_document *doc,
+dom_exception _dom_html_options_collection_create(struct dom_html_document *doc,
struct dom_node_internal *root,
dom_callback_is_in_collection ic,
struct dom_html_options_collection **col)
@@ -53,7 +52,7 @@ dom_exception _dom_html_options_collection_create(struct dom_document *doc,
* belongs to the collection
* \return DOM_NO_ERR on success.
*/
-dom_exception _dom_html_options_collection_initialise(struct dom_document *doc,
+dom_exception _dom_html_options_collection_initialise(struct dom_html_document *doc,
struct dom_html_options_collection *col,
struct dom_node_internal *root,
dom_callback_is_in_collection ic)
diff --git a/src/html/html_options_collection.h b/src/html/html_options_collection.h
index e82cc5c..bbaaba4 100644
--- a/src/html/html_options_collection.h
+++ b/src/html/html_options_collection.h
@@ -22,12 +22,12 @@ struct dom_html_options_collection {
/**< The base class */
};
-dom_exception _dom_html_options_collection_create(struct dom_document *doc,
+dom_exception _dom_html_options_collection_create(struct dom_html_document *doc,
struct dom_node_internal *root,
dom_callback_is_in_collection ic,
struct dom_html_options_collection **col);
-dom_exception _dom_html_options_collection_initialise(struct dom_document *doc,
+dom_exception _dom_html_options_collection_initialise(struct dom_html_document *doc,
struct dom_html_options_collection *col,
struct dom_node_internal *root,
dom_callback_is_in_collection ic);
diff --git a/src/html/html_select_element.c b/src/html/html_select_element.c
index e8cf39e..b04f85b 100644
--- a/src/html/html_select_element.c
+++ b/src/html/html_select_element.c
@@ -8,10 +8,10 @@
#include <assert.h>
#include <stdlib.h>
+#include "html/html_document.h"
#include "html/html_select_element.h"
#include "core/node.h"
-#include "core/document.h"
#include "utils/utils.h"
static struct dom_element_protected_vtable _protect_vtable = {
@@ -30,7 +30,7 @@ static bool is_option(struct dom_node_internal *node);
* \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_select_element_create(struct dom_document *doc,
+dom_exception _dom_html_select_element_create(struct dom_html_document *doc,
struct dom_html_select_element **ele)
{
*ele = malloc(sizeof(dom_html_select_element));
@@ -52,7 +52,7 @@ dom_exception _dom_html_select_element_create(struct dom_document *doc,
* \param ele The dom_html_select_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_select_element_initialise(struct dom_document *doc,
+dom_exception _dom_html_select_element_initialise(struct dom_html_document *doc,
struct dom_html_select_element *ele)
{
dom_string *name = NULL;
@@ -168,7 +168,7 @@ dom_exception dom_html_select_element_get_length(
dom_html_select_element *ele, unsigned long *len)
{
dom_exception err;
- dom_document *doc = dom_node_get_owner(ele);
+ dom_html_document *doc = (dom_html_document *) dom_node_get_owner(ele);
assert(doc != NULL);
if (ele->options == NULL) {
@@ -212,7 +212,7 @@ dom_exception dom_html_select_element_get_options(
struct dom_html_options_collection **col)
{
dom_exception err;
- dom_document *doc = dom_node_get_owner(ele);
+ dom_html_document *doc = (dom_html_document *) dom_node_get_owner(ele);
assert(doc != NULL);
if (ele->options == NULL) {
diff --git a/src/html/html_select_element.h b/src/html/html_select_element.h
index 2f813ac..68c51e3 100644
--- a/src/html/html_select_element.h
+++ b/src/html/html_select_element.h
@@ -23,11 +23,11 @@ struct dom_html_select_element {
};
/* Create a dom_html_select_element object */
-dom_exception _dom_html_select_element_create(struct dom_document *doc,
+dom_exception _dom_html_select_element_create(struct dom_html_document *doc,
struct dom_html_select_element **ele);
/* Initialise a dom_html_select_element object */
-dom_exception _dom_html_select_element_initialise(struct dom_document *doc,
+dom_exception _dom_html_select_element_initialise(struct dom_html_document *doc,
struct dom_html_select_element *ele);
/* Finalise a dom_html_select_element object */
diff --git a/src/html/html_style_element.c b/src/html/html_style_element.c
index e4cb6f2..1867742 100644
--- a/src/html/html_style_element.c
+++ b/src/html/html_style_element.c
@@ -10,7 +10,6 @@
#include "html/html_style_element.h"
#include "core/node.h"
-#include "core/document.h"
#include "utils/utils.h"
static struct dom_element_protected_vtable _protect_vtable = {
@@ -27,7 +26,7 @@ static struct dom_element_protected_vtable _protect_vtable = {
* \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_style_element_create(struct dom_document *doc,
+dom_exception _dom_html_style_element_create(struct dom_html_document *doc,
struct dom_html_style_element **ele)
{
*ele = malloc(sizeof(dom_html_style_element));
@@ -49,7 +48,7 @@ dom_exception _dom_html_style_element_create(struct dom_document *doc,
* \param ele The dom_html_style_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_style_element_initialise(struct dom_document *doc,
+dom_exception _dom_html_style_element_initialise(struct dom_html_document *doc,
struct dom_html_style_element *ele)
{
dom_string *name = NULL;
diff --git a/src/html/html_style_element.h b/src/html/html_style_element.h
index 3eeca55..e7a47e5 100644
--- a/src/html/html_style_element.h
+++ b/src/html/html_style_element.h
@@ -18,11 +18,11 @@ struct dom_html_style_element {
};
/* Create a dom_html_style_element object */
-dom_exception _dom_html_style_element_create(struct dom_document *doc,
+dom_exception _dom_html_style_element_create(struct dom_html_document *doc,
struct dom_html_style_element **ele);
/* Initialise a dom_html_style_element object */
-dom_exception _dom_html_style_element_initialise(struct dom_document *doc,
+dom_exception _dom_html_style_element_initialise(struct dom_html_document *doc,
struct dom_html_style_element *ele);
/* Finalise a dom_html_style_element object */
diff --git a/src/html/html_title_element.c b/src/html/html_title_element.c
index df021fc..d698b6d 100644
--- a/src/html/html_title_element.c
+++ b/src/html/html_title_element.c
@@ -14,7 +14,6 @@
#include "html/html_title_element.h"
#include "core/node.h"
-#include "core/document.h"
#include "utils/utils.h"
static struct dom_element_protected_vtable _protect_vtable = {
@@ -31,7 +30,7 @@ static struct dom_element_protected_vtable _protect_vtable = {
* \param ele The returned element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_title_element_create(struct dom_document *doc,
+dom_exception _dom_html_title_element_create(struct dom_html_document *doc,
struct dom_html_title_element **ele)
{
*ele = malloc(sizeof(dom_html_title_element));
@@ -53,7 +52,7 @@ dom_exception _dom_html_title_element_create(struct dom_document *doc,
* \param ele The dom_html_title_element object
* \return DOM_NO_ERR on success, appropriate dom_exception on failure.
*/
-dom_exception _dom_html_title_element_initialise(struct dom_document *doc,
+dom_exception _dom_html_title_element_initialise(struct dom_html_document *doc,
struct dom_html_title_element *ele)
{
dom_string *name = NULL;
diff --git a/src/html/html_title_element.h b/src/html/html_title_element.h
index e4641ec..958c3fe 100644
--- a/src/html/html_title_element.h
+++ b/src/html/html_title_element.h
@@ -18,11 +18,11 @@ struct dom_html_title_element {
};
/* Create a dom_html_title_element object */
-dom_exception _dom_html_title_element_create(struct dom_document *doc,
+dom_exception _dom_html_title_element_create(struct dom_html_document *doc,
struct dom_html_title_element **ele);
/* Initialise a dom_html_title_element object */
-dom_exception _dom_html_title_element_initialise(struct dom_document *doc,
+dom_exception _dom_html_title_element_initialise(struct dom_html_document *doc,
struct dom_html_title_element *ele);
/* Finalise a dom_html_title_element object */