From b5f1c5eee20c2bb0f48098151d15f4f36fa9de67 Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Wed, 7 Oct 2015 14:45:57 +0100 Subject: [PATCH] complete binding for HTML BR element --- Docs/UnimplementedJavascript.txt | 2 -- javascript/duktape/HTMLBRElement.bnd | 50 ++++++++++++++++++++++++++++ javascript/duktape/netsurf.bnd | 2 +- 3 files changed, 51 insertions(+), 3 deletions(-) create mode 100644 javascript/duktape/HTMLBRElement.bnd diff --git a/Docs/UnimplementedJavascript.txt b/Docs/UnimplementedJavascript.txt index f17f08d1b..6cadfb57e 100644 --- a/Docs/UnimplementedJavascript.txt +++ b/Docs/UnimplementedJavascript.txt @@ -693,8 +693,6 @@ getter HTMLBodyElement::text();\n setter HTMLBodyElement::text();\n getter HTMLBodyElement::vLink();\n setter HTMLBodyElement::vLink();\n -getter HTMLBRElement::clear();\n -setter HTMLBRElement::clear();\n getter HTMLButtonElement::autofocus();\n setter HTMLButtonElement::autofocus();\n method HTMLButtonElement::checkValidity();\n diff --git a/javascript/duktape/HTMLBRElement.bnd b/javascript/duktape/HTMLBRElement.bnd new file mode 100644 index 000000000..25e5184ba --- /dev/null +++ b/javascript/duktape/HTMLBRElement.bnd @@ -0,0 +1,50 @@ +/* HTML br element binding 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 + */ + +init HTMLBRElement(struct dom_html_element *html_br_element::html_element); + +getter HTMLBRElement::clear() +%{ + dom_exception exc; + dom_string *str; + + exc = dom_html_br_element_get_clear(((node_private_t*)priv)->node, &str); + if (exc != DOM_NO_ERR) { + return 0; + } + + duk_push_lstring(ctx, dom_string_data(str), dom_string_length(str)); + dom_string_unref(str); + + return 1; + +%} + +setter HTMLBRElement::clear() +%{ + dom_exception exc; + dom_string *content; + duk_size_t slen; + const char *s; + s = duk_safe_to_lstring(ctx, 0, &slen); + + exc = dom_string_create((const uint8_t *)s, slen, &content); + if (exc != DOM_NO_ERR) { + return 0; + } + + exc = dom_html_br_element_set_clear(((node_private_t*)priv)->node, content); + dom_string_unref(content); + if (exc != DOM_NO_ERR) { + return 0; + } + + return 0; +%} diff --git a/javascript/duktape/netsurf.bnd b/javascript/duktape/netsurf.bnd index f9148ee15..255c782ae 100644 --- a/javascript/duktape/netsurf.bnd +++ b/javascript/duktape/netsurf.bnd @@ -61,6 +61,7 @@ struct dom_html_br_element; #include "HTMLCollection.bnd" #include "Location.bnd" #include "Navigator.bnd" +#include "HTMLBRElement.bnd" /* specialisations of html_element */ init HTMLUnknownElement(struct dom_html_element *html_unknown_element::html_element); @@ -110,7 +111,6 @@ 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);