diff options
author | Jef <jef@targetspot.com> | 2024-09-24 08:54:57 -0400 |
---|---|---|
committer | Jef <jef@targetspot.com> | 2024-09-24 08:54:57 -0400 |
commit | 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (patch) | |
tree | 12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/Wasabi/api/script/objects/compoobj.h | |
parent | 537bcbc86291b32fc04ae4133ce4d7cac8ebe9a7 (diff) | |
download | winamp-20d28e80a5c861a9d5f449ea911ab75b4f37ad0d.tar.gz |
Initial community commit
Diffstat (limited to 'Src/Wasabi/api/script/objects/compoobj.h')
-rw-r--r-- | Src/Wasabi/api/script/objects/compoobj.h | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/Src/Wasabi/api/script/objects/compoobj.h b/Src/Wasabi/api/script/objects/compoobj.h new file mode 100644 index 00000000..6e18f84b --- /dev/null +++ b/Src/Wasabi/api/script/objects/compoobj.h @@ -0,0 +1,119 @@ +#ifndef _COMPONENTOBJ_H +#define _COMPONENTOBJ_H + +#include <api/script/script.h> +#include <api/script/scriptobj.h> +#include <api/wnd/wndclass/guiobjwnd.h> +#include <api/script/objects/guiobj.h> + +class SMap; +class SRegion; +class Container; +class Layout; +class CompWnd; + +// {403ABCC0-6F22-4bd6-8BA4-10C829932547} +static const GUID componentObjectGuid = +{ 0x403abcc0, 0x6f22, 0x4bd6, { 0x8b, 0xa4, 0x10, 0xc8, 0x29, 0x93, 0x25, 0x47 } }; + +#define COMPONENTOBJECT_PARENT GuiObjectWnd + +class CompoObjScriptController : public GuiObjectScriptController { + public: + + virtual const wchar_t *getClassName(); + virtual const wchar_t *getAncestorClassName(); + virtual ScriptObjectController *getAncestorController() { return guiController; } + virtual int getNumFunctions(); + virtual const function_descriptor_struct *getExportedFunctions(); + virtual GUID getClassGuid(); + virtual ScriptObject *instantiate(); + virtual void destroy(ScriptObject *o); + virtual void *encapsulate(ScriptObject *o); + virtual void deencapsulate(void *); + + private: + + static function_descriptor_struct exportedFunction[]; + +}; + +extern CompoObjScriptController *compoController; + + +#ifndef _NOSTUDIO + +#include <api/wnd/virtualwnd.h> + +class ComponentObject : public COMPONENTOBJECT_PARENT { +public: + ComponentObject(); + virtual ~ComponentObject(); + + virtual int setXmlParam(const wchar_t *name, const wchar_t *value); + + virtual int onResize(); + virtual void onSetVisible(int s); + virtual int handleRatio(); + + void deniedComponentCompWnd(CompWnd *c, GUID g); + void grantedComponentCompWnd(CompWnd *c, GUID g); + int wantGUID(GUID *g); + + void onReleaseComponent(); + void onGetComponent(GUID g); + + void onBeforeGetWac(GUID g, CompWnd *c); + void onBeforeGiveUpWac(GUID g, CompWnd *c); + + void setGUID(GUID g); + void setCompGUID(GUID g); + GUID getGUID(void); + int getAutoClose(); + void setAcceptWac(int a); + int getAnimatedRects() { return !noanimrects; } + virtual int getPreferences(int what); + + virtual void script_resetRegion(); + virtual void script_setRegionFromMap(SMap *map, int byte, int inv); + virtual void script_setRegion(SRegion *r); + virtual int handleDesktopAlpha(); + virtual int handleTransparency(); + + // VCPU + static scriptVar script_vcpu_getGUID(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_vcpu_getWac(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_vcpu_onShow(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_vcpu_onHide(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_vcpu_onGetWac(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar wac); + static scriptVar script_vcpu_onGiveUpWac(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar wac); + static scriptVar script_vcpu_setRegionFromMap(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar map, scriptVar byte, scriptVar inv); + static scriptVar script_vcpu_setRegion(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar r); + static scriptVar script_vcpu_setAcceptWac(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar on); + // End VCPU + +private: + GUID myGUID; + GUID myCompGuid; + + int deleting; + + CompWnd *compwnd; + int noshowcmdbar; + int noshowbtnbar; + + api_region *my_region_clone; + int autoopen, autoclose; + int accept; + int denyDesktopAlpha; + int denyTransparency; + int noanimrects; + +#else +class ComponentObject : public COMPONENTOBJECT_SCRIPTPARENT { +#endif + +}; + + +#endif |