diff options
author | Vincent Sanders <vince@netsurf-browser.org> | 2012-11-03 21:37:06 +0000 |
---|---|---|
committer | Vincent Sanders <vince@netsurf-browser.org> | 2012-11-03 21:37:06 +0000 |
commit | 3f1b68384562fe294a1a263214a3fd26ea869bc9 (patch) | |
tree | 21be758e3205fb8c13144c39f3790e380a9e8f5f /javascript/jsapi/nodelist.bnd | |
parent | 6648ba39ade5ed8c1a5ceccab82eed567478c950 (diff) | |
download | netsurf-3f1b68384562fe294a1a263214a3fd26ea869bc9.tar.gz netsurf-3f1b68384562fe294a1a263214a3fd26ea869bc9.tar.bz2 |
implement dom-getElementsByTagName and nodelist and htmlcollection
Diffstat (limited to 'javascript/jsapi/nodelist.bnd')
-rw-r--r-- | javascript/jsapi/nodelist.bnd | 67 |
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); + } +%} + + + |