📄 mgjs_htmlimageelement.cpp
字号:
#include "mgjs_main.h"#include <../misc/htmlattrs.h> #include <html_imageimpl.h>static JSBool GetHTMLImageElementProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp);static JSBool SetHTMLImageElementProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp); enum HTMLImageElement_slots { HTMLIMAGEELEMENT_LOWSRC , HTMLIMAGEELEMENT_NAME , HTMLIMAGEELEMENT_ALIGN , HTMLIMAGEELEMENT_ALT , HTMLIMAGEELEMENT_ISMAP , HTMLIMAGEELEMENT_LONGDESC , HTMLIMAGEELEMENT_USEMAP , IMAGE_SRC , IMAGE_BORDER , IMAGE_HEIGHT , IMAGE_HSPACE , IMAGE_VSPACE , IMAGE_WIDTH ,};static JSBool GetHTMLImageElementProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp){ myJSImagePrivate *mImagePrivate=(myJSImagePrivate *)JS_GetPrivate(cx,obj); HTMLImageElementImpl *impl; DOMString dsReturn=(const char*)""; // long int lReturn; bool bReturn; impl=(HTMLImageElementImpl *)mImagePrivate->CurNode; if(!impl)return JS_FALSE; if (JSVAL_IS_INT(id)) { switch (JSVAL_TO_INT(id)) { case HTMLIMAGEELEMENT_LOWSRC : //note:KDE not finished. //TODO: break; case HTMLIMAGEELEMENT_NAME : dsReturn=((ElementImpl *)impl)->getAttribute(ATTR_NAME); *vp=STRING_TO_JSVAL (JS_NewStringCopyZ (cx,dsReturn.string())); break; case HTMLIMAGEELEMENT_ALIGN : dsReturn=((ElementImpl *)impl)->getAttribute(ATTR_ALIGN); *vp=STRING_TO_JSVAL (JS_NewStringCopyZ (cx,dsReturn.string())); break; case HTMLIMAGEELEMENT_ALT : dsReturn=((ElementImpl *)impl)->getAttribute(ATTR_ALT); *vp=STRING_TO_JSVAL (JS_NewStringCopyZ (cx,dsReturn.string())); break; case HTMLIMAGEELEMENT_ISMAP : bReturn=((ElementImpl *)impl)->getAttribute(ATTR_ISMAP).isNull(); *vp=INT_TO_JSVAL(bReturn);#if DEBUG_BY_XHTANG *vp=STRING_TO_JSVAL (JS_NewStringCopyZ (cx,QString::number(bReturn)));#endif break; case HTMLIMAGEELEMENT_LONGDESC : dsReturn=((ElementImpl *)impl)->getAttribute(ATTR_LONGDESC); *vp=STRING_TO_JSVAL (JS_NewStringCopyZ (cx,dsReturn.string())); break; case HTMLIMAGEELEMENT_USEMAP : dsReturn=((ElementImpl *)impl)->getAttribute(ATTR_USEMAP); *vp=STRING_TO_JSVAL (JS_NewStringCopyZ (cx,dsReturn.string())); break; case IMAGE_SRC : dsReturn=((ElementImpl *)impl)->getAttribute(ATTR_SRC); *vp=STRING_TO_JSVAL (JS_NewStringCopyZ (cx,dsReturn.string())); break; case IMAGE_BORDER : dsReturn=((ElementImpl *)impl)->getAttribute(ATTR_BORDER); *vp=STRING_TO_JSVAL (JS_NewStringCopyZ (cx,dsReturn.string())); break; case IMAGE_HEIGHT : dsReturn=((ElementImpl *)impl)->getAttribute(ATTR_HEIGHT); *vp=STRING_TO_JSVAL (JS_NewStringCopyZ (cx,dsReturn.string())); break; case IMAGE_HSPACE : dsReturn=((ElementImpl *)impl)->getAttribute(ATTR_HSPACE); *vp=STRING_TO_JSVAL (JS_NewStringCopyZ (cx,dsReturn.string())); break; case IMAGE_VSPACE : dsReturn=((ElementImpl *)impl)->getAttribute(ATTR_VSPACE); *vp=STRING_TO_JSVAL (JS_NewStringCopyZ (cx,dsReturn.string())); break; case IMAGE_WIDTH : dsReturn=((ElementImpl *)impl)->getAttribute(ATTR_WIDTH); *vp=STRING_TO_JSVAL (JS_NewStringCopyZ (cx,dsReturn.string())); break; } } return JS_TRUE;}static JSBool SetHTMLImageElementProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp){ myJSImagePrivate *mImagePrivate=(myJSImagePrivate *)JS_GetPrivate(cx,obj); HTMLImageElementImpl *impl; DOMString dsValue; // bool bValue; long int lValue; impl=(HTMLImageElementImpl *)mImagePrivate->CurNode; if(!impl)return JS_FALSE; JSString *jss; if (!(jss = JS_ValueToString (cx,*vp)))return JS_FALSE; dsValue = (const char*)JS_GetStringBytes (jss); if (JSVAL_IS_INT(id)) { switch (JSVAL_TO_INT(id)) { case HTMLIMAGEELEMENT_LOWSRC : //note:KDE not finished. break; case HTMLIMAGEELEMENT_NAME : ((ElementImpl *)impl)->setAttribute(ATTR_NAME,dsValue); break; case HTMLIMAGEELEMENT_ALIGN : ((ElementImpl *)impl)->setAttribute(ATTR_ALIGN,dsValue); break; case HTMLIMAGEELEMENT_ALT : ((ElementImpl *)impl)->setAttribute(ATTR_ALT,dsValue); break; case HTMLIMAGEELEMENT_ISMAP : ((ElementImpl *)impl)->setAttribute(ATTR_ISMAP,dsValue); break; case HTMLIMAGEELEMENT_LONGDESC : ((ElementImpl *)impl)->setAttribute(ATTR_LONGDESC,dsValue); break; case HTMLIMAGEELEMENT_USEMAP : ((ElementImpl *)impl)->setAttribute(ATTR_USEMAP,dsValue); break; case IMAGE_SRC : ((ElementImpl *)impl)->setAttribute(ATTR_SRC,dsValue); break; case IMAGE_BORDER : ((ElementImpl *)impl)->setAttribute(ATTR_BORDER,dsValue); break; case IMAGE_HEIGHT : ((ElementImpl *)impl)->setAttribute(ATTR_HEIGHT,dsValue); break; case IMAGE_HSPACE : ((ElementImpl *)impl)->setAttribute(ATTR_HSPACE,dsValue); break; case IMAGE_VSPACE : ((ElementImpl *)impl)->setAttribute(ATTR_VSPACE,dsValue); break; case IMAGE_WIDTH : ((ElementImpl *)impl)->setAttribute(ATTR_WIDTH,dsValue); break; } } return JS_TRUE;}static JSPropertySpec HTMLImageElementProperties[] ={ {"lowSrc", HTMLIMAGEELEMENT_LOWSRC, JSPROP_ENUMERATE}, {"name", HTMLIMAGEELEMENT_NAME, JSPROP_ENUMERATE}, {"align", HTMLIMAGEELEMENT_ALIGN, JSPROP_ENUMERATE}, {"alt", HTMLIMAGEELEMENT_ALT, JSPROP_ENUMERATE}, {"isImage", HTMLIMAGEELEMENT_ISMAP, JSPROP_ENUMERATE}, {"longDesc", HTMLIMAGEELEMENT_LONGDESC, JSPROP_ENUMERATE}, {"useImage", HTMLIMAGEELEMENT_USEMAP, JSPROP_ENUMERATE}, {"src", IMAGE_SRC, JSPROP_ENUMERATE}, {"border", IMAGE_BORDER, JSPROP_ENUMERATE}, {"height", IMAGE_HEIGHT, JSPROP_ENUMERATE}, {"hspace", IMAGE_HSPACE, JSPROP_ENUMERATE}, {"vspace", IMAGE_VSPACE, JSPROP_ENUMERATE}, {"width", IMAGE_WIDTH, JSPROP_ENUMERATE}, {0}};JSClass HTMLImageElementClass = { "HTMLImageElement", JSCLASS_HAS_PRIVATE , JS_PropertyStub, JS_PropertyStub, GetHTMLImageElementProperty, SetHTMLImageElementProperty, JS_EnumerateStub, JS_ResolveStub, JS_ConvertStub, JS_FinalizeStub };static JSFunctionSpec HTMLImageElementMethods[] = { {0}};JSObject* InitHTMLImageElementClass(JSContext *cx,JSObject *globalObj,JSObject *proto){ JSObject *obj; obj = JS_DefineObject (cx,globalObj, "HtmlImageElement", &HTMLImageElementClass,proto,JSPROP_ENUMERATE); JS_DefineProperties (cx,obj,HTMLImageElementProperties); JS_DefineFunctions (cx,obj,HTMLImageElementMethods); return obj;}JSObject* NewScriptHTMLImageElement(JSContext *cx,JSObject *proto,JSObject *parent,ElementImpl *eImpl){ JSObject *obj; JSObject *global = JS_GetGlobalObject(cx); jsval vp; if ((JS_TRUE == JS_LookupProperty(cx, global, "HtmlImageElement", &vp) && JSVAL_IS_OBJECT(vp))) obj=JS_NewObject(cx,&HTMLImageElementClass,JSVAL_TO_OBJECT(vp),NULL); else obj=InitHTMLImageElementClass(cx,JS_GetParent(cx,proto),proto); myJSImagePrivate *mImagePrivate=new myJSImagePrivate; mImagePrivate->CurNode=(ElementImpl*)eImpl; JS_SetPrivate(cx,obj,(void*)mImagePrivate); return obj;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -