diff --git a/src/document/dom/ecmascript/spidermonkey/Attr.c b/src/document/dom/ecmascript/spidermonkey/Attr.c index 5f9f3f8b..f38fb352 100644 --- a/src/document/dom/ecmascript/spidermonkey/Attr.c +++ b/src/document/dom/ecmascript/spidermonkey/Attr.c @@ -64,6 +64,10 @@ const JSPropertySpec Attr_props[] = { { NULL } }; +const JSFunctionSpec Attr_funcs[] = { + { NULL } +}; + const JSClass Attr_class = { "Attr", JSCLASS_HAS_PRIVATE, diff --git a/src/document/dom/ecmascript/spidermonkey/Attr.h b/src/document/dom/ecmascript/spidermonkey/Attr.h index b251f0df..04d0f52f 100644 --- a/src/document/dom/ecmascript/spidermonkey/Attr.h +++ b/src/document/dom/ecmascript/spidermonkey/Attr.h @@ -4,6 +4,7 @@ #include "ecmascript/spidermonkey/util.h" extern const JSClass Attr_class; +extern const JSFunctionSpec Attr_funcs[]; extern const JSPropertySpec Attr_props[]; #endif diff --git a/src/document/dom/ecmascript/spidermonkey/CDATASection.c b/src/document/dom/ecmascript/spidermonkey/CDATASection.c index 4ccdd257..d77a8559 100644 --- a/src/document/dom/ecmascript/spidermonkey/CDATASection.c +++ b/src/document/dom/ecmascript/spidermonkey/CDATASection.c @@ -8,6 +8,14 @@ #include "document/dom/ecmascript/spidermonkey/CharacterData.h" #include "document/dom/ecmascript/spidermonkey/Text.h" +const JSPropertySpec CDATASection_props[] = { + { NULL } +}; + +const JSFunctionSpec CDATASection_funcs[] = { + { NULL } +}; + const JSClass CDATASection_class = { "CDATASection", JSCLASS_HAS_PRIVATE, diff --git a/src/document/dom/ecmascript/spidermonkey/CDATASection.h b/src/document/dom/ecmascript/spidermonkey/CDATASection.h index 4fcf7992..8de301cd 100644 --- a/src/document/dom/ecmascript/spidermonkey/CDATASection.h +++ b/src/document/dom/ecmascript/spidermonkey/CDATASection.h @@ -4,6 +4,8 @@ #include "ecmascript/spidermonkey/util.h" extern const JSClass CDATASection_class; +extern const JSFunctionSpec CDATASection_funcs[]; +extern const JSPropertySpec CDATASection_props[]; #endif diff --git a/src/document/dom/ecmascript/spidermonkey/Comment.c b/src/document/dom/ecmascript/spidermonkey/Comment.c index 2b169883..8f4d9513 100644 --- a/src/document/dom/ecmascript/spidermonkey/Comment.c +++ b/src/document/dom/ecmascript/spidermonkey/Comment.c @@ -8,6 +8,14 @@ #include "document/dom/ecmascript/spidermonkey/CharacterData.h" #include "document/dom/ecmascript/spidermonkey/Comment.h" +const JSPropertySpec Comment_props[] = { + { NULL } +}; + +const JSFunctionSpec Comment_funcs[] = { + { NULL } +}; + const JSClass Comment_class = { "Comment", JSCLASS_HAS_PRIVATE, diff --git a/src/document/dom/ecmascript/spidermonkey/Comment.h b/src/document/dom/ecmascript/spidermonkey/Comment.h index 25ed36d3..ffa8d0ec 100644 --- a/src/document/dom/ecmascript/spidermonkey/Comment.h +++ b/src/document/dom/ecmascript/spidermonkey/Comment.h @@ -4,5 +4,7 @@ #include "ecmascript/spidermonkey/util.h" extern const JSClass Comment_class; +extern const JSFunctionSpec Comment_funcs[]; +extern const JSPropertySpec Comment_props[]; #endif diff --git a/src/document/dom/ecmascript/spidermonkey/DOMError.c b/src/document/dom/ecmascript/spidermonkey/DOMError.c index 89e20968..7c723783 100644 --- a/src/document/dom/ecmascript/spidermonkey/DOMError.c +++ b/src/document/dom/ecmascript/spidermonkey/DOMError.c @@ -46,6 +46,10 @@ const JSPropertySpec DOMError_props[] = { { NULL } }; +const JSFunctionSpec DOMError_funcs[] = { + { NULL } +}; + const JSClass DOMError_class = { "DOMError", JSCLASS_HAS_PRIVATE, diff --git a/src/document/dom/ecmascript/spidermonkey/DOMError.h b/src/document/dom/ecmascript/spidermonkey/DOMError.h index d6057b73..1ff4452f 100644 --- a/src/document/dom/ecmascript/spidermonkey/DOMError.h +++ b/src/document/dom/ecmascript/spidermonkey/DOMError.h @@ -4,6 +4,7 @@ #include "ecmascript/spidermonkey/util.h" extern const JSClass DOMError_class; +extern const JSFunctionSpec DOMError_funcs[]; extern const JSPropertySpec DOMError_props[]; #endif diff --git a/src/document/dom/ecmascript/spidermonkey/DOMException.c b/src/document/dom/ecmascript/spidermonkey/DOMException.c index 80e110b4..5d26af6e 100644 --- a/src/document/dom/ecmascript/spidermonkey/DOMException.c +++ b/src/document/dom/ecmascript/spidermonkey/DOMException.c @@ -41,6 +41,10 @@ const JSPropertySpec DOMException_props[] = { { NULL } }; +const JSFunctionSpec DOMException_funcs[] = { + { NULL } +}; + const JSClass DOMException_class = { "DOMException", JSCLASS_HAS_PRIVATE, diff --git a/src/document/dom/ecmascript/spidermonkey/DOMException.h b/src/document/dom/ecmascript/spidermonkey/DOMException.h index 3131887c..e7df3e96 100644 --- a/src/document/dom/ecmascript/spidermonkey/DOMException.h +++ b/src/document/dom/ecmascript/spidermonkey/DOMException.h @@ -4,6 +4,7 @@ #include "ecmascript/spidermonkey/util.h" extern const JSClass DOMException_class; +extern const JSFunctionSpec DOMException_funcs[]; extern const JSPropertySpec DOMException_props[]; #endif diff --git a/src/document/dom/ecmascript/spidermonkey/DOMImplementation.c b/src/document/dom/ecmascript/spidermonkey/DOMImplementation.c index 1aaef0ba..8542820b 100644 --- a/src/document/dom/ecmascript/spidermonkey/DOMImplementation.c +++ b/src/document/dom/ecmascript/spidermonkey/DOMImplementation.c @@ -38,6 +38,10 @@ DOMImplementation_getFeature(JSContext *ctx, JSObject *obj, uintN argc, jsval *a return JS_TRUE; } +const JSPropertySpec DOMImplementation_props[] = { + { NULL } +}; + const JSFunctionSpec DOMImplementation_funcs[] = { { "hasFeature", DOMImplementation_hasFeature, 2 }, { "createDocumentType", DOMImplementation_createDocumentType, 3 }, diff --git a/src/document/dom/ecmascript/spidermonkey/DOMImplementation.h b/src/document/dom/ecmascript/spidermonkey/DOMImplementation.h index c7a27640..2c19852e 100644 --- a/src/document/dom/ecmascript/spidermonkey/DOMImplementation.h +++ b/src/document/dom/ecmascript/spidermonkey/DOMImplementation.h @@ -5,6 +5,7 @@ extern const JSClass DOMImplementation_class; extern const JSFunctionSpec DOMImplementation_funcs[]; +extern const JSPropertySpec DOMImplementation_props[]; #endif diff --git a/src/document/dom/ecmascript/spidermonkey/DOMImplementationRegistry.c b/src/document/dom/ecmascript/spidermonkey/DOMImplementationRegistry.c index ecaea0e2..efc9cb11 100644 --- a/src/document/dom/ecmascript/spidermonkey/DOMImplementationRegistry.c +++ b/src/document/dom/ecmascript/spidermonkey/DOMImplementationRegistry.c @@ -24,6 +24,10 @@ DOMImplementationRegistry_getDOMImplementationList(JSContext *ctx, JSObject *obj return JS_TRUE; } +const JSPropertySpec DOMImplementationRegistry_props[] = { + { NULL } +}; + const JSFunctionSpec DOMImplementationRegistry_funcs[] = { { "getDOMImplementation", DOMImplementationRegistry_getDOMImplementation, 1 }, { "getDOMImplementationList", DOMImplementationRegistry_getDOMImplementationList, 1 }, diff --git a/src/document/dom/ecmascript/spidermonkey/DOMImplementationRegistry.h b/src/document/dom/ecmascript/spidermonkey/DOMImplementationRegistry.h index b97b4f38..5152de7b 100644 --- a/src/document/dom/ecmascript/spidermonkey/DOMImplementationRegistry.h +++ b/src/document/dom/ecmascript/spidermonkey/DOMImplementationRegistry.h @@ -5,6 +5,7 @@ extern const JSClass DOMImplementationRegistry_class; extern const JSFunctionSpec DOMImplementationRegistry_funcs[]; +extern const JSPropertySpec DOMImplementationRegistry_props[]; #endif diff --git a/src/document/dom/ecmascript/spidermonkey/DOMImplementationSource.c b/src/document/dom/ecmascript/spidermonkey/DOMImplementationSource.c index e7e07959..e7b6ba37 100644 --- a/src/document/dom/ecmascript/spidermonkey/DOMImplementationSource.c +++ b/src/document/dom/ecmascript/spidermonkey/DOMImplementationSource.c @@ -23,6 +23,10 @@ DOMImplementationSource_getDOMImplementationList(JSContext *ctx, JSObject *obj, return JS_TRUE; } +const JSPropertySpec DOMImplementationSource_props[] = { + { NULL } +}; + const JSFunctionSpec DOMImplementationSource_funcs[] = { { "getDOMImplementation", DOMImplementationSource_getDOMImplementation, 1 }, { "getDOMImplementationList", DOMImplementationSource_getDOMImplementationList, 1 }, diff --git a/src/document/dom/ecmascript/spidermonkey/DOMImplementationSource.h b/src/document/dom/ecmascript/spidermonkey/DOMImplementationSource.h index 0300d516..7750670b 100644 --- a/src/document/dom/ecmascript/spidermonkey/DOMImplementationSource.h +++ b/src/document/dom/ecmascript/spidermonkey/DOMImplementationSource.h @@ -5,6 +5,7 @@ extern const JSClass DOMImplementationSource_class; extern const JSFunctionSpec DOMImplementationSource_funcs[]; +extern const JSPropertySpec DOMImplementation_props[]; #endif diff --git a/src/document/dom/ecmascript/spidermonkey/DOMLocator.c b/src/document/dom/ecmascript/spidermonkey/DOMLocator.c index 70d15f3b..986421b3 100644 --- a/src/document/dom/ecmascript/spidermonkey/DOMLocator.c +++ b/src/document/dom/ecmascript/spidermonkey/DOMLocator.c @@ -47,6 +47,10 @@ const JSPropertySpec DOMLocator_props[] = { { NULL } }; +const JSFunctionSpec DOMLocator_funcs[] = { + { NULL } +}; + const JSClass DOMLocator_class = { "DOMLocator", JSCLASS_HAS_PRIVATE, diff --git a/src/document/dom/ecmascript/spidermonkey/DOMLocator.h b/src/document/dom/ecmascript/spidermonkey/DOMLocator.h index d623d681..f72bca45 100644 --- a/src/document/dom/ecmascript/spidermonkey/DOMLocator.h +++ b/src/document/dom/ecmascript/spidermonkey/DOMLocator.h @@ -4,6 +4,7 @@ #include "ecmascript/spidermonkey/util.h" extern const JSClass DOMLocator_class; +extern const JSFunctionSpec DOMLocator_funcs[]; extern const JSPropertySpec DOMLocator_props[]; #endif diff --git a/src/document/dom/ecmascript/spidermonkey/Document.c b/src/document/dom/ecmascript/spidermonkey/Document.c index df0b06d8..ad0c66b0 100644 --- a/src/document/dom/ecmascript/spidermonkey/Document.c +++ b/src/document/dom/ecmascript/spidermonkey/Document.c @@ -7,7 +7,7 @@ #include "document/dom/ecmascript/spidermonkey/Document.h" #include "document/dom/ecmascript/spidermonkey/Node.h" -static JSBool +JSBool Document_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) { if (!JSVAL_IS_INT(id)) @@ -49,7 +49,7 @@ Document_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) return JS_TRUE; } -static JSBool +JSBool Document_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) { if (!JSVAL_IS_INT(id)) diff --git a/src/document/dom/ecmascript/spidermonkey/Document.h b/src/document/dom/ecmascript/spidermonkey/Document.h index 96619a40..c76b5812 100644 --- a/src/document/dom/ecmascript/spidermonkey/Document.h +++ b/src/document/dom/ecmascript/spidermonkey/Document.h @@ -7,5 +7,8 @@ extern const JSClass Document_class; extern const JSFunctionSpec Document_funcs[]; extern const JSPropertySpec Document_props[]; +JSBool Document_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp); +JSBool Document_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp); + #endif diff --git a/src/document/dom/ecmascript/spidermonkey/DocumentFragment.c b/src/document/dom/ecmascript/spidermonkey/DocumentFragment.c index 475cb6b3..d1ef8b89 100644 --- a/src/document/dom/ecmascript/spidermonkey/DocumentFragment.c +++ b/src/document/dom/ecmascript/spidermonkey/DocumentFragment.c @@ -7,6 +7,14 @@ #include "document/dom/ecmascript/spidermonkey/DocumentFragment.h" #include "document/dom/ecmascript/spidermonkey/Node.h" +const JSPropertySpec DocumentFragment_props[] = { + { NULL } +}; + +const JSFunctionSpec DocumentFragment_funcs[] = { + { NULL } +}; + const JSClass DocumentFragment_class = { "DocumentFragment", JSCLASS_HAS_PRIVATE, diff --git a/src/document/dom/ecmascript/spidermonkey/DocumentFragment.h b/src/document/dom/ecmascript/spidermonkey/DocumentFragment.h index da7c450d..0213ae6e 100644 --- a/src/document/dom/ecmascript/spidermonkey/DocumentFragment.h +++ b/src/document/dom/ecmascript/spidermonkey/DocumentFragment.h @@ -4,6 +4,8 @@ #include "ecmascript/spidermonkey/util.h" extern const JSClass DocumentFragment_class; +extern const JSFunctionSpec DocumentFragment_funcs[]; +extern const JSPropertySpec DocumentFragment_props[]; #endif diff --git a/src/document/dom/ecmascript/spidermonkey/DocumentType.c b/src/document/dom/ecmascript/spidermonkey/DocumentType.c index 1853c305..c4a2f922 100644 --- a/src/document/dom/ecmascript/spidermonkey/DocumentType.c +++ b/src/document/dom/ecmascript/spidermonkey/DocumentType.c @@ -48,6 +48,10 @@ const JSPropertySpec DocumentType_props[] = { { NULL } }; +const JSFunctionSpec DocumentType_funcs[] = { + { NULL } +}; + const JSClass DocumentType_class = { "DocumentType", JSCLASS_HAS_PRIVATE, diff --git a/src/document/dom/ecmascript/spidermonkey/DocumentType.h b/src/document/dom/ecmascript/spidermonkey/DocumentType.h index 9ad52b44..2f436014 100644 --- a/src/document/dom/ecmascript/spidermonkey/DocumentType.h +++ b/src/document/dom/ecmascript/spidermonkey/DocumentType.h @@ -4,6 +4,7 @@ #include "ecmascript/spidermonkey/util.h" extern const JSClass DocumentType_class; +extern const JSFunctionSpec DocumentType_funcs[]; extern const JSPropertySpec DocumentType_props[]; #endif diff --git a/src/document/dom/ecmascript/spidermonkey/Element.c b/src/document/dom/ecmascript/spidermonkey/Element.c index 4d89ee4f..f7427bcf 100644 --- a/src/document/dom/ecmascript/spidermonkey/Element.c +++ b/src/document/dom/ecmascript/spidermonkey/Element.c @@ -8,7 +8,7 @@ #include "document/dom/ecmascript/spidermonkey/Element.h" #include "document/dom/ecmascript/spidermonkey/Node.h" -static JSBool +JSBool Element_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) { if (!JSVAL_IS_INT(id)) diff --git a/src/document/dom/ecmascript/spidermonkey/Element.h b/src/document/dom/ecmascript/spidermonkey/Element.h index 14c383d0..17bf56f2 100644 --- a/src/document/dom/ecmascript/spidermonkey/Element.h +++ b/src/document/dom/ecmascript/spidermonkey/Element.h @@ -7,5 +7,7 @@ extern const JSClass Element_class; extern const JSFunctionSpec Element_funcs[]; extern const JSPropertySpec Element_props[]; +JSBool Element_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp); + #endif diff --git a/src/document/dom/ecmascript/spidermonkey/Entity.c b/src/document/dom/ecmascript/spidermonkey/Entity.c index 9a16a62e..4e259d6e 100644 --- a/src/document/dom/ecmascript/spidermonkey/Entity.c +++ b/src/document/dom/ecmascript/spidermonkey/Entity.c @@ -47,6 +47,10 @@ const JSPropertySpec Entity_props[] = { { NULL } }; +const JSFunctionSpec Entity_funcs[] = { + { NULL } +}; + const JSClass Entity_class = { "Entity", JSCLASS_HAS_PRIVATE, diff --git a/src/document/dom/ecmascript/spidermonkey/Entity.h b/src/document/dom/ecmascript/spidermonkey/Entity.h index 5e083a61..c8d6276e 100644 --- a/src/document/dom/ecmascript/spidermonkey/Entity.h +++ b/src/document/dom/ecmascript/spidermonkey/Entity.h @@ -4,6 +4,7 @@ #include "ecmascript/spidermonkey/util.h" extern const JSClass Entity_class; +extern const JSFunctionSpec Entity_funcs[]; extern const JSPropertySpec Entity_props[]; #endif diff --git a/src/document/dom/ecmascript/spidermonkey/EntityReference.c b/src/document/dom/ecmascript/spidermonkey/EntityReference.c index fd6a2799..5a84ead1 100644 --- a/src/document/dom/ecmascript/spidermonkey/EntityReference.c +++ b/src/document/dom/ecmascript/spidermonkey/EntityReference.c @@ -7,6 +7,14 @@ #include "document/dom/ecmascript/spidermonkey/EntityReference.h" #include "document/dom/ecmascript/spidermonkey/Node.h" +const JSPropertySpec EntityReference_props[] = { + { NULL } +}; + +const JSFunctionSpec EntityReference_funcs[] = { + { NULL } +}; + const JSClass EntityReference_class = { "EntityReference", JSCLASS_HAS_PRIVATE, diff --git a/src/document/dom/ecmascript/spidermonkey/EntityReference.h b/src/document/dom/ecmascript/spidermonkey/EntityReference.h index 138902f3..9b86c16e 100644 --- a/src/document/dom/ecmascript/spidermonkey/EntityReference.h +++ b/src/document/dom/ecmascript/spidermonkey/EntityReference.h @@ -4,6 +4,8 @@ #include "ecmascript/spidermonkey/util.h" extern const JSClass EntityReference_class; +extern const JSFunctionSpec EntityReference_funcs[]; +extern const JSPropertySpec EntityReference_props[]; #endif diff --git a/src/document/dom/ecmascript/spidermonkey/Notation.c b/src/document/dom/ecmascript/spidermonkey/Notation.c index 0a6258fe..e3ec501a 100644 --- a/src/document/dom/ecmascript/spidermonkey/Notation.c +++ b/src/document/dom/ecmascript/spidermonkey/Notation.c @@ -32,6 +32,10 @@ const JSPropertySpec Notation_props[] = { { NULL } }; +const JSFunctionSpec Notation_funcs[] = { + { NULL } +}; + const JSClass Notation_class = { "Notation", JSCLASS_HAS_PRIVATE, diff --git a/src/document/dom/ecmascript/spidermonkey/Notation.h b/src/document/dom/ecmascript/spidermonkey/Notation.h index eb09db01..2cc5802b 100644 --- a/src/document/dom/ecmascript/spidermonkey/Notation.h +++ b/src/document/dom/ecmascript/spidermonkey/Notation.h @@ -4,6 +4,7 @@ #include "ecmascript/spidermonkey/util.h" extern const JSClass Notation_class; +extern const JSFunctionSpec Notation_funcs[]; extern const JSPropertySpec Notation_props[]; #endif diff --git a/src/document/dom/ecmascript/spidermonkey/ProcessingInstruction.c b/src/document/dom/ecmascript/spidermonkey/ProcessingInstruction.c index 8c5fb2f9..d94a65a5 100644 --- a/src/document/dom/ecmascript/spidermonkey/ProcessingInstruction.c +++ b/src/document/dom/ecmascript/spidermonkey/ProcessingInstruction.c @@ -49,6 +49,10 @@ const JSPropertySpec ProcessingInstruction_props[] = { { NULL } }; +const JSFunctionSpec ProcessingInstruction_funcs[] = { + { NULL } +}; + const JSClass ProcessingInstruction_class = { "ProcessingInstruction", JSCLASS_HAS_PRIVATE, diff --git a/src/document/dom/ecmascript/spidermonkey/ProcessingInstruction.h b/src/document/dom/ecmascript/spidermonkey/ProcessingInstruction.h index 5338f16f..8a17695f 100644 --- a/src/document/dom/ecmascript/spidermonkey/ProcessingInstruction.h +++ b/src/document/dom/ecmascript/spidermonkey/ProcessingInstruction.h @@ -4,6 +4,7 @@ #include "ecmascript/spidermonkey/util.h" extern const JSClass ProcessingInstruction_class; +extern const JSFunctionSpec ProcessingInstruction_funcs[]; extern const JSPropertySpec ProcessingInstruction_props[]; #endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLAnchorElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLAnchorElement.c new file mode 100644 index 00000000..a7a8c3e6 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLAnchorElement.c @@ -0,0 +1,154 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLAnchorElement.h" + +static JSBool +HTMLAnchorElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_ANCHOR_ELEMENT_ACCESS_KEY: + /* Write me! */ + break; + case JSP_HTML_ANCHOR_ELEMENT_CHARSET: + /* Write me! */ + break; + case JSP_HTML_ANCHOR_ELEMENT_COORDS: + /* Write me! */ + break; + case JSP_HTML_ANCHOR_ELEMENT_HREF: + /* Write me! */ + break; + case JSP_HTML_ANCHOR_ELEMENT_HREFLANG: + /* Write me! */ + break; + case JSP_HTML_ANCHOR_ELEMENT_NAME: + /* Write me! */ + break; + case JSP_HTML_ANCHOR_ELEMENT_REL: + /* Write me! */ + break; + case JSP_HTML_ANCHOR_ELEMENT_REV: + /* Write me! */ + break; + case JSP_HTML_ANCHOR_ELEMENT_SHAPE: + /* Write me! */ + break; + case JSP_HTML_ANCHOR_ELEMENT_TAB_INDEX: + /* Write me! */ + break; + case JSP_HTML_ANCHOR_ELEMENT_TARGET: + /* Write me! */ + break; + case JSP_HTML_ANCHOR_ELEMENT_TYPE: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLAnchorElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_ANCHOR_ELEMENT_ACCESS_KEY: + /* Write me! */ + break; + case JSP_HTML_ANCHOR_ELEMENT_CHARSET: + /* Write me! */ + break; + case JSP_HTML_ANCHOR_ELEMENT_COORDS: + /* Write me! */ + break; + case JSP_HTML_ANCHOR_ELEMENT_HREF: + /* Write me! */ + break; + case JSP_HTML_ANCHOR_ELEMENT_HREFLANG: + /* Write me! */ + break; + case JSP_HTML_ANCHOR_ELEMENT_NAME: + /* Write me! */ + break; + case JSP_HTML_ANCHOR_ELEMENT_REL: + /* Write me! */ + break; + case JSP_HTML_ANCHOR_ELEMENT_REV: + /* Write me! */ + break; + case JSP_HTML_ANCHOR_ELEMENT_SHAPE: + /* Write me! */ + break; + case JSP_HTML_ANCHOR_ELEMENT_TAB_INDEX: + /* Write me! */ + break; + case JSP_HTML_ANCHOR_ELEMENT_TARGET: + /* Write me! */ + break; + case JSP_HTML_ANCHOR_ELEMENT_TYPE: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLAnchorElement_blur(JSContext *ctx, JSObject *obj, uintN argc, jsval *argv, + jsval *rval) +{ + /* Write me! */ + return JS_TRUE; +} + +static JSBool +HTMLAnchorElement_focus(JSContext *ctx, JSObject *obj, uintN argc, jsval *argv, + jsval *rval) +{ + /* Write me! */ + return JS_TRUE; +} + +const JSPropertySpec HTMLAnchorElement_props[] = { + { "accessKey", JSP_HTML_ANCHOR_ELEMENT_ACCESS_KEY, JSPROP_ENUMERATE }, + { "charset", JSP_HTML_ANCHOR_ELEMENT_CHARSET, JSPROP_ENUMERATE }, + { "coords", JSP_HTML_ANCHOR_ELEMENT_COORDS, JSPROP_ENUMERATE }, + { "href", JSP_HTML_ANCHOR_ELEMENT_HREF, JSPROP_ENUMERATE }, + { "hreflang", JSP_HTML_ANCHOR_ELEMENT_HREFLANG, JSPROP_ENUMERATE }, + { "name", JSP_HTML_ANCHOR_ELEMENT_NAME, JSPROP_ENUMERATE }, + { "rel", JSP_HTML_ANCHOR_ELEMENT_REL, JSPROP_ENUMERATE }, + { "rev", JSP_HTML_ANCHOR_ELEMENT_REV, JSPROP_ENUMERATE }, + { "shape", JSP_HTML_ANCHOR_ELEMENT_SHAPE, JSPROP_ENUMERATE }, + { "tabIndex", JSP_HTML_ANCHOR_ELEMENT_TAB_INDEX, JSPROP_ENUMERATE }, + { "target", JSP_HTML_ANCHOR_ELEMENT_TARGET, JSPROP_ENUMERATE }, + { "type", JSP_HTML_ANCHOR_ELEMENT_TYPE, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLAnchorElement_funcs[] = { + { "blur", HTMLAnchorElement_blur, 0 }, + { "focus", HTMLAnchorElement_focus, 0 }, + { NULL } +}; + +const JSClass HTMLAnchorElement_class = { + "HTMLAnchorElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLAnchorElement_getProperty, HTMLAnchorElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLAnchorElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLAnchorElement.h new file mode 100644 index 00000000..373ed692 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLAnchorElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLANCHORELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLANCHORELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLAnchorElement_class; +extern const JSFunctionSpec HTMLAnchorElement_funcs[]; +extern const JSPropertySpec HTMLAnchorElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLAppletElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLAppletElement.c new file mode 100644 index 00000000..755cf479 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLAppletElement.c @@ -0,0 +1,129 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLAppletElement.h" + +static JSBool +HTMLAppletElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_APPLET_ELEMENT_ALIGN: + /* Write me! */ + break; + case JSP_HTML_APPLET_ELEMENT_ALT: + /* Write me! */ + break; + case JSP_HTML_APPLET_ELEMENT_ARCHIVE: + /* Write me! */ + break; + case JSP_HTML_APPLET_ELEMENT_CODE: + /* Write me! */ + break; + case JSP_HTML_APPLET_ELEMENT_CODE_BASE: + /* Write me! */ + break; + case JSP_HTML_APPLET_ELEMENT_HEIGHT: + /* Write me! */ + break; + case JSP_HTML_APPLET_ELEMENT_HSPACE: + /* Write me! */ + break; + case JSP_HTML_APPLET_ELEMENT_NAME: + /* Write me! */ + break; + case JSP_HTML_APPLET_ELEMENT_OBJECT: + /* Write me! */ + break; + case JSP_HTML_APPLET_ELEMENT_VSPACE: + /* Write me! */ + break; + case JSP_HTML_APPLET_ELEMENT_WIDTH: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLAppletElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_APPLET_ELEMENT_ALIGN: + /* Write me! */ + break; + case JSP_HTML_APPLET_ELEMENT_ALT: + /* Write me! */ + break; + case JSP_HTML_APPLET_ELEMENT_ARCHIVE: + /* Write me! */ + break; + case JSP_HTML_APPLET_ELEMENT_CODE: + /* Write me! */ + break; + case JSP_HTML_APPLET_ELEMENT_CODE_BASE: + /* Write me! */ + break; + case JSP_HTML_APPLET_ELEMENT_HEIGHT: + /* Write me! */ + break; + case JSP_HTML_APPLET_ELEMENT_HSPACE: + /* Write me! */ + break; + case JSP_HTML_APPLET_ELEMENT_NAME: + /* Write me! */ + break; + case JSP_HTML_APPLET_ELEMENT_OBJECT: + /* Write me! */ + break; + case JSP_HTML_APPLET_ELEMENT_VSPACE: + /* Write me! */ + break; + case JSP_HTML_APPLET_ELEMENT_WIDTH: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLAppletElement_props[] = { + { "align", JSP_HTML_APPLET_ELEMENT_ALIGN, JSPROP_ENUMERATE }, + { "alt", JSP_HTML_APPLET_ELEMENT_ALT, JSPROP_ENUMERATE }, + { "archive", JSP_HTML_APPLET_ELEMENT_ARCHIVE, JSPROP_ENUMERATE }, + { "code", JSP_HTML_APPLET_ELEMENT_CODE, JSPROP_ENUMERATE }, + { "codeBase", JSP_HTML_APPLET_ELEMENT_CODE_BASE, JSPROP_ENUMERATE }, + { "height", JSP_HTML_APPLET_ELEMENT_HEIGHT, JSPROP_ENUMERATE }, + { "hspace", JSP_HTML_APPLET_ELEMENT_HSPACE, JSPROP_ENUMERATE }, + { "name", JSP_HTML_APPLET_ELEMENT_NAME, JSPROP_ENUMERATE }, + { "object", JSP_HTML_APPLET_ELEMENT_OBJECT, JSPROP_ENUMERATE }, + { "vspace", JSP_HTML_APPLET_ELEMENT_VSPACE, JSPROP_ENUMERATE }, + { "width", JSP_HTML_APPLET_ELEMENT_WIDTH, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLAppletElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLAppletElement_class = { + "HTMLAppletElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLAppletElement_getProperty, HTMLAppletElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLAppletElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLAppletElement.h new file mode 100644 index 00000000..bd475493 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLAppletElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLAPPLETELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLAPPLETELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLAppletElement_class; +extern const JSFunctionSpec HTMLAppletElement_funcs[]; +extern const JSPropertySpec HTMLAppletElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLAreaElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLAreaElement.c new file mode 100644 index 00000000..6574ff5f --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLAreaElement.c @@ -0,0 +1,108 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLAreaElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" + +static JSBool +HTMLAreaElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_AREA_ELEMENT_ACCESS_KEY: + /* Write me! */ + break; + case JSP_HTML_AREA_ELEMENT_ALT: + /* Write me! */ + break; + case JSP_HTML_AREA_ELEMENT_COORDS: + /* Write me! */ + break; + case JSP_HTML_AREA_ELEMENT_HREF: + /* Write me! */ + break; + case JSP_HTML_AREA_ELEMENT_NO_HREF: + /* Write me! */ + break; + case JSP_HTML_AREA_ELEMENT_SHAPE: + /* Write me! */ + break; + case JSP_HTML_AREA_ELEMENT_TAB_INDEX: + /* Write me! */ + break; + case JSP_HTML_AREA_ELEMENT_TARGET: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLAreaElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_AREA_ELEMENT_ACCESS_KEY: + /* Write me! */ + break; + case JSP_HTML_AREA_ELEMENT_ALT: + /* Write me! */ + break; + case JSP_HTML_AREA_ELEMENT_COORDS: + /* Write me! */ + break; + case JSP_HTML_AREA_ELEMENT_HREF: + /* Write me! */ + break; + case JSP_HTML_AREA_ELEMENT_NO_HREF: + /* Write me! */ + break; + case JSP_HTML_AREA_ELEMENT_SHAPE: + /* Write me! */ + break; + case JSP_HTML_AREA_ELEMENT_TAB_INDEX: + /* Write me! */ + break; + case JSP_HTML_AREA_ELEMENT_TARGET: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLAreaElement_props[] = { + { "accessKey", JSP_HTML_AREA_ELEMENT_ACCESS_KEY, JSPROP_ENUMERATE }, + { "alt", JSP_HTML_AREA_ELEMENT_ALT, JSPROP_ENUMERATE }, + { "coords", JSP_HTML_AREA_ELEMENT_COORDS, JSPROP_ENUMERATE }, + { "href", JSP_HTML_AREA_ELEMENT_HREF, JSPROP_ENUMERATE }, + { "noHref", JSP_HTML_AREA_ELEMENT_NO_HREF, JSPROP_ENUMERATE }, + { "shape", JSP_HTML_AREA_ELEMENT_SHAPE, JSPROP_ENUMERATE }, + { "tabIndex", JSP_HTML_AREA_ELEMENT_TAB_INDEX, JSPROP_ENUMERATE }, + { "target", JSP_HTML_AREA_ELEMENT_TARGET, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLAreaElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLAreaElement_class = { + "HTMLAreaElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLAreaElement_getProperty, HTMLAreaElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLAreaElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLAreaElement.h new file mode 100644 index 00000000..fbec6272 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLAreaElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLAREAELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLAREAELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLAreaElement_class; +extern const JSFunctionSpec HTMLAreaElement_funcs[]; +extern const JSPropertySpec HTMLAreaElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLBRElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLBRElement.c new file mode 100644 index 00000000..3f1f30aa --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLBRElement.c @@ -0,0 +1,59 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLBRElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" + +static JSBool +HTMLBRElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_BR_ELEMENT_CLEAR: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLBRElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_BR_ELEMENT_CLEAR: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLBRElement_props[] = { + { "clear", JSP_HTML_BR_ELEMENT_CLEAR, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLBRElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLBRElement_class = { + "HTMLBRElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLBRElement_getProperty, HTMLBRElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLBRElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLBRElement.h new file mode 100644 index 00000000..17cfb2c8 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLBRElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLBRELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLBRELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLBRElement_class; +extern const JSFunctionSpec HTMLBRElement_funcs[]; +extern const JSPropertySpec HTMLBRElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLBaseElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLBaseElement.c new file mode 100644 index 00000000..40b21e12 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLBaseElement.c @@ -0,0 +1,66 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLBaseElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" + +static JSBool +HTMLBaseElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_BASE_ELEMENT_HREF: + /* Write me! */ + break; + case JSP_HTML_BASE_ELEMENT_TARGET: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLBaseElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_BASE_ELEMENT_HREF: + /* Write me! */ + break; + case JSP_HTML_BASE_ELEMENT_TARGET: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLBaseElement_props[] = { + { "href", JSP_HTML_BASE_ELEMENT_HREF, JSPROP_ENUMERATE }, + { "target", JSP_HTML_BASE_ELEMENT_TARGET, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLBaseElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLBaseElement_class = { + "HTMLBaseElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLBaseElement_getProperty, HTMLBaseElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLBaseElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLBaseElement.h new file mode 100644 index 00000000..fbbee235 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLBaseElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLBASEELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLBASEELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLBaseElement_class; +extern const JSFunctionSpec HTMLBaseElement_funcs[]; +extern const JSPropertySpec HTMLBaseElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLBaseFontElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLBaseFontElement.c new file mode 100644 index 00000000..76919f39 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLBaseFontElement.c @@ -0,0 +1,73 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLBaseFontElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" + +static JSBool +HTMLBaseFontElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_BASE_FONT_ELEMENT_COLOR: + /* Write me! */ + break; + case JSP_HTML_BASE_FONT_ELEMENT_FACE: + /* Write me! */ + break; + case JSP_HTML_BASE_FONT_ELEMENT_SIZE: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLBaseFontElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_BASE_FONT_ELEMENT_COLOR: + /* Write me! */ + break; + case JSP_HTML_BASE_FONT_ELEMENT_FACE: + /* Write me! */ + break; + case JSP_HTML_BASE_FONT_ELEMENT_SIZE: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLBaseFontElement_props[] = { + { "color", JSP_HTML_BASE_FONT_ELEMENT_COLOR, JSPROP_ENUMERATE }, + { "face", JSP_HTML_BASE_FONT_ELEMENT_FACE, JSPROP_ENUMERATE }, + { "size", JSP_HTML_BASE_FONT_ELEMENT_SIZE, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLBaseFontElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLBaseFontElement_class = { + "HTMLBaseFontElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLBaseFontElement_getProperty, HTMLBaseFontElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLBaseFontElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLBaseFontElement.h new file mode 100644 index 00000000..3e2fe5cd --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLBaseFontElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLBASEFONTELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLBASEFONTELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLBaseFontElement_class; +extern const JSFunctionSpec HTMLBaseFontElement_funcs[]; +extern const JSPropertySpec HTMLBaseFontElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLBodyElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLBodyElement.c new file mode 100644 index 00000000..9dda5844 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLBodyElement.c @@ -0,0 +1,94 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLBodyElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" + +static JSBool +HTMLBodyElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_BODY_ELEMENT_ALINK: + /* Write me! */ + break; + case JSP_HTML_BODY_ELEMENT_BACKGROUND: + /* Write me! */ + break; + case JSP_HTML_BODY_ELEMENT_BGCOLOR: + /* Write me! */ + break; + case JSP_HTML_BODY_ELEMENT_LINK: + /* Write me! */ + break; + case JSP_HTML_BODY_ELEMENT_TEXT: + /* Write me! */ + break; + case JSP_HTML_BODY_ELEMENT_VLINK: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLBodyElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_BODY_ELEMENT_ALINK: + /* Write me! */ + break; + case JSP_HTML_BODY_ELEMENT_BACKGROUND: + /* Write me! */ + break; + case JSP_HTML_BODY_ELEMENT_BGCOLOR: + /* Write me! */ + break; + case JSP_HTML_BODY_ELEMENT_LINK: + /* Write me! */ + break; + case JSP_HTML_BODY_ELEMENT_TEXT: + /* Write me! */ + break; + case JSP_HTML_BODY_ELEMENT_VLINK: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLBodyElement_props[] = { + { "aLink", JSP_HTML_BODY_ELEMENT_ALINK, JSPROP_ENUMERATE }, + { "background", JSP_HTML_BODY_ELEMENT_BACKGROUND, JSPROP_ENUMERATE }, + { "bgColor", JSP_HTML_BODY_ELEMENT_BGCOLOR, JSPROP_ENUMERATE }, + { "link", JSP_HTML_BODY_ELEMENT_LINK, JSPROP_ENUMERATE }, + { "text", JSP_HTML_BODY_ELEMENT_TEXT, JSPROP_ENUMERATE }, + { "vLink", JSP_HTML_BODY_ELEMENT_VLINK, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLBodyElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLBodyElement_class = { + "HTMLBodyElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLBodyElement_getProperty, HTMLBodyElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLBodyElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLBodyElement.h new file mode 100644 index 00000000..e468c516 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLBodyElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLBODYELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLBODYELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLBodyElement_class; +extern const JSFunctionSpec HTMLBodyElement_funcs[]; +extern const JSPropertySpec HTMLBodyElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLButtonElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLButtonElement.c new file mode 100644 index 00000000..67cf0ed6 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLButtonElement.c @@ -0,0 +1,95 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLButtonElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" + +static JSBool +HTMLButtonElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_BUTTON_ELEMENT_FORM: + /* Write me! */ + break; + case JSP_HTML_BUTTON_ELEMENT_ACCESS_KEY: + /* Write me! */ + break; + case JSP_HTML_BUTTON_ELEMENT_DISABLED: + /* Write me! */ + break; + case JSP_HTML_BUTTON_ELEMENT_NAME: + /* Write me! */ + break; + case JSP_HTML_BUTTON_ELEMENT_TAB_INDEX: + /* Write me! */ + break; + case JSP_HTML_BUTTON_ELEMENT_TYPE: + /* Write me! */ + break; + case JSP_HTML_BUTTON_ELEMENT_VALUE: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLButtonElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_BUTTON_ELEMENT_ACCESS_KEY: + /* Write me! */ + break; + case JSP_HTML_BUTTON_ELEMENT_DISABLED: + /* Write me! */ + break; + case JSP_HTML_BUTTON_ELEMENT_NAME: + /* Write me! */ + break; + case JSP_HTML_BUTTON_ELEMENT_TAB_INDEX: + /* Write me! */ + break; + case JSP_HTML_BUTTON_ELEMENT_VALUE: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLButtonElement_props[] = { + { "form", JSP_HTML_BUTTON_ELEMENT_FORM, JSPROP_ENUMERATE | JSPROP_READONLY }, + { "accessKey", JSP_HTML_BUTTON_ELEMENT_ACCESS_KEY, JSPROP_ENUMERATE }, + { "disabled", JSP_HTML_BUTTON_ELEMENT_DISABLED, JSPROP_ENUMERATE }, + { "name", JSP_HTML_BUTTON_ELEMENT_NAME, JSPROP_ENUMERATE }, + { "tabIndex", JSP_HTML_BUTTON_ELEMENT_TAB_INDEX, JSPROP_ENUMERATE }, + { "type", JSP_HTML_BUTTON_ELEMENT_TYPE, JSPROP_ENUMERATE | JSPROP_READONLY }, + { "value", JSP_HTML_BUTTON_ELEMENT_VALUE, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLButtonElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLButtonElement_class = { + "HTMLButtonElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLButtonElement_getProperty, HTMLButtonElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLButtonElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLButtonElement.h new file mode 100644 index 00000000..3f94740f --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLButtonElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLBUTTONELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLBUTTONELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLButtonElement_class; +extern const JSFunctionSpec HTMLButtonElement_funcs[]; +extern const JSPropertySpec HTMLButtonElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLCollection.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLCollection.c new file mode 100644 index 00000000..964e6b48 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLCollection.c @@ -0,0 +1,60 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLCollection.h" + +static JSBool +HTMLCollection_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_COLLECTION_LENGTH: + /* Write me! */ + break; + default: + break; + } + return JS_TRUE; +} + +static JSBool +HTMLCollection_item(JSContext *ctx, JSObject *obj, uintN argc, jsval *argv, + jsval *rval) +{ + /* Write me! */ + return JS_TRUE; +} + +static JSBool +HTMLCollection_namedItem(JSContext *ctx, JSObject *obj, uintN argc, jsval *argv, + jsval *rval) +{ + /* Write me! */ + return JS_TRUE; +} + +const JSPropertySpec HTMLCollection_props[] = { + { "length", JSP_HTML_COLLECTION_LENGTH, JSPROP_ENUMERATE | JSPROP_READONLY }, + { NULL } +}; + +const JSFunctionSpec HTMLCollection_funcs[] = { + { "item", HTMLCollection_item, 1 }, + { "namedItem", HTMLCollection_namedItem, 1 }, + { NULL } +}; + +const JSClass HTMLCollection_class = { + "HTMLCollection", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLCollection_getProperty, JS_PropertyStub, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLCollection.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLCollection.h new file mode 100644 index 00000000..68440332 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLCollection.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLCOLLECTION_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLCOLLECTION_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLCollection_class; +extern const JSFunctionSpec HTMLCollection_funcs[]; +extern const JSPropertySpec HTMLCollection_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLDListElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLDListElement.c new file mode 100644 index 00000000..cd96a9b1 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLDListElement.c @@ -0,0 +1,59 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLDListElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" + +static JSBool +HTMLDListElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_DLIST_ELEMENT_COMPACT: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLDListElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_DLIST_ELEMENT_COMPACT: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLDListElement_props[] = { + { "compact", JSP_HTML_DLIST_ELEMENT_COMPACT, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLDListElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLDListElement_class = { + "HTMLDListElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLDListElement_getProperty, HTMLDListElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLDListElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLDListElement.h new file mode 100644 index 00000000..0cb904bf --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLDListElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLDLISTELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLDLISTELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLDListElement_class; +extern const JSFunctionSpec HTMLDListElement_funcs[]; +extern const JSPropertySpec HTMLDListElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLDirectoryElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLDirectoryElement.c new file mode 100644 index 00000000..bb6707df --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLDirectoryElement.c @@ -0,0 +1,59 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLDirectoryElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" + +static JSBool +HTMLDirectoryElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_DIRECTORY_ELEMENT_COMPACT: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLDirectoryElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_DIRECTORY_ELEMENT_COMPACT: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLDirectoryElement_props[] = { + { "compact", JSP_HTML_DIRECTORY_ELEMENT_COMPACT, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLDirectoryElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLDirectoryElement_class = { + "HTMLDirectoryElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLDirectoryElement_getProperty, HTMLDirectoryElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLDirectoryElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLDirectoryElement.h new file mode 100644 index 00000000..72b74b55 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLDirectoryElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLDIRECTORYELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLDIRECTORYELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLDirectoryElement_class; +extern const JSFunctionSpec HTMLDirectoryElement_funcs[]; +extern const JSPropertySpec HTMLDirectoryElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLDivElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLDivElement.c new file mode 100644 index 00000000..9d146502 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLDivElement.c @@ -0,0 +1,59 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLDivElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" + +static JSBool +HTMLDivElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_DIV_ELEMENT_ALIGN: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLDivElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_DIV_ELEMENT_ALIGN: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLDivElement_props[] = { + { "align", JSP_HTML_DIV_ELEMENT_ALIGN, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLDivElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLDivElement_class = { + "HTMLDivElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLDivElement_getProperty, HTMLDivElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLDivElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLDivElement.h new file mode 100644 index 00000000..62f90328 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLDivElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLDIVELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLDIVELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLDivElement_class; +extern const JSFunctionSpec HTMLDivElement_funcs[]; +extern const JSPropertySpec HTMLDivElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLDocument.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLDocument.c new file mode 100644 index 00000000..ebadb903 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLDocument.c @@ -0,0 +1,150 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/Document.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLDocument.h" + +static JSBool +HTMLDocument_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_DOCUMENT_TITLE: + /* Write me! */ + break; + case JSP_HTML_DOCUMENT_REFERER: + /* Write me! */ + break; + case JSP_HTML_DOCUMENT_DOMAIN: + /* Write me! */ + break; + case JSP_HTML_DOCUMENT_URL: + /* Write me! */ + break; + case JSP_HTML_DOCUMENT_BODY: + /* Write me! */ + break; + case JSP_HTML_DOCUMENT_IMAGES: + /* Write me! */ + break; + case JSP_HTML_DOCUMENT_APPLETS: + /* Write me! */ + break; + case JSP_HTML_DOCUMENT_LINKS: + /* Write me! */ + break; + case JSP_HTML_DOCUMENT_FORMS: + /* Write me! */ + break; + case JSP_HTML_DOCUMENT_ANCHORS: + /* Write me! */ + break; + case JSP_HTML_DOCUMENT_COOKIE: + /* Write me! */ + break; + default: + return Document_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLDocument_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_DOCUMENT_TITLE: + /* Write me! */ + break; + case JSP_HTML_DOCUMENT_BODY: + /* Write me! */ + break; + case JSP_HTML_DOCUMENT_COOKIE: + /* Write me! */ + break; + default: + return Document_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLDocument_open(JSContext *ctx, JSObject *obj, uintN argc, jsval *argv, + jsval *rval) +{ + /* Write me! */ + return JS_TRUE; +} + +static JSBool +HTMLDocument_close(JSContext *ctx, JSObject *obj, uintN argc, jsval *argv, + jsval *rval) +{ + /* Write me! */ + return JS_TRUE; +} + +static JSBool +HTMLDocument_write(JSContext *ctx, JSObject *obj, uintN argc, jsval *argv, + jsval *rval) +{ + /* Write me! */ + return JS_TRUE; +} + +static JSBool +HTMLDocument_writeln(JSContext *ctx, JSObject *obj, uintN argc, jsval *argv, + jsval *rval) +{ + /* Write me! */ + return JS_TRUE; +} + +static JSBool +HTMLDocument_getElementsByName(JSContext *ctx, JSObject *obj, uintN argc, jsval *argv, + jsval *rval) +{ + /* Write me! */ + return JS_TRUE; +} + +const JSPropertySpec HTMLDocument_props[] = { + { "title", JSP_HTML_DOCUMENT_TITLE, JSPROP_ENUMERATE }, + { "referer", JSP_HTML_DOCUMENT_REFERER, JSPROP_ENUMERATE | JSPROP_READONLY }, + { "domain", JSP_HTML_DOCUMENT_DOMAIN, JSPROP_ENUMERATE | JSPROP_READONLY}, + { "URL", JSP_HTML_DOCUMENT_URL, JSPROP_ENUMERATE | JSPROP_READONLY}, + { "body", JSP_HTML_DOCUMENT_BODY, JSPROP_ENUMERATE }, + { "images", JSP_HTML_DOCUMENT_IMAGES, JSPROP_ENUMERATE | JSPROP_READONLY}, + { "applets", JSP_HTML_DOCUMENT_APPLETS, JSPROP_ENUMERATE | JSPROP_READONLY}, + { "links", JSP_HTML_DOCUMENT_LINKS, JSPROP_ENUMERATE | JSPROP_READONLY}, + { "forms", JSP_HTML_DOCUMENT_FORMS, JSPROP_ENUMERATE | JSPROP_READONLY}, + { "anchors", JSP_HTML_DOCUMENT_ANCHORS, JSPROP_ENUMERATE | JSPROP_READONLY}, + { "cookie", JSP_HTML_DOCUMENT_COOKIE, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLDocument_funcs[] = { + { "open", HTMLDocument_open, 0 }, + { "close", HTMLDocument_close, 0 }, + { "write", HTMLDocument_write, 1 }, + { "writeln", HTMLDocument_writeln, 1 }, + { "getElementsByName", HTMLDocument_getElementsByName, 1 }, + { NULL } +}; + +const JSClass HTMLDocument_class = { + "HTMLDocument", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLDocument_getProperty, HTMLDocument_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLDocument.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLDocument.h new file mode 100644 index 00000000..1f10463f --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLDocument.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLDOCUMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLDOCUMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLDocument_class; +extern const JSFunctionSpec HTMLDocument_funcs[]; +extern const JSPropertySpec HTMLDocument_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLElement.c new file mode 100644 index 00000000..b99c651a --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLElement.c @@ -0,0 +1,88 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/Element.h" +#include "document/dom/ecmascript/spidermonkey/Node.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" + +JSBool +HTMLElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_ELEMENT_ID: + /* Write me! */ + break; + case JSP_HTML_ELEMENT_TITLE: + /* Write me! */ + break; + case JSP_HTML_ELEMENT_LANG: + /* Write me! */ + break; + case JSP_HTML_ELEMENT_DIR: + /* Write me! */ + break; + case JSP_HTML_ELEMENT_CLASS_NAME: + /* Write me! */ + break; + default: + return Element_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +JSBool +HTMLElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_ELEMENT_ID: + /* Write me! */ + break; + case JSP_HTML_ELEMENT_TITLE: + /* Write me! */ + break; + case JSP_HTML_ELEMENT_LANG: + /* Write me! */ + break; + case JSP_HTML_ELEMENT_DIR: + /* Write me! */ + break; + case JSP_HTML_ELEMENT_CLASS_NAME: + /* Write me! */ + break; + default: + return Node_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLElement_props[] = { + { "id", JSP_HTML_ELEMENT_ID, JSPROP_ENUMERATE }, + { "title", JSP_HTML_ELEMENT_TITLE, JSPROP_ENUMERATE }, + { "lang", JSP_HTML_ELEMENT_LANG, JSPROP_ENUMERATE }, + { "dir", JSP_HTML_ELEMENT_DIR, JSPROP_ENUMERATE }, + { "className", JSP_HTML_ELEMENT_CLASS_NAME, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLElement_class = { + "HTMLElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLElement_getProperty, HTMLElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLElement.h new file mode 100644 index 00000000..f26bc75c --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLElement.h @@ -0,0 +1,13 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLElement_class; +extern const JSFunctionSpec HTMLElement_funcs[]; +extern const JSPropertySpec HTMLElement_props[]; + +JSBool HTMLElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp); +JSBool HTMLElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp); + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLFieldSetElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLFieldSetElement.c new file mode 100644 index 00000000..4616bb26 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLFieldSetElement.c @@ -0,0 +1,43 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLFieldSetElement.h" + +static JSBool +HTMLFieldSetElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_FIELD_SET_ELEMENT_FORM: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLFieldSetElement_props[] = { + { "form", JSP_HTML_FIELD_SET_ELEMENT_FORM, JSPROP_ENUMERATE | JSPROP_READONLY }, + { NULL } +}; + +const JSFunctionSpec HTMLFieldSetElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLFieldSetElement_class = { + "HTMLFieldSetElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLFieldSetElement_getProperty, JS_PropertyStub, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLFieldSetElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLFieldSetElement.h new file mode 100644 index 00000000..75655b7d --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLFieldSetElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLFIELDSETELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLFIELDSETELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLFieldSetElement_class; +extern const JSFunctionSpec HTMLFieldSetElement_funcs[]; +extern const JSPropertySpec HTMLFieldSetElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLFontElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLFontElement.c new file mode 100644 index 00000000..8eec5d5a --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLFontElement.c @@ -0,0 +1,73 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLFontElement.h" + +static JSBool +HTMLFontElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_FONT_ELEMENT_COLOR: + /* Write me! */ + break; + case JSP_HTML_FONT_ELEMENT_FACE: + /* Write me! */ + break; + case JSP_HTML_FONT_ELEMENT_SIZE: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLFontElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_FONT_ELEMENT_COLOR: + /* Write me! */ + break; + case JSP_HTML_FONT_ELEMENT_FACE: + /* Write me! */ + break; + case JSP_HTML_FONT_ELEMENT_SIZE: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLFontElement_props[] = { + { "color", JSP_HTML_FONT_ELEMENT_COLOR, JSPROP_ENUMERATE }, + { "face", JSP_HTML_FONT_ELEMENT_FACE, JSPROP_ENUMERATE }, + { "size", JSP_HTML_FONT_ELEMENT_SIZE, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLFontElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLFontElement_class = { + "HTMLFontElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLFontElement_getProperty, HTMLFontElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLFontElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLFontElement.h new file mode 100644 index 00000000..c53961f9 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLFontElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLFONTELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLFONTELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLFontElement_class; +extern const JSFunctionSpec HTMLFontElement_funcs[]; +extern const JSPropertySpec HTMLFontElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLFormElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLFormElement.c new file mode 100644 index 00000000..d1c87bf4 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLFormElement.c @@ -0,0 +1,120 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLFormElement.h" + +static JSBool +HTMLFormElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_FORM_ELEMENT_ELEMENTS: + /* Write me! */ + break; + case JSP_HTML_FORM_ELEMENT_LENGTH: + /* Write me! */ + break; + case JSP_HTML_FORM_ELEMENT_NAME: + /* Write me! */ + break; + case JSP_HTML_FORM_ELEMENT_ACCEPT_CHARSET: + /* Write me! */ + break; + case JSP_HTML_FORM_ELEMENT_ACTION: + /* Write me! */ + break; + case JSP_HTML_FORM_ELEMENT_ENCTYPE: + /* Write me! */ + break; + case JSP_HTML_FORM_ELEMENT_METHOD: + /* Write me! */ + break; + case JSP_HTML_FORM_ELEMENT_TARGET: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLFormElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_FORM_ELEMENT_NAME: + /* Write me! */ + break; + case JSP_HTML_FORM_ELEMENT_ACCEPT_CHARSET: + /* Write me! */ + break; + case JSP_HTML_FORM_ELEMENT_ACTION: + /* Write me! */ + break; + case JSP_HTML_FORM_ELEMENT_ENCTYPE: + /* Write me! */ + break; + case JSP_HTML_FORM_ELEMENT_METHOD: + /* Write me! */ + break; + case JSP_HTML_FORM_ELEMENT_TARGET: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLFormElement_submit(JSContext *ctx, JSObject *obj, uintN argc, jsval *argv, + jsval *rval) +{ + /* Write me! */ + return JS_TRUE; +} + +static JSBool +HTMLFormElement_reset(JSContext *ctx, JSObject *obj, uintN argc, jsval *argv, + jsval *rval) +{ + /* Write me! */ + return JS_TRUE; +} + +const JSPropertySpec HTMLFormElement_props[] = { + { "elements", JSP_HTML_FORM_ELEMENT_ELEMENTS, JSPROP_ENUMERATE | JSPROP_READONLY }, + { "length", JSP_HTML_FORM_ELEMENT_LENGTH, JSPROP_ENUMERATE | JSPROP_READONLY }, + { "name", JSP_HTML_FORM_ELEMENT_NAME, JSPROP_ENUMERATE }, + { "acceptCharset", JSP_HTML_FORM_ELEMENT_ACCEPT_CHARSET, JSPROP_ENUMERATE }, + { "action", JSP_HTML_FORM_ELEMENT_ACTION, JSPROP_ENUMERATE }, + { "enctype", JSP_HTML_FORM_ELEMENT_ENCTYPE, JSPROP_ENUMERATE }, + { "method", JSP_HTML_FORM_ELEMENT_METHOD, JSPROP_ENUMERATE }, + { "target", JSP_HTML_FORM_ELEMENT_TARGET, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLFormElement_funcs[] = { + { "submit", HTMLFormElement_submit, 0 }, + { "reset", HTMLFormElement_reset, 0 }, + { NULL } +}; + +const JSClass HTMLFormElement_class = { + "HTMLFormElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLFormElement_getProperty, HTMLFormElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLFormElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLFormElement.h new file mode 100644 index 00000000..52f02238 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLFormElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLFORMELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLFORMELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLFormElement_class; +extern const JSFunctionSpec HTMLFormElement_funcs[]; +extern const JSPropertySpec HTMLFormElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLFrameElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLFrameElement.c new file mode 100644 index 00000000..01959e44 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLFrameElement.c @@ -0,0 +1,112 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLFrameElement.h" + +static JSBool +HTMLFrameElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_FRAME_ELEMENT_FRAME_BORDER: + /* Write me! */ + break; + case JSP_HTML_FRAME_ELEMENT_LONG_DESC: + /* Write me! */ + break; + case JSP_HTML_FRAME_ELEMENT_MARGIN_HEIGHT: + /* Write me! */ + break; + case JSP_HTML_FRAME_ELEMENT_MARGIN_WIDTH: + /* Write me! */ + break; + case JSP_HTML_FRAME_ELEMENT_NAME: + /* Write me! */ + break; + case JSP_HTML_FRAME_ELEMENT_NO_RESIZE: + /* Write me! */ + break; + case JSP_HTML_FRAME_ELEMENT_SCROLLING: + /* Write me! */ + break; + case JSP_HTML_FRAME_ELEMENT_SRC: + /* Write me! */ + break; + case JSP_HTML_FRAME_ELEMENT_CONTENT_DOCUMENT: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLFrameElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_FRAME_ELEMENT_FRAME_BORDER: + /* Write me! */ + break; + case JSP_HTML_FRAME_ELEMENT_LONG_DESC: + /* Write me! */ + break; + case JSP_HTML_FRAME_ELEMENT_MARGIN_HEIGHT: + /* Write me! */ + break; + case JSP_HTML_FRAME_ELEMENT_MARGIN_WIDTH: + /* Write me! */ + break; + case JSP_HTML_FRAME_ELEMENT_NAME: + /* Write me! */ + break; + case JSP_HTML_FRAME_ELEMENT_NO_RESIZE: + /* Write me! */ + break; + case JSP_HTML_FRAME_ELEMENT_SCROLLING: + /* Write me! */ + break; + case JSP_HTML_FRAME_ELEMENT_SRC: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLFrameElement_props[] = { + { "frameBorder", JSP_HTML_FRAME_ELEMENT_FRAME_BORDER, JSPROP_ENUMERATE }, + { "longDesc", JSP_HTML_FRAME_ELEMENT_LONG_DESC, JSPROP_ENUMERATE }, + { "marginHeight", JSP_HTML_FRAME_ELEMENT_MARGIN_HEIGHT, JSPROP_ENUMERATE }, + { "marginWidth", JSP_HTML_FRAME_ELEMENT_MARGIN_WIDTH, JSPROP_ENUMERATE }, + { "name", JSP_HTML_FRAME_ELEMENT_NAME, JSPROP_ENUMERATE }, + { "noResize", JSP_HTML_FRAME_ELEMENT_NO_RESIZE, JSPROP_ENUMERATE }, + { "scrolling", JSP_HTML_FRAME_ELEMENT_SCROLLING, JSPROP_ENUMERATE }, + { "src", JSP_HTML_FRAME_ELEMENT_SRC, JSPROP_ENUMERATE }, + { "contentDocument", JSP_HTML_FRAME_ELEMENT_CONTENT_DOCUMENT,JSPROP_ENUMERATE | JSPROP_READONLY }, + { NULL } +}; + +const JSFunctionSpec HTMLFrameElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLFrameElement_class = { + "HTMLFrameElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLFrameElement_getProperty, HTMLFrameElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLFrameElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLFrameElement.h new file mode 100644 index 00000000..c3e3d56d --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLFrameElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLFRAMEELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLFRAMEELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLFrameElement_class; +extern const JSFunctionSpec HTMLFrameElement_funcs[]; +extern const JSPropertySpec HTMLFrameElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLFrameSetElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLFrameSetElement.c new file mode 100644 index 00000000..ef1eaefb --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLFrameSetElement.c @@ -0,0 +1,66 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLFrameSetElement.h" + +static JSBool +HTMLFrameSetElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_FRAME_SET_ELEMENT_COLS: + /* Write me! */ + break; + case JSP_HTML_FRAME_SET_ELEMENT_ROWS: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLFrameSetElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_FRAME_SET_ELEMENT_COLS: + /* Write me! */ + break; + case JSP_HTML_FRAME_SET_ELEMENT_ROWS: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLFrameSetElement_props[] = { + { "cols", JSP_HTML_FRAME_SET_ELEMENT_COLS, JSPROP_ENUMERATE }, + { "rows", JSP_HTML_FRAME_SET_ELEMENT_ROWS, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLFrameSetElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLFrameSetElement_class = { + "HTMLFrameSetElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLFrameSetElement_getProperty, HTMLFrameSetElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLFrameSetElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLFrameSetElement.h new file mode 100644 index 00000000..a8b92f7c --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLFrameSetElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLFRAMESETELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLFRAMESETELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLFrameSetElement_class; +extern const JSFunctionSpec HTMLFrameSetElement_funcs[]; +extern const JSPropertySpec HTMLFrameSetElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLHRElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLHRElement.c new file mode 100644 index 00000000..fa255b8b --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLHRElement.c @@ -0,0 +1,80 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLHRElement.h" + +static JSBool +HTMLHRElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_HR_ELEMENT_ALIGN: + /* Write me! */ + break; + case JSP_HTML_HR_ELEMENT_NO_SHADE: + /* Write me! */ + break; + case JSP_HTML_HR_ELEMENT_SIZE: + /* Write me! */ + break; + case JSP_HTML_HR_ELEMENT_WIDTH: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLHRElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_HR_ELEMENT_ALIGN: + /* Write me! */ + break; + case JSP_HTML_HR_ELEMENT_NO_SHADE: + /* Write me! */ + break; + case JSP_HTML_HR_ELEMENT_SIZE: + /* Write me! */ + break; + case JSP_HTML_HR_ELEMENT_WIDTH: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLHRElement_props[] = { + { "align", JSP_HTML_HR_ELEMENT_ALIGN, JSPROP_ENUMERATE }, + { "noShade", JSP_HTML_HR_ELEMENT_NO_SHADE, JSPROP_ENUMERATE }, + { "size", JSP_HTML_HR_ELEMENT_SIZE, JSPROP_ENUMERATE }, + { "width", JSP_HTML_HR_ELEMENT_WIDTH, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLHRElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLHRElement_class = { + "HTMLHRElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLHRElement_getProperty, HTMLHRElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLHRElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLHRElement.h new file mode 100644 index 00000000..b2c564ae --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLHRElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLHRELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLHRELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLHRElement_class; +extern const JSFunctionSpec HTMLHRElement_funcs[]; +extern const JSPropertySpec HTMLHRElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLHeadElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLHeadElement.c new file mode 100644 index 00000000..4e4d4a2a --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLHeadElement.c @@ -0,0 +1,59 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLHeadElement.h" + +static JSBool +HTMLHeadElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_HEAD_ELEMENT_PROFILE: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLHeadElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_HEAD_ELEMENT_PROFILE: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLHeadElement_props[] = { + { "profile", JSP_HTML_HEAD_ELEMENT_PROFILE, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLHeadElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLHeadElement_class = { + "HTMLHeadElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLHeadElement_getProperty, HTMLHeadElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLHeadElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLHeadElement.h new file mode 100644 index 00000000..a6ae2fbe --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLHeadElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLHEADELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLHEADELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLHeadElement_class; +extern const JSFunctionSpec HTMLHeadElement_funcs[]; +extern const JSPropertySpec HTMLHeadElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLHeadingElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLHeadingElement.c new file mode 100644 index 00000000..35274171 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLHeadingElement.c @@ -0,0 +1,59 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLHeadingElement.h" + +static JSBool +HTMLHeadingElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_HEADING_ELEMENT_ALIGN: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLHeadingElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_HEADING_ELEMENT_ALIGN: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLHeadingElement_props[] = { + { "align", JSP_HTML_HEADING_ELEMENT_ALIGN, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLHeadingElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLHeadingElement_class = { + "HTMLHeadingElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLHeadingElement_getProperty, HTMLHeadingElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLHeadingElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLHeadingElement.h new file mode 100644 index 00000000..293f3b02 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLHeadingElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLHEADINGELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLHEADINGELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLHeadingElement_class; +extern const JSFunctionSpec HTMLHeadingElement_funcs[]; +extern const JSPropertySpec HTMLHeadingElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLHtmlElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLHtmlElement.c new file mode 100644 index 00000000..f15e8d92 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLHtmlElement.c @@ -0,0 +1,59 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLHtmlElement.h" + +static JSBool +HTMLHtmlElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_HTML_ELEMENT_VERSION: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLHtmlElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_HTML_ELEMENT_VERSION: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLHtmlElement_props[] = { + { "version", JSP_HTML_HTML_ELEMENT_VERSION, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLHtmlElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLHtmlElement_class = { + "HTMLHtmlElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLHtmlElement_getProperty, HTMLHtmlElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLHtmlElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLHtmlElement.h new file mode 100644 index 00000000..477a45e3 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLHtmlElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLHTMLELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLHTMLELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLHtmlElement_class; +extern const JSFunctionSpec HTMLHtmlElement_funcs[]; +extern const JSPropertySpec HTMLHtmlElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLIFrameElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLIFrameElement.c new file mode 100644 index 00000000..2811ff45 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLIFrameElement.c @@ -0,0 +1,126 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLIFrameElement.h" + +static JSBool +HTMLIFrameElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_IFRAME_ELEMENT_ALIGN: + /* Write me! */ + break; + case JSP_HTML_IFRAME_ELEMENT_FRAME_BORDER: + /* Write me! */ + break; + case JSP_HTML_IFRAME_ELEMENT_HEIGHT: + /* Write me! */ + break; + case JSP_HTML_IFRAME_ELEMENT_LONG_DESC: + /* Write me! */ + break; + case JSP_HTML_IFRAME_ELEMENT_MARGIN_HEIGHT: + /* Write me! */ + break; + case JSP_HTML_IFRAME_ELEMENT_MARGIN_WIDTH: + /* Write me! */ + break; + case JSP_HTML_IFRAME_ELEMENT_NAME: + /* Write me! */ + break; + case JSP_HTML_IFRAME_ELEMENT_SCROLLING: + /* Write me! */ + break; + case JSP_HTML_IFRAME_ELEMENT_SRC: + /* Write me! */ + break; + case JSP_HTML_IFRAME_ELEMENT_WIDTH: + /* Write me! */ + break; + case JSP_HTML_IFRAME_ELEMENT_CONTENT_DOCUMENT: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLIFrameElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_IFRAME_ELEMENT_ALIGN: + /* Write me! */ + break; + case JSP_HTML_IFRAME_ELEMENT_FRAME_BORDER: + /* Write me! */ + break; + case JSP_HTML_IFRAME_ELEMENT_HEIGHT: + /* Write me! */ + break; + case JSP_HTML_IFRAME_ELEMENT_LONG_DESC: + /* Write me! */ + break; + case JSP_HTML_IFRAME_ELEMENT_MARGIN_HEIGHT: + /* Write me! */ + break; + case JSP_HTML_IFRAME_ELEMENT_MARGIN_WIDTH: + /* Write me! */ + break; + case JSP_HTML_IFRAME_ELEMENT_NAME: + /* Write me! */ + break; + case JSP_HTML_IFRAME_ELEMENT_SCROLLING: + /* Write me! */ + break; + case JSP_HTML_IFRAME_ELEMENT_SRC: + /* Write me! */ + break; + case JSP_HTML_IFRAME_ELEMENT_WIDTH: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLIFrameElement_props[] = { + { "align", JSP_HTML_IFRAME_ELEMENT_ALIGN, JSPROP_ENUMERATE }, + { "frameBorder", JSP_HTML_IFRAME_ELEMENT_FRAME_BORDER, JSPROP_ENUMERATE }, + { "height", JSP_HTML_IFRAME_ELEMENT_HEIGHT, JSPROP_ENUMERATE }, + { "longDesc", JSP_HTML_IFRAME_ELEMENT_LONG_DESC, JSPROP_ENUMERATE }, + { "marginHeight", JSP_HTML_IFRAME_ELEMENT_MARGIN_HEIGHT, JSPROP_ENUMERATE }, + { "marginWidth", JSP_HTML_IFRAME_ELEMENT_MARGIN_WIDTH, JSPROP_ENUMERATE }, + { "name", JSP_HTML_IFRAME_ELEMENT_NAME, JSPROP_ENUMERATE }, + { "scrolling", JSP_HTML_IFRAME_ELEMENT_SCROLLING, JSPROP_ENUMERATE }, + { "src", JSP_HTML_IFRAME_ELEMENT_SRC, JSPROP_ENUMERATE }, + { "width", JSP_HTML_IFRAME_ELEMENT_WIDTH, JSPROP_ENUMERATE }, + { "contentDocument", JSP_HTML_IFRAME_ELEMENT_CONTENT_DOCUMENT, JSPROP_ENUMERATE | JSPROP_READONLY }, + { NULL } +}; + +const JSFunctionSpec HTMLIFrameElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLIFrameElement_class = { + "HTMLIFrameElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLIFrameElement_getProperty, HTMLIFrameElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLIFrameElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLIFrameElement.h new file mode 100644 index 00000000..f1bb929f --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLIFrameElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLIFRAMEELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLIFRAMEELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLIFrameElement_class; +extern const JSFunctionSpec HTMLIFrameElement_funcs[]; +extern const JSPropertySpec HTMLIFrameElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLImageElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLImageElement.c new file mode 100644 index 00000000..1d3f6bfd --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLImageElement.c @@ -0,0 +1,136 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLImageElement.h" + +static JSBool +HTMLImageElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_IMAGE_ELEMENT_NAME: + /* Write me! */ + break; + case JSP_HTML_IMAGE_ELEMENT_ALIGN: + /* Write me! */ + break; + case JSP_HTML_IMAGE_ELEMENT_ALT: + /* Write me! */ + break; + case JSP_HTML_IMAGE_ELEMENT_BORDER: + /* Write me! */ + break; + case JSP_HTML_IMAGE_ELEMENT_HEIGHT: + /* Write me! */ + break; + case JSP_HTML_IMAGE_ELEMENT_HSPACE: + /* Write me! */ + break; + case JSP_HTML_IMAGE_ELEMENT_IS_MAP: + /* Write me! */ + break; + case JSP_HTML_IMAGE_ELEMENT_LONG_DESC: + /* Write me! */ + break; + case JSP_HTML_IMAGE_ELEMENT_SRC: + /* Write me! */ + break; + case JSP_HTML_IMAGE_ELEMENT_USE_MAP: + /* Write me! */ + break; + case JSP_HTML_IMAGE_ELEMENT_VSPACE: + /* Write me! */ + break; + case JSP_HTML_IMAGE_ELEMENT_WIDTH: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLImageElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_IMAGE_ELEMENT_NAME: + /* Write me! */ + break; + case JSP_HTML_IMAGE_ELEMENT_ALIGN: + /* Write me! */ + break; + case JSP_HTML_IMAGE_ELEMENT_ALT: + /* Write me! */ + break; + case JSP_HTML_IMAGE_ELEMENT_BORDER: + /* Write me! */ + break; + case JSP_HTML_IMAGE_ELEMENT_HEIGHT: + /* Write me! */ + break; + case JSP_HTML_IMAGE_ELEMENT_HSPACE: + /* Write me! */ + break; + case JSP_HTML_IMAGE_ELEMENT_IS_MAP: + /* Write me! */ + break; + case JSP_HTML_IMAGE_ELEMENT_LONG_DESC: + /* Write me! */ + break; + case JSP_HTML_IMAGE_ELEMENT_SRC: + /* Write me! */ + break; + case JSP_HTML_IMAGE_ELEMENT_USE_MAP: + /* Write me! */ + break; + case JSP_HTML_IMAGE_ELEMENT_VSPACE: + /* Write me! */ + break; + case JSP_HTML_IMAGE_ELEMENT_WIDTH: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLImageElement_props[] = { + { "name", JSP_HTML_IMAGE_ELEMENT_NAME, JSPROP_ENUMERATE }, + { "align", JSP_HTML_IMAGE_ELEMENT_ALIGN, JSPROP_ENUMERATE }, + { "alt", JSP_HTML_IMAGE_ELEMENT_ALT, JSPROP_ENUMERATE }, + { "border", JSP_HTML_IMAGE_ELEMENT_BORDER, JSPROP_ENUMERATE }, + { "height", JSP_HTML_IMAGE_ELEMENT_HEIGHT, JSPROP_ENUMERATE }, + { "hspace", JSP_HTML_IMAGE_ELEMENT_HSPACE, JSPROP_ENUMERATE }, + { "isMap", JSP_HTML_IMAGE_ELEMENT_IS_MAP, JSPROP_ENUMERATE }, + { "longDesc", JSP_HTML_IMAGE_ELEMENT_LONG_DESC, JSPROP_ENUMERATE }, + { "src", JSP_HTML_IMAGE_ELEMENT_SRC, JSPROP_ENUMERATE }, + { "useMap", JSP_HTML_IMAGE_ELEMENT_USE_MAP, JSPROP_ENUMERATE }, + { "vspace", JSP_HTML_IMAGE_ELEMENT_VSPACE, JSPROP_ENUMERATE }, + { "width", JSP_HTML_IMAGE_ELEMENT_WIDTH, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLImageElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLImageElement_class = { + "HTMLImageElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLImageElement_getProperty, HTMLImageElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLImageElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLImageElement.h new file mode 100644 index 00000000..d49f1026 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLImageElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLIMAGEELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLIMAGEELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLImageElement_class; +extern const JSFunctionSpec HTMLImageElement_funcs[]; +extern const JSPropertySpec HTMLImageElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLInputElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLInputElement.c new file mode 100644 index 00000000..aac07413 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLInputElement.c @@ -0,0 +1,211 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLInputElement.h" + +static JSBool +HTMLInputElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_INPUT_ELEMENT_DEFAULT_VALUE: + /* Write me! */ + break; + case JSP_HTML_INPUT_ELEMENT_DEFAULT_CHECKED: + /* Write me! */ + break; + case JSP_HTML_INPUT_ELEMENT_FORM: + /* Write me! */ + break; + case JSP_HTML_INPUT_ELEMENT_ACCEPT: + /* Write me! */ + break; + case JSP_HTML_INPUT_ELEMENT_ACCESS_KEY: + /* Write me! */ + break; + case JSP_HTML_INPUT_ELEMENT_ALIGN: + /* Write me! */ + break; + case JSP_HTML_INPUT_ELEMENT_ALT: + /* Write me! */ + break; + case JSP_HTML_INPUT_ELEMENT_CHECKED: + /* Write me! */ + break; + case JSP_HTML_INPUT_ELEMENT_DISABLED: + /* Write me! */ + break; + case JSP_HTML_INPUT_ELEMENT_MAX_LENGTH: + /* Write me! */ + break; + case JSP_HTML_INPUT_ELEMENT_NAME: + /* Write me! */ + break; + case JSP_HTML_INPUT_ELEMENT_READ_ONLY: + /* Write me! */ + break; + case JSP_HTML_INPUT_ELEMENT_SIZE: + /* Write me! */ + break; + case JSP_HTML_INPUT_ELEMENT_SRC: + /* Write me! */ + break; + case JSP_HTML_INPUT_ELEMENT_TAB_INDEX: + /* Write me! */ + break; + case JSP_HTML_INPUT_ELEMENT_TYPE: + /* Write me! */ + break; + case JSP_HTML_INPUT_ELEMENT_USE_MAP: + /* Write me! */ + break; + case JSP_HTML_INPUT_ELEMENT_VALUE: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLInputElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_INPUT_ELEMENT_DEFAULT_VALUE: + /* Write me! */ + break; + case JSP_HTML_INPUT_ELEMENT_DEFAULT_CHECKED: + /* Write me! */ + break; + case JSP_HTML_INPUT_ELEMENT_ACCEPT: + /* Write me! */ + break; + case JSP_HTML_INPUT_ELEMENT_ACCESS_KEY: + /* Write me! */ + break; + case JSP_HTML_INPUT_ELEMENT_ALIGN: + /* Write me! */ + break; + case JSP_HTML_INPUT_ELEMENT_ALT: + /* Write me! */ + break; + case JSP_HTML_INPUT_ELEMENT_CHECKED: + /* Write me! */ + break; + case JSP_HTML_INPUT_ELEMENT_DISABLED: + /* Write me! */ + break; + case JSP_HTML_INPUT_ELEMENT_MAX_LENGTH: + /* Write me! */ + break; + case JSP_HTML_INPUT_ELEMENT_NAME: + /* Write me! */ + break; + case JSP_HTML_INPUT_ELEMENT_READ_ONLY: + /* Write me! */ + break; + case JSP_HTML_INPUT_ELEMENT_SIZE: + /* Write me! */ + break; + case JSP_HTML_INPUT_ELEMENT_SRC: + /* Write me! */ + break; + case JSP_HTML_INPUT_ELEMENT_TAB_INDEX: + /* Write me! */ + break; + case JSP_HTML_INPUT_ELEMENT_TYPE: + /* Write me! */ + break; + case JSP_HTML_INPUT_ELEMENT_USE_MAP: + /* Write me! */ + break; + case JSP_HTML_INPUT_ELEMENT_VALUE: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLInputElement_blur(JSContext *ctx, JSObject *obj, uintN argc, jsval *argv, + jsval *rval) +{ + /* Write me! */ + return JS_TRUE; +} + +static JSBool +HTMLInputElement_focus(JSContext *ctx, JSObject *obj, uintN argc, jsval *argv, + jsval *rval) +{ + /* Write me! */ + return JS_TRUE; +} + +static JSBool +HTMLInputElement_select(JSContext *ctx, JSObject *obj, uintN argc, jsval *argv, + jsval *rval) +{ + /* Write me! */ + return JS_TRUE; +} + +static JSBool +HTMLInputElement_click(JSContext *ctx, JSObject *obj, uintN argc, jsval *argv, + jsval *rval) +{ + /* Write me! */ + return JS_TRUE; +} + +const JSPropertySpec HTMLInputElement_props[] = { + { "defaultValue", JSP_HTML_INPUT_ELEMENT_DEFAULT_VALUE, JSPROP_ENUMERATE }, + { "defaultChecked", JSP_HTML_INPUT_ELEMENT_DEFAULT_CHECKED, JSPROP_ENUMERATE }, + { "form", JSP_HTML_INPUT_ELEMENT_FORM, JSPROP_ENUMERATE | JSPROP_READONLY }, + { "accept", JSP_HTML_INPUT_ELEMENT_ACCEPT, JSPROP_ENUMERATE }, + { "accessKey", JSP_HTML_INPUT_ELEMENT_ACCESS_KEY, JSPROP_ENUMERATE }, + { "align", JSP_HTML_INPUT_ELEMENT_ALIGN, JSPROP_ENUMERATE }, + { "alt", JSP_HTML_INPUT_ELEMENT_ALT, JSPROP_ENUMERATE }, + { "checked", JSP_HTML_INPUT_ELEMENT_CHECKED, JSPROP_ENUMERATE }, + { "disabled", JSP_HTML_INPUT_ELEMENT_DISABLED, JSPROP_ENUMERATE }, + { "maxLength", JSP_HTML_INPUT_ELEMENT_MAX_LENGTH, JSPROP_ENUMERATE }, + { "name", JSP_HTML_INPUT_ELEMENT_NAME, JSPROP_ENUMERATE }, + { "readOnly", JSP_HTML_INPUT_ELEMENT_READ_ONLY, JSPROP_ENUMERATE }, + { "size", JSP_HTML_INPUT_ELEMENT_SIZE, JSPROP_ENUMERATE }, + { "src", JSP_HTML_INPUT_ELEMENT_SRC, JSPROP_ENUMERATE }, + { "tabIndex", JSP_HTML_INPUT_ELEMENT_TAB_INDEX, JSPROP_ENUMERATE }, + { "type", JSP_HTML_INPUT_ELEMENT_TYPE, JSPROP_ENUMERATE }, + { "useMap", JSP_HTML_INPUT_ELEMENT_USE_MAP, JSPROP_ENUMERATE }, + { "value", JSP_HTML_INPUT_ELEMENT_VALUE, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLInputElement_funcs[] = { + { "blur", HTMLInputElement_blur, 0 }, + { "focus", HTMLInputElement_focus, 0 }, + { "select", HTMLInputElement_select, 0 }, + { "click", HTMLInputElement_click, 0 }, + { NULL } +}; + +const JSClass HTMLInputElement_class = { + "HTMLInputElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLInputElement_getProperty, HTMLInputElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLInputElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLInputElement.h new file mode 100644 index 00000000..052b6b3c --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLInputElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLINPUTELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLINPUTELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLInputElement_class; +extern const JSFunctionSpec HTMLInputElement_funcs[]; +extern const JSPropertySpec HTMLInputElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLIsIndexElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLIsIndexElement.c new file mode 100644 index 00000000..2c8520ed --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLIsIndexElement.c @@ -0,0 +1,63 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLIsIndexElement.h" + +static JSBool +HTMLIsIndexElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_IS_INDEX_ELEMENT_FORM: + /* Write me! */ + break; + case JSP_HTML_IS_INDEX_ELEMENT_PROMPT: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLIsIndexElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_IS_INDEX_ELEMENT_PROMPT: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLIsIndexElement_props[] = { + { "form", JSP_HTML_IS_INDEX_ELEMENT_FORM, JSPROP_ENUMERATE | JSPROP_READONLY }, + { "prompt", JSP_HTML_IS_INDEX_ELEMENT_PROMPT, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLIsIndexElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLIsIndexElement_class = { + "HTMLIsIndexElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLIsIndexElement_getProperty, HTMLIsIndexElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLIsIndexElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLIsIndexElement.h new file mode 100644 index 00000000..81698eb5 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLIsIndexElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLISINDEXELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLISINDEXELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLIsIndexElement_class; +extern const JSFunctionSpec HTMLIsIndexElement_funcs[]; +extern const JSPropertySpec HTMLIsIndexElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLLIElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLLIElement.c new file mode 100644 index 00000000..bfb6170d --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLLIElement.c @@ -0,0 +1,66 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLLIElement.h" + +static JSBool +HTMLLIElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_LI_ELEMENT_TYPE: + /* Write me! */ + break; + case JSP_HTML_LI_ELEMENT_VALUE: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLLIElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_LI_ELEMENT_TYPE: + /* Write me! */ + break; + case JSP_HTML_LI_ELEMENT_VALUE: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLLIElement_props[] = { + { "type", JSP_HTML_LI_ELEMENT_TYPE, JSPROP_ENUMERATE }, + { "value", JSP_HTML_LI_ELEMENT_VALUE, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLLIElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLLIElement_class = { + "HTMLLIElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLLIElement_getProperty, HTMLLIElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLLIElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLLIElement.h new file mode 100644 index 00000000..7dc051a7 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLLIElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLLIELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLLIELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLLIElement_class; +extern const JSFunctionSpec HTMLLIElement_funcs[]; +extern const JSPropertySpec HTMLLIElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLLabelElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLLabelElement.c new file mode 100644 index 00000000..4852d193 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLLabelElement.c @@ -0,0 +1,70 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLLabelElement.h" + +static JSBool +HTMLLabelElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_LABEL_ELEMENT_FORM: + /* Write me! */ + break; + case JSP_HTML_LABEL_ELEMENT_ACCESS_KEY: + /* Write me! */ + break; + case JSP_HTML_LABEL_ELEMENT_HTML_FOR: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLLabelElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_LABEL_ELEMENT_ACCESS_KEY: + /* Write me! */ + break; + case JSP_HTML_LABEL_ELEMENT_HTML_FOR: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLLabelElement_props[] = { + { "form", JSP_HTML_LABEL_ELEMENT_FORM, JSPROP_ENUMERATE | JSPROP_READONLY }, + { "accessKey", JSP_HTML_LABEL_ELEMENT_ACCESS_KEY, JSPROP_ENUMERATE }, + { "htmlFor", JSP_HTML_LABEL_ELEMENT_HTML_FOR, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLLabelElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLLabelElement_class = { + "HTMLLabelElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLLabelElement_getProperty, HTMLLabelElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLLabelElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLLabelElement.h new file mode 100644 index 00000000..de21ff40 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLLabelElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLLABELELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLLABELELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLLabelElement_class; +extern const JSFunctionSpec HTMLLabelElement_funcs[]; +extern const JSPropertySpec HTMLLabelElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLLegendElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLLegendElement.c new file mode 100644 index 00000000..9289cc72 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLLegendElement.c @@ -0,0 +1,70 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLLegendElement.h" + +static JSBool +HTMLLegendElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_LEGEND_ELEMENT_FORM: + /* Write me! */ + break; + case JSP_HTML_LEGEND_ELEMENT_ACCESS_KEY: + /* Write me! */ + break; + case JSP_HTML_LEGEND_ELEMENT_ALIGN: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLLegendElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_LEGEND_ELEMENT_ACCESS_KEY: + /* Write me! */ + break; + case JSP_HTML_LEGEND_ELEMENT_ALIGN: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLLegendElement_props[] = { + { "form", JSP_HTML_LEGEND_ELEMENT_FORM, JSPROP_ENUMERATE | JSPROP_READONLY }, + { "accessKey", JSP_HTML_LEGEND_ELEMENT_ACCESS_KEY, JSPROP_ENUMERATE }, + { "align", JSP_HTML_LEGEND_ELEMENT_ALIGN, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLLegendElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLLegendElement_class = { + "HTMLLegendElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLLegendElement_getProperty, HTMLLegendElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLLegendElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLLegendElement.h new file mode 100644 index 00000000..d44aeae7 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLLegendElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLLEGENDELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLLEGENDELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLLegendElement_class; +extern const JSFunctionSpec HTMLLegendElement_funcs[]; +extern const JSPropertySpec HTMLLegendElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLLinkElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLLinkElement.c new file mode 100644 index 00000000..f1644576 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLLinkElement.c @@ -0,0 +1,115 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLLinkElement.h" + +static JSBool +HTMLLinkElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_LINK_ELEMENT_DISABLED: + /* Write me! */ + break; + case JSP_HTML_LINK_ELEMENT_CHARSET: + /* Write me! */ + break; + case JSP_HTML_LINK_ELEMENT_HREF: + /* Write me! */ + break; + case JSP_HTML_LINK_ELEMENT_HREFLANG: + /* Write me! */ + break; + case JSP_HTML_LINK_ELEMENT_MEDIA: + /* Write me! */ + break; + case JSP_HTML_LINK_ELEMENT_REL: + /* Write me! */ + break; + case JSP_HTML_LINK_ELEMENT_REV: + /* Write me! */ + break; + case JSP_HTML_LINK_ELEMENT_TARGET: + /* Write me! */ + break; + case JSP_HTML_LINK_ELEMENT_TYPE: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLLinkElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_LINK_ELEMENT_DISABLED: + /* Write me! */ + break; + case JSP_HTML_LINK_ELEMENT_CHARSET: + /* Write me! */ + break; + case JSP_HTML_LINK_ELEMENT_HREF: + /* Write me! */ + break; + case JSP_HTML_LINK_ELEMENT_HREFLANG: + /* Write me! */ + break; + case JSP_HTML_LINK_ELEMENT_MEDIA: + /* Write me! */ + break; + case JSP_HTML_LINK_ELEMENT_REL: + /* Write me! */ + break; + case JSP_HTML_LINK_ELEMENT_REV: + /* Write me! */ + break; + case JSP_HTML_LINK_ELEMENT_TARGET: + /* Write me! */ + break; + case JSP_HTML_LINK_ELEMENT_TYPE: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLLinkElement_props[] = { + { "disabled", JSP_HTML_LINK_ELEMENT_DISABLED, JSPROP_ENUMERATE }, + { "charset", JSP_HTML_LINK_ELEMENT_CHARSET, JSPROP_ENUMERATE }, + { "href", JSP_HTML_LINK_ELEMENT_HREF, JSPROP_ENUMERATE }, + { "hreflang", JSP_HTML_LINK_ELEMENT_HREFLANG, JSPROP_ENUMERATE }, + { "media", JSP_HTML_LINK_ELEMENT_MEDIA, JSPROP_ENUMERATE }, + { "rel", JSP_HTML_LINK_ELEMENT_REL, JSPROP_ENUMERATE }, + { "rev", JSP_HTML_LINK_ELEMENT_REV, JSPROP_ENUMERATE }, + { "target", JSP_HTML_LINK_ELEMENT_TARGET, JSPROP_ENUMERATE }, + { "type", JSP_HTML_LINK_ELEMENT_TYPE, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLLinkElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLLinkElement_class = { + "HTMLLinkElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLLinkElement_getProperty, HTMLLinkElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLLinkElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLLinkElement.h new file mode 100644 index 00000000..c572e7ba --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLLinkElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLLINKELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLLINKELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLLinkElement_class; +extern const JSFunctionSpec HTMLLinkElement_funcs[]; +extern const JSPropertySpec HTMLLinkElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLMapElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLMapElement.c new file mode 100644 index 00000000..a4f424c9 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLMapElement.c @@ -0,0 +1,63 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLMapElement.h" + +static JSBool +HTMLMapElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_MAP_ELEMENT_AREAS: + /* Write me! */ + break; + case JSP_HTML_MAP_ELEMENT_NAME: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLMapElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_MAP_ELEMENT_NAME: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLMapElement_props[] = { + { "areas", JSP_HTML_MAP_ELEMENT_AREAS, JSPROP_ENUMERATE | JSPROP_READONLY}, + { "name", JSP_HTML_MAP_ELEMENT_NAME, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLMapElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLMapElement_class = { + "HTMLMapElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLMapElement_getProperty, HTMLMapElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLMapElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLMapElement.h new file mode 100644 index 00000000..274dc4a3 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLMapElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLMAPELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLMAPELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLMapElement_class; +extern const JSFunctionSpec HTMLMapElement_funcs[]; +extern const JSPropertySpec HTMLMapElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLMenuElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLMenuElement.c new file mode 100644 index 00000000..1f5abb41 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLMenuElement.c @@ -0,0 +1,59 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLMenuElement.h" + +static JSBool +HTMLMenuElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_MENU_ELEMENT_COMPACT: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLMenuElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_MENU_ELEMENT_COMPACT: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLMenuElement_props[] = { + { "compact", JSP_HTML_MENU_ELEMENT_COMPACT, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLMenuElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLMenuElement_class = { + "HTMLMenuElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLMenuElement_getProperty, HTMLMenuElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLMenuElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLMenuElement.h new file mode 100644 index 00000000..d240c205 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLMenuElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLMENUELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLMENUELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLMenuElement_class; +extern const JSFunctionSpec HTMLMenuElement_funcs[]; +extern const JSPropertySpec HTMLMenuElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLMetaElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLMetaElement.c new file mode 100644 index 00000000..a24da657 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLMetaElement.c @@ -0,0 +1,80 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLMetaElement.h" + +static JSBool +HTMLMetaElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_META_ELEMENT_CONTENT: + /* Write me! */ + break; + case JSP_HTML_META_ELEMENT_HTTP_EQUIV: + /* Write me! */ + break; + case JSP_HTML_META_ELEMENT_NAME: + /* Write me! */ + break; + case JSP_HTML_META_ELEMENT_SCHEME: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLMetaElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_META_ELEMENT_CONTENT: + /* Write me! */ + break; + case JSP_HTML_META_ELEMENT_HTTP_EQUIV: + /* Write me! */ + break; + case JSP_HTML_META_ELEMENT_NAME: + /* Write me! */ + break; + case JSP_HTML_META_ELEMENT_SCHEME: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLMetaElement_props[] = { + { "content", JSP_HTML_META_ELEMENT_CONTENT, JSPROP_ENUMERATE }, + { "httpEquiv", JSP_HTML_META_ELEMENT_HTTP_EQUIV, JSPROP_ENUMERATE }, + { "name", JSP_HTML_META_ELEMENT_NAME, JSPROP_ENUMERATE }, + { "scheme", JSP_HTML_META_ELEMENT_SCHEME, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLMetaElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLMetaElement_class = { + "HTMLMetaElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLMetaElement_getProperty, HTMLMetaElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLMetaElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLMetaElement.h new file mode 100644 index 00000000..66a03903 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLMetaElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLMETAELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLMETAELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLMetaElement_class; +extern const JSFunctionSpec HTMLMetaElement_funcs[]; +extern const JSPropertySpec HTMLMetaElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLModElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLModElement.c new file mode 100644 index 00000000..f716ee48 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLModElement.c @@ -0,0 +1,66 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLModElement.h" + +static JSBool +HTMLModElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_MOD_ELEMENT_CITE: + /* Write me! */ + break; + case JSP_HTML_MOD_ELEMENT_DATE_TIME: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLModElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_MOD_ELEMENT_CITE: + /* Write me! */ + break; + case JSP_HTML_MOD_ELEMENT_DATE_TIME: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLModElement_props[] = { + { "cite", JSP_HTML_MOD_ELEMENT_CITE, JSPROP_ENUMERATE }, + { "dateTime", JSP_HTML_MOD_ELEMENT_DATE_TIME, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLModElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLModElement_class = { + "HTMLModElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLModElement_getProperty, HTMLModElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLModElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLModElement.h new file mode 100644 index 00000000..f285c0a8 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLModElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLMODELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLMODELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLModElement_class; +extern const JSFunctionSpec HTMLModElement_funcs[]; +extern const JSPropertySpec HTMLModElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLOListElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLOListElement.c new file mode 100644 index 00000000..02c2437b --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLOListElement.c @@ -0,0 +1,73 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLOListElement.h" + +static JSBool +HTMLOListElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_OLIST_ELEMENT_COMPACT: + /* Write me! */ + break; + case JSP_HTML_OLIST_ELEMENT_START: + /* Write me! */ + break; + case JSP_HTML_OLIST_ELEMENT_TYPE: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLOListElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_OLIST_ELEMENT_COMPACT: + /* Write me! */ + break; + case JSP_HTML_OLIST_ELEMENT_START: + /* Write me! */ + break; + case JSP_HTML_OLIST_ELEMENT_TYPE: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLOListElement_props[] = { + { "compact", JSP_HTML_OLIST_ELEMENT_COMPACT, JSPROP_ENUMERATE }, + { "start", JSP_HTML_OLIST_ELEMENT_START, JSPROP_ENUMERATE }, + { "type", JSP_HTML_OLIST_ELEMENT_TYPE, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLOListElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLOListElement_class = { + "HTMLOListElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLOListElement_getProperty, HTMLOListElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLOListElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLOListElement.h new file mode 100644 index 00000000..dfc1456e --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLOListElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLOLISTELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLOLISTELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLOListElement_class; +extern const JSFunctionSpec HTMLOListElement_funcs[]; +extern const JSPropertySpec HTMLOListElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLObjectElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLObjectElement.c new file mode 100644 index 00000000..f86512f1 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLObjectElement.c @@ -0,0 +1,178 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLObjectElement.h" + +static JSBool +HTMLObjectElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_OBJECT_ELEMENT_FORM: + /* Write me! */ + break; + case JSP_HTML_OBJECT_ELEMENT_CODE: + /* Write me! */ + break; + case JSP_HTML_OBJECT_ELEMENT_ALIGN: + /* Write me! */ + break; + case JSP_HTML_OBJECT_ELEMENT_ARCHIVE: + /* Write me! */ + break; + case JSP_HTML_OBJECT_ELEMENT_BORDER: + /* Write me! */ + break; + case JSP_HTML_OBJECT_ELEMENT_CODE_BASE: + /* Write me! */ + break; + case JSP_HTML_OBJECT_ELEMENT_CODE_TYPE: + /* Write me! */ + break; + case JSP_HTML_OBJECT_ELEMENT_DATA: + /* Write me! */ + break; + case JSP_HTML_OBJECT_ELEMENT_DECLARE: + /* Write me! */ + break; + case JSP_HTML_OBJECT_ELEMENT_HEIGHT: + /* Write me! */ + break; + case JSP_HTML_OBJECT_ELEMENT_HSPACE: + /* Write me! */ + break; + case JSP_HTML_OBJECT_ELEMENT_NAME: + /* Write me! */ + break; + case JSP_HTML_OBJECT_ELEMENT_STANDBY: + /* Write me! */ + break; + case JSP_HTML_OBJECT_ELEMENT_TAB_INDEX: + /* Write me! */ + break; + case JSP_HTML_OBJECT_ELEMENT_TYPE: + /* Write me! */ + break; + case JSP_HTML_OBJECT_ELEMENT_USE_MAP: + /* Write me! */ + break; + case JSP_HTML_OBJECT_ELEMENT_VSPACE: + /* Write me! */ + break; + case JSP_HTML_OBJECT_ELEMENT_WIDTH: + /* Write me! */ + break; + case JSP_HTML_OBJECT_ELEMENT_CONTENT_DOCUMENT: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLObjectElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_OBJECT_ELEMENT_CODE: + /* Write me! */ + break; + case JSP_HTML_OBJECT_ELEMENT_ALIGN: + /* Write me! */ + break; + case JSP_HTML_OBJECT_ELEMENT_ARCHIVE: + /* Write me! */ + break; + case JSP_HTML_OBJECT_ELEMENT_BORDER: + /* Write me! */ + break; + case JSP_HTML_OBJECT_ELEMENT_CODE_BASE: + /* Write me! */ + break; + case JSP_HTML_OBJECT_ELEMENT_CODE_TYPE: + /* Write me! */ + break; + case JSP_HTML_OBJECT_ELEMENT_DATA: + /* Write me! */ + break; + case JSP_HTML_OBJECT_ELEMENT_DECLARE: + /* Write me! */ + break; + case JSP_HTML_OBJECT_ELEMENT_HEIGHT: + /* Write me! */ + break; + case JSP_HTML_OBJECT_ELEMENT_HSPACE: + /* Write me! */ + break; + case JSP_HTML_OBJECT_ELEMENT_NAME: + /* Write me! */ + break; + case JSP_HTML_OBJECT_ELEMENT_STANDBY: + /* Write me! */ + break; + case JSP_HTML_OBJECT_ELEMENT_TAB_INDEX: + /* Write me! */ + break; + case JSP_HTML_OBJECT_ELEMENT_TYPE: + /* Write me! */ + break; + case JSP_HTML_OBJECT_ELEMENT_USE_MAP: + /* Write me! */ + break; + case JSP_HTML_OBJECT_ELEMENT_VSPACE: + /* Write me! */ + break; + case JSP_HTML_OBJECT_ELEMENT_WIDTH: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLObjectElement_props[] = { + { "form", JSP_HTML_OBJECT_ELEMENT_FORM, JSPROP_ENUMERATE | JSPROP_READONLY }, + { "code", JSP_HTML_OBJECT_ELEMENT_CODE, JSPROP_ENUMERATE }, + { "align", JSP_HTML_OBJECT_ELEMENT_ALIGN, JSPROP_ENUMERATE }, + { "archive", JSP_HTML_OBJECT_ELEMENT_ARCHIVE, JSPROP_ENUMERATE }, + { "border", JSP_HTML_OBJECT_ELEMENT_BORDER, JSPROP_ENUMERATE }, + { "codeBase", JSP_HTML_OBJECT_ELEMENT_CODE_BASE, JSPROP_ENUMERATE }, + { "codeType", JSP_HTML_OBJECT_ELEMENT_CODE_TYPE, JSPROP_ENUMERATE }, + { "data", JSP_HTML_OBJECT_ELEMENT_DATA, JSPROP_ENUMERATE }, + { "declare", JSP_HTML_OBJECT_ELEMENT_DECLARE, JSPROP_ENUMERATE }, + { "height", JSP_HTML_OBJECT_ELEMENT_HEIGHT, JSPROP_ENUMERATE }, + { "hspace", JSP_HTML_OBJECT_ELEMENT_HSPACE, JSPROP_ENUMERATE }, + { "name", JSP_HTML_OBJECT_ELEMENT_NAME, JSPROP_ENUMERATE }, + { "standby", JSP_HTML_OBJECT_ELEMENT_STANDBY, JSPROP_ENUMERATE }, + { "tabIndex", JSP_HTML_OBJECT_ELEMENT_TAB_INDEX, JSPROP_ENUMERATE }, + { "useMap", JSP_HTML_OBJECT_ELEMENT_USE_MAP, JSPROP_ENUMERATE }, + { "vspace", JSP_HTML_OBJECT_ELEMENT_VSPACE, JSPROP_ENUMERATE }, + { "width", JSP_HTML_OBJECT_ELEMENT_WIDTH, JSPROP_ENUMERATE }, + { "contentDocument", JSP_HTML_OBJECT_ELEMENT_CONTENT_DOCUMENT, JSPROP_ENUMERATE | JSPROP_READONLY }, + { NULL } +}; + +const JSFunctionSpec HTMLObjectElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLObjectElement_class = { + "HTMLObjectElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLObjectElement_getProperty, HTMLObjectElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLObjectElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLObjectElement.h new file mode 100644 index 00000000..187e26f4 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLObjectElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLOBJECTELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLOBJECTELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLObjectElement_class; +extern const JSFunctionSpec HTMLObjectElement_funcs[]; +extern const JSPropertySpec HTMLObjectElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLOptGroupElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLOptGroupElement.c new file mode 100644 index 00000000..b2ac3864 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLOptGroupElement.c @@ -0,0 +1,66 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLOptGroupElement.h" + +static JSBool +HTMLOptGroupElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_OPT_GROUP_ELEMENT_DISABLED: + /* Write me! */ + break; + case JSP_HTML_OPT_GROUP_ELEMENT_LABEL: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLOptGroupElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_OPT_GROUP_ELEMENT_DISABLED: + /* Write me! */ + break; + case JSP_HTML_OPT_GROUP_ELEMENT_LABEL: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLOptGroupElement_props[] = { + { "disabled", JSP_HTML_OPT_GROUP_ELEMENT_DISABLED, JSPROP_ENUMERATE }, + { "label", JSP_HTML_OPT_GROUP_ELEMENT_LABEL, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLOptGroupElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLOptGroupElement_class = { + "HTMLOptGroupElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLOptGroupElement_getProperty, HTMLOptGroupElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLOptGroupElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLOptGroupElement.h new file mode 100644 index 00000000..9fab4659 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLOptGroupElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLOPTGROUPELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLOPTGROUPELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLOptGroupElement_class; +extern const JSFunctionSpec HTMLOptGroupElement_funcs[]; +extern const JSPropertySpec HTMLOptGroupElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLOptionElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLOptionElement.c new file mode 100644 index 00000000..f64425e8 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLOptionElement.c @@ -0,0 +1,99 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLOptionElement.h" + +static JSBool +HTMLOptionElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_OPTION_ELEMENT_FORM: + /* Write me! */ + break; + case JSP_HTML_OPTION_ELEMENT_DEFAULT_SELECTED: + /* Write me! */ + break; + case JSP_HTML_OPTION_ELEMENT_TEXT: + /* Write me! */ + break; + case JSP_HTML_OPTION_ELEMENT_INDEX: + /* Write me! */ + break; + case JSP_HTML_OPTION_ELEMENT_DISABLED: + /* Write me! */ + break; + case JSP_HTML_OPTION_ELEMENT_LABEL: + /* Write me! */ + break; + case JSP_HTML_OPTION_ELEMENT_SELECTED: + /* Write me! */ + break; + case JSP_HTML_OPTION_ELEMENT_VALUE: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLOptionElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_OPTION_ELEMENT_DEFAULT_SELECTED: + /* Write me! */ + break; + case JSP_HTML_OPTION_ELEMENT_DISABLED: + /* Write me! */ + break; + case JSP_HTML_OPTION_ELEMENT_LABEL: + /* Write me! */ + break; + case JSP_HTML_OPTION_ELEMENT_SELECTED: + /* Write me! */ + break; + case JSP_HTML_OPTION_ELEMENT_VALUE: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLOptionElement_props[] = { + { "form", JSP_HTML_OPTION_ELEMENT_FORM, JSPROP_ENUMERATE | JSPROP_READONLY }, + { "defaultSelected", JSP_HTML_OPTION_ELEMENT_DEFAULT_SELECTED, JSPROP_ENUMERATE }, + { "text", JSP_HTML_OPTION_ELEMENT_TEXT, JSPROP_ENUMERATE | JSPROP_READONLY }, + { "index", JSP_HTML_OPTION_ELEMENT_INDEX, JSPROP_ENUMERATE | JSPROP_READONLY }, + { "disabled", JSP_HTML_OPTION_ELEMENT_DISABLED, JSPROP_ENUMERATE }, + { "label", JSP_HTML_OPTION_ELEMENT_LABEL, JSPROP_ENUMERATE }, + { "selected", JSP_HTML_OPTION_ELEMENT_SELECTED, JSPROP_ENUMERATE }, + { "value", JSP_HTML_OPTION_ELEMENT_VALUE, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLOptionElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLOptionElement_class = { + "HTMLOptionElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLOptionElement_getProperty, HTMLOptionElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLOptionElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLOptionElement.h new file mode 100644 index 00000000..8a98de7b --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLOptionElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLOPTIONELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLOPTIONELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLOptionElement_class; +extern const JSFunctionSpec HTMLOptionElement_funcs[]; +extern const JSPropertySpec HTMLOptionElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLOptionsCollection.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLOptionsCollection.c new file mode 100644 index 00000000..d3e07206 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLOptionsCollection.c @@ -0,0 +1,60 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLOptionsCollection.h" + +static JSBool +HTMLOptionsCollection_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_OPTIONS_COLLECTION_LENGTH: + /* Write me! */ + break; + default: + break; + } + return JS_TRUE; +} + +static JSBool +HTMLOptionsCollection_item(JSContext *ctx, JSObject *obj, uintN argc, jsval *argv, + jsval *rval) +{ + /* Write me! */ + return JS_TRUE; +} + +static JSBool +HTMLOptionsCollection_namedItem(JSContext *ctx, JSObject *obj, uintN argc, jsval *argv, + jsval *rval) +{ + /* Write me! */ + return JS_TRUE; +} + +const JSPropertySpec HTMLOptionsCollection_props[] = { + { "length", JSP_HTML_OPTIONS_COLLECTION_LENGTH, JSPROP_ENUMERATE | JSPROP_READONLY }, + { NULL } +}; + +const JSFunctionSpec HTMLOptionsCollection_funcs[] = { + { "item", HTMLOptionsCollection_item, 1 }, + { "namedItem", HTMLOptionsCollection_namedItem, 1 }, + { NULL } +}; + +const JSClass HTMLOptionsCollection_class = { + "HTMLOptionsCollection", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLOptionsCollection_getProperty, JS_PropertyStub, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLOptionsCollection.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLOptionsCollection.h new file mode 100644 index 00000000..18ef291c --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLOptionsCollection.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLOPTIONSCOLLECTION_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLOPTIONSCOLLECTION_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLOptionsCollection_class; +extern const JSFunctionSpec HTMLOptionsCollection_funcs[]; +extern const JSPropertySpec HTMLOptionsCollection_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLParagraphElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLParagraphElement.c new file mode 100644 index 00000000..47e48852 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLParagraphElement.c @@ -0,0 +1,58 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLParagraphElement.h" + +static JSBool +HTMLParagraphElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_PARAGRAPH_ELEMENT_ALIGN: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLParagraphElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_PARAGRAPH_ELEMENT_ALIGN: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLParagraphElement_props[] = { + { "align", JSP_HTML_PARAGRAPH_ELEMENT_ALIGN, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLParagraphElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLParagraphElement_class = { + "HTMLParagraphElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLParagraphElement_getProperty, HTMLParagraphElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLParagraphElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLParagraphElement.h new file mode 100644 index 00000000..42692bfe --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLParagraphElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLPARAGRAPHELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLPARAGRAPHELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLParagraphElement_class; +extern const JSFunctionSpec HTMLParagraphElement_funcs[]; +extern const JSPropertySpec HTMLParagraphElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLParamElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLParamElement.c new file mode 100644 index 00000000..0d48c216 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLParamElement.c @@ -0,0 +1,80 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLParamElement.h" + +static JSBool +HTMLParamElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_PARAM_ELEMENT_NAME: + /* Write me! */ + break; + case JSP_HTML_PARAM_ELEMENT_TYPE: + /* Write me! */ + break; + case JSP_HTML_PARAM_ELEMENT_VALUE: + /* Write me! */ + break; + case JSP_HTML_PARAM_ELEMENT_VALUE_TYPE: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLParamElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_PARAM_ELEMENT_NAME: + /* Write me! */ + break; + case JSP_HTML_PARAM_ELEMENT_TYPE: + /* Write me! */ + break; + case JSP_HTML_PARAM_ELEMENT_VALUE: + /* Write me! */ + break; + case JSP_HTML_PARAM_ELEMENT_VALUE_TYPE: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLParamElement_props[] = { + { "name", JSP_HTML_PARAM_ELEMENT_NAME, JSPROP_ENUMERATE }, + { "type", JSP_HTML_PARAM_ELEMENT_TYPE, JSPROP_ENUMERATE }, + { "value", JSP_HTML_PARAM_ELEMENT_VALUE, JSPROP_ENUMERATE }, + { "valueType", JSP_HTML_PARAM_ELEMENT_VALUE_TYPE, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLParamElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLParamElement_class = { + "HTMLParamElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLParamElement_getProperty, HTMLParamElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLParamElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLParamElement.h new file mode 100644 index 00000000..95345473 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLParamElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLPARAMELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLPARAMELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLParamElement_class; +extern const JSFunctionSpec HTMLParamElement_funcs[]; +extern const JSPropertySpec HTMLParamElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLPreElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLPreElement.c new file mode 100644 index 00000000..d9f30cea --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLPreElement.c @@ -0,0 +1,59 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLPreElement.h" + +static JSBool +HTMLPreElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_PRE_ELEMENT_WIDTH: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLPreElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_PRE_ELEMENT_WIDTH: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLPreElement_props[] = { + { "width", JSP_HTML_PRE_ELEMENT_WIDTH, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLPreElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLPreElement_class = { + "HTMLPreElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLPreElement_getProperty, HTMLPreElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLPreElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLPreElement.h new file mode 100644 index 00000000..ea4a09eb --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLPreElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLPREELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLPREELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLPreElement_class; +extern const JSFunctionSpec HTMLPreElement_funcs[]; +extern const JSPropertySpec HTMLPreElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLQuoteElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLQuoteElement.c new file mode 100644 index 00000000..f771a7a1 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLQuoteElement.c @@ -0,0 +1,59 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLQuoteElement.h" + +static JSBool +HTMLQuoteElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_QUOTE_ELEMENT_CITE: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLQuoteElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_QUOTE_ELEMENT_CITE: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLQuoteElement_props[] = { + { "cite", JSP_HTML_QUOTE_ELEMENT_CITE, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLQuoteElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLQuoteElement_class = { + "HTMLQuoteElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLQuoteElement_getProperty, HTMLQuoteElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLQuoteElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLQuoteElement.h new file mode 100644 index 00000000..20747247 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLQuoteElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLQUOTEELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLQUOTEELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLQuoteElement_class; +extern const JSFunctionSpec HTMLQuoteElement_funcs[]; +extern const JSPropertySpec HTMLQuoteElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLScriptElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLScriptElement.c new file mode 100644 index 00000000..4d2c9864 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLScriptElement.c @@ -0,0 +1,101 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLScriptElement.h" + +static JSBool +HTMLScriptElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_SCRIPT_ELEMENT_TEXT: + /* Write me! */ + break; + case JSP_HTML_SCRIPT_ELEMENT_HTML_FOR: + /* Write me! */ + break; + case JSP_HTML_SCRIPT_ELEMENT_EVENT: + /* Write me! */ + break; + case JSP_HTML_SCRIPT_ELEMENT_CHARSET: + /* Write me! */ + break; + case JSP_HTML_SCRIPT_ELEMENT_DEFER: + /* Write me! */ + break; + case JSP_HTML_SCRIPT_ELEMENT_SRC: + /* Write me! */ + break; + case JSP_HTML_SCRIPT_ELEMENT_TYPE: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLScriptElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_SCRIPT_ELEMENT_TEXT: + /* Write me! */ + break; + case JSP_HTML_SCRIPT_ELEMENT_HTML_FOR: + /* Write me! */ + break; + case JSP_HTML_SCRIPT_ELEMENT_EVENT: + /* Write me! */ + break; + case JSP_HTML_SCRIPT_ELEMENT_CHARSET: + /* Write me! */ + break; + case JSP_HTML_SCRIPT_ELEMENT_DEFER: + /* Write me! */ + break; + case JSP_HTML_SCRIPT_ELEMENT_SRC: + /* Write me! */ + break; + case JSP_HTML_SCRIPT_ELEMENT_TYPE: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLScriptElement_props[] = { + { "text", JSP_HTML_SCRIPT_ELEMENT_TEXT, JSPROP_ENUMERATE }, + { "htmlFor", JSP_HTML_SCRIPT_ELEMENT_HTML_FOR, JSPROP_ENUMERATE }, + { "event", JSP_HTML_SCRIPT_ELEMENT_EVENT , JSPROP_ENUMERATE }, + { "charset", JSP_HTML_SCRIPT_ELEMENT_CHARSET, JSPROP_ENUMERATE }, + { "defer", JSP_HTML_SCRIPT_ELEMENT_DEFER, JSPROP_ENUMERATE }, + { "src", JSP_HTML_SCRIPT_ELEMENT_SRC, JSPROP_ENUMERATE }, + { "type", JSP_HTML_SCRIPT_ELEMENT_TYPE, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLScriptElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLScriptElement_class = { + "HTMLScriptElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLScriptElement_getProperty, HTMLScriptElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLScriptElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLScriptElement.h new file mode 100644 index 00000000..7a959fab --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLScriptElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLSCRIPTELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLSCRIPTELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLScriptElement_class; +extern const JSFunctionSpec HTMLScriptElement_funcs[]; +extern const JSPropertySpec HTMLScriptElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLSelectElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLSelectElement.c new file mode 100644 index 00000000..841bdf58 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLSelectElement.c @@ -0,0 +1,156 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLSelectElement.h" + +static JSBool +HTMLSelectElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_SELECT_ELEMENT_TYPE: + /* Write me! */ + break; + case JSP_HTML_SELECT_ELEMENT_SELECTED_INDEX: + /* Write me! */ + break; + case JSP_HTML_SELECT_ELEMENT_VALUE: + /* Write me! */ + break; + case JSP_HTML_SELECT_ELEMENT_LENGTH: + /* Write me! */ + break; + case JSP_HTML_SELECT_ELEMENT_FORM: + /* Write me! */ + break; + case JSP_HTML_SELECT_ELEMENT_OPTIONS: + /* Write me! */ + break; + case JSP_HTML_SELECT_ELEMENT_DISABLED: + /* Write me! */ + break; + case JSP_HTML_SELECT_ELEMENT_MULTIPLE: + /* Write me! */ + break; + case JSP_HTML_SELECT_ELEMENT_NAME: + /* Write me! */ + break; + case JSP_HTML_SELECT_ELEMENT_SIZE: + /* Write me! */ + break; + case JSP_HTML_SELECT_ELEMENT_TAB_INDEX: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLSelectElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_SELECT_ELEMENT_SELECTED_INDEX: + /* Write me! */ + break; + case JSP_HTML_SELECT_ELEMENT_VALUE: + /* Write me! */ + break; + case JSP_HTML_SELECT_ELEMENT_LENGTH: + /* Write me! */ + break; + case JSP_HTML_SELECT_ELEMENT_DISABLED: + /* Write me! */ + break; + case JSP_HTML_SELECT_ELEMENT_MULTIPLE: + /* Write me! */ + break; + case JSP_HTML_SELECT_ELEMENT_NAME: + /* Write me! */ + break; + case JSP_HTML_SELECT_ELEMENT_SIZE: + /* Write me! */ + break; + case JSP_HTML_SELECT_ELEMENT_TAB_INDEX: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLSelectElement_add(JSContext *ctx, JSObject *obj, uintN argc, jsval *argv, + jsval *rval) +{ + /* Write me! */ + return JS_TRUE; +} + +static JSBool +HTMLSelectElement_remove(JSContext *ctx, JSObject *obj, uintN argc, jsval *argv, + jsval *rval) +{ + /* Write me! */ + return JS_TRUE; +} + +static JSBool +HTMLSelectElement_blur(JSContext *ctx, JSObject *obj, uintN argc, jsval *argv, + jsval *rval) +{ + /* Write me! */ + return JS_TRUE; +} + +static JSBool +HTMLSelectElement_focus(JSContext *ctx, JSObject *obj, uintN argc, jsval *argv, + jsval *rval) +{ + /* Write me! */ + return JS_TRUE; +} + +const JSPropertySpec HTMLSelectElement_props[] = { + { "type", JSP_HTML_SELECT_ELEMENT_TYPE, JSPROP_ENUMERATE | JSPROP_READONLY }, + { "selectedIndex", JSP_HTML_SELECT_ELEMENT_SELECTED_INDEX, JSPROP_ENUMERATE }, + { "value", JSP_HTML_SELECT_ELEMENT_VALUE, JSPROP_ENUMERATE }, + { "length", JSP_HTML_SELECT_ELEMENT_LENGTH, JSPROP_ENUMERATE }, + { "form", JSP_HTML_SELECT_ELEMENT_FORM, JSPROP_ENUMERATE | JSPROP_READONLY }, + { "options", JSP_HTML_SELECT_ELEMENT_OPTIONS, JSPROP_ENUMERATE | JSPROP_READONLY }, + { "disabled", JSP_HTML_SELECT_ELEMENT_DISABLED, JSPROP_ENUMERATE }, + { "multiple", JSP_HTML_SELECT_ELEMENT_MULTIPLE, JSPROP_ENUMERATE }, + { "name", JSP_HTML_SELECT_ELEMENT_NAME, JSPROP_ENUMERATE }, + { "size", JSP_HTML_SELECT_ELEMENT_SIZE, JSPROP_ENUMERATE }, + { "tabIndex", JSP_HTML_SELECT_ELEMENT_TAB_INDEX, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLSelectElement_funcs[] = { + { "add", HTMLSelectElement_add, 1 }, + { "remove", HTMLSelectElement_remove, 2 }, + { "blur", HTMLSelectElement_blur, 0 }, + { "focus", HTMLSelectElement_focus, 0 }, + { NULL } +}; + +const JSClass HTMLSelectElement_class = { + "HTMLSelectElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLSelectElement_getProperty, HTMLSelectElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLSelectElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLSelectElement.h new file mode 100644 index 00000000..6bd4bfc4 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLSelectElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLSELECTELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLSELECTELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLSelectElement_class; +extern const JSFunctionSpec HTMLSelectElement_funcs[]; +extern const JSPropertySpec HTMLSelectElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLStyleElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLStyleElement.c new file mode 100644 index 00000000..f95f7daf --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLStyleElement.c @@ -0,0 +1,73 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLStyleElement.h" + +static JSBool +HTMLStyleElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_STYLE_ELEMENT_DISABLED: + /* Write me! */ + break; + case JSP_HTML_STYLE_ELEMENT_MEDIA: + /* Write me! */ + break; + case JSP_HTML_STYLE_ELEMENT_TYPE: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLStyleElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_STYLE_ELEMENT_DISABLED: + /* Write me! */ + break; + case JSP_HTML_STYLE_ELEMENT_MEDIA: + /* Write me! */ + break; + case JSP_HTML_STYLE_ELEMENT_TYPE: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLStyleElement_props[] = { + { "disabled", JSP_HTML_STYLE_ELEMENT_DISABLED,JSPROP_ENUMERATE }, + { "media", JSP_HTML_STYLE_ELEMENT_MEDIA, JSPROP_ENUMERATE }, + { "type", JSP_HTML_STYLE_ELEMENT_TYPE, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLStyleElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLStyleElement_class = { + "HTMLStyleElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLStyleElement_getProperty, HTMLStyleElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLStyleElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLStyleElement.h new file mode 100644 index 00000000..458ab3d4 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLStyleElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLSTYLEELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLSTYLEELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLStyleElement_class; +extern const JSFunctionSpec HTMLStyleElement_funcs[]; +extern const JSPropertySpec HTMLStyleElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLTableCaptionElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLTableCaptionElement.c new file mode 100644 index 00000000..5ab9b868 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLTableCaptionElement.c @@ -0,0 +1,59 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLTableCaptionElement.h" + +static JSBool +HTMLTableCaptionElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_TABLE_CAPTION_ELEMENT_ALIGN: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLTableCaptionElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_TABLE_CAPTION_ELEMENT_ALIGN: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLTableCaptionElement_props[] = { + { "align", JSP_HTML_TABLE_CAPTION_ELEMENT_ALIGN, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLTableCaptionElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLTableCaptionElement_class = { + "HTMLTableCaptionElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLTableCaptionElement_getProperty, HTMLTableCaptionElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLTableCaptionElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLTableCaptionElement.h new file mode 100644 index 00000000..e7626104 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLTableCaptionElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLTABLECAPTIONELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLTABLECAPTIONELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLTableCaptionElement_class; +extern const JSFunctionSpec HTMLTableCaptionElement_funcs[]; +extern const JSPropertySpec HTMLTableCaptionElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLTableCellElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLTableCellElement.c new file mode 100644 index 00000000..2da723e2 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLTableCellElement.c @@ -0,0 +1,154 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLTableCellElement.h" + +static JSBool +HTMLTableCellElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_TABLE_CELL_ELEMENT_CELL_INDEX: + /* Write me! */ + break; + case JSP_HTML_TABLE_CELL_ELEMENT_ABBR: + /* Write me! */ + break; + case JSP_HTML_TABLE_CELL_ELEMENT_ALIGN: + /* Write me! */ + break; + case JSP_HTML_TABLE_CELL_ELEMENT_AXIS: + /* Write me! */ + break; + case JSP_HTML_TABLE_CELL_ELEMENT_BGCOLOR: + /* Write me! */ + break; + case JSP_HTML_TABLE_CELL_ELEMENT_CH: + /* Write me! */ + break; + case JSP_HTML_TABLE_CELL_ELEMENT_CH_OFF: + /* Write me! */ + break; + case JSP_HTML_TABLE_CELL_ELEMENT_COL_SPAN: + /* Write me! */ + break; + case JSP_HTML_TABLE_CELL_ELEMENT_HEADERS: + /* Write me! */ + break; + case JSP_HTML_TABLE_CELL_ELEMENT_HEIGHT: + /* Write me! */ + break; + case JSP_HTML_TABLE_CELL_ELEMENT_NO_WRAP: + /* Write me! */ + break; + case JSP_HTML_TABLE_CELL_ELEMENT_ROW_SPAN: + /* Write me! */ + break; + case JSP_HTML_TABLE_CELL_ELEMENT_SCOPE: + /* Write me! */ + break; + case JSP_HTML_TABLE_CELL_ELEMENT_VALIGN: + /* Write me! */ + break; + case JSP_HTML_TABLE_CELL_ELEMENT_WIDTH: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLTableCellElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_TABLE_CELL_ELEMENT_ABBR: + /* Write me! */ + break; + case JSP_HTML_TABLE_CELL_ELEMENT_ALIGN: + /* Write me! */ + break; + case JSP_HTML_TABLE_CELL_ELEMENT_AXIS: + /* Write me! */ + break; + case JSP_HTML_TABLE_CELL_ELEMENT_BGCOLOR: + /* Write me! */ + break; + case JSP_HTML_TABLE_CELL_ELEMENT_CH: + /* Write me! */ + break; + case JSP_HTML_TABLE_CELL_ELEMENT_CH_OFF: + /* Write me! */ + break; + case JSP_HTML_TABLE_CELL_ELEMENT_COL_SPAN: + /* Write me! */ + break; + case JSP_HTML_TABLE_CELL_ELEMENT_HEADERS: + /* Write me! */ + break; + case JSP_HTML_TABLE_CELL_ELEMENT_HEIGHT: + /* Write me! */ + break; + case JSP_HTML_TABLE_CELL_ELEMENT_NO_WRAP: + /* Write me! */ + break; + case JSP_HTML_TABLE_CELL_ELEMENT_ROW_SPAN: + /* Write me! */ + break; + case JSP_HTML_TABLE_CELL_ELEMENT_SCOPE: + /* Write me! */ + break; + case JSP_HTML_TABLE_CELL_ELEMENT_VALIGN: + /* Write me! */ + break; + case JSP_HTML_TABLE_CELL_ELEMENT_WIDTH: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLTableCellElement_props[] = { + { "cellIndex", JSP_HTML_TABLE_CELL_ELEMENT_CELL_INDEX, JSPROP_ENUMERATE | JSPROP_READONLY }, + { "abbr", JSP_HTML_TABLE_CELL_ELEMENT_ABBR, JSPROP_ENUMERATE }, + { "align", JSP_HTML_TABLE_CELL_ELEMENT_ALIGN, JSPROP_ENUMERATE }, + { "axis", JSP_HTML_TABLE_CELL_ELEMENT_AXIS, JSPROP_ENUMERATE }, + { "bgColor", JSP_HTML_TABLE_CELL_ELEMENT_BGCOLOR, JSPROP_ENUMERATE }, + { "ch", JSP_HTML_TABLE_CELL_ELEMENT_CH, JSPROP_ENUMERATE }, + { "chOff", JSP_HTML_TABLE_CELL_ELEMENT_CH_OFF, JSPROP_ENUMERATE }, + { "colSpan", JSP_HTML_TABLE_CELL_ELEMENT_COL_SPAN, JSPROP_ENUMERATE }, + { "headers", JSP_HTML_TABLE_CELL_ELEMENT_HEADERS, JSPROP_ENUMERATE }, + { "height", JSP_HTML_TABLE_CELL_ELEMENT_HEIGHT, JSPROP_ENUMERATE }, + { "noWrap", JSP_HTML_TABLE_CELL_ELEMENT_NO_WRAP, JSPROP_ENUMERATE }, + { "rowSpan", JSP_HTML_TABLE_CELL_ELEMENT_ROW_SPAN, JSPROP_ENUMERATE }, + { "scope", JSP_HTML_TABLE_CELL_ELEMENT_SCOPE, JSPROP_ENUMERATE }, + { "vAlign", JSP_HTML_TABLE_CELL_ELEMENT_VALIGN, JSPROP_ENUMERATE }, + { "width", JSP_HTML_TABLE_CELL_ELEMENT_WIDTH, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLTableCellElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLTableCellElement_class = { + "HTMLTableCellElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLTableCellElement_getProperty, HTMLTableCellElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLTableCellElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLTableCellElement.h new file mode 100644 index 00000000..b8a6314c --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLTableCellElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLTABLECELLELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLTABLECELLELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLTableCellElement_class; +extern const JSFunctionSpec HTMLTableCellElement_funcs[]; +extern const JSPropertySpec HTMLTableCellElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLTableColElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLTableColElement.c new file mode 100644 index 00000000..45de01eb --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLTableColElement.c @@ -0,0 +1,94 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLTableColElement.h" + +static JSBool +HTMLTableColElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_TABLE_COL_ELEMENT_ALIGN: + /* Write me! */ + break; + case JSP_HTML_TABLE_COL_ELEMENT_CH: + /* Write me! */ + break; + case JSP_HTML_TABLE_COL_ELEMENT_CH_OFF: + /* Write me! */ + break; + case JSP_HTML_TABLE_COL_ELEMENT_SPAN: + /* Write me! */ + break; + case JSP_HTML_TABLE_COL_ELEMENT_VALIGN: + /* Write me! */ + break; + case JSP_HTML_TABLE_COL_ELEMENT_WIDTH: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLTableColElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_TABLE_COL_ELEMENT_ALIGN: + /* Write me! */ + break; + case JSP_HTML_TABLE_COL_ELEMENT_CH: + /* Write me! */ + break; + case JSP_HTML_TABLE_COL_ELEMENT_CH_OFF: + /* Write me! */ + break; + case JSP_HTML_TABLE_COL_ELEMENT_SPAN: + /* Write me! */ + break; + case JSP_HTML_TABLE_COL_ELEMENT_VALIGN: + /* Write me! */ + break; + case JSP_HTML_TABLE_COL_ELEMENT_WIDTH: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLTableColElement_props[] = { + { "align", JSP_HTML_TABLE_COL_ELEMENT_ALIGN, JSPROP_ENUMERATE }, + { "ch", JSP_HTML_TABLE_COL_ELEMENT_CH, JSPROP_ENUMERATE }, + { "chOff", JSP_HTML_TABLE_COL_ELEMENT_CH_OFF, JSPROP_ENUMERATE }, + { "span", JSP_HTML_TABLE_COL_ELEMENT_SPAN, JSPROP_ENUMERATE }, + { "vAlign", JSP_HTML_TABLE_COL_ELEMENT_VALIGN, JSPROP_ENUMERATE }, + { "width", JSP_HTML_TABLE_COL_ELEMENT_WIDTH, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLTableColElement_funcs[] = { + { NULL } +}; + +const JSClass HTMLTableColElement_class = { + "HTMLTableColElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLTableColElement_getProperty, HTMLTableColElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLTableColElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLTableColElement.h new file mode 100644 index 00000000..e1679b6f --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLTableColElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLTABLECOLELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLTABLECOLELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLTableColElement_class; +extern const JSFunctionSpec HTMLTableColElement_funcs[]; +extern const JSPropertySpec HTMLTableColElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLTableElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLTableElement.c new file mode 100644 index 00000000..df90e129 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLTableElement.c @@ -0,0 +1,216 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLTableElement.h" + +static JSBool +HTMLTableElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_TABLE_ELEMENT_CAPTION: + /* Write me! */ + break; + case JSP_HTML_TABLE_ELEMENT_THEAD: + /* Write me! */ + break; + case JSP_HTML_TABLE_ELEMENT_TFOOT: + /* Write me! */ + break; + case JSP_HTML_TABLE_ELEMENT_ROWS: + /* Write me! */ + break; + case JSP_HTML_TABLE_ELEMENT_TBODIES: + /* Write me! */ + break; + case JSP_HTML_TABLE_ELEMENT_ALIGN: + /* Write me! */ + break; + case JSP_HTML_TABLE_ELEMENT_BGCOLOR: + /* Write me! */ + break; + case JSP_HTML_TABLE_ELEMENT_BORDER: + /* Write me! */ + break; + case JSP_HTML_TABLE_ELEMENT_CELL_PADDING: + /* Write me! */ + break; + case JSP_HTML_TABLE_ELEMENT_CELL_SPACING: + /* Write me! */ + break; + case JSP_HTML_TABLE_ELEMENT_FRAME: + /* Write me! */ + break; + case JSP_HTML_TABLE_ELEMENT_RULES: + /* Write me! */ + break; + case JSP_HTML_TABLE_ELEMENT_SUMMARY: + /* Write me! */ + break; + case JSP_HTML_TABLE_ELEMENT_WIDTH: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLTableElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_TABLE_ELEMENT_CAPTION: + /* Write me! */ + break; + case JSP_HTML_TABLE_ELEMENT_THEAD: + /* Write me! */ + break; + case JSP_HTML_TABLE_ELEMENT_TFOOT: + /* Write me! */ + break; + case JSP_HTML_TABLE_ELEMENT_ALIGN: + /* Write me! */ + break; + case JSP_HTML_TABLE_ELEMENT_BGCOLOR: + /* Write me! */ + break; + case JSP_HTML_TABLE_ELEMENT_BORDER: + /* Write me! */ + break; + case JSP_HTML_TABLE_ELEMENT_CELL_PADDING: + /* Write me! */ + break; + case JSP_HTML_TABLE_ELEMENT_CELL_SPACING: + /* Write me! */ + break; + case JSP_HTML_TABLE_ELEMENT_FRAME: + /* Write me! */ + break; + case JSP_HTML_TABLE_ELEMENT_RULES: + /* Write me! */ + break; + case JSP_HTML_TABLE_ELEMENT_SUMMARY: + /* Write me! */ + break; + case JSP_HTML_TABLE_ELEMENT_WIDTH: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLTableElement_createTHead(JSContext *ctx, JSObject *obj, uintN argc, jsval *argv, + jsval *rval) +{ + /* Write me! */ + return JS_TRUE; +} + +static JSBool +HTMLTableElement_deleteTHead(JSContext *ctx, JSObject *obj, uintN argc, jsval *argv, + jsval *rval) +{ + /* Write me! */ + return JS_TRUE; +} + +static JSBool +HTMLTableElement_createTFoot(JSContext *ctx, JSObject *obj, uintN argc, jsval *argv, + jsval *rval) +{ + /* Write me! */ + return JS_TRUE; +} + +static JSBool +HTMLTableElement_deleteTFoot(JSContext *ctx, JSObject *obj, uintN argc, jsval *argv, + jsval *rval) +{ + /* Write me! */ + return JS_TRUE; +} + +static JSBool +HTMLTableElement_createCaption(JSContext *ctx, JSObject *obj, uintN argc, jsval *argv, + jsval *rval) +{ + /* Write me! */ + return JS_TRUE; +} + +static JSBool +HTMLTableElement_deleteCaption(JSContext *ctx, JSObject *obj, uintN argc, jsval *argv, + jsval *rval) +{ + /* Write me! */ + return JS_TRUE; +} + +static JSBool +HTMLTableElement_insertRow(JSContext *ctx, JSObject *obj, uintN argc, jsval *argv, + jsval *rval) +{ + /* Write me! */ + return JS_TRUE; +} + +static JSBool +HTMLTableElement_deleteRow(JSContext *ctx, JSObject *obj, uintN argc, jsval *argv, + jsval *rval) +{ + /* Write me! */ + return JS_TRUE; +} + +const JSPropertySpec HTMLTableElement_props[] = { + { "caption", JSP_HTML_TABLE_ELEMENT_CAPTION, JSPROP_ENUMERATE }, + { "tHead", JSP_HTML_TABLE_ELEMENT_THEAD, JSPROP_ENUMERATE }, + { "tFoot", JSP_HTML_TABLE_ELEMENT_TFOOT, JSPROP_ENUMERATE }, + { "rows", JSP_HTML_TABLE_ELEMENT_ROWS, JSPROP_ENUMERATE | JSPROP_READONLY }, + { "tBodies", JSP_HTML_TABLE_ELEMENT_TBODIES, JSPROP_ENUMERATE | JSPROP_READONLY }, + { "align", JSP_HTML_TABLE_ELEMENT_ALIGN, JSPROP_ENUMERATE }, + { "bgColor", JSP_HTML_TABLE_ELEMENT_BGCOLOR, JSPROP_ENUMERATE }, + { "border", JSP_HTML_TABLE_ELEMENT_BORDER, JSPROP_ENUMERATE }, + { "cellPadding",JSP_HTML_TABLE_ELEMENT_CELL_PADDING, JSPROP_ENUMERATE }, + { "cellSpacing",JSP_HTML_TABLE_ELEMENT_CELL_SPACING, JSPROP_ENUMERATE }, + { "frame", JSP_HTML_TABLE_ELEMENT_FRAME, JSPROP_ENUMERATE }, + { "rules", JSP_HTML_TABLE_ELEMENT_RULES, JSPROP_ENUMERATE }, + { "summary", JSP_HTML_TABLE_ELEMENT_SUMMARY, JSPROP_ENUMERATE }, + { "width", JSP_HTML_TABLE_ELEMENT_WIDTH, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLTableElement_funcs[] = { + { "createTHead", HTMLTableElement_createTHead, 0 }, + { "deleteTHead", HTMLTableElement_deleteTHead, 0 }, + { "createTFoot", HTMLTableElement_createTFoot, 0 }, + { "deleteTFoot", HTMLTableElement_deleteTFoot, 0 }, + { "createCaption", HTMLTableElement_createCaption, 0 }, + { "deleteCaption", HTMLTableElement_deleteCaption, 0 }, + { "insertRow", HTMLTableElement_insertRow, 1 }, + { "deleteRow", HTMLTableElement_deleteRow, 1 }, + { NULL } +}; + +const JSClass HTMLTableElement_class = { + "HTMLTableElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLTableElement_getProperty, HTMLTableElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLTableElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLTableElement.h new file mode 100644 index 00000000..c128d203 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLTableElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLTABLEELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLTABLEELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLTableElement_class; +extern const JSFunctionSpec HTMLTableElement_funcs[]; +extern const JSPropertySpec HTMLTableElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLTableRowElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLTableRowElement.c new file mode 100644 index 00000000..15616db4 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLTableRowElement.c @@ -0,0 +1,117 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLTableRowElement.h" + +static JSBool +HTMLTableRowElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_TABLE_ROW_ELEMENT_ROW_INDEX: + /* Write me! */ + break; + case JSP_HTML_TABLE_ROW_ELEMENT_SECTION_ROW_INDEX: + /* Write me! */ + break; + case JSP_HTML_TABLE_ROW_ELEMENT_CELLS: + /* Write me! */ + break; + case JSP_HTML_TABLE_ROW_ELEMENT_ALIGN: + /* Write me! */ + break; + case JSP_HTML_TABLE_ROW_ELEMENT_BGCOLOR: + /* Write me! */ + break; + case JSP_HTML_TABLE_ROW_ELEMENT_CH: + /* Write me! */ + break; + case JSP_HTML_TABLE_ROW_ELEMENT_CH_OFF: + /* Write me! */ + break; + case JSP_HTML_TABLE_ROW_ELEMENT_VALIGN: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLTableRowElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_TABLE_ROW_ELEMENT_ALIGN: + /* Write me! */ + break; + case JSP_HTML_TABLE_ROW_ELEMENT_BGCOLOR: + /* Write me! */ + break; + case JSP_HTML_TABLE_ROW_ELEMENT_CH: + /* Write me! */ + break; + case JSP_HTML_TABLE_ROW_ELEMENT_CH_OFF: + /* Write me! */ + break; + case JSP_HTML_TABLE_ROW_ELEMENT_VALIGN: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLTableRowElement_insertCell(JSContext *ctx, JSObject *obj, uintN argc, jsval *argv, + jsval *rval) +{ + /* Write me! */ + return JS_TRUE; +} + +static JSBool +HTMLTableRowElement_deleteCell(JSContext *ctx, JSObject *obj, uintN argc, jsval *argv, + jsval *rval) +{ + /* Write me! */ + return JS_TRUE; +} + +const JSPropertySpec HTMLTableRowElement_props[] = { + { "rowIndex", JSP_HTML_TABLE_ROW_ELEMENT_ROW_INDEX, JSPROP_ENUMERATE | JSPROP_READONLY}, + { "sectionRowIndex", JSP_HTML_TABLE_ROW_ELEMENT_SECTION_ROW_INDEX, JSPROP_ENUMERATE | JSPROP_READONLY }, + { "cells", JSP_HTML_TABLE_ROW_ELEMENT_CELLS, JSPROP_ENUMERATE | JSPROP_READONLY}, + { "align", JSP_HTML_TABLE_ROW_ELEMENT_ALIGN, JSPROP_ENUMERATE }, + { "bgColor", JSP_HTML_TABLE_ROW_ELEMENT_BGCOLOR, JSPROP_ENUMERATE }, + { "ch", JSP_HTML_TABLE_ROW_ELEMENT_CH, JSPROP_ENUMERATE }, + { "chOff", JSP_HTML_TABLE_ROW_ELEMENT_CH_OFF, JSPROP_ENUMERATE }, + { "vAlign", JSP_HTML_TABLE_ROW_ELEMENT_VALIGN, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLTableRowElement_funcs[] = { + { "insertCell", HTMLTableRowElement_insertCell, 1 }, + { "deleteCell", HTMLTableRowElement_deleteCell, 1 }, + { NULL } +}; + +const JSClass HTMLTableRowElement_class = { + "HTMLTableRowElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLTableRowElement_getProperty, HTMLTableRowElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLTableRowElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLTableRowElement.h new file mode 100644 index 00000000..09ffa40b --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLTableRowElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLTABLEROWELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLTABLEROWELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLTableRowElement_class; +extern const JSFunctionSpec HTMLTableRowElement_funcs[]; +extern const JSPropertySpec HTMLTableRowElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLTableSectionElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLTableSectionElement.c new file mode 100644 index 00000000..bceef635 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLTableSectionElement.c @@ -0,0 +1,102 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLTableSectionElement.h" + +static JSBool +HTMLTableSectionElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_TABLE_SECTION_ELEMENT_ALIGN: + /* Write me! */ + break; + case JSP_HTML_TABLE_SECTION_ELEMENT_CH: + /* Write me! */ + break; + case JSP_HTML_TABLE_SECTION_ELEMENT_CH_OFF: + /* Write me! */ + break; + case JSP_HTML_TABLE_SECTION_ELEMENT_VALIGN: + /* Write me! */ + break; + case JSP_HTML_TABLE_SECTION_ELEMENT_ROWS: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLTableSectionElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_TABLE_SECTION_ELEMENT_ALIGN: + /* Write me! */ + break; + case JSP_HTML_TABLE_SECTION_ELEMENT_CH: + /* Write me! */ + break; + case JSP_HTML_TABLE_SECTION_ELEMENT_CH_OFF: + /* Write me! */ + break; + case JSP_HTML_TABLE_SECTION_ELEMENT_VALIGN: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLTableSectionElement_insertRow(JSContext *ctx, JSObject *obj, uintN argc, jsval *argv, + jsval *rval) +{ + /* Write me! */ + return JS_TRUE; +} + +static JSBool +HTMLTableSectionElement_deleteRow(JSContext *ctx, JSObject *obj, uintN argc, jsval *argv, + jsval *rval) +{ + /* Write me! */ + return JS_TRUE; +} + +const JSPropertySpec HTMLTableSectionElement_props[] = { + { "align", JSP_HTML_TABLE_SECTION_ELEMENT_ALIGN, JSPROP_ENUMERATE }, + { "ch", JSP_HTML_TABLE_SECTION_ELEMENT_CH, JSPROP_ENUMERATE }, + { "chOff", JSP_HTML_TABLE_SECTION_ELEMENT_CH_OFF, JSPROP_ENUMERATE }, + { "vAlign", JSP_HTML_TABLE_SECTION_ELEMENT_VALIGN, JSPROP_ENUMERATE }, + { "rows", JSP_HTML_TABLE_SECTION_ELEMENT_ROWS, JSPROP_ENUMERATE | JSPROP_READONLY}, + { NULL } +}; + +const JSFunctionSpec HTMLTableSectionElement_funcs[] = { + { "insertRow", HTMLTableSectionElement_insertRow, 1 }, + { "deleteRow", HTMLTableSectionElement_deleteRow, 1 }, + { NULL } +}; + +const JSClass HTMLTableSectionElement_class = { + "HTMLTableSectionElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLTableSectionElement_getProperty, HTMLTableSectionElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLTableSectionElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLTableSectionElement.h new file mode 100644 index 00000000..0902a924 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLTableSectionElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLTABLESECTIONELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLTABLESECTIONELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLTableSectionElement_class; +extern const JSFunctionSpec HTMLTableSectionElement_funcs[]; +extern const JSPropertySpec HTMLTableSectionElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLTextAreaElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLTextAreaElement.c new file mode 100644 index 00000000..86ba6182 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLTextAreaElement.c @@ -0,0 +1,150 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLTextAreaElement.h" + +static JSBool +HTMLTextAreaElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_TEXT_AREA_ELEMENT_DEFAULT_VALUE: + /* Write me! */ + break; + case JSP_HTML_TEXT_AREA_ELEMENT_FORM: + /* Write me! */ + break; + case JSP_HTML_TEXT_AREA_ELEMENT_ACCESS_KEY: + /* Write me! */ + break; + case JSP_HTML_TEXT_AREA_ELEMENT_COLS: + /* Write me! */ + break; + case JSP_HTML_TEXT_AREA_ELEMENT_DISABLED: + /* Write me! */ + break; + case JSP_HTML_TEXT_AREA_ELEMENT_NAME: + /* Write me! */ + break; + case JSP_HTML_TEXT_AREA_ELEMENT_READ_ONLY: + /* Write me! */ + break; + case JSP_HTML_TEXT_AREA_ELEMENT_ROWS: + /* Write me! */ + break; + case JSP_HTML_TEXT_AREA_ELEMENT_TAB_INDEX: + /* Write me! */ + break; + case JSP_HTML_TEXT_AREA_ELEMENT_TYPE: + /* Write me! */ + break; + case JSP_HTML_TEXT_AREA_ELEMENT_VALUE: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLTextAreaElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_TEXT_AREA_ELEMENT_DEFAULT_VALUE: + /* Write me! */ + break; + case JSP_HTML_TEXT_AREA_ELEMENT_ACCESS_KEY: + /* Write me! */ + break; + case JSP_HTML_TEXT_AREA_ELEMENT_COLS: + /* Write me! */ + break; + case JSP_HTML_TEXT_AREA_ELEMENT_DISABLED: + /* Write me! */ + break; + case JSP_HTML_TEXT_AREA_ELEMENT_NAME: + /* Write me! */ + break; + case JSP_HTML_TEXT_AREA_ELEMENT_READ_ONLY: + /* Write me! */ + break; + case JSP_HTML_TEXT_AREA_ELEMENT_ROWS: + /* Write me! */ + break; + case JSP_HTML_TEXT_AREA_ELEMENT_TAB_INDEX: + /* Write me! */ + break; + case JSP_HTML_TEXT_AREA_ELEMENT_VALUE: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLTextAreaElement_blur(JSContext *ctx, JSObject *obj, uintN argc, jsval *argv, + jsval *rval) +{ + /* Write me! */ + return JS_TRUE; +} + +static JSBool +HTMLTextAreaElement_focus(JSContext *ctx, JSObject *obj, uintN argc, jsval *argv, + jsval *rval) +{ + /* Write me! */ + return JS_TRUE; +} + +static JSBool +HTMLTextAreaElement_select(JSContext *ctx, JSObject *obj, uintN argc, jsval *argv, + jsval *rval) +{ + /* Write me! */ + return JS_TRUE; +} + +const JSPropertySpec HTMLTextAreaElement_props[] = { + { "defaultValue", JSP_HTML_TEXT_AREA_ELEMENT_DEFAULT_VALUE, JSPROP_ENUMERATE }, + { "form", JSP_HTML_TEXT_AREA_ELEMENT_FORM, JSPROP_ENUMERATE | JSPROP_READONLY }, + { "accessKey", JSP_HTML_TEXT_AREA_ELEMENT_ACCESS_KEY, JSPROP_ENUMERATE }, + { "cols", JSP_HTML_TEXT_AREA_ELEMENT_COLS, JSPROP_ENUMERATE }, + { "disabled", JSP_HTML_TEXT_AREA_ELEMENT_DISABLED, JSPROP_ENUMERATE }, + { "name", JSP_HTML_TEXT_AREA_ELEMENT_NAME, JSPROP_ENUMERATE }, + { "readOnly", JSP_HTML_TEXT_AREA_ELEMENT_READ_ONLY, JSPROP_ENUMERATE }, + { "rows", JSP_HTML_TEXT_AREA_ELEMENT_ROWS, JSPROP_ENUMERATE }, + { "tabIndex", JSP_HTML_TEXT_AREA_ELEMENT_TAB_INDEX, JSPROP_ENUMERATE }, + { "type", JSP_HTML_TEXT_AREA_ELEMENT_TYPE, JSPROP_ENUMERATE | JSPROP_READONLY}, + { "value", JSP_HTML_TEXT_AREA_ELEMENT_DEFAULT_VALUE, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSFunctionSpec HTMLTextAreaElement_funcs[] = { + { "blur", HTMLTextAreaElement_blur, 0 }, + { "focus", HTMLTextAreaElement_focus, 0 }, + { "select", HTMLTextAreaElement_select, 0 }, + { NULL } +}; + +const JSClass HTMLTextAreaElement_class = { + "HTMLTextAreaElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLTextAreaElement_getProperty, HTMLTextAreaElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLTextAreaElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLTextAreaElement.h new file mode 100644 index 00000000..2cd6ae66 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLTextAreaElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLTEXTAREAELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLTEXTAREAELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLTextAreaElement_class; +extern const JSFunctionSpec HTMLTextAreaElement_funcs[]; +extern const JSPropertySpec HTMLTextAreaElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLTitleElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLTitleElement.c new file mode 100644 index 00000000..7c5402f2 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLTitleElement.c @@ -0,0 +1,55 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLTitleElement.h" + +static JSBool +HTMLTitleElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_TITLE_ELEMENT_TEXT: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLTitleElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_TITLE_ELEMENT_TEXT: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLTitleElement_props[] = { + { "text", JSP_HTML_TITLE_ELEMENT_TEXT, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSClass HTMLTitleElement_class = { + "HTMLTitleElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLTitleElement_getProperty, HTMLTitleElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLTitleElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLTitleElement.h new file mode 100644 index 00000000..18657ed9 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLTitleElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLTITLEELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLTITLEELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLTitleElement_class; +extern const JSFunctionSpec HTMLTitleElement_funcs[]; +extern const JSPropertySpec HTMLTitleElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLUListElement.c b/src/document/dom/ecmascript/spidermonkey/html/HTMLUListElement.c new file mode 100644 index 00000000..2747f063 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLUListElement.c @@ -0,0 +1,62 @@ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "elinks.h" + +#include "document/dom/ecmascript/spidermonkey.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLElement.h" +#include "document/dom/ecmascript/spidermonkey/html/HTMLUListElement.h" + +static JSBool +HTMLUListElement_getProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_ULIST_ELEMENT_COMPACT: + /* Write me! */ + break; + case JSP_HTML_ULIST_ELEMENT_TYPE: + /* Write me! */ + break; + default: + return HTMLElement_getProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +static JSBool +HTMLUListElement_setProperty(JSContext *ctx, JSObject *obj, jsval id, jsval *vp) +{ + if (!JSVAL_IS_INT(id)) + return JS_TRUE; + + switch (JSVAL_TO_INT(id)) { + case JSP_HTML_ULIST_ELEMENT_COMPACT: + /* Write me! */ + break; + case JSP_HTML_ULIST_ELEMENT_TYPE: + /* Write me! */ + break; + default: + return HTMLElement_setProperty(ctx, obj, id, vp); + } + return JS_TRUE; +} + +const JSPropertySpec HTMLUListElement_props[] = { + { "compact", JSP_HTML_ULIST_ELEMENT_COMPACT, JSPROP_ENUMERATE }, + { "type", JSP_HTML_ULIST_ELEMENT_TYPE, JSPROP_ENUMERATE }, + { NULL } +}; + +const JSClass HTMLUListElement_class = { + "HTMLUListElement", + JSCLASS_HAS_PRIVATE, + JS_PropertyStub, JS_PropertyStub, + HTMLUListElement_getProperty, HTMLUListElement_setProperty, + JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub +}; + diff --git a/src/document/dom/ecmascript/spidermonkey/html/HTMLUListElement.h b/src/document/dom/ecmascript/spidermonkey/html/HTMLUListElement.h new file mode 100644 index 00000000..57ae95ea --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/HTMLUListElement.h @@ -0,0 +1,10 @@ +#ifndef EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLULISTELEMENT_H +#define EL__DOCUMENT_DOM_ECMASCRIPT_SPIDERMONKEY_HTML_HTMLULISTELEMENT_H + +#include "ecmascript/spidermonkey/util.h" + +extern const JSClass HTMLUListElement_class; +extern const JSFunctionSpec HTMLUListElement_funcs[]; +extern const JSPropertySpec HTMLUListElement_props[]; + +#endif diff --git a/src/document/dom/ecmascript/spidermonkey/html/Makefile b/src/document/dom/ecmascript/spidermonkey/html/Makefile new file mode 100644 index 00000000..05777645 --- /dev/null +++ b/src/document/dom/ecmascript/spidermonkey/html/Makefile @@ -0,0 +1,25 @@ +top_builddir=../../../../../.. +include $(top_builddir)/Makefile.config + +INCLUDES += $(SPIDERMONKEY_CFLAGS) +OBJS = HTMLAnchorElement.o HTMLAppletElement.o HTMLAreaElement.o \ +HTMLBaseElement.o HTMLBaseFontElement.o HTMLBodyElement.o \ +HTMLBRElement.o HTMLButtonElement.o HTMLCollection.o \ +HTMLDirectoryElement.o HTMLDivElement.o HTMLDListElement.o \ +HTMLDocument.o HTMLElement.o HTMLFieldSetElement.o \ +HTMLFontElement.o HTMLFormElement.o HTMLFrameElement.o \ +HTMLFrameSetElement.o HTMLHeadElement.o HTMLHeadingElement.o \ +HTMLHRElement.o HTMLHtmlElement.o HTMLIFrameElement.o \ +HTMLImageElement.o HTMLInputElement.o HTMLIsIndexElement.o \ +HTMLLabelElement.o HTMLLegendElement.o HTMLLIElement.o \ +HTMLLinkElement.o HTMLMapElement.o HTMLMenuElement.o \ +HTMLMetaElement.o HTMLModElement.o HTMLObjectElement.o \ +HTMLOListElement.o HTMLOptGroupElement.o HTMLOptionElement.o \ +HTMLOptionsCollection.o HTMLParagraphElement.o HTMLParamElement.o \ +HTMLPreElement.o HTMLQuoteElement.o HTMLScriptElement.o \ +HTMLSelectElement.o HTMLStyleElement.o HTMLTableCaptionElement.o \ +HTMLTableCellElement.o HTMLTableColElement.o HTMLTableElement.o \ +HTMLTableRowElement.o HTMLTableSectionElement.o HTMLTextAreaElement.o \ +HTMLTitleElement.o HTMLUListElement.o + +include $(top_srcdir)/Makefile.lib diff --git a/src/document/dom/ecmascript/spidermonkey/props.h b/src/document/dom/ecmascript/spidermonkey/props.h index 635d5cfc..94f9aa66 100644 --- a/src/document/dom/ecmascript/spidermonkey/props.h +++ b/src/document/dom/ecmascript/spidermonkey/props.h @@ -439,6 +439,7 @@ enum HTMLObjectElement { JSP_HTML_OBJECT_ELEMENT_ARCHIVE, JSP_HTML_OBJECT_ELEMENT_BORDER, JSP_HTML_OBJECT_ELEMENT_CODE_BASE, + JSP_HTML_OBJECT_ELEMENT_CODE_TYPE, JSP_HTML_OBJECT_ELEMENT_DATA, JSP_HTML_OBJECT_ELEMENT_DECLARE, JSP_HTML_OBJECT_ELEMENT_HEIGHT, @@ -508,6 +509,7 @@ enum HTMLTableElement_enum { JSP_HTML_TABLE_ELEMENT_TBODIES, JSP_HTML_TABLE_ELEMENT_ALIGN, JSP_HTML_TABLE_ELEMENT_BGCOLOR, + JSP_HTML_TABLE_ELEMENT_BORDER, JSP_HTML_TABLE_ELEMENT_CELL_PADDING, JSP_HTML_TABLE_ELEMENT_CELL_SPACING, JSP_HTML_TABLE_ELEMENT_FRAME, @@ -584,17 +586,17 @@ enum HTMLFrameElement_enum { }; enum HTMLIFrameElement_enum { - JSP_HTML_LI_FRAME_ELEMENT_ALIGN = JSP_HTML_ELEMENT_CLASS_NAME + 1, - JSP_HTML_LI_FRAME_ELEMENT_FRAME_BORDER, - JSP_HTML_LI_FRAME_ELEMENT_HEIGHT, - JSP_HTML_LI_FRAME_ELEMENT_LONG_DESC, - JSP_HTML_LI_FRAME_ELEMENT_MARGIN_WIDTH, - JSP_HTML_LI_FRAME_ELEMENT_NAME, - JSP_HTML_LI_FRAME_ELEMENT_SCROLLING, - JSP_HTML_LI_FRAME_ELEMENT_SRC, - JSP_HTML_LI_FRAME_ELEMENT_WIDTH, - JSP_HTML_LI_FRAME_ELEMENT_CONTENT_DOCUMENT + JSP_HTML_IFRAME_ELEMENT_ALIGN = JSP_HTML_ELEMENT_CLASS_NAME + 1, + JSP_HTML_IFRAME_ELEMENT_FRAME_BORDER, + JSP_HTML_IFRAME_ELEMENT_HEIGHT, + JSP_HTML_IFRAME_ELEMENT_LONG_DESC, + JSP_HTML_IFRAME_ELEMENT_MARGIN_HEIGHT, + JSP_HTML_IFRAME_ELEMENT_MARGIN_WIDTH, + JSP_HTML_IFRAME_ELEMENT_NAME, + JSP_HTML_IFRAME_ELEMENT_SCROLLING, + JSP_HTML_IFRAME_ELEMENT_SRC, + JSP_HTML_IFRAME_ELEMENT_WIDTH, + JSP_HTML_IFRAME_ELEMENT_CONTENT_DOCUMENT }; #endif -