diff options
Diffstat (limited to 'Src/Wasabi/api/skin/widgets/pslider.h')
-rw-r--r-- | Src/Wasabi/api/skin/widgets/pslider.h | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/Src/Wasabi/api/skin/widgets/pslider.h b/Src/Wasabi/api/skin/widgets/pslider.h new file mode 100644 index 00000000..6ef52870 --- /dev/null +++ b/Src/Wasabi/api/skin/widgets/pslider.h @@ -0,0 +1,110 @@ +#ifndef _PSLIDER_H +#define _PSLIDER_H + +#include <api/wnd/wndclass/slider.h> +#include <api/script/objects/guiobj.h> +#include <api/skin/widgets.h> + +#define PSLIDER_PARENT SliderWnd + +class SliderScriptController : 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 *o); + + private: + + static function_descriptor_struct exportedFunction[]; + +}; + +extern SliderScriptController *sliderController; + + + +class PSliderWnd : public PSLIDER_PARENT { + +public: + + PSliderWnd(); + virtual ~PSliderWnd(); + + virtual int onSetPosition(); + virtual int onSetFinalPosition(); + virtual int onPostedPosition(int p); + virtual void lock(); + virtual void unlock(); + + virtual int setXuiParam(int _xuihandle, int attribid, const wchar_t *paramname, const wchar_t *strvalue); + virtual const wchar_t *vcpu_getClassName(); + virtual ScriptObjectController *vcpu_getController() { return sliderController; } + +/* virtual int getAutoHeight(); + virtual int getAutoWidth();*/ + + virtual int onInit(); + +#ifdef WASABI_COMPILE_CONFIG + virtual int onReloadConfig(); + void reloadConfig(); +#endif + + virtual int scriptDivisor() { return 1; } + + enum { + PSLIDER_SETBARLEFT=0, + PSLIDER_SETBARMIDDLE, + PSLIDER_SETBARRIGHT, + PSLIDER_SETTHUMB, + PSLIDER_SETDOWNTHUMB, + PSLIDER_SETHOVERTHUMB, + PSLIDER_SETORIENTATION, + PSLIDER_SETLOW, + PSLIDER_SETHIGH, + PSLIDER_SETHOTPOS, + PSLIDER_SETHOTRANGE, + PSLIDER_SETSTRETCHTHUMB, + PSLIDER_NUMPARAMS, + }; +protected: + /*static */void CreateXMLParameters(int master_handle); + +public: + static scriptVar script_setPosition(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar v); + static scriptVar script_getPosition(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_onSetPosition(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar p); + static scriptVar script_onPostedPosition(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar p); + static scriptVar script_onSetFinalPosition(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar p); + static scriptVar script_lock(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_unlock(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + + +private: + int xuihandle; + static XMLParamPair params[]; +}; + +class SliderXuiSvc : public svc_xuiObjectI { + +public: + SliderXuiSvc() {}; + virtual ~SliderXuiSvc() {}; + + static const char *getServiceName() { return "Slider xui object"; } + static const wchar_t *xuisvc_getXmlTag() { return L"Slider"; } + virtual int testTag(const wchar_t *xmltag) { return !WCSICMP(xmltag, L"Slider"); } + virtual GuiObject *instantiate(const wchar_t *xmltag, ifc_xmlreaderparams *params=NULL); + virtual void destroy(GuiObject *g); +}; + + +#endif |