diff options
Diffstat (limited to 'Src/Wasabi/api/skin/widgets/xuistatus.cpp')
-rw-r--r-- | Src/Wasabi/api/skin/widgets/xuistatus.cpp | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/Src/Wasabi/api/skin/widgets/xuistatus.cpp b/Src/Wasabi/api/skin/widgets/xuistatus.cpp new file mode 100644 index 00000000..efc10ddd --- /dev/null +++ b/Src/Wasabi/api/skin/widgets/xuistatus.cpp @@ -0,0 +1,98 @@ +#include <precomp.h> +#include "xuistatus.h" + +const wchar_t StatusXuiObjectStr[] = L"LayoutStatus"; // This is the xml tag +char StatusXuiSvcName[] = "Status xui object"; + +LayoutStatusController _layoutStatusController; +LayoutStatusController *layoutStatusController = &_layoutStatusController; + + +XMLParamPair XuiStatus::params[] = { + {EXCLUDE, L"EXCLUDE"}, + {INCLUDE, L"INCLUDEONLY"}, + }; + +XuiStatus::XuiStatus() { + getScriptObject()->vcpu_setInterface(layoutStatusGuid, (void *)static_cast<XuiStatus *>(this)); + getScriptObject()->vcpu_setClassName(L"LayoutStatus"); // this is the script class name + getScriptObject()->vcpu_setController(layoutStatusController); + + myxuihandle = newXuiHandle(); +CreateXMLParameters(myxuihandle); +} + +void XuiStatus::CreateXMLParameters(int master_handle) +{ + //XUISTATUS_PARENT::CreateXMLParameters(master_handle); + int numParams = sizeof(params) / sizeof(params[0]); + hintNumberOfParams(myxuihandle, numParams); + for (int i = 0;i < numParams;i++) + addParam(myxuihandle, params[i], XUI_ATTRIBUTE_IMPLIED); +} + +int XuiStatus::setXuiParam(int xuihandle, int xmlattributeid, const wchar_t *xmlattributename, const wchar_t *value) { + if (xuihandle != myxuihandle) + return XUISTATUS_PARENT::setXuiParam(xuihandle, xmlattributeid, xmlattributename, value); + switch (xmlattributeid) { + case EXCLUDE: + setExclude(value); + break; + case INCLUDE: + setIncludeOnly(value); + break; + default: + return 0; + } + return 1; +} + +// ----------------------------------------------------------------------- +void XuiStatus::callme(const wchar_t *str) +{ + fakeButtonPush(str); +} + +// ----------------------------------------------------------------------- +// Script Object + +// -- Functions table ------------------------------------- +function_descriptor_struct LayoutStatusController::exportedFunction[] = { + {L"callme", 1, (void*)LayoutStatusController::layoutstatus_callme }, +}; + +ScriptObject *LayoutStatusController::instantiate() { + XuiStatus *xs = new XuiStatus; + ASSERT(xs != NULL); + return xs->getScriptObject(); +} + +void LayoutStatusController::destroy(ScriptObject *o) { + XuiStatus *xs = static_cast<XuiStatus *>(o->vcpu_getInterface(layoutStatusGuid)); + ASSERT(xs!= NULL); + delete xs; +} + +void *LayoutStatusController::encapsulate(ScriptObject *o) { + return NULL; // no encapsulation for layoutstatus yet +} + +void LayoutStatusController::deencapsulate(void *o) { +} + +int LayoutStatusController::getNumFunctions() { + return sizeof(exportedFunction) / sizeof(function_descriptor_struct); +} + +const function_descriptor_struct *LayoutStatusController::getExportedFunctions() { + return exportedFunction; +} + + +scriptVar LayoutStatusController::layoutstatus_callme(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar str) { + SCRIPT_FUNCTION_INIT + XuiStatus *xs = static_cast<XuiStatus *>(o->vcpu_getInterface(layoutStatusGuid)); + if (xs) xs->callme(GET_SCRIPT_STRING(str)); + RETURN_SCRIPT_VOID; +} + |