diff --git a/source/gui/scripting/GuiScriptConversions.cpp b/source/gui/scripting/GuiScriptConversions.cpp index ca7bf2b37a..1b31bf86d7 100644 --- a/source/gui/scripting/GuiScriptConversions.cpp +++ b/source/gui/scripting/GuiScriptConversions.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2017 Wildfire Games. +/* Copyright (C) 2019 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -19,6 +19,8 @@ #include "scriptinterface/ScriptConversions.h" +#include "gui/CGUIList.h" +#include "gui/CGUISeries.h" #include "gui/IGUIObject.h" #include "lib/external_libraries/libsdl.h" #include "ps/Hotkey.h" @@ -138,8 +140,26 @@ template<> bool ScriptInterface::FromJSVal(JSContext* cx, JS::Handle return true; } -// define some vectors JSVAL_VECTOR(CVector2D) JSVAL_VECTOR(std::vector) JSVAL_VECTOR(CGUIString) +template<> void ScriptInterface::ToJSVal(JSContext* cx, JS::MutableHandleValue ret, const CGUIList& val) +{ + ToJSVal(cx, ret, val.m_Items); +} + +template<> bool ScriptInterface::FromJSVal(JSContext* cx, JS::HandleValue v, CGUIList& out) +{ + return FromJSVal(cx, v, out.m_Items); +} + +template<> void ScriptInterface::ToJSVal(JSContext* cx, JS::MutableHandleValue ret, const CGUISeries& val) +{ + ToJSVal(cx, ret, val.m_Series); +} + +template<> bool ScriptInterface::FromJSVal(JSContext* cx, JS::HandleValue v, CGUISeries& out) +{ + return FromJSVal(cx, v, out.m_Series); +} diff --git a/source/gui/scripting/JSInterface_IGUIObject.cpp b/source/gui/scripting/JSInterface_IGUIObject.cpp index 5af902d54f..4d2536e2f3 100644 --- a/source/gui/scripting/JSInterface_IGUIObject.cpp +++ b/source/gui/scripting/JSInterface_IGUIObject.cpp @@ -269,7 +269,7 @@ bool JSI_IGUIObject::getProperty(JSContext* cx, JS::HandleObject obj, JS::Handle { CGUIList value; GUI::GetSetting(e, propName, value); - ScriptInterface::ToJSVal(cx, vp, value.m_Items); + ScriptInterface::ToJSVal(cx, vp, value); break; } @@ -277,7 +277,7 @@ bool JSI_IGUIObject::getProperty(JSContext* cx, JS::HandleObject obj, JS::Handle { CGUISeries value; GUI::GetSetting(e, propName, value); - ScriptInterface::ToJSVal(cx, vp, value.m_Series); + ScriptInterface::ToJSVal(cx, vp, value); break; } @@ -547,7 +547,7 @@ bool JSI_IGUIObject::setProperty(JSContext* cx, JS::HandleObject obj, JS::Handle case GUIST_CGUIList: { CGUIList list; - if (ScriptInterface::FromJSVal(cx, vp, list.m_Items)) + if (ScriptInterface::FromJSVal(cx, vp, list)) GUI::SetSetting(e, propName, list); else { @@ -560,7 +560,7 @@ bool JSI_IGUIObject::setProperty(JSContext* cx, JS::HandleObject obj, JS::Handle case GUIST_CGUISeries: { CGUISeries series; - if (ScriptInterface::FromJSVal(cx, vp, series.m_Series)) + if (ScriptInterface::FromJSVal(cx, vp, series)) GUI::SetSetting(e, propName, series); else {