Mercurial > MadButterfly
view src/visibility.c @ 1517:31a21656c0a8
Describe designs of Scribboo
author | Thinker K.F. Li <thinker@codemud.net> |
---|---|
date | Sat, 14 May 2011 01:07:23 +0800 |
parents | 586e50f82c1f |
children |
line wrap: on
line source
// -*- indent-tabs-mode: t; tab-width: 8; c-basic-offset: 4; -*- // vim: sw=4:ts=8:sts=4 #include <stdio.h> #include <stdlib.h> #include "mb_animate.h" typedef struct _mb_visibility mb_visibility_t; struct _mb_visibility { mb_action_t action; int visibility; coord_t *coord; }; static void mb_visibility_start(mb_action_t *act, const mb_timeval_t *now, const mb_timeval_t *playing_time, redraw_man_t *rdman) { mb_visibility_t *visibility = (mb_visibility_t *)act; switch(visibility->visibility) { case VIS_VISIBLE: coord_show(visibility->coord); break; case VIS_HIDDEN: coord_hide(visibility->coord); break; } rdman_coord_changed(rdman, visibility->coord); } static void mb_visibility_step(mb_action_t *act, const mb_timeval_t *now, redraw_man_t *rdman) { } static void mb_visibility_stop(mb_action_t *act, const mb_timeval_t *now, redraw_man_t *rdman) { } static void mb_visibility_free(mb_action_t *act) { free(act); } mb_action_t *mb_visibility_new(int visib, coord_t *coord, mb_word_t *word) { mb_visibility_t *visibility; visibility = (mb_visibility_t *)malloc(sizeof(mb_visibility_t)); if(visibility == NULL) return NULL; visibility->visibility = visib; visibility->coord = coord; visibility->action.start = mb_visibility_start; visibility->action.step = mb_visibility_step; visibility->action.stop = mb_visibility_stop; visibility->action.free = mb_visibility_free; mb_word_add_action(word, (mb_action_t *)visibility); return (mb_action_t *)visibility; }