diff options
Diffstat (limited to 'Src/Wasabi/api/skin/widgets/animlayer.h')
-rw-r--r-- | Src/Wasabi/api/skin/widgets/animlayer.h | 214 |
1 files changed, 214 insertions, 0 deletions
diff --git a/Src/Wasabi/api/skin/widgets/animlayer.h b/Src/Wasabi/api/skin/widgets/animlayer.h new file mode 100644 index 00000000..94c45606 --- /dev/null +++ b/Src/Wasabi/api/skin/widgets/animlayer.h @@ -0,0 +1,214 @@ +#ifndef _ANIMLAYER_H +#define _ANIMLAYER_H + +#include "layer.h" + +// {6B64CD27-5A26-4c4b-8C59-E6A70CF6493A} +static const GUID animLayerGuid = +{ 0x6b64cd27, 0x5a26, 0x4c4b, { 0x8c, 0x59, 0xe6, 0xa7, 0xc, 0xf6, 0x49, 0x3a } }; + +#define ANIMLAYER_SCRIPTPARENT Layer + +class AnimLayerScriptController : public LayerScriptController { + public: + + virtual const wchar_t *getClassName(); + virtual const wchar_t *getAncestorClassName(); + virtual ScriptObjectController *getAncestorController() { return layerController; } + 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 AnimLayerScriptController *animlayerController; + + +#ifndef _NOSTUDIO + +#define TIMER_ANIM 872 + +#define ANIM_STOPPED 0 +#define ANIM_PLAYING 1 +#define ANIM_PAUSED 2 + +#define ANIMLAYER_PARENT Layer + +#define ANIM_UNKNOWN 0 +#define ANIM_VERT 1 +#define ANIM_HORZ 2 +#define ANIM_MULTI 3 + +class AnimatedLayer : public ANIMLAYER_SCRIPTPARENT { +public: + AnimatedLayer(); + virtual ~AnimatedLayer(); + + virtual int onInit(); + virtual int getHeight(); + virtual int getWidth(); + virtual void timerCallback(int id); + virtual int getSourceOffsetY(); + virtual int getSourceOffsetX(); + virtual void setAutoPlay(int p); + virtual int setXuiParam(int _xuihandle, int xmlattributeid, const wchar_t *xmlattributename, const wchar_t *value); + + virtual void setHeight(int h, int selfset=0); + virtual void setWidth(int w, int selfset=0); + virtual SkinBitmap *getBitmap(); + + void play(); + void pause(); + void stop(); + int getLength(); + void setStartFrame(int s); + void setEndFrame(int e); + void setAutoReplay(int r); + int getStartFrame(); + int getEndFrame(); + int isPlaying(); + int isPaused(); + int isStopped(); + int getSpeed(); + int getDirection(); + void gotoFrame(int n); + void setSpeed(int s); + int getAutoReplay(); + int getCurFrame(); + void setRealtime(int r); + + virtual api_region *getBitmapRegion(); + SkinBitmap *getElementBitmap(int n); + virtual void makeRegion(); + virtual void deleteRegion(); + void reloadMultipleElements(); + virtual void setElementFrames(int n); + virtual void setBitmap(const wchar_t *name); + + virtual int onPaint(Canvas *canvas); + +protected: + /*static */void CreateXMLParameters(int master_handle); + enum { + ANIMLAYER_AUTOREPLAY=0, + ANIMLAYER_AUTOPLAY, + ANIMLAYER_SPEED, + ANIMLAYER_FRAMEHEIGHT, + ANIMLAYER_FRAMEWIDTH, + ANIMLAYER_REALTIME, + ANIMLAYER_ELEMENTFRAMES, + ANIMLAYER_START, + ANIMLAYER_END, + ANIMLAYER_DEBUG, + }; + +private: + int frameHeight, frameWidth; + int startframe; + int endframe; + int status; + int curframe; + int autoreplay; + int speed; + int timerset; + int realtime; + int style; + int autoplay; + PtrList<SkinBitmap> bitmap_elements; + int multiple_elements_frames; + int debug; + int xuihandle; + + void _invalidate(); + + void stopTimer(); + void startTimer(); + + PtrList<RegionI> regionlist; + int oldstyle; + static XMLParamPair params[]; + +// FG> +// -- SCRIPT ----------------------------------------------------- + +public: + + // virtuals + + virtual void script_play(); + virtual void script_pause(); + virtual void script_stop(); + virtual int script_getLength(); + virtual void script_setStartFrame(int s); + virtual void script_setEndFrame(int e); + virtual void script_setAutoReplay(int r); + virtual void script_setSpeed(int a); + virtual int script_getStartFrame(); + virtual int script_getEndFrame(); + virtual int script_getSpeed(); + virtual int script_getDirection(); + virtual int script_getAutoReplay(); + virtual int script_isPlaying(); + virtual int script_isStopped(); + virtual int script_isPaused(); + //virtual void script_gotoFrame(int f); + virtual void script_onFrame(int n); + virtual void script_onStop(); + virtual void script_onPlay(); + virtual void script_onPause(); + virtual void script_onResume(); + virtual int script_getCurFrame(); + virtual void script_setRealtime(int r); + + static scriptVar script_vcpu_setSpeed(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar s); + static scriptVar script_vcpu_gotoFrame(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar f); + static scriptVar script_vcpu_setStartFrame(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar s); + static scriptVar script_vcpu_setEndFrame(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar e); + static scriptVar script_vcpu_setAutoReplay(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar ar); + static scriptVar script_vcpu_play(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_vcpu_pause(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_vcpu_stop(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + + static scriptVar script_vcpu_isPlaying(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_vcpu_isPaused(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_vcpu_isStopped(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_vcpu_getStartFrame(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_vcpu_getEndFrame(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_vcpu_getLength(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_vcpu_getDirection(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_vcpu_getAutoReplay(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_vcpu_getSpeed(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_vcpu_getCurFrame(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_vcpu_setRealtime(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar r); + static scriptVar script_vcpu_onPlay(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_vcpu_onStop(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_vcpu_onPause(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_vcpu_onResume(SCRIPT_FUNCTION_PARAMS, ScriptObject *o); + static scriptVar script_vcpu_onFrame(SCRIPT_FUNCTION_PARAMS, ScriptObject *o, scriptVar f); + + +#else +class AnimatedLayer : public ANIMLAYER_SCRIPTPARENT { + +public: + +#endif + +// INSERT_SCRIPT_OBJECT_CONTROL + +}; + +extern const wchar_t animLayerXuiObjectStr[]; +extern char animLayerXuiSvcName[]; +class AnimLayerXuiSvc : public XuiObjectSvc<AnimatedLayer, animLayerXuiObjectStr, animLayerXuiSvcName> {}; + + +#endif |