diff options
author | Jean-Francois Mauguit <jfmauguit@mac.com> | 2024-09-24 09:03:25 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-24 09:03:25 -0400 |
commit | bab614c421ed7ae329d26bf028c4a3b1d2450f5a (patch) | |
tree | 12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/Wasabi/api/skin/widgets/xuipathpicker.cpp | |
parent | 4bde6044fddf053f31795b9eaccdd2a5a527d21f (diff) | |
parent | 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (diff) | |
download | winamp-bab614c421ed7ae329d26bf028c4a3b1d2450f5a.tar.gz |
Merge pull request #5 from WinampDesktop/community
Merge to main
Diffstat (limited to 'Src/Wasabi/api/skin/widgets/xuipathpicker.cpp')
-rw-r--r-- | Src/Wasabi/api/skin/widgets/xuipathpicker.cpp | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/Src/Wasabi/api/skin/widgets/xuipathpicker.cpp b/Src/Wasabi/api/skin/widgets/xuipathpicker.cpp new file mode 100644 index 00000000..45c2d27e --- /dev/null +++ b/Src/Wasabi/api/skin/widgets/xuipathpicker.cpp @@ -0,0 +1,73 @@ +#include <precomp.h> +#include "xuipathpicker.h" + +// ----------------------------------------------------------------------- +const wchar_t PathPickerXuiObjectStr[] = L"Wasabi:PathPicker"; +char PathPickerXuiSvcName[] = "Wasabi:PathPicker xui object"; + +// ----------------------------------------------------------------------- +ScriptPathPicker::ScriptPathPicker() { + getScriptObject()->vcpu_setInterface(pathPickerGuid, (void *)static_cast<PathPicker *>(this)); + getScriptObject()->vcpu_setClassName(L"PathPicker"); // this is the script class name + getScriptObject()->vcpu_setController(pathPickerController); +} + +// ----------------------------------------------------------------------- +ScriptPathPicker::~ScriptPathPicker() { +} + +// ----------------------------------------------------------------------- +// Script Object + +PathPickerScriptController _pathPickerController; +PathPickerScriptController *pathPickerController = &_pathPickerController; + +// -- Functions table ------------------------------------- +function_descriptor_struct PathPickerScriptController::exportedFunction[] = { + {L"getPath", 0, (void*)PathPickerScriptController::PathPicker_getPath}, + {L"onPathChanged", 1, (void*)PathPickerScriptController::PathPicker_onPathChanged}, +}; + +ScriptObject *PathPickerScriptController::instantiate() { + ScriptPathPicker *sddl = new ScriptPathPicker; + ASSERT(sddl != NULL); + return sddl->getScriptObject(); +} + +void PathPickerScriptController::destroy(ScriptObject *o) { + ScriptPathPicker *sddl= static_cast<ScriptPathPicker *>(o->vcpu_getInterface(pathPickerGuid)); + ASSERT(sddl != NULL); + delete sddl; +} + +void *PathPickerScriptController::encapsulate(ScriptObject *o) { + return NULL; // no encapsulation +} + +void PathPickerScriptController::deencapsulate(void *o) { +} + +int PathPickerScriptController::getNumFunctions() { + return sizeof(exportedFunction) / sizeof(function_descriptor_struct); +} + +const function_descriptor_struct *PathPickerScriptController::getExportedFunctions() { + return exportedFunction; +} + + +scriptVar PathPickerScriptController::PathPicker_getPath(SCRIPT_FUNCTION_PARAMS, ScriptObject *o) { + SCRIPT_FUNCTION_INIT + ScriptPathPicker *sddl = static_cast<ScriptPathPicker*>(o->vcpu_getInterface(pathPickerGuid)); + const wchar_t *p=L""; + if (sddl) p = sddl->getPath(); + return MAKE_SCRIPT_STRING(p); +} + +// PathPickerScriptController::PathPicker_onNewPath(SCRIPT_CALL, getScriptObject(), MAKE_SCRIPT_STRING(newpath)); +scriptVar PathPickerScriptController::PathPicker_onPathChanged(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar newpath) { + SCRIPT_FUNCTION_INIT; + PROCESS_HOOKS1(o, pathPickerController, newpath); + SCRIPT_FUNCTION_CHECKABORTEVENT; + SCRIPT_EXEC_EVENT1(o, newpath); +} |