Changeset View
Changeset View
Standalone View
Standalone View
ps/trunk/source/gui/scripting/JSInterface_IGUIObject.cpp
Show First 20 Lines • Show All 101 Lines • ▼ Show 20 Lines | if (parent) | ||||
vp.set(JS::ObjectValue(*parent->GetJSObject())); | vp.set(JS::ObjectValue(*parent->GetJSObject())); | ||||
else | else | ||||
vp.set(JS::NullValue()); | vp.set(JS::NullValue()); | ||||
return true; | return true; | ||||
} | } | ||||
else if (propName == "children") | else if (propName == "children") | ||||
{ | { | ||||
JS::RootedObject obj(cx, JS_NewArrayObject(cx, JS::HandleValueArray::empty())); | pScriptInterface->CreateArray(vp); | ||||
vp.setObject(*obj); | |||||
for (size_t i = 0; i < e->m_Children.size(); ++i) | for (size_t i = 0; i < e->m_Children.size(); ++i) | ||||
{ | pScriptInterface->SetPropertyInt(vp, i, e->m_Children[i]); | ||||
JS::RootedValue val(cx); | |||||
ScriptInterface::ToJSVal(cx, &val, e->m_Children[i]); | |||||
JS_SetElement(cx, obj, i, val); | |||||
} | |||||
return true; | return true; | ||||
} | } | ||||
else if (propName == "name") | else if (propName == "name") | ||||
{ | { | ||||
vp.set(JS::StringValue(JS_NewStringCopyZ(cx, e->GetName().c_str()))); | ScriptInterface::ToJSVal(cx, vp, e->GetName()); | ||||
return true; | return true; | ||||
} | } | ||||
else | else | ||||
{ | { | ||||
// Retrieve the setting's type (and make sure it actually exists) | // Retrieve the setting's type (and make sure it actually exists) | ||||
EGUISettingType Type; | EGUISettingType Type; | ||||
if (e->GetSettingType(propName, Type) != PSRETURN_OK) | if (e->GetSettingType(propName, Type) != PSRETURN_OK) | ||||
{ | { | ||||
▲ Show 20 Lines • Show All 603 Lines • ▼ Show 20 Lines | if (scrollbar) | ||||
width -= scrollbar_style_object->m_Width; | width -= scrollbar_style_object->m_Width; | ||||
} | } | ||||
} | } | ||||
float buffer_zone = 0.f; | float buffer_zone = 0.f; | ||||
GUI<float>::GetSetting(obj, "buffer_zone", buffer_zone); | GUI<float>::GetSetting(obj, "buffer_zone", buffer_zone); | ||||
SGUIText text = obj->GetGUI()->GenerateText(caption, font, width, buffer_zone, obj); | SGUIText text = obj->GetGUI()->GenerateText(caption, font, width, buffer_zone, obj); | ||||
JS::RootedValue objVal(cx, JS::ObjectValue(*JS_NewPlainObject(cx))); | JS::RootedValue objVal(cx); | ||||
try | try | ||||
{ | { | ||||
ScriptInterface* pScriptInterface = ScriptInterface::GetScriptInterfaceAndCBData(cx)->pScriptInterface; | ScriptInterface::GetScriptInterfaceAndCBData(cx)->pScriptInterface->CreateObject( | ||||
pScriptInterface->SetProperty(objVal, "width", text.m_Size.cx, false, true); | &objVal, | ||||
pScriptInterface->SetProperty(objVal, "height", text.m_Size.cy, false, true); | "width", text.m_Size.cx, | ||||
"height", text.m_Size.cy); | |||||
} | } | ||||
catch (PSERROR_Scripting_ConversionFailed&) | catch (PSERROR_Scripting_ConversionFailed&) | ||||
{ | { | ||||
debug_warn(L"Error creating size object!"); | debug_warn(L"Error creating size object!"); | ||||
return false; | return false; | ||||
} | } | ||||
rec.rval().set(objVal); | rec.rval().set(objVal); | ||||
Show All 9 Lines | bool JSI_IGUIObject::getComputedSize(JSContext* cx, uint UNUSED(argc), JS::Value* vp) | ||||
IGUIObject* e = (IGUIObject*)JS_GetInstancePrivate(cx, thisObj, &JSI_IGUIObject::JSI_class, NULL); | IGUIObject* e = (IGUIObject*)JS_GetInstancePrivate(cx, thisObj, &JSI_IGUIObject::JSI_class, NULL); | ||||
if (!e) | if (!e) | ||||
return false; | return false; | ||||
e->UpdateCachedSize(); | e->UpdateCachedSize(); | ||||
CRect size = e->m_CachedActualSize; | CRect size = e->m_CachedActualSize; | ||||
JS::RootedValue objVal(cx, JS::ObjectValue(*JS_NewPlainObject(cx))); | JS::RootedValue objVal(cx); | ||||
try | try | ||||
{ | { | ||||
ScriptInterface* pScriptInterface = ScriptInterface::GetScriptInterfaceAndCBData(cx)->pScriptInterface; | ScriptInterface::GetScriptInterfaceAndCBData(cx)->pScriptInterface->CreateObject( | ||||
pScriptInterface->SetProperty(objVal, "left", size.left, false, true); | &objVal, | ||||
pScriptInterface->SetProperty(objVal, "right", size.right, false, true); | "left", size.left, | ||||
pScriptInterface->SetProperty(objVal, "top", size.top, false, true); | "right", size.right, | ||||
pScriptInterface->SetProperty(objVal, "bottom", size.bottom, false, true); | "top", size.top, | ||||
"bottom", size.bottom); | |||||
} | } | ||||
catch (PSERROR_Scripting_ConversionFailed&) | catch (PSERROR_Scripting_ConversionFailed&) | ||||
{ | { | ||||
debug_warn(L"Error creating size object!"); | debug_warn(L"Error creating size object!"); | ||||
return false; | return false; | ||||
} | } | ||||
rec.rval().set(objVal); | rec.rval().set(objVal); | ||||
return true; | return true; | ||||
} | } |
Wildfire Games · Phabricator