From 8892fb6aabcbfd2c4695c154c22751b5fe5c9004 Mon Sep 17 00:00:00 2001 From: Miller Puckette Date: Tue, 16 Aug 2005 04:06:28 +0000 Subject: Configure.in was broken. Also, better GUI update queueing for IEM guis and for 'data' (which should affect arrays.) svn path=/trunk/; revision=3430 --- pd/src/g_numbox.c | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) (limited to 'pd/src/g_numbox.c') diff --git a/pd/src/g_numbox.c b/pd/src/g_numbox.c index 547641c5..68e1399d 100644 --- a/pd/src/g_numbox.c +++ b/pd/src/g_numbox.c @@ -26,6 +26,7 @@ /*------------------ global functions -------------------------*/ static void my_numbox_key(void *z, t_floatarg fkey); +static void my_numbox_draw_update(t_gobj *client, t_glist *glist); /* ------------ nmx gui-my number box ----------------------- */ @@ -39,13 +40,13 @@ static void my_numbox_tick_reset(t_my_numbox *x) if(x->x_gui.x_fsf.x_change && x->x_gui.x_glist) { x->x_gui.x_fsf.x_change = 0; - (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_UPDATE); + sys_queuegui(x, x->x_gui.x_glist, my_numbox_draw_update); } } static void my_numbox_tick_wait(t_my_numbox *x) { - (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_UPDATE); + sys_queuegui(x, x->x_gui.x_glist, my_numbox_draw_update); } void my_numbox_clip(t_my_numbox *x) @@ -127,8 +128,9 @@ void my_numbox_ftoa(t_my_numbox *x) } } -static void my_numbox_draw_update(t_my_numbox *x, t_glist *glist) +static void my_numbox_draw_update(t_gobj *client, t_glist *glist) { + t_my_numbox *x = (t_my_numbox *)client; if (glist_isvisible(glist)) { if(x->x_gui.x_fsf.x_change) @@ -315,7 +317,7 @@ static void my_numbox_draw_select(t_my_numbox *x, t_glist *glist) x->x_gui.x_fsf.x_change = 0; clock_unset(x->x_clock_reset); x->x_buf[0] = 0; - (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_UPDATE); + sys_queuegui(x, x->x_gui.x_glist, my_numbox_draw_update); } sys_vgui(".x%lx.c itemconfigure %lxBASE1 -outline #%6.6x\n", canvas, x, IEM_GUI_COLOR_SELECTED); @@ -342,7 +344,7 @@ static void my_numbox_draw_select(t_my_numbox *x, t_glist *glist) void my_numbox_draw(t_my_numbox *x, t_glist *glist, int mode) { if(mode == IEM_GUI_DRAW_MODE_UPDATE) - my_numbox_draw_update(x, glist); + sys_queuegui(x, glist, my_numbox_draw_update); else if(mode == IEM_GUI_DRAW_MODE_MOVE) my_numbox_draw_move(x, glist); else if(mode == IEM_GUI_DRAW_MODE_NEW) @@ -382,7 +384,7 @@ static void my_numbox_save(t_gobj *z, t_binbuf *b) { x->x_gui.x_fsf.x_change = 0; clock_unset(x->x_clock_reset); - (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_UPDATE); + sys_queuegui(x, x->x_gui.x_glist, my_numbox_draw_update); } binbuf_addv(b, "ssiisiiffiisssiiiiiiifi", gensym("#X"),gensym("obj"), (int)x->x_gui.x_obj.te_xpix, (int)x->x_gui.x_obj.te_ypix, @@ -446,7 +448,7 @@ static void my_numbox_properties(t_gobj *z, t_glist *owner) { x->x_gui.x_fsf.x_change = 0; clock_unset(x->x_clock_reset); - (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_UPDATE); + sys_queuegui(x, x->x_gui.x_glist, my_numbox_draw_update); } sprintf(buf, "pdtk_iemgui_dialog %%s NUMBERBOX \ @@ -522,7 +524,7 @@ static void my_numbox_motion(t_my_numbox *x, t_floatarg dx, t_floatarg dy) else x->x_val -= k2*dy; my_numbox_clip(x); - (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_UPDATE); + sys_queuegui(x, x->x_gui.x_glist, my_numbox_draw_update); my_numbox_bang(x); clock_unset(x->x_clock_reset); } @@ -560,7 +562,7 @@ static int my_numbox_newclick(t_gobj *z, struct _glist *glist, x->x_gui.x_fsf.x_change = 0; clock_unset(x->x_clock_reset); x->x_buf[0] = 0; - (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_UPDATE); + sys_queuegui(x, x->x_gui.x_glist, my_numbox_draw_update); } } return (1); @@ -570,7 +572,7 @@ static void my_numbox_set(t_my_numbox *x, t_floatarg f) { x->x_val = f; my_numbox_clip(x); - (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_UPDATE); + sys_queuegui(x, x->x_gui.x_glist, my_numbox_draw_update); } static void my_numbox_log_height(t_my_numbox *x, t_floatarg lh) @@ -622,7 +624,7 @@ static void my_numbox_range(t_my_numbox *x, t_symbol *s, int ac, t_atom *av) if(my_numbox_check_minmax(x, (double)atom_getfloatarg(0, ac, av), (double)atom_getfloatarg(1, ac, av))) { - (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_UPDATE); + sys_queuegui(x, x->x_gui.x_glist, my_numbox_draw_update); /*my_numbox_bang(x);*/ } } @@ -663,7 +665,7 @@ static void my_numbox_log(t_my_numbox *x) x->x_lin0_log1 = 1; if(my_numbox_check_minmax(x, x->x_min, x->x_max)) { - (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_UPDATE); + sys_queuegui(x, x->x_gui.x_glist, my_numbox_draw_update); /*my_numbox_bang(x);*/ } } @@ -682,7 +684,7 @@ static void my_numbox_loadbang(t_my_numbox *x) { if(!sys_noloadbang && x->x_gui.x_isa.x_loadinit) { - (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_UPDATE); + sys_queuegui(x, x->x_gui.x_glist, my_numbox_draw_update); my_numbox_bang(x); } } @@ -698,7 +700,7 @@ static void my_numbox_key(void *z, t_floatarg fkey) { x->x_gui.x_fsf.x_change = 0; clock_unset(x->x_clock_reset); - (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_UPDATE); + sys_queuegui(x, x->x_gui.x_glist, my_numbox_draw_update); return; } if(((c>='0')&&(c<='9'))||(c=='.')||(c=='-')|| @@ -708,7 +710,7 @@ static void my_numbox_key(void *z, t_floatarg fkey) { buf[0] = c; strcat(x->x_buf, buf); - (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_UPDATE); + sys_queuegui(x, x->x_gui.x_glist, my_numbox_draw_update); } } else if((c=='\b')||(c==127)) @@ -718,7 +720,7 @@ static void my_numbox_key(void *z, t_floatarg fkey) if(sl < 0) sl = 0; x->x_buf[sl] = 0; - (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_UPDATE); + sys_queuegui(x, x->x_gui.x_glist, my_numbox_draw_update); } else if((c=='\n')||(c==13)) { @@ -728,7 +730,7 @@ static void my_numbox_key(void *z, t_floatarg fkey) clock_unset(x->x_clock_reset); my_numbox_clip(x); my_numbox_bang(x); - (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_UPDATE); + sys_queuegui(x, x->x_gui.x_glist, my_numbox_draw_update); } clock_delay(x->x_clock_reset, 3000); } -- cgit v1.2.1