245 lines · 8.1 KB · C
RawDownload
/* * This file is part of libdom. * Licensed under the MIT License, *                http://www.opensource.org/licenses/mit-license.php * Copyright 2009 Bo Yang <struggleyb.nku@gmail.com> */ #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> struct dom_element;struct dom_html_collection;struct dom_html_element;struct dom_nodelist; typedef struct dom_html_document dom_html_document; typedef struct dom_html_document_vtable {	struct dom_document_vtable base; 	dom_exception (*get_title)(dom_html_document *doc,			dom_string **title);	dom_exception (*set_title)(dom_html_document *doc,			dom_string *title);	dom_exception (*get_referrer)(dom_html_document *doc,			dom_string **referrer);	dom_exception (*get_domain)(dom_html_document *doc,			dom_string **domain);	dom_exception (*get_url)(dom_html_document *doc,			dom_string **url);	dom_exception (*get_body)(dom_html_document *doc,			struct dom_html_element **body);	dom_exception (*set_body)(dom_html_document *doc,			struct dom_html_element *body);	dom_exception (*get_images)(dom_html_document *doc,			struct dom_html_collection **col);	dom_exception (*get_applets)(dom_html_document *doc,			struct dom_html_collection **col);	dom_exception (*get_links)(dom_html_document *doc,			struct dom_html_collection **col);	dom_exception (*get_forms)(dom_html_document *doc,			struct dom_html_collection **col);	dom_exception (*get_anchors)(dom_html_document *doc,			struct dom_html_collection **col);	dom_exception (*get_cookie)(dom_html_document *doc,			dom_string **cookie);	dom_exception (*set_cookie)(dom_html_document *doc,			dom_string *cookie); 	dom_exception (*open)(dom_html_document *doc);	dom_exception (*close)(dom_html_document *doc);	dom_exception (*write)(dom_html_document *doc,			dom_string *text);	dom_exception (*writeln)(dom_html_document *doc,			dom_string *text);	dom_exception (*get_elements_by_name)(dom_html_document *doc,			dom_string *name, struct dom_nodelist **list);} dom_html_document_vtable; static inline dom_exception dom_html_document_get_title(		dom_html_document *doc, dom_string **title){	return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)->		get_title(doc, title);}#define dom_html_document_get_title(d, t) \		dom_html_document_get_title((dom_html_document *) (d), (t)) static inline dom_exception dom_html_document_set_title(dom_html_document *doc,		dom_string *title){	return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)->		set_title(doc, title);}#define dom_html_document_set_title(d, t) \		dom_html_document_set_title((dom_html_document *) (d), (t)) static inline dom_exception dom_html_document_get_referrer(dom_html_document *doc,		dom_string **referrer){	return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)->		get_referrer(doc, referrer);}#define dom_html_document_get_referrer(d, r) \		dom_html_document_get_referrer((dom_html_document *) (d), (r)) static inline dom_exception dom_html_document_get_domain(dom_html_document *doc,		dom_string **domain){	return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)->		get_domain(doc, domain);}#define dom_html_document_get_domain(d, t) \		dom_html_document_get_domain((dom_html_document *) (d), (t)) static inline dom_exception dom_html_document_get_url(dom_html_document *doc,		dom_string **url){	return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)->		get_url(doc, url);}#define dom_html_document_get_url(d, u) \		dom_html_document_get_url((dom_html_document *) (d), (u)) static inline dom_exception dom_html_document_get_body(dom_html_document *doc,		struct dom_html_element **body){	return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)->		get_body(doc, body);}#define dom_html_document_get_body(d, b) \		dom_html_document_get_body((dom_html_document *) (d), \				(struct dom_html_element **) (b)) static inline dom_exception dom_html_document_set_body(dom_html_document *doc,		struct dom_html_element *body){	return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)->		set_body(doc, body);}#define dom_html_document_set_body(d, b) \		dom_html_document_set_body((dom_html_document *) (d), \				(struct dom_html_element **) (b)) static inline dom_exception dom_html_document_get_images(dom_html_document *doc,		struct dom_html_collection **col){	return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)->		get_images(doc, col);}#define dom_html_document_get_images(d, c) \		dom_html_document_get_images((dom_html_document *) (d), \				(struct dom_html_collection **) (c)) static inline dom_exception dom_html_document_get_applets(dom_html_document *doc,		struct dom_html_collection **col){	return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)->		get_applets(doc, col);}#define dom_html_document_get_applets(d, c) \		dom_html_document_get_applets((dom_html_document *) (d), \				(struct dom_html_collection **) (c)) static inline dom_exception dom_html_document_get_links(dom_html_document *doc,		struct dom_html_collection **col){	return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)->		get_links(doc, col);}#define dom_html_document_get_links(d, c) \		dom_html_document_get_links((dom_html_document *) (d), \				(struct dom_html_collection **) (c)) static inline dom_exception dom_html_document_get_forms(dom_html_document *doc,		struct dom_html_collection **col){	return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)->		get_forms(doc, col);}#define dom_html_document_get_forms(d, c) \		dom_html_document_get_forms((dom_html_document *) (d), \				(struct dom_html_collection **) (c)) static inline dom_exception dom_html_document_get_anchors(dom_html_document *doc,		struct dom_html_collection **col){	return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)->		get_anchors(doc, col);}#define dom_html_document_get_anchors(d, c) \		dom_html_document_get_anchors((dom_html_document *) (d), \				(struct dom_html_collection **) (c)) static inline dom_exception dom_html_document_get_cookie(dom_html_document *doc,		dom_string **cookie){	return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)->		get_cookie(doc, cookie);}#define dom_html_document_get_cookie(d, c) \		dom_html_document_get_cookie((dom_html_document *) (d), (c)) static inline dom_exception dom_html_document_set_cookie(dom_html_document *doc,		dom_string *cookie){	return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)->		set_cookie(doc, cookie);}#define dom_html_document_set_cookie(d, c) \		dom_html_document_set_cookie((dom_html_document *) (d), (c))  static inline dom_exception dom_html_document_open(dom_html_document *doc){	return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)->		open(doc);}#define dom_html_document_open(d) \		dom_html_document_open((dom_html_document *) (d)) static inline dom_exception dom_html_document_close(dom_html_document *doc){	return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)->		close(doc);}#define dom_html_document_close(d) \		dom_html_document_close((dom_html_document *) (d))  static inline dom_exception dom_html_document_write(dom_html_document *doc,		dom_string *text){	return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)->		write(doc, text);}#define dom_html_document_write(d, t) \		dom_html_document_write((dom_html_document *) (d), (t)) static inline dom_exception dom_html_document_writeln(dom_html_document *doc,		dom_string *text){	return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)->		writeln(doc, text);}#define dom_html_document_writeln(d, t) \		dom_html_document_writeln((dom_html_document *) (d), (t)) static inline dom_exception dom_html_document_get_elements_by_name(dom_html_document *doc,		dom_string *name, struct dom_nodelist **list){	return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)->		get_elements_by_name(doc, name, list);}#define dom_html_document_get_element_by_name(d, n, l) \		dom_html_document_get_elements_by_name((dom_html_document *) (d), \			(n), (struct dom_nodelist **) (l)) #endif