summaryrefslogtreecommitdiff
path: root/javascript/duktape/netsurf.bnd
diff options
context:
space:
mode:
authorDaniel Silverstone <dsilvers@digital-scurf.org>2015-08-09 12:26:41 +0100
committerDaniel Silverstone <dsilvers@digital-scurf.org>2015-08-09 12:26:41 +0100
commitaadb8200899ae7b2dd75bc743b08dcd9cecd27db (patch)
tree98a22ed5498d541c336eed7cb6d7fcfadc31d0db /javascript/duktape/netsurf.bnd
parent37b118d966598301fc57a6d7cb63312013069934 (diff)
downloadnetsurf-aadb8200899ae7b2dd75bc743b08dcd9cecd27db.tar.gz
netsurf-aadb8200899ae7b2dd75bc743b08dcd9cecd27db.tar.bz2
Add duktape bindings
Diffstat (limited to 'javascript/duktape/netsurf.bnd')
-rw-r--r--javascript/duktape/netsurf.bnd160
1 files changed, 160 insertions, 0 deletions
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 <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
+ */
+
+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 <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
+ */
+
+#include <dom/dom.h>
+
+#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);
+
+