soui 5.0.0.1
Soui5 Doc
 
Loading...
Searching...
No Matches
SValueAnimator-i.h
1#ifndef __SVALUEANIMATOR_I__H__
2#define __SVALUEANIMATOR_I__H__
3#include <interface/SAnimation-i.h>
4#include <interface/STimelineHandler-i.h>
5
6SNSBEGIN
7
8typedef struct IValueAnimator IValueAnimator;
9
10#undef INTERFACE
11#define INTERFACE IAnimatorUpdateListener
12DECLARE_INTERFACE(IAnimatorUpdateListener)
13{
14 /**
15 * @brief 动画更新时调用
16 * @param pAnimator - 动画指针
17 * @return void
18 */
19 STDMETHOD_(void, onAnimationUpdate)(THIS_ IValueAnimator * pAnimator) PURE;
20};
21
22#undef INTERFACE
23#define INTERFACE IAnimatorListener
24DECLARE_INTERFACE(IAnimatorListener)
25{
26 /**
27 * @brief 动画开始时调用
28 * @param pAnimator - 动画指针
29 * @return void
30 */
31 STDMETHOD_(void, onAnimationStart)(THIS_ IValueAnimator * pAnimator) PURE;
32
33 /**
34 * @brief 动画结束时调用(不适用于无限重复的动画)
35 * @param pAnimator - 动画指针
36 * @return void
37 */
38 STDMETHOD_(void, onAnimationEnd)(THIS_ IValueAnimator * pAnimator) PURE;
39
40 /**
41 * @brief 动画重复时调用
42 * @param pAnimator - 动画指针
43 * @return void
44 */
45 STDMETHOD_(void, onAnimationRepeat)(THIS_ IValueAnimator * pAnimator) PURE;
46};
47
48#undef INTERFACE
49#define INTERFACE IValueAnimator
50DECLARE_INTERFACE_(IValueAnimator, IObject)
51{
52 DEF_OBJ_BASE(IValueAnimator, ValueAnimator)
53#include <interface/SobjectApi.h>
54
55 /**
56 * @brief 设置动画时长
57 * @param duration - 动画时长(毫秒)
58 * @return void
59 */
60 STDMETHOD_(void, setDuration)(THIS_ long duration) PURE;
61
62 /**
63 * @brief 获取动画时长
64 * @return long - 动画时长(毫秒)
65 */
66 STDMETHOD_(long, getDuration)(CTHIS) SCONST PURE;
67
68 /**
69 * @brief 获取动画总时长
70 * @return long - 动画总时长(毫秒)
71 */
72 STDMETHOD_(long, getTotalDuration)(CTHIS) SCONST PURE;
73
74 /**
75 * @brief 设置动画当前播放时间
76 * @param playTime - 播放时间(毫秒)
77 * @return void
78 */
79 STDMETHOD_(void, setCurrentPlayTime)(THIS_ long playTime) PURE;
80
81 /**
82 * @brief 设置动画当前播放进度
83 * @param fraction - 播放进度(0到1之间)
84 * @return void
85 */
86 STDMETHOD_(void, setCurrentFraction)(THIS_ float fraction) PURE;
87
88 /**
89 * @brief 获取动画当前播放时间
90 * @return long - 当前播放时间(毫秒)
91 */
92 STDMETHOD_(long, getCurrentPlayTime)(THIS) PURE;
93
94 /**
95 * @brief 获取动画开始延迟时间
96 * @return long - 开始延迟时间(毫秒)
97 */
98 STDMETHOD_(long, getStartDelay)(CTHIS) SCONST PURE;
99
100 /**
101 * @brief 设置动画开始延迟时间
102 * @param startDelay - 开始延迟时间(毫秒)
103 * @return void
104 */
105 STDMETHOD_(void, setStartDelay)(THIS_ long startDelay) PURE;
106
107 /**
108 * @brief 设置动画重复次数
109 * @param value - 重复次数
110 * @return void
111 */
112 STDMETHOD_(void, setRepeatCount)(THIS_ int value) PURE;
113
114 /**
115 * @brief 获取动画重复次数
116 * @return int - 重复次数
117 */
118 STDMETHOD_(int, getRepeatCount)(CTHIS) SCONST PURE;
119
120 /**
121 * @brief 设置动画重复模式
122 * @param value - 重复模式(RESTART或REVERSE)
123 * @return void
124 */
125 STDMETHOD_(void, setRepeatMode)(THIS_ RepeatMode value) PURE;
126
127 /**
128 * @brief 获取动画重复模式
129 * @return RepeatMode - 重复模式(RESTART或REVERSE)
130 */
131 STDMETHOD_(RepeatMode, getRepeatMode)(CTHIS) SCONST PURE;
132
133 /**
134 * @brief 添加动画更新监听器
135 * @param listener - 监听器指针
136 * @return void
137 */
138 STDMETHOD_(void, addUpdateListener)(THIS_ IAnimatorUpdateListener * listener) PURE;
139
140 /**
141 * @brief 移除所有动画更新监听器
142 * @return void
143 */
144 STDMETHOD_(void, removeAllUpdateListeners)(THIS) PURE;
145
146 /**
147 * @brief 移除动画更新监听器
148 * @param listener - 监听器指针
149 * @return void
150 */
151 STDMETHOD_(void, removeUpdateListener)(THIS_ IAnimatorUpdateListener * listener) PURE;
152
153 /**
154 * @brief 设置时间插值器
155 * @param value - 插值器指针
156 * @return void
157 */
158 STDMETHOD_(void, setInterpolator)(THIS_ IInterpolator * value) PURE;
159
160 /**
161 * @brief 获取时间插值器
162 * @return IInterpolator* - 插值器指针
163 */
164 STDMETHOD_(IInterpolator *, getInterpolator)(CTHIS) SCONST PURE;
165
166 /**
167 * @brief 添加动画监听器
168 * @param p - 监听器指针
169 * @return void
170 */
171 STDMETHOD_(void, addListener)(THIS_ IAnimatorListener * p) PURE;
172
173 /**
174 * @brief 移除动画监听器
175 * @param p - 监听器指针
176 * @return void
177 */
178 STDMETHOD_(void, removeListener)(THIS_ IAnimatorListener * p) PURE;
179
180 /**
181 * @brief 开始动画
182 * @param pContainer - 时间线管理器指针
183 * @return void
184 */
185 STDMETHOD_(void, start)(THIS_ ITimelineHandlersMgr * pContainer) PURE;
186
187 /**
188 * @brief 结束动画
189 * @return void
190 */
191 STDMETHOD_(void, end)(THIS) PURE;
192
193 /**
194 * @brief 检查动画是否正在运行
195 * @return BOOL - 正在运行返回TRUE,否则返回FALSE
196 */
197 STDMETHOD_(BOOL, isRunning)(CTHIS) SCONST PURE;
198
199 /**
200 * @brief 检查动画是否已启动
201 * @return BOOL - 已启动返回TRUE,否则返回FALSE
202 */
203 STDMETHOD_(BOOL, isStarted)(CTHIS) SCONST PURE;
204
205 /**
206 * @brief 反向播放动画
207 * @return void
208 */
209 STDMETHOD_(void, reverse)(THIS) PURE;
210
211 /**
212 * @brief 提交动画帧
213 * @param frameTime - 帧时间
214 * @return void
215 */
216 STDMETHOD_(void, commitAnimationFrame)(THIS_ long frameTime) PURE;
217
218 /**
219 * @brief 获取动画当前进度
220 * @return float - 当前进度
221 */
222 STDMETHOD_(float, getAnimatedFraction)(CTHIS) SCONST PURE;
223
224 /**
225 * @brief 克隆动画对象
226 * @return IValueAnimator* - 克隆的动画对象指针
227 */
228 STDMETHOD_(IValueAnimator *, clone)(CTHIS) SCONST PURE;
229
230 /**
231 * @brief 复制动画对象
232 * @param src - 源动画对象指针
233 * @return void
234 */
235 STDMETHOD_(void, copy)(THIS_ const IValueAnimator *src) PURE;
236
237 /**
238 * @brief 评估动画值
239 * @param fraction - 动画进度
240 * @return void
241 */
242 STDMETHOD_(void, onEvaluateValue)(THIS_ float fraction) PURE;
243};
244
245typedef struct IAnimatorGroup IAnimatorGroup;
246
247#undef INTERFACE
248#define INTERFACE IAnimatorGroupListerer
249DECLARE_INTERFACE(IAnimatorGroupListerer)
250{
251 /**
252 * @brief 动画组结束时调用
253 * @param pGroup - 动画组指针
254 * @return void
255 */
256 STDMETHOD_(void, OnAnimatorGroupEnd)(THIS_ IAnimatorGroup * pGroup) PURE;
257};
258
259#undef INTERFACE
260#define INTERFACE IAnimatorGroup
261DECLARE_INTERFACE_(IAnimatorGroup, IObjRef)
262{
263 /**
264 * @brief 增加引用计数
265 * @return long - 新引用计数
266 */
267 STDMETHOD_(long, AddRef)(THIS) PURE;
268
269 /**
270 * @brief 减少引用计数
271 * @return long - 新引用计数
272 */
273 STDMETHOD_(long, Release)(THIS) PURE;
274
275 /**
276 * @brief 释放对象
277 * @return void
278 */
279 STDMETHOD_(void, OnFinalRelease)(THIS) PURE;
280
281 /**
282 * @brief 添加动画
283 * @param ani - 动画指针
284 * @return BOOL - 成功返回TRUE,失败返回FALSE
285 */
286 STDMETHOD_(BOOL, AddAnimator)(THIS_ IValueAnimator * ani) PURE;
287
288 /**
289 * @brief 移除动画
290 * @param ani - 动画指针
291 * @return BOOL - 成功返回TRUE,失败返回FALSE
292 */
293 STDMETHOD_(BOOL, RemoveAnimator)(THIS_ IValueAnimator * ani) PURE;
294
295 /**
296 * @brief 设置动画组监听器
297 * @param listener - 监听器指针
298 * @return void
299 */
300 STDMETHOD_(void, SetListener)(THIS_ IAnimatorGroupListerer * listener) PURE;
301};
302
303SNSEND
304#endif // __SVALUEANIMATOR_I__H__
Interface for reference counting.
Definition obj-ref-i.h:19