summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2012-02-05 14:33:17 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2012-02-05 14:33:17 +0000
commit7b193ec6c254488870c0360a2a5bf004d1d848b4 (patch)
tree8b666110763d6da3297d19a020b9eb5279caf051 /include
parent941e2f52a2b3d4bf0febeff73301c89aab625ae0 (diff)
downloadlibdom-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 'include')
-rw-r--r--include/dom/html/html_document.h25
-rw-r--r--include/dom/html/html_element.h88
2 files changed, 92 insertions, 21 deletions
diff --git a/include/dom/html/html_document.h b/include/dom/html/html_document.h
index a6d0362..d09cd36 100644
--- a/include/dom/html/html_document.h
+++ b/include/dom/html/html_document.h
@@ -8,6 +8,7 @@
#ifndef dom_html_document_h_
#define dom_html_document_h_
+#include <dom/core/document.h>
#include <dom/core/exceptions.h>
#include <dom/functypes.h>
#include <dom/events/document_event.h>
@@ -19,28 +20,10 @@ struct dom_nodelist;
typedef struct dom_html_document dom_html_document;
-/**
- * Callbacks for UI related function calls
- */
-struct dom_ui_handler {
- dom_exception (*element_focus)(struct dom_element *element);
- /* Callback for a focus DOM call */
- dom_exception (*element_select)(struct dom_element *element);
- /* Callback for a select DOM call */
- dom_exception (*element_blur)(struct dom_element *element);
- /* Callback for a blur DOM call */
- dom_exception (*element_enable)(struct dom_element *element,
- bool enable);
- /* Callback for enable/disable an element */
-};
-typedef struct dom_ui_handler dom_ui_handler;
-
-/* Create a HTMLDocument */
-dom_exception dom_html_document_create(
- dom_events_default_action_fetcher daf, dom_ui_handler *ui,
- dom_html_document **doc);
+typedef struct dom_html_document_vtable {
+ struct dom_document_vtable base;
+} dom_html_document_vtable;
-/*-----------------------------------------------------------------------*/
/* The DOM spec public API */
dom_exception dom_html_document_get_title(dom_html_document *doc,
diff --git a/include/dom/html/html_element.h b/include/dom/html/html_element.h
index ea07c72..1c5f223 100644
--- a/include/dom/html/html_element.h
+++ b/include/dom/html/html_element.h
@@ -19,6 +19,22 @@ typedef struct dom_html_element_vtable {
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_classname)(struct dom_html_element *element,
+ dom_string **classname);
+ dom_exception (*dom_html_element_set_classname)(struct dom_html_element *element,
+ dom_string *classname);
} dom_html_element_vtable;
static inline dom_exception dom_html_element_get_id(struct dom_html_element *element,
@@ -39,5 +55,77 @@ static inline dom_exception dom_html_element_set_id(struct dom_html_element *ele
#define dom_html_element_set_id(e, id) dom_html_element_set_id( \
(dom_html_element *) (e), (dom_string *) (id))
+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);
+}
+#define dom_html_element_get_title(e, title) dom_html_element_get_title( \
+ (dom_html_element *) (e), (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);
+}
+#define dom_html_element_set_title(e, title) dom_html_element_set_title( \
+ (dom_html_element *) (e), (dom_string *) (title))
+
+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);
+}
+#define dom_html_element_get_lang(e, lang) dom_html_element_get_lang( \
+ (dom_html_element *) (e), (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);
+}
+#define dom_html_element_set_lang(e, lang) dom_html_element_set_lang( \
+ (dom_html_element *) (e), (dom_string *) (lang))
+
+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);
+}
+#define dom_html_element_get_dir(e, dir) dom_html_element_get_dir( \
+ (dom_html_element *) (e), (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);
+}
+#define dom_html_element_set_dir(e, dir) dom_html_element_set_dir( \
+ (dom_html_element *) (e), (dom_string *) (dir))
+
+static inline dom_exception dom_html_element_get_classname(struct dom_html_element *element,
+ dom_string **classname)
+{
+ return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)->
+ dom_html_element_get_classname(element, classname);
+}
+#define dom_html_element_get_classname(e, classname) dom_html_element_get_classname( \
+ (dom_html_element *) (e), (dom_string **) (classname))
+
+static inline dom_exception dom_html_element_set_classname(struct dom_html_element *element,
+ dom_string *classname)
+{
+ return ((dom_html_element_vtable *) ((dom_node *) element)->vtable)->
+ dom_html_element_set_classname(element, classname);
+}
+#define dom_html_element_set_classname(e, classname) dom_html_element_set_classname( \
+ (dom_html_element *) (e), (dom_string *) (classname))
+
#endif