Changeset View
Changeset View
Standalone View
Standalone View
source/gui/ObjectTypes/CText.cpp
Show All 16 Lines | |||||
#include "precompiled.h" | #include "precompiled.h" | ||||
#include "CText.h" | #include "CText.h" | ||||
#include "gui/CGUI.h" | #include "gui/CGUI.h" | ||||
#include "gui/CGUIScrollBarVertical.h" | #include "gui/CGUIScrollBarVertical.h" | ||||
#include "gui/CGUIText.h" | #include "gui/CGUIText.h" | ||||
#include "gui/Scripting/JSInterface_GUIProxy.h" | |||||
#include "scriptinterface/ScriptInterface.h" | #include "scriptinterface/ScriptInterface.h" | ||||
CText::CText(CGUI& pGUI) | CText::CText(CGUI& pGUI) | ||||
: IGUIObject(pGUI), | : IGUIObject(pGUI), | ||||
IGUIScrollBarOwner(*static_cast<IGUIObject*>(this)), | IGUIScrollBarOwner(*static_cast<IGUIObject*>(this)), | ||||
IGUITextOwner(*static_cast<IGUIObject*>(this)), | IGUITextOwner(*static_cast<IGUIObject*>(this)), | ||||
m_BufferZone(), | m_BufferZone(), | ||||
m_Caption(), | m_Caption(), | ||||
▲ Show 20 Lines • Show All 214 Lines • ▼ Show 20 Lines | for (const CGUIText::SSpriteCall& spritecall : guitext.GetSpriteCalls()) | ||||
} | } | ||||
return true; | return true; | ||||
} | } | ||||
return false; | return false; | ||||
} | } | ||||
void CText::RegisterScriptFunctions() | |||||
{ | |||||
ScriptRequest rq(m_pGUI.GetScriptInterface()); | |||||
JS_DefineFunctions(rq.cx, m_JSObject, CText::JSI_methods); | |||||
} | |||||
JSFunctionSpec CText::JSI_methods[] = | void CText::CreateJSObject() | ||||
{ | { | ||||
JS_FN("getTextSize", CText::GetTextSize, 0, 0), | ScriptRequest rq(m_pGUI.GetScriptInterface()); | ||||
JS_FS_END | |||||
}; | |||||
bool CText::GetTextSize(JSContext* cx, uint argc, JS::Value* vp) | js::ProxyOptions options; | ||||
{ | options.setClass(&JSI_GUIProxy<IGUIObject>::ClassDefinition()); | ||||
JS::CallArgs args = JS::CallArgsFromVp(argc, vp); | |||||
ScriptRequest rq(*ScriptInterface::GetScriptInterfaceAndCBData(cx)->pScriptInterface); | JS::RootedValue cppObj(rq.cx); | ||||
CText* thisObj = ScriptInterface::GetPrivate<CText>(rq, args, &JSI_IGUIObject::JSI_class); | m_JSObject.init(rq.cx, js::NewProxyObject(rq.cx, &JSI_GUIProxy<CText>::Singleton(), cppObj, nullptr, options)); | ||||
if (!thisObj) | JS_SetPrivate(m_JSObject.get(), this); | ||||
{ | |||||
ScriptException::Raise(rq, "This is not a CText object!"); | |||||
return false; | |||||
} | } | ||||
thisObj->UpdateText(); | bool CText::getTextSize(ScriptInterface& scriptInterface, JS::MutableHandleValue ret) | ||||
{ | |||||
ScriptInterface::ToJSVal(rq, args.rval(), thisObj->m_GeneratedTexts[0].GetSize()); | ScriptRequest rq(scriptInterface); | ||||
UpdateText(); | |||||
ScriptInterface::ToJSVal(rq, ret, m_GeneratedTexts[0].GetSize()); | |||||
return true; | return true; | ||||
} | } |
Wildfire Games · Phabricator