static int a3d_bulletbox_fade(a3d_widget_t* widget, float fade, float dt) { assert(widget); int animate = 0; a3d_bulletbox_t* self = (a3d_bulletbox_t*) widget; animate |= a3d_widget_fade((a3d_widget_t*) self->icon, fade, dt); animate |= a3d_widget_fade((a3d_widget_t*) self->text, fade, dt); return animate; }
static int a3d_layer_fade(a3d_widget_t* widget, float fade, float dt) { assert(widget); LOGD("debug"); int a; int animate = 0; a3d_layer_t* self = (a3d_layer_t*) widget; a3d_listitem_t* iter = a3d_list_head(self->list); a3d_widget_t* head = (a3d_widget_t*) a3d_list_peekhead(self->list); while(iter) { widget = (a3d_widget_t*) a3d_list_peekitem(iter); if((self->mode == A3D_LAYER_MODE_LAYERED) || (widget == head)) { a = a3d_widget_fade(widget, fade, dt); iter = a3d_list_next(iter); } else { // remove widget if fade-to-zero is complete a = a3d_widget_fade(widget, 0.0f, dt); if(a == 0) { a3d_list_remove(self->list, &iter); } else { iter = a3d_list_next(iter); } } animate |= a; } return animate; }
static int a3d_listbox_fade(a3d_widget_t* widget, float fade, float dt) { assert(widget); LOGD("debug"); int animate = 0; a3d_listbox_t* self = (a3d_listbox_t*) widget; a3d_listitem_t* iter = a3d_list_head(self->list); while(iter) { widget = (a3d_widget_t*) a3d_list_peekitem(iter); animate |= a3d_widget_fade(widget, fade, dt); iter = a3d_list_next(iter); } return animate; }