18 #include "precompiled.h"
28 #define SET(obj, name, value) STMT(jsval v_ = ToJSVal(cx, (value)); JS_SetProperty(cx, (obj), (name), &v_))
32 template<> jsval ScriptInterface::ToJSVal<SDL_Event_>(JSContext* cx,
SDL_Event_ const& val)
38 #if SDL_VERSION_ATLEAST(2, 0, 0)
39 case SDL_WINDOWEVENT: typeName =
"windowevent";
break;
46 case SDL_KEYUP: typeName =
"keyup";
break;
50 case SDL_QUIT: typeName =
"quit";
break;
53 default: typeName =
"(unknown)";
break;
56 JSObject* obj = JS_NewObject(cx, NULL, NULL, NULL);
60 SET(obj,
"type", typeName);
64 #if !SDL_VERSION_ATLEAST(2, 0, 0)
67 SET(obj,
"gain", (
int)val.ev.active.gain);
68 SET(obj,
"state", (
int)val.ev.active.state);
78 JSObject* keysym = JS_NewObject(cx, NULL, NULL, NULL);
81 jsval keysymVal = OBJECT_TO_JSVAL(keysym);
82 JS_SetProperty(cx, obj,
"keysym", &keysymVal);
85 SET(keysym,
"sym", (
int)val.ev.key.keysym.sym);
87 if (val.ev.key.keysym.unicode)
89 std::wstring unicode(1, (
wchar_t)val.ev.key.keysym.unicode);
90 SET(keysym,
"unicode", unicode);
105 SET(obj,
"x", (
int)val.ev.motion.x);
106 SET(obj,
"y", (
int)val.ev.motion.y);
115 SET(obj,
"button", (
int)val.ev.button.button);
116 SET(obj,
"state", (
int)val.ev.button.state);
117 SET(obj,
"x", (
int)val.ev.button.x);
118 SET(obj,
"y", (
int)val.ev.button.y);
124 SET(obj,
"hotkey", static_cast<const char*>(val.ev.user.data1));
129 jsval rval = OBJECT_TO_JSVAL(obj);
134 template<> jsval ScriptInterface::ToJSVal<IGUIObject*>(JSContext*
UNUSED(cx),
IGUIObject*
const& val)
139 return OBJECT_TO_JSVAL(val->GetJSObject());
#define UNUSED(param)
mark a function parameter as unused and avoid the corresponding compiler warning. ...
#define SET(obj, name, value)
A trivial wrapper around a jsval.
Base settings, all objects possess these settings in their m_BaseSettings Instructions can be found i...