unpack zips in src to better compression
This commit is contained in:
67
sources/z-tools/trunk/zview/wintimer.c
Normal file
67
sources/z-tools/trunk/zview/wintimer.c
Normal file
@@ -0,0 +1,67 @@
|
||||
#include "general.h"
|
||||
typedef struct xtimer
|
||||
{
|
||||
void (*func)( WINDOW *);
|
||||
WINDOW *win;
|
||||
struct xtimer *next;
|
||||
} XTIMER;
|
||||
static XTIMER *root = NULL;
|
||||
static void std_xtimer( void)
|
||||
{
|
||||
XTIMER *scan;
|
||||
for( scan = root; scan; scan = scan->next)
|
||||
(*scan->func)( scan->win);
|
||||
}
|
||||
void TimerInit( int32 slice_timer)
|
||||
{
|
||||
evnt.timer = slice_timer;
|
||||
EvntAttach( NULL, WM_XTIMER, std_xtimer);
|
||||
}
|
||||
int16 TimerAttach( WINDOW *win, void *func)
|
||||
{
|
||||
XTIMER *new = ( XTIMER *)gmalloc( sizeof(XTIMER));
|
||||
if( !new)
|
||||
return FALSE;
|
||||
new -> win = win;
|
||||
new -> func = func;
|
||||
new -> next = root;
|
||||
root = new;
|
||||
return TRUE;
|
||||
}
|
||||
static XTIMER *find_parent_timer( XTIMER *child)
|
||||
{
|
||||
XTIMER *scan = root;
|
||||
|
||||
while( scan)
|
||||
{
|
||||
if( scan->next != child)
|
||||
{
|
||||
scan = scan->next;
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return( scan);
|
||||
}
|
||||
void TimerDelete( WINDOW *win)
|
||||
{
|
||||
XTIMER *scan = root, *parent;
|
||||
|
||||
while( scan)
|
||||
{
|
||||
if( scan->win != win)
|
||||
{
|
||||
scan = scan->next;
|
||||
continue;
|
||||
}
|
||||
parent = find_parent_timer( scan);
|
||||
|
||||
if( parent == NULL)
|
||||
root = scan->next;
|
||||
else
|
||||
parent->next = scan->next;
|
||||
gfree( scan);
|
||||
break;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user