/* 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 * * 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 "; 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 #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); } %} api finalise %{ if (private != NULL) { dom_nodelist_unref(private->nodelist); } %}