Mercurial > MadButterfly
annotate examples/dynamic/mbbutton.h @ 1161:a7faab54e8f8
Fix broken of running animation
- Running animation is stop automatically after a certain time.
- It is 300ms according MBScene._updateUI().
- It is caused by notification of changing DOM tree. The
notification handlers would call MBScene.updateUI() to update
framelines and buttons.
- MBScene.updateUI() would call MBScene.show() after 300ms,
MBScene.show() calls MBScene.parseScene() in turn.
- MBScene.parseScene() would remove duplicate group that is using
by code of running animation, MBScene.doRunNext(). It make
running animation stop.
- fixed by setting MBScene.lockui when a running animation is started
or stoped.
author | Thinker K.F. Li <thinker@codemud.net> |
---|---|
date | Tue, 28 Dec 2010 13:35:34 +0800 |
parents | ab8284c8dcee |
children |
rev | line source |
---|---|
247 | 1 #ifndef __MBBUTTON_H |
2 #define __MBBUTTON_H | |
3 typedef struct _mb_button { | |
4 mb_obj_t obj; | |
249
ab8284c8dcee
* Add loopback reference from rdman to the backend. This is only required when we need to acquire the tman for the animation. This is not a reasonable arrangement since the animation should be backend transparent. We should not touch the backend directly from the animation. We should relocate the tman to the rdman.
wycc
parents:
247
diff
changeset
|
5 redraw_man_t *rdman; |
247 | 6 int state; |
7 coord_t *root; | |
8 coord_t *active; | |
9 coord_t *normal; | |
10 coord_t *click; | |
11 void (*press)(); | |
12 void *arg; | |
13 observer_t *obs_move,*obs_out,*obs_press; | |
14 mb_progm_t *progm; | |
15 } mb_button_t; | |
249
ab8284c8dcee
* Add loopback reference from rdman to the backend. This is only required when we need to acquire the tman for the animation. This is not a reasonable arrangement since the animation should be backend transparent. We should not touch the backend directly from the animation. We should relocate the tman to the rdman.
wycc
parents:
247
diff
changeset
|
16 mb_button_t *mb_button_new(redraw_man_t *rdman,mb_sprite_t *sp, char *name); |
247 | 17 void mb_button_add_onClick(mb_button_t *b, void (*h)(void *arg), void *arg); |
18 #endif | |
19 |