summaryrefslogtreecommitdiff
path: root/javascript/jsapi/nodelist.bnd
diff options
context:
space:
mode:
Diffstat (limited to 'javascript/jsapi/nodelist.bnd')
-rw-r--r--javascript/jsapi/nodelist.bnd67
1 files changed, 67 insertions, 0 deletions
diff --git a/javascript/jsapi/nodelist.bnd b/javascript/jsapi/nodelist.bnd
new file mode 100644
index 000000000..710536dcf
--- /dev/null
+++ b/javascript/jsapi/nodelist.bnd
@@ -0,0 +1,67 @@
+/* Binding to generate NodeList interface
+ *
+ * The js_libdom (javascript to libdom) binding type is currently the
+ * only one implemented and this principly describes that binding.
+ *
+ * Copyright 2012 Vincent Sanders <vince@netsurf-browser.org>
+ *
+ * This file is part of NetSurf, http://www.netsurf-browser.org/
+ *
+ * Released under the terms of the MIT License,
+ * http://www.opensource.org/licenses/mit-license
+ */
+
+/* The hdrcomment are added into the geenrated output comment header */
+hdrcomment "Copyright 2012 Vincent Sanders <vince@netsurf-browser.org>";
+hdrcomment "This file is part of NetSurf, http://www.netsurf-browser.org/";
+hdrcomment "Released under the terms of the MIT License,";
+hdrcomment " http://www.opensource.org/licenses/mit-license";
+
+preamble %{
+
+#include <dom/dom.h>
+
+#include "utils/config.h"
+#include "utils/log.h"
+
+#include "javascript/jsapi.h"
+#include "javascript/jsapi/binding.h"
+
+%}
+
+webidlfile "dom.idl";
+
+binding nodelist {
+ type js_libdom; /* the binding type */
+
+ interface NodeList; /* The WebIDL interface to generate a binding for */
+
+ private "dom_nodelist *" nodelist;
+ private "struct html_content *" htmlc;
+}
+
+getter length %{
+ dom_exception err;
+
+ err = dom_nodelist_get_length(private->nodelist, &jsret);
+ if (err != DOM_NO_ERR) {
+ return JS_FALSE;
+ }
+%}
+
+operation item %{
+ dom_exception err;
+ dom_node *domnode;
+
+ err = dom_nodelist_item(private->nodelist, index, &domnode);
+ if (err != DOM_NO_ERR) {
+ return JS_FALSE;
+ }
+
+ if (domnode != NULL) {
+ jsret = jsapi_new_HTMLElement(cx, NULL, NULL, (dom_element *)domnode, private->htmlc);
+ }
+%}
+
+
+