#ifndef _PSLIDER_H #define _PSLIDER_H #include #include #include #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