summaryrefslogtreecommitdiff
path: root/javascript/duktape/Element.bnd
diff options
context:
space:
mode:
Diffstat (limited to 'javascript/duktape/Element.bnd')
-rw-r--r--javascript/duktape/Element.bnd379
1 files changed, 0 insertions, 379 deletions
diff --git a/javascript/duktape/Element.bnd b/javascript/duktape/Element.bnd
deleted file mode 100644
index d34e8c1eb..000000000
--- a/javascript/duktape/Element.bnd
+++ /dev/null
@@ -1,379 +0,0 @@
-/* document 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
- */
-
-class Element {
- prologue %{
-#include <utils/corestrings.h>
-%};
-};
-
-init Element(struct dom_element *element::node);
-
-getter Element::firstElementChild()
-%{
- dom_node *element;
- dom_exception exc;
- dom_node_type node_type;
- dom_node *next_node;
-
- exc = dom_node_get_first_child(((node_private_t*)priv)->node, &element);
- if (exc != DOM_NO_ERR) {
- return 0;
- }
-
- while (element != NULL) {
- exc = dom_node_get_node_type(element, &node_type);
- if ((exc == DOM_NO_ERR) && (node_type == DOM_ELEMENT_NODE)) {
- /* found it */
- break;
- }
-
- exc = dom_node_get_next_sibling(element, &next_node);
- dom_node_unref(element);
- if (exc == DOM_NO_ERR) {
- element = next_node;
- } else {
- element = NULL;
- }
- }
- if (dukky_push_node(ctx, (dom_node *)element) == false) {
- dom_node_unref(element);
- return 0;
- }
- dom_node_unref(element);
- return 1;
-%}
-
-getter Element::lastElementChild()
-%{
- dom_node *element;
- dom_exception exc;
- dom_node_type node_type;
- dom_node *next_node;
-
- exc = dom_node_get_last_child(((node_private_t*)priv)->node, &element);
- if (exc != DOM_NO_ERR) {
- return 0;
- }
-
- while (element != NULL) {
- exc = dom_node_get_node_type(element, &node_type);
- if ((exc == DOM_NO_ERR) && (node_type == DOM_ELEMENT_NODE)) {
- /* found it */
- break;
- }
-
- exc = dom_node_get_previous_sibling(element, &next_node);
- dom_node_unref(element);
- if (exc == DOM_NO_ERR) {
- element = next_node;
- } else {
- element = NULL;
- }
- }
- if (dukky_push_node(ctx, (dom_node *)element) == false) {
- dom_node_unref(element);
- return 0;
- }
- dom_node_unref(element);
- return 1;
-%}
-
-getter Element::previousElementSibling()
-%{
- dom_node *element;
- dom_exception exc;
- dom_node_type node_type;
- dom_node *sib_node;
-
- exc = dom_node_get_previous_sibling(((node_private_t *)priv)->node, &element);
- if (exc != DOM_NO_ERR) {
- return 0;
- }
-
- while (element != NULL) {
- exc = dom_node_get_node_type(element, &node_type);
- if ((exc == DOM_NO_ERR) && (node_type == DOM_ELEMENT_NODE)) {
- /* found it */
- break;
- }
-
- exc = dom_node_get_previous_sibling(element, &sib_node);
- dom_node_unref(element);
- if (exc == DOM_NO_ERR) {
- element = sib_node;
- } else {
- element = NULL;
- }
- }
- if (dukky_push_node(ctx, (dom_node *)element) == false) {
- dom_node_unref(element);
- return 0;
- }
- dom_node_unref(element);
- return 1;
-%}
-
-getter Element::nextElementSibling()
-%{
- dom_node *element;
- dom_exception exc;
- dom_node_type node_type;
- dom_node *sib_node;
-
- exc = dom_node_get_next_sibling(((node_private_t *)priv)->node, &element);
- if (exc != DOM_NO_ERR) {
- return 0;
- }
-
- while (element != NULL) {
- exc = dom_node_get_node_type(element, &node_type);
- if ((exc == DOM_NO_ERR) && (node_type == DOM_ELEMENT_NODE)) {
- /* found it */
- break;
- }
-
- exc = dom_node_get_next_sibling(element, &sib_node);
- dom_node_unref(element);
- if (exc == DOM_NO_ERR) {
- element = sib_node;
- } else {
- element = NULL;
- }
- }
- if (dukky_push_node(ctx, (dom_node *)element) == false) {
- dom_node_unref(element);
- return 0;
- }
- dom_node_unref(element);
- return 1;
-%}
-
-getter Element::childElementCount()
-%{
- dom_node *element;
- dom_exception exc;
- dom_node_type node_type;
- dom_node *next_node;
- duk_uint_t jsret = 0;
-
- exc = dom_node_get_first_child(((node_private_t *)priv)->node, &element);
- if (exc != DOM_NO_ERR) {
- return 0;
- }
-
- while (element != NULL) {
- exc = dom_node_get_node_type(element, &node_type);
- if ((exc == DOM_NO_ERR) && (node_type == DOM_ELEMENT_NODE)) {
- jsret += 1;
- }
-
- exc = dom_node_get_next_sibling(element, &next_node);
- dom_node_unref(element);
- if (exc == DOM_NO_ERR) {
- element = next_node;
- } else {
- element = NULL;
- }
- }
- LOG("I found %u of them", jsret);
- duk_push_uint(ctx, jsret);
- return 1;
-%}
-
-method Element::getElementsByTagName ()
-%{
- dom_nodelist *nlist = NULL;
- dom_exception exc;
- dom_string *tagname;
- duk_size_t len;
- const char *str = duk_to_lstring(ctx, 0, &len);
-
- exc = dom_string_create((const uint8_t *)str, len, &tagname);
-
- if (exc != DOM_NO_ERR) return 0;
-
- exc = dom_element_get_elements_by_tag_name(priv->parent.node,
- tagname, &nlist);
- dom_string_unref(tagname);
- if (exc != DOM_NO_ERR) return 0;
- duk_push_pointer(ctx, nlist);
- dukky_create_object(ctx, PROTO_NAME(NODELIST), 1);
- dom_nodelist_unref(nlist);
-
- return 1;
-%}
-
-getter Element::id ()
-%{
- dom_string *idstr = NULL;
- dom_exception exc;
-
- exc = dom_element_get_attribute(priv->parent.node,
- corestring_dom_id,
- &idstr);
- if (exc != DOM_NO_ERR) return 0;
- if (idstr == NULL) {
- duk_push_lstring(ctx, "", 0);
- } else {
- duk_push_lstring(ctx, dom_string_data(idstr),
- dom_string_length(idstr));
- dom_string_unref(idstr);
- }
- return 1;
-%}
-
-setter Element::id ()
-%{
- dom_string *idstr = NULL;
- dom_exception exc;
- duk_size_t slen;
- const char *s = duk_safe_to_lstring(ctx, 0, &slen);
-
- exc = dom_string_create((const uint8_t *)s, slen, &idstr);
- if (exc != DOM_NO_ERR) return 0;
-
- exc = dom_element_set_attribute(priv->parent.node,
- corestring_dom_id,
- idstr);
- dom_string_unref(idstr);
- if (exc != DOM_NO_ERR) return 0;
- return 0;
-%}
-
-
-method Element::removeAttribute()
-%{
- dom_string *attr = NULL;
- dom_exception exc;
- duk_size_t slen;
- const char *s = duk_safe_to_lstring(ctx, 0, &slen);
-
- exc = dom_string_create((const uint8_t *)s, slen, &attr);
- if (exc != DOM_NO_ERR) return 0;
-
- exc = dom_element_remove_attribute(priv->parent.node, attr);
- dom_string_unref(attr);
- if (exc != DOM_NO_ERR) return 0;
- return 0;
-%}
-
-method Element::getAttribute()
-%{
- dom_string *attr_name = NULL;
- dom_string *attr_value = NULL;
- dom_exception exc;
- duk_size_t slen;
-
- const char *s = duk_safe_to_lstring(ctx, 0, &slen);
- exc = dom_string_create((const uint8_t *)s, slen, &attr_name);
- duk_pop(ctx);
-
- exc = dom_element_get_attribute(priv->parent.node,
- attr_name, &attr_value);
- dom_string_unref(attr_name);
- if (exc != DOM_NO_ERR) {
- return 0;
- }
-
- if (attr_value == NULL) {
- duk_push_null(ctx);
- } else {
- duk_push_lstring(ctx, dom_string_data(attr_value),
- dom_string_length(attr_value));
- dom_string_unref(attr_value);
- }
- return 1;
-%}
-
-method Element::setAttribute()
-%{
- dom_exception exc;
- dom_string *attr_str, *value_str;
- duk_size_t attr_len, value_len;
- const char *attr = duk_safe_to_lstring(ctx, 0, &attr_len);
- const char *value = duk_safe_to_lstring(ctx, 1, &value_len);
-
- exc = dom_string_create((const uint8_t *)attr, attr_len, &attr_str);
- if (exc != DOM_NO_ERR) return 0;
-
- exc = dom_string_create((const uint8_t *)value, value_len, &value_str);
- if (exc != DOM_NO_ERR) {
- dom_string_unref(attr_str);
- return 0;
- }
-
- exc = dom_element_set_attribute(priv->parent.node,
- attr_str, value_str);
- dom_string_unref(attr_str);
- dom_string_unref(value_str);
- if (exc != DOM_NO_ERR) return 0;
- return 0;
-%}
-
-method Element::hasAttribute()
-%{
- dom_string *attr_name = NULL;
- dom_exception exc;
- duk_size_t slen;
- bool res;
-
- const char *s = duk_safe_to_lstring(ctx, 0, &slen);
- exc = dom_string_create((const uint8_t *)s, slen, &attr_name);
- duk_pop(ctx);
-
- exc = dom_element_has_attribute(priv->parent.node,
- attr_name, &res);
- dom_string_unref(attr_name);
- if (exc != DOM_NO_ERR) {
- return 0;
- }
-
- duk_push_boolean(ctx, res);
- return 1;
-%}
-
-getter Element::className ()
-%{
- dom_string *classstr = NULL;
- dom_exception exc;
-
- exc = dom_element_get_attribute(priv->parent.node,
- corestring_dom_class,
- &classstr);
- if (exc != DOM_NO_ERR) return 0;
- if (classstr == NULL) {
- duk_push_lstring(ctx, "", 0);
- } else {
- duk_push_lstring(ctx, dom_string_data(classstr),
- dom_string_length(classstr));
- dom_string_unref(classstr);
- }
- return 1;
-%}
-
-setter Element::className ()
-%{
- dom_string *classstr = NULL;
- dom_exception exc;
- duk_size_t slen;
- const char *s = duk_safe_to_lstring(ctx, 0, &slen);
-
- exc = dom_string_create((const uint8_t *)s, slen, &classstr);
- if (exc != DOM_NO_ERR) return 0;
-
- exc = dom_element_set_attribute(priv->parent.node,
- corestring_dom_class,
- classstr);
- dom_string_unref(classstr);
- if (exc != DOM_NO_ERR) return 0;
- return 0;
-%}
-