aboutsummaryrefslogtreecommitdiff
path: root/Src/Wasabi/api/skin/widgets/animlayer.h
diff options
context:
space:
mode:
Diffstat (limited to 'Src/Wasabi/api/skin/widgets/animlayer.h')
-rw-r--r--Src/Wasabi/api/skin/widgets/animlayer.h214
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