From 042fcb82b83d19bf08afd3367235ac71a60b3850 Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Tue, 7 Jun 2016 16:01:04 +0100 Subject: Move javascript content handler as appropriate for updated source format --- content/handlers/javascript/duktape/netsurf.bnd | 200 ++++++++++++++++++++++++ 1 file changed, 200 insertions(+) create mode 100644 content/handlers/javascript/duktape/netsurf.bnd (limited to 'content/handlers/javascript/duktape/netsurf.bnd') diff --git a/content/handlers/javascript/duktape/netsurf.bnd b/content/handlers/javascript/duktape/netsurf.bnd new file mode 100644 index 000000000..4aca4752f --- /dev/null +++ b/content/handlers/javascript/duktape/netsurf.bnd @@ -0,0 +1,200 @@ +/* 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 "dom-parsing.idl"; + webidl "html.idl"; + webidl "cssom.idl"; + webidl "uievents.idl"; + webidl "urlutils.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 "utils/nsurl.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/duktape/dukky.h" +%}; + +}; + +#include "Console.bnd" +#include "Window.bnd" +#include "Document.bnd" +#include "Node.bnd" +#include "NodeList.bnd" +#include "Element.bnd" +#include "HTMLCollection.bnd" +#include "Location.bnd" +#include "Navigator.bnd" + +/* events */ + +#include "Event.bnd" + +init MutationEvent(struct dom_mutation_event *evt::evt); +init UIEvent(struct dom_ui_event *evt::evt); +init TextEvent(struct dom_text_event *evt::evt); +init MutationNameEvent(struct dom_mutation_name_event *evt::evt); +init MouseWheelEvent(struct dom_mouse_wheel_event *evt::evt); +init MouseMultiWheelEvent(struct dom_mouse_multi_wheel_event *evt::evt); +init MouseEvent(struct dom_mouse_event *evt::evt); +init KeyboardEvent(struct dom_keyboard_event *evt::evt); +init DocumentEvent(struct dom_document_event *evt::evt); +init CustomEvent(struct dom_custom_event *evt::evt); +init CompositionEvent(struct dom_ui_event *evt::evt); +init WheelEvent(struct dom_mouse_event *evt::evt); +init FocusEvent(struct dom_ui_event *evt::evt); +init StorageEvent(struct dom_event *evt::evt); +init CloseEvent(struct dom_event *evt::evt); +init MessageEvent(struct dom_event *evt::evt); +init ErrorEvent(struct dom_event *evt::evt); +init BeforeUnloadEvent(struct dom_event *evt::evt); +init PageTransitionEvent(struct dom_event *evt::evt); +init HashChangeEvent(struct dom_event *evt::evt); +init PopStateEvent(struct dom_event *evt::evt); +init DragEvent(struct dom_mouse_event *evt::evt); +init RelatedEvent(struct dom_event *evt::evt); +init AutocompleteErrorEvent(struct dom_event *evt::evt); +init TrackEvent(struct dom_event *evt::evt); + + +/* html elements */ +#include "HTMLElement.bnd" + +/* specialisations of html_element */ +#include "HTMLAnchorElement.bnd" +#include "HTMLAppletElement.bnd" +#include "HTMLAreaElement.bnd" +#include "HTMLBaseElement.bnd" +#include "HTMLBodyElement.bnd" +#include "HTMLButtonElement.bnd" +#include "HTMLBRElement.bnd" +#include "HTMLDivElement.bnd" +#include "HTMLFontElement.bnd" +#include "HTMLFormElement.bnd" +#include "HTMLFrameElement.bnd" +#include "HTMLFrameSetElement.bnd" +#include "HTMLHeadingElement.bnd" +#include "HTMLHRElement.bnd" +#include "HTMLHTMLElement.bnd" +#include "HTMLIFrameElement.bnd" +#include "HTMLImageElement.bnd" +#include "HTMLInputElement.bnd" +#include "HTMLLabelElement.bnd" +#include "HTMLLegendElement.bnd" +#include "HTMLLIElement.bnd" +#include "HTMLLinkElement.bnd" +#include "HTMLMapElement.bnd" +#include "HTMLMarqueeElement.bnd" +#include "HTMLMenuElement.bnd" +#include "HTMLMetaElement.bnd" +#include "HTMLObjectElement.bnd" +#include "HTMLOptionElement.bnd" +#include "HTMLOListElement.bnd" +#include "HTMLParagraphElement.bnd" +#include "HTMLParamElement.bnd" +#include "HTMLPreElement.bnd" +#include "HTMLQuoteElement.bnd" +#include "HTMLScriptElement.bnd" +#include "HTMLSelectElement.bnd" +#include "HTMLStyleElement.bnd" +#include "HTMLTableCaptionElement.bnd" +#include "HTMLTableCellElement.bnd" +#include "HTMLTableColElement.bnd" +#include "HTMLTableElement.bnd" +#include "HTMLTableRowElement.bnd" +#include "HTMLTableSectionElement.bnd" +#include "HTMLTextAreaElement.bnd" +#include "HTMLTitleElement.bnd" + +init HTMLUnknownElement(struct dom_html_element *html_unknown_element::html_element); +init HTMLDirectoryElement(struct dom_html_element *html_directory_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 HTMLDialogElement(struct dom_html_element *html_dialog_element::html_element); +init HTMLMenuItemElement(struct dom_html_element *html_menu_item_element::html_element); +init HTMLDetailsElement(struct dom_html_element *html_details_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 HTMLOptGroupElement(struct dom_html_element *html_opt_group_element::html_element); +init HTMLDataListElement(struct dom_html_element *html_data_list_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 HTMLEmbedElement(struct dom_html_element *html_embed_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 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 HTMLDListElement(struct dom_html_element *html_d_list_element::html_element); +init HTMLUListElement(struct dom_html_element *html_u_list_element::html_element); +init HTMLHeadElement(struct dom_html_element *html_head_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 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