From aadb8200899ae7b2dd75bc743b08dcd9cecd27db Mon Sep 17 00:00:00 2001 From: Daniel Silverstone Date: Sun, 9 Aug 2015 12:26:41 +0100 Subject: Add duktape bindings --- javascript/duktape/netsurf.bnd | 160 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 160 insertions(+) create mode 100644 javascript/duktape/netsurf.bnd (limited to 'javascript/duktape/netsurf.bnd') diff --git a/javascript/duktape/netsurf.bnd b/javascript/duktape/netsurf.bnd new file mode 100644 index 000000000..935450a55 --- /dev/null +++ b/javascript/duktape/netsurf.bnd @@ -0,0 +1,160 @@ +/* Binding for browser using duktape and libdom + * + * Copyright 2015 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 + */ + +binding duk_libdom { + webidl "dom.idl"; + webidl "html.idl"; + webidl "uievents.idl"; + webidl "console.idl"; + + preface %{ +/* DukTape JavaScript bindings for NetSurf browser + * + * Copyright 2015 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 + */ + +#include + +#include "utils/log.h" + +#include "javascript/duktape/duktape.h" + +struct browser_window; +struct html_content; +struct dom_node; +struct dom_element; +struct dom_document; +struct dom_html_element; +struct dom_node_character_data; +struct dom_node_text; +struct dom_node_list; +struct dom_node_comment; +struct dom_html_collection; +struct dom_html_br_element; + +%}; + + prologue %{ +#include "javascript/dukky.h" +%}; + +} + +#include "Window.bnd" +#include "Document.bnd" +#include "Node.bnd" +#include "NodeList.bnd" +#include "Element.bnd" +#include "HTMLCollection.bnd" + +/* specialisations of html_element */ +init HTMLUnknownElement("struct dom_html_element *" html_unknown_element::html_element); +init HTMLFontElement("struct dom_html_element *" html_font_element::html_element); +init HTMLDirectoryElement("struct dom_html_element *" html_directory_element::html_element); +init HTMLFrameElement("struct dom_html_element *" html_frame_element::html_element); +init HTMLFrameSetElement("struct dom_html_element *" html_frame_set_element::html_element); +init HTMLMarqueeElement("struct dom_html_element *" html_marquee_element::html_element); +init HTMLAppletElement("struct dom_html_element *" html_applet_element::html_element); +init HTMLCanvasElement("struct dom_html_element *" html_canvas_element::html_element); +init HTMLTemplateElement("struct dom_html_element *" html_template_element::html_element); +init HTMLScriptElement("struct dom_html_element *" html_script_element::html_element); +init HTMLDialogElement("struct dom_html_element *" html_dialog_element::html_element); +init HTMLMenuItemElement("struct dom_html_element *" html_menu_item_element::html_element); +init HTMLMenuElement("struct dom_html_element *" html_menu_element::html_element); +init HTMLDetailsElement("struct dom_html_element *" html_details_element::html_element); +init HTMLLegendElement("struct dom_html_element *" html_legend_element::html_element); +init HTMLFieldSetElement("struct dom_html_element *" html_field_set_element::html_element); +init HTMLMeterElement("struct dom_html_element *" html_meter_element::html_element); +init HTMLProgressElement("struct dom_html_element *" html_progress_element::html_element); +init HTMLOutputElement("struct dom_html_element *" html_output_element::html_element); +init HTMLKeygenElement("struct dom_html_element *" html_keygen_element::html_element); +init HTMLTextAreaElement("struct dom_html_element *" html_text_area_element::html_element); +init HTMLOptionElement("struct dom_html_element *" html_option_element::html_element); +init HTMLOptGroupElement("struct dom_html_element *" html_opt_group_element::html_element); +init HTMLDataListElement("struct dom_html_element *" html_data_list_element::html_element); +init HTMLSelectElement("struct dom_html_element *" html_select_element::html_element); +init HTMLButtonElement("struct dom_html_element *" html_button_element::html_element); +init HTMLInputElement("struct dom_html_element *" html_input_element::html_element); +init HTMLLabelElement("struct dom_html_element *" html_label_element::html_element); +init HTMLFormElement("struct dom_html_element *" html_form_element::html_element); +init HTMLTableCellElement("struct dom_html_element *" html_table_cell_element::html_element); +init HTMLTableRowElement("struct dom_html_element *" html_table_row_element::html_element); +init HTMLTableSectionElement("struct dom_html_element *" html_table_section_element::html_element); +init HTMLTableColElement("struct dom_html_element *" html_table_col_element::html_element); +init HTMLTableCaptionElement("struct dom_html_element *" html_table_caption_element::html_element); +init HTMLTableElement("struct dom_html_element *" html_table_element::html_element); +init HTMLAreaElement("struct dom_html_element *" html_area_element::html_element); +init HTMLMapElement("struct dom_html_element *" html_map_element::html_element); +init HTMLMediaElement("struct dom_html_element *" html_media_element::html_element); +init HTMLTrackElement("struct dom_html_element *" html_track_element::html_element); +init HTMLParamElement("struct dom_html_element *" html_param_element::html_element); +init HTMLObjectElement("struct dom_html_element *" html_object_element::html_element); +init HTMLEmbedElement("struct dom_html_element *" html_embed_element::html_element); +init HTMLIFrameElement("struct dom_html_element *" html_i_frame_element::html_element); +init HTMLImageElement("struct dom_html_element *" html_image_element::html_element); +init HTMLSourceElement("struct dom_html_element *" html_source_element::html_element); +init HTMLPictureElement("struct dom_html_element *" html_picture_element::html_element); +init HTMLModElement("struct dom_html_element *" html_mod_element::html_element); +init HTMLBRElement("struct dom_html_element *" html_br_element::html_element); +init HTMLSpanElement("struct dom_html_element *" html_span_element::html_element); +init HTMLTimeElement("struct dom_html_element *" html_time_element::html_element); +init HTMLDataElement("struct dom_html_element *" html_data_element::html_element); +init HTMLAnchorElement("struct dom_html_element *" html_anchor_element::html_element); +init HTMLDivElement("struct dom_html_element *" html_div_element::html_element); +init HTMLDListElement("struct dom_html_element *" html_d_list_element::html_element); +init HTMLLIElement("struct dom_html_element *" html_li_element::html_element); +init HTMLUListElement("struct dom_html_element *" html_u_list_element::html_element); +init HTMLOListElement("struct dom_html_element *" html_o_list_element::html_element); +init HTMLQuoteElement("struct dom_html_element *" html_quote_element::html_element); +init HTMLPreElement("struct dom_html_element *" html_pre_element::html_element); +init HTMLHRElement("struct dom_html_element *" html_hr_element::html_element); +init HTMLParagraphElement("struct dom_html_element *" html_paragraph_element::html_element); +init HTMLHeadingElement("struct dom_html_element *" html_heading_element::html_element); +init HTMLBodyElement("struct dom_html_element *" html_body_element::html_element); +init HTMLStyleElement("struct dom_html_element *" html_style_element::html_element); +init HTMLMetaElement("struct dom_html_element *" html_meta_element::html_element); +init HTMLLinkElement("struct dom_html_element *" html_link_element::html_element); +init HTMLBaseElement("struct dom_html_element *" html_base_element::html_element); +init HTMLTitleElement("struct dom_html_element *" html_title_element::html_element); +init HTMLHeadElement("struct dom_html_element *" html_head_element::html_element); +init HTMLHtmlElement("struct dom_html_element *" html_html_element::html_element); + +/* specialisations of HTMLTableCellElement */ +init HTMLTableHeaderCellElement("struct dom_html_element *" html_table_header_cell_element::html_table_cell_element); +init HTMLTableDataCellElement("struct dom_html_element *" html_table_data_cell_element::html_table_cell_element); + +/* specialisations of html_media_element */ +init HTMLAudioElement("struct dom_html_element *" html_audio_element::html_media_element); +init HTMLVideoElement("struct dom_html_element *" html_video_element::html_media_element); + +init HTMLElement("struct dom_html_element *" html_element::element); + +init Text("struct dom_node_text *" text::character_data); +init Comment("struct dom_node_comment *" comment::character_data); +init ProcessingInstruction("struct dom_node_text *" text::character_data); + +init XMLDocument("struct dom_document *" document); + +init CharacterData("struct dom_node_character_data *" character_data::node); +init DocumentFragment("struct dom_document *" document::node); +init DocumentType("struct dom_document *" document::node); + +init PropertyNodeList("struct dom_nodelist *" nodes); +init RadioNodeList("struct dom_nodelist *" nodes); + +init HTMLAllCollection("struct dom_html_collection *" coll); +init HTMLFormControlsCollection("struct dom_html_collection *" coll); +init HTMLOptionsCollection("struct dom_html_collection *" coll); +init HTMLPropertiesCollection("struct dom_html_collection *" coll); + + -- cgit v1.2.3