mGNCS API Reference  v1.5.0
A new control set and a new framework for MiniGUI apps
manimate.h
Go to the documentation of this file.
1 //
3 // IMPORTANT NOTICE
4 //
5 // The following open source license statement does not apply to any
6 // entity in the Exception List published by FMSoft.
7 //
8 // For more information, please visit:
9 //
10 // https://www.fmsoft.cn/exception-list
11 //
13 
50 #ifdef _MGNCSCTRL_ANIMATE
51 
52 #ifndef _MGUI_NCSCTRL_ANIMATESTATIC_H
53 #define _MGUI_NCSCTRL_ANIMATESTATIC_H
54 
55 
56 #ifdef __cplusplus
57 extern "C" {
58 #endif /* __cplusplus */
59 
60 #define NCSCTRL_ANIMATE NCSCLASSNAME("animate")
61 
62 typedef struct _mAnimate mAnimate;
63 typedef struct _mAnimateClass mAnimateClass;
64 typedef struct _mAnimateRenderer mAnimateRenderer;
65 
66 
67 #define mAnimateHeader(clsName) \
68  mStaticHeader(clsName) \
69  unsigned int state:4; \
70  unsigned int paint_flag; \
71  unsigned int interval:24; \
72  char *path; \
73  HDC mem_dc;
74 
75 struct _mAnimate
76 {
77  mAnimateHeader(mAnimate)
78 };
79 
80 #define mAnimateClassHeader(clsName, parentClass) \
81  mStaticClassHeader(clsName, parentClass) \
82  BOOL (*play)(clsName*); \
83  BOOL (*pauseResume)(clsName*); \
84  BOOL (*stop)(clsName*);
85 
86 struct _mAnimateClass
87 {
88  mAnimateClassHeader(mAnimate, mStatic)
89 };
90 
91 #define mAnimateRendererHeader(clsName, parentClass) \
92  mStaticRendererHeader(clsName, parentClass)
93 
94 struct _mAnimateRenderer {
95  mAnimateRendererHeader(mAnimate, mStatic)
96 };
97 
98 MGNCS_EXPORT extern mAnimateClass g_stmAnimateCls;
99 
100 enum mAnimateProp {
101  NCSP_ANMT_GIFFILE = NCSP_STATIC_MAX + 1,
102  NCSP_ANMT_DIR,
103  NCSP_ANMT_INTERVAL,
104  NCSP_ANMT_MEM, //gif memory
105  NCSP_ANMT_BMPARRAY, //bmp array end by NULL, e.g PBITMAP bmps={&bmp1, &bmp2, ..., NULL}
106  NCSP_ANMT_AFRAME, //set the animate frame object
107  NCSP_ANMT_MAX,
108 };
109 
110 #define NCSS_ANMT_SHIFT (NCSS_STATIC_SHIFT + 1)
111 
112 #define NCSS_ANMT_AUTOLOOP (0x1<<NCSS_ANMT_SHIFT)
113 
114 #define NCSS_ANMT_SCALE (0x2<<NCSS_ANMT_SHIFT)
115 
116 #define NCSS_ANMT_AUTOFIT (0x4<<NCSS_ANMT_SHIFT)
117 
118 #define NCSS_ANMT_AUTOPLAY (0x8<<NCSS_ANMT_SHIFT)
119 
120 enum enumAnimateNotify{
121  NCSN_ANMT_MAX = NCSN_STATIC_MAX + 1
122 };
123 
124 #define ANIM_PLAY 0x01
125 #define ANIM_PAUSE 0x02
126 #define ANIM_STOP 0x04
127 #define ANIM_STARTPLAY 0xF112
128 #define ANIM_PAUSE_RESUME 0xF113
129 #define ANIM_STOPPLAY 0xF114
130 
131 #define ncsAnimateStart(self) ((self)?_c(self)->play(self):FALSE)
132 
133 #define ncsAnimatePauseResume(self) ((self)?_c(self)->pauseResume(self):FALSE)
134 
135 #define ncsAnimateStop(self) ((self)?_c(self)->stop(self):FALSE)
136 
137 #ifdef __cplusplus
138 }
139 #endif /* __cplusplus */
140 
141 #endif
142 #endif //_MGNCSCTRL_ANIMATE
mStatic
Static class, derived from mWidget.