Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. /*
  2.  * This file is part of libdom.
  3.  * Licensed under the MIT License,
  4.  *                http://www.opensource.org/licenses/mit-license.php
  5.  * Copyright 2009 Bo Yang <struggleyb.nku@gmail.com>
  6.  */
  7.  
  8. #ifndef dom_html_document_h_
  9. #define dom_html_document_h_
  10.  
  11. #include <dom/core/document.h>
  12. #include <dom/core/exceptions.h>
  13. #include <dom/functypes.h>
  14. #include <dom/events/document_event.h>
  15.  
  16. struct dom_element;
  17. struct dom_html_collection;
  18. struct dom_html_element;
  19. struct dom_nodelist;
  20.  
  21. typedef struct dom_html_document dom_html_document;
  22.  
  23. typedef struct dom_html_document_vtable {
  24.         struct dom_document_vtable base;
  25.  
  26.         dom_exception (*get_title)(dom_html_document *doc,
  27.                         dom_string **title);
  28.         dom_exception (*set_title)(dom_html_document *doc,
  29.                         dom_string *title);
  30.         dom_exception (*get_referrer)(dom_html_document *doc,
  31.                         dom_string **referrer);
  32.         dom_exception (*get_domain)(dom_html_document *doc,
  33.                         dom_string **domain);
  34.         dom_exception (*get_url)(dom_html_document *doc,
  35.                         dom_string **url);
  36.         dom_exception (*get_body)(dom_html_document *doc,
  37.                         struct dom_html_element **body);
  38.         dom_exception (*set_body)(dom_html_document *doc,
  39.                         struct dom_html_element *body);
  40.         dom_exception (*get_images)(dom_html_document *doc,
  41.                         struct dom_html_collection **col);
  42.         dom_exception (*get_applets)(dom_html_document *doc,
  43.                         struct dom_html_collection **col);
  44.         dom_exception (*get_links)(dom_html_document *doc,
  45.                         struct dom_html_collection **col);
  46.         dom_exception (*get_forms)(dom_html_document *doc,
  47.                         struct dom_html_collection **col);
  48.         dom_exception (*get_anchors)(dom_html_document *doc,
  49.                         struct dom_html_collection **col);
  50.         dom_exception (*get_cookie)(dom_html_document *doc,
  51.                         dom_string **cookie);
  52.         dom_exception (*set_cookie)(dom_html_document *doc,
  53.                         dom_string *cookie);
  54.  
  55.         dom_exception (*open)(dom_html_document *doc);
  56.         dom_exception (*close)(dom_html_document *doc);
  57.         dom_exception (*write)(dom_html_document *doc,
  58.                         dom_string *text);
  59.         dom_exception (*writeln)(dom_html_document *doc,
  60.                         dom_string *text);
  61.         dom_exception (*get_elements_by_name)(dom_html_document *doc,
  62.                         dom_string *name, struct dom_nodelist **list);
  63. } dom_html_document_vtable;
  64.  
  65. static inline dom_exception dom_html_document_get_title(
  66.                 dom_html_document *doc, dom_string **title)
  67. {
  68.         return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)->
  69.                 get_title(doc, title);
  70. }
  71. #define dom_html_document_get_title(d, t) \
  72.                 dom_html_document_get_title((dom_html_document *) (d), (t))
  73.  
  74. static inline dom_exception dom_html_document_set_title(dom_html_document *doc,
  75.                 dom_string *title)
  76. {
  77.         return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)->
  78.                 set_title(doc, title);
  79. }
  80. #define dom_html_document_set_title(d, t) \
  81.                 dom_html_document_set_title((dom_html_document *) (d), (t))
  82.  
  83. static inline dom_exception dom_html_document_get_referrer(dom_html_document *doc,
  84.                 dom_string **referrer)
  85. {
  86.         return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)->
  87.                 get_referrer(doc, referrer);
  88. }
  89. #define dom_html_document_get_referrer(d, r) \
  90.                 dom_html_document_get_referrer((dom_html_document *) (d), (r))
  91.  
  92. static inline dom_exception dom_html_document_get_domain(dom_html_document *doc,
  93.                 dom_string **domain)
  94. {
  95.         return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)->
  96.                 get_domain(doc, domain);
  97. }
  98. #define dom_html_document_get_domain(d, t) \
  99.                 dom_html_document_get_domain((dom_html_document *) (d), (t))
  100.  
  101. static inline dom_exception dom_html_document_get_url(dom_html_document *doc,
  102.                 dom_string **url)
  103. {
  104.         return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)->
  105.                 get_url(doc, url);
  106. }
  107. #define dom_html_document_get_url(d, u) \
  108.                 dom_html_document_get_url((dom_html_document *) (d), (u))
  109.  
  110. static inline dom_exception dom_html_document_get_body(dom_html_document *doc,
  111.                 struct dom_html_element **body)
  112. {
  113.         return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)->
  114.                 get_body(doc, body);
  115. }
  116. #define dom_html_document_get_body(d, b) \
  117.                 dom_html_document_get_title((dom_html_document *) (d), \
  118.                                 (struct dom_html_element **) (b))
  119.  
  120. static inline dom_exception dom_html_document_set_body(dom_html_document *doc,
  121.                 struct dom_html_element *body)
  122. {
  123.         return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)->
  124.                 set_body(doc, body);
  125. }
  126. #define dom_html_document_set_body(d, b) \
  127.                 dom_html_document_set_body((dom_html_document *) (d), \
  128.                                 (struct dom_html_element **) (b))
  129.  
  130. static inline dom_exception dom_html_document_get_images(dom_html_document *doc,
  131.                 struct dom_html_collection **col)
  132. {
  133.         return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)->
  134.                 get_images(doc, col);
  135. }
  136. #define dom_html_document_get_images(d, c) \
  137.                 dom_html_document_get_images((dom_html_document *) (d), \
  138.                                 (struct dom_html_collection **) (c))
  139.  
  140. static inline dom_exception dom_html_document_get_applets(dom_html_document *doc,
  141.                 struct dom_html_collection **col)
  142. {
  143.         return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)->
  144.                 get_applets(doc, col);
  145. }
  146. #define dom_html_document_get_applets(d, c) \
  147.                 dom_html_document_get_applets((dom_html_document *) (d), \
  148.                                 (struct dom_html_collection **) (c))
  149.  
  150. static inline dom_exception dom_html_document_get_links(dom_html_document *doc,
  151.                 struct dom_html_collection **col)
  152. {
  153.         return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)->
  154.                 get_links(doc, col);
  155. }
  156. #define dom_html_document_get_links(d, c) \
  157.                 dom_html_document_get_links((dom_html_document *) (d), \
  158.                                 (struct dom_html_collection **) (c))
  159.  
  160. static inline dom_exception dom_html_document_get_forms(dom_html_document *doc,
  161.                 struct dom_html_collection **col)
  162. {
  163.         return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)->
  164.                 get_forms(doc, col);
  165. }
  166. #define dom_html_document_get_forms(d, c) \
  167.                 dom_html_document_get_forms((dom_html_document *) (d), \
  168.                                 (struct dom_html_collection **) (c))
  169.  
  170. static inline dom_exception dom_html_document_get_anchors(dom_html_document *doc,
  171.                 struct dom_html_collection **col)
  172. {
  173.         return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)->
  174.                 get_anchors(doc, col);
  175. }
  176. #define dom_html_document_get_anchors(d, c) \
  177.                 dom_html_document_get_title((dom_html_document *) (d), \
  178.                                 (struct dom_html_collection **) (c))
  179.  
  180. static inline dom_exception dom_html_document_get_cookie(dom_html_document *doc,
  181.                 dom_string **cookie)
  182. {
  183.         return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)->
  184.                 get_cookie(doc, cookie);
  185. }
  186. #define dom_html_document_get_cookie(d, c) \
  187.                 dom_html_document_get_title((dom_html_document *) (d), (c))
  188.  
  189. static inline dom_exception dom_html_document_set_cookie(dom_html_document *doc,
  190.                 dom_string *cookie)
  191. {
  192.         return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)->
  193.                 set_cookie(doc, cookie);
  194. }
  195. #define dom_html_document_set_cookie(d, c) \
  196.                 dom_html_document_set_cookie((dom_html_document *) (d), (c))
  197.  
  198.  
  199. static inline dom_exception dom_html_document_open(dom_html_document *doc)
  200. {
  201.         return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)->
  202.                 open(doc);
  203. }
  204. #define dom_html_document_open(d) \
  205.                 dom_html_document_open((dom_html_document *) (d))
  206.  
  207. static inline dom_exception dom_html_document_close(dom_html_document *doc)
  208. {
  209.         return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)->
  210.                 close(doc);
  211. }
  212. #define dom_html_document_close(d) \
  213.                 dom_html_document_close((dom_html_document *) (d))
  214.  
  215.  
  216. static inline dom_exception dom_html_document_write(dom_html_document *doc,
  217.                 dom_string *text)
  218. {
  219.         return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)->
  220.                 write(doc, text);
  221. }
  222. #define dom_html_document_write(d, t) \
  223.                 dom_html_document_write((dom_html_document *) (d), (t))
  224.  
  225. static inline dom_exception dom_html_document_writeln(dom_html_document *doc,
  226.                 dom_string *text)
  227. {
  228.         return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)->
  229.                 writeln(doc, text);
  230. }
  231. #define dom_html_document_writeln(d, t) \
  232.                 dom_html_document_writeln((dom_html_document *) (d), (t))
  233.  
  234. static inline dom_exception dom_html_document_get_elements_by_name(dom_html_document *doc,
  235.                 dom_string *name, struct dom_nodelist **list)
  236. {
  237.         return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)->
  238.                 get_elements_by_name(doc, name, list);
  239. }
  240. #define dom_html_document_get_elements_by_name(d, n, l) \
  241.                 dom_html_document_get_element_by_name((dom_html_document *) (d), \
  242.                         (n), (struct dom_nodelist **) (l))
  243.  
  244. #endif
  245.  
  246.