[PD-cvs] pd/src g_mycanvas.c,1.1.1.3.2.2.2.18,1.1.1.3.2.2.2.19 g_numbox.c,1.1.1.4.2.2.2.27,1.1.1.4.2.2.2.28

Mathieu Bouchard matju at users.sourceforge.net
Fri Aug 13 18:42:00 CEST 2004


Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30109

Modified Files:
      Tag: impd_0_37
	g_mycanvas.c g_numbox.c 
Log Message:
[nbx] [cnv] bugfix


Index: g_mycanvas.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_mycanvas.c,v
retrieving revision 1.1.1.3.2.2.2.18
retrieving revision 1.1.1.3.2.2.2.19
diff -C2 -d -r1.1.1.3.2.2.2.18 -r1.1.1.3.2.2.2.19
*** g_mycanvas.c	13 May 2004 14:37:20 -0000	1.1.1.3.2.2.2.18
--- g_mycanvas.c	13 Aug 2004 16:41:47 -0000	1.1.1.3.2.2.2.19
***************
*** 15,25 ****
  #include <math.h>
  
! static t_class *my_canvas_class;
  
  /* ------------------------ cnv widgetbehaviour----------------------------- */
  
! static void my_canvas_getrect(t_gobj *z, t_glist *glist, int *xp1, int *yp1, int *xp2, int *yp2)
  {
!     t_my_canvas *x = (t_my_canvas *)z;
      *xp1 = text_xpix(&x->x_gui.x_obj, glist);
      *yp1 = text_ypix(&x->x_gui.x_obj, glist);
--- 15,25 ----
  #include <math.h>
  
! static t_class *cnv_class;
  
  /* ------------------------ cnv widgetbehaviour----------------------------- */
  
! static void cnv_getrect(t_gobj *z, t_glist *glist, int *xp1, int *yp1, int *xp2, int *yp2)
  {
!     t_cnv *x = (t_cnv *)z;
      *xp1 = text_xpix(&x->x_gui.x_obj, glist);
      *yp1 = text_ypix(&x->x_gui.x_obj, glist);
***************
*** 28,32 ****
  }
  
! static void my_canvas_get_pos(t_my_canvas *x)
  {
      t_iemgui *y = (t_iemgui *)x;
--- 28,32 ----
  }
  
! static void cnv_get_pos(t_cnv *x)
  {
      t_iemgui *y = (t_iemgui *)x;
***************
*** 38,45 ****
  }
  
! static void my_canvas_size(t_my_canvas *x, t_symbol *s, int ac, t_atom *av)
  {x->x_gui.x_w = x->x_gui.x_h = MAX(1,atom_getintarg(0, ac, av)); iemgui_size((t_iemgui *)x);}
  
! static void my_canvas_vis_size(t_my_canvas *x, t_symbol *s, int ac, t_atom *av)
  {
      x->x_vis_h = x->x_vis_w = MAX(1,(int)atom_getintarg(0, ac, av));
--- 38,45 ----
  }
  
! static void cnv_size(t_cnv *x, t_symbol *s, int ac, t_atom *av)
  {x->x_gui.x_w = x->x_gui.x_h = MAX(1,atom_getintarg(0, ac, av)); iemgui_size((t_iemgui *)x);}
  
! static void cnv_vis_size(t_cnv *x, t_symbol *s, int ac, t_atom *av)
  {
      x->x_vis_h = x->x_vis_w = MAX(1,(int)atom_getintarg(0, ac, av));
***************
*** 48,52 ****
  }
  
! static void my_canvas_reload(t_my_canvas *x, t_symbol *s, int argc, t_atom *argv)
  {
      t_iemgui *y = (t_iemgui *)x;
--- 48,61 ----
  }
  
! static void cnv_save(t_cnv *x, t_binbuf *b) {
!     t_iemgui *y = (t_iemgui *)x;
!     pd_savehead(b, y, "cnv");
!     pd_saveargs(b,"iiiaaaiiiicc;i",&y->x_w,&x->x_vis_w,&x->x_vis_h,
! 	&y->x_snd,&y->x_rcv,&y->x_lab,&y->x_ldx,&y->x_ldy,
! 	&y->x_font_style,&y->x_fontsize,&y->x_bcol,&y->x_lcol,&y->x_isa);
!     binbuf_print(b);
! }
! 
! static void cnv_reload(t_cnv *x, t_symbol *s, int argc, t_atom *argv)
  {
      t_iemgui *y = (t_iemgui *)x;
***************
*** 64,71 ****
  }
  
! static void *my_canvas_new(t_symbol *s, int argc, t_atom *argv)
  {
!     t_iemgui *y = iemgui_new(my_canvas_class);
!     t_my_canvas *x = (t_my_canvas *)y;
      y->x_bcol = 0xe0e0e0;
      y->x_fcol = 0x000000;
--- 73,80 ----
  }
  
! static void *cnv_new(t_symbol *s, int argc, t_atom *argv)
  {
!     t_iemgui *y = iemgui_new(cnv_class);
!     t_cnv *x = (t_cnv *)y;
      y->x_bcol = 0xe0e0e0;
      y->x_fcol = 0x000000;
***************
*** 73,81 ****
      y->x_w=100;
      y->x_h=60;
!     my_canvas_reload(x,0,argc,argv);
      return x;
  }
  
! static void my_canvas_ff(t_my_canvas *x)
  {
      if(x->x_gui.x_rcv) pd_unbind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv);
--- 82,90 ----
      y->x_w=100;
      y->x_h=60;
!     cnv_reload(x,0,argc,argv);
      return x;
  }
  
! static void cnv_ff(t_cnv *x)
  {
      if(x->x_gui.x_rcv) pd_unbind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv);
***************
*** 86,98 ****
  void g_mycanvas_setup(void)
  {
!     t_class *c = my_canvas_class = class_new(gensym("cnv"), (t_newmethod)my_canvas_new,
! 	(t_method)my_canvas_ff, sizeof(t_my_canvas), CLASS_NOINLET, A_GIMME, 0);
!     class_addcreator((t_newmethod)my_canvas_new, gensym("my_canvas"), A_GIMME, 0);
!     class_addmethod(c, (t_method)my_canvas_reload, gensym("reload"), A_GIMME, 0);
!     class_addmethod(c, (t_method)my_canvas_size, gensym("size"), A_GIMME, 0);
!     class_addmethod(c, (t_method)my_canvas_vis_size, gensym("vis_size"), A_GIMME, 0);
!     class_addmethod(c, (t_method)my_canvas_get_pos, gensym("get_pos"), 0);
      iemgui_subclass(c);
!     wb.w_getrectfn = my_canvas_getrect;
      wb.w_displacefn = iemgui_displace;
      wb.w_selectfn = iemgui_select;
--- 95,107 ----
  void g_mycanvas_setup(void)
  {
!     t_class *c = cnv_class = class_new(gensym("cnv"), (t_newmethod)cnv_new,
! 	(t_method)cnv_ff, sizeof(t_cnv), CLASS_NOINLET, A_GIMME, 0);
!     class_addcreator((t_newmethod)cnv_new, gensym("cnv"), A_GIMME, 0);
!     class_addmethod(c, (t_method)cnv_reload, gensym("reload"), A_GIMME, 0);
!     class_addmethod(c, (t_method)cnv_size, gensym("size"), A_GIMME, 0);
!     class_addmethod(c, (t_method)cnv_vis_size, gensym("vis_size"), A_GIMME, 0);
!     class_addmethod(c, (t_method)cnv_get_pos, gensym("get_pos"), 0);
      iemgui_subclass(c);
!     wb.w_getrectfn = cnv_getrect;
      wb.w_displacefn = iemgui_displace;
      wb.w_selectfn = iemgui_select;
***************
*** 102,105 ****
      wb.w_clickfn = NULL;
      class_setwidget(c, &wb);
!     class_sethelpsymbol(c, gensym("my_canvas"));
  }
--- 111,115 ----
      wb.w_clickfn = NULL;
      class_setwidget(c, &wb);
!     class_setsavefn(c,cnv_save);
!     class_sethelpsymbol(c, gensym("cnv"));
  }

Index: g_numbox.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_numbox.c,v
retrieving revision 1.1.1.4.2.2.2.27
retrieving revision 1.1.1.4.2.2.2.28
diff -C2 -d -r1.1.1.4.2.2.2.27 -r1.1.1.4.2.2.2.28
*** g_numbox.c	13 May 2004 14:37:20 -0000	1.1.1.4.2.2.2.27
--- g_numbox.c	13 Aug 2004 16:41:49 -0000	1.1.1.4.2.2.2.28
***************
*** 3,7 ****
   * WARRANTIES, see the file, "LICENSE.txt," in this distribution. */
  
! /* my_numbox.c written by Thomas Musil (c) IEM KUG Graz Austria 2000-2001 */
  
  #include <stdlib.h>
--- 3,7 ----
   * WARRANTIES, see the file, "LICENSE.txt," in this distribution. */
  
! /* nbx.c written by Thomas Musil (c) IEM KUG Graz Austria 2000-2001 */
  
  #include <stdlib.h>
***************
*** 16,24 ****
  #define CH
   
! static t_class *my_numbox_class;
  
  /* widget helper functions */
  
! static void my_numbox_tick_reset(t_my_numbox *x)
  {
      if(!x->x_change) return;
--- 16,24 ----
  #define CH
   
! static t_class *nbx_class;
  
  /* widget helper functions */
  
! static void nbx_tick_reset(t_nbx *x)
  {
      if(!x->x_change) return;
***************
*** 28,35 ****
  }
  
! static void my_numbox_tick_wait(t_my_numbox *x) {pd_changed(x);}
! void my_numbox_clip(t_my_numbox *x) {CLAMP(x->x_val,x->x_min,x->x_max);}
  
! void my_numbox_calc_fontwidth(t_my_numbox *x)
  {
      int f = x->x_gui.x_font_style==1 ? 27 : x->x_gui.x_font_style==2 ? 25 : 31;
--- 28,35 ----
  }
  
! static void nbx_tick_wait(t_nbx *x) {pd_changed(x);}
! void nbx_clip(t_nbx *x) {CLAMP(x->x_val,x->x_min,x->x_max);}
  
! void nbx_calc_fontwidth(t_nbx *x)
  {
      int f = x->x_gui.x_font_style==1 ? 27 : x->x_gui.x_font_style==2 ? 25 : 31;
***************
*** 40,47 ****
  /* ------------------------ nbx widgetbehaviour----------------------------- */
  
! static void my_numbox_getrect(t_gobj *z, t_glist *glist,
  int *xp1, int *yp1, int *xp2, int *yp2)
  {
!     t_my_numbox* x = (t_my_numbox*)z;
      *xp1 = text_xpix((t_text *)x, glist);
      *yp1 = text_ypix((t_text *)x, glist);
--- 40,47 ----
  /* ------------------------ nbx widgetbehaviour----------------------------- */
  
! static void nbx_getrect(t_gobj *z, t_glist *glist,
  int *xp1, int *yp1, int *xp2, int *yp2)
  {
!     t_nbx* x = (t_nbx*)z;
      *xp1 = text_xpix((t_text *)x, glist);
      *yp1 = text_ypix((t_text *)x, glist);
***************
*** 50,54 ****
  }
  
! int my_numbox_check_minmax(t_my_numbox *x)
  {
      double min=x->x_min, max=x->x_max;
--- 50,54 ----
  }
  
! int nbx_check_minmax(t_nbx *x)
  {
      double min=x->x_min, max=x->x_max;
***************
*** 66,70 ****
  }
  
! static void my_numbox_bang(t_my_numbox *x)
  {
      outlet_float(x->x_gui.x_obj.ob_outlet, x->x_val);
--- 66,70 ----
  }
  
! static void nbx_bang(t_nbx *x)
  {
      outlet_float(x->x_gui.x_obj.ob_outlet, x->x_val);
***************
*** 73,90 ****
  }
  
! static void my_numbox_motion(t_my_numbox *x, t_floatarg dx, t_floatarg dy)
  {
      double k2= x->x_finemoved ? 0.01 : 1.0;
      if(x->x_is_log) x->x_val *= pow(x->x_k, -k2*dy); else x->x_val -= k2*dy;
!     my_numbox_clip(x);
      pd_changed(x);
!     my_numbox_bang(x);
      clock_unset(x->x_clock_reset);
  }
  
! static void my_numbox_set(t_my_numbox *x, t_floatarg f)
! {x->x_val=f; my_numbox_clip(x); pd_changed(x);}
  
! static void my_numbox_log_height(t_my_numbox *x, t_floatarg lh)
  {
      x->x_log_height = MAX(10.0,(int)lh);
--- 73,90 ----
  }
  
! static void nbx_motion(t_nbx *x, t_floatarg dx, t_floatarg dy)
  {
      double k2= x->x_finemoved ? 0.01 : 1.0;
      if(x->x_is_log) x->x_val *= pow(x->x_k, -k2*dy); else x->x_val -= k2*dy;
!     nbx_clip(x);
      pd_changed(x);
!     nbx_bang(x);
      clock_unset(x->x_clock_reset);
  }
  
! static void nbx_set(t_nbx *x, t_floatarg f)
! {x->x_val=f; nbx_clip(x); pd_changed(x);}
  
! static void nbx_log_height(t_nbx *x, t_floatarg lh)
  {
      x->x_log_height = MAX(10.0,(int)lh);
***************
*** 92,125 ****
  }
  
! static void my_numbox_float(t_my_numbox *x, t_floatarg f)
! {my_numbox_set(x, f); if(iemgui_forward(x)) my_numbox_bang(x);}
  
! static void my_numbox_size(t_my_numbox *x, t_symbol *s, int ac, t_atom *av)
  {
      x->x_gui.x_w = MAX(1,(int)atom_getintarg(0, ac, av));
      if(ac > 1) x->x_gui.x_h = MAX(8,(int)atom_getintarg(1, ac, av));
!     my_numbox_calc_fontwidth(x);
      iemgui_size((t_iemgui *)x);
  }
  
! static void my_numbox_range(t_my_numbox *x, t_float min, t_float max)
  {x->x_min=min; x->x_max=max;
!  if(my_numbox_check_minmax(x)) pd_changed(x);}
  
! static void my_numbox_lin(t_my_numbox *x) {x->x_is_log=0;}
! static void my_numbox_log(t_my_numbox *x) {x->x_is_log=1;
!     if(my_numbox_check_minmax(x)) pd_changed(x);}
  
! static void my_numbox_loadbang(t_my_numbox *x)
! {if(iemgui_loadbang(x)) my_numbox_bang(x);}
  
! static void my_numbox_list(t_my_numbox *x, t_symbol *s, int ac, t_atom *av)
  {
      if (!IS_A_FLOAT(av,0)) return;
!     my_numbox_set(x, atom_getfloatarg(0, ac, av));
!     my_numbox_bang(x);
  }
  
! static void my_numbox_reload(t_my_numbox *x, t_symbol *s, int argc, t_atom *argv)
  {
      t_iemgui *y = (t_iemgui *)x;
--- 92,136 ----
  }
  
! static void nbx_float(t_nbx *x, t_floatarg f)
! {nbx_set(x, f); if(iemgui_forward(x)) nbx_bang(x);}
  
! static void nbx_size(t_nbx *x, t_symbol *s, int ac, t_atom *av)
  {
      x->x_gui.x_w = MAX(1,(int)atom_getintarg(0, ac, av));
      if(ac > 1) x->x_gui.x_h = MAX(8,(int)atom_getintarg(1, ac, av));
!     nbx_calc_fontwidth(x);
      iemgui_size((t_iemgui *)x);
  }
  
! static void nbx_range(t_nbx *x, t_float min, t_float max)
  {x->x_min=min; x->x_max=max;
!  if(nbx_check_minmax(x)) pd_changed(x);}
  
! static void nbx_lin(t_nbx *x) {x->x_is_log=0;}
! static void nbx_log(t_nbx *x) {x->x_is_log=1;
!     if(nbx_check_minmax(x)) pd_changed(x);}
  
! static void nbx_loadbang(t_nbx *x)
! {if(iemgui_loadbang(x)) nbx_bang(x);}
  
! static void nbx_list(t_nbx *x, t_symbol *s, int ac, t_atom *av)
  {
      if (!IS_A_FLOAT(av,0)) return;
!     nbx_set(x, atom_getfloatarg(0, ac, av));
!     nbx_bang(x);
  }
  
! static void nbx_save(t_nbx *x, t_binbuf *b) {
!     t_iemgui *y = (t_iemgui *)x;
!     if (!b) return;
!     binbuf_clear(b);
!     pd_savehead(b, y, "nbx");
!     pd_saveargs(b,"iiddbiaaaiiiicccd;i",
! 	&y->x_w,&y->x_h,&x->x_min,&x->x_max,&x->x_is_log,&y->x_isa,&y->x_snd,&y->x_rcv,&y->x_lab,
! 	&y->x_ldx,&y->x_ldy,&y->x_font_style,&y->x_fontsize,
! 	&y->x_bcol,&y->x_fcol,&y->x_lcol,&x->x_val,&x->x_log_height);
! }
! 
! static void nbx_reload(t_nbx *x, t_symbol *s, int argc, t_atom *argv)
  {
      t_iemgui *y = (t_iemgui *)x;
***************
*** 134,139 ****
      iemgui_constrain(y);
      y->x_w=MAX(w,1);
!     my_numbox_calc_fontwidth(x);
!     my_numbox_check_minmax(x);
      y->x_w = MAX(y->x_w,1);
      if (y->x_rcv) pd_bind((t_pd *)x, y->x_rcv);
--- 145,150 ----
      iemgui_constrain(y);
      y->x_w=MAX(w,1);
!     nbx_calc_fontwidth(x);
!     nbx_check_minmax(x);
      y->x_w = MAX(y->x_w,1);
      if (y->x_rcv) pd_bind((t_pd *)x, y->x_rcv);
***************
*** 141,148 ****
  }
  
! static void *my_numbox_new(t_symbol *s, int argc, t_atom *argv)
  {
!     t_iemgui *y = iemgui_new(my_numbox_class);
!     t_my_numbox *x = (t_my_numbox *)y;
      x->x_log_height = 256;
      x->x_is_log = 0;
--- 152,159 ----
  }
  
! static void *nbx_new(t_symbol *s, int argc, t_atom *argv)
  {
!     t_iemgui *y = iemgui_new(nbx_class);
!     t_nbx *x = (t_nbx *)y;
      x->x_log_height = 256;
      x->x_is_log = 0;
***************
*** 152,164 ****
      x->x_max=1.0e+37;
      x->x_buf[0]=0;
!     x->x_clock_reset = clock_new(x, (t_method)my_numbox_tick_reset);
!     x->x_clock_wait  = clock_new(x, (t_method)my_numbox_tick_wait);
      x->x_change = 0; CH
      outlet_new((t_text *)x, &s_float);
!     my_numbox_reload(x,0,argc,argv);
      return x;
  }
  
! static void my_numbox_free(t_my_numbox *x)
  {
      if(x->x_gui.x_rcv) pd_unbind((t_pd *)x, x->x_gui.x_rcv);
--- 163,175 ----
      x->x_max=1.0e+37;
      x->x_buf[0]=0;
!     x->x_clock_reset = clock_new(x, (t_method)nbx_tick_reset);
!     x->x_clock_wait  = clock_new(x, (t_method)nbx_tick_wait);
      x->x_change = 0; CH
      outlet_new((t_text *)x, &s_float);
!     nbx_reload(x,0,argc,argv);
      return x;
  }
  
! static void nbx_free(t_nbx *x)
  {
      if(x->x_gui.x_rcv) pd_unbind((t_pd *)x, x->x_gui.x_rcv);
***************
*** 171,193 ****
  void g_numbox_setup(void)
  {
!     t_class *c = my_numbox_class = class_new(gensym("nbx"), (t_newmethod)my_numbox_new,
! 	(t_method)my_numbox_free, sizeof(t_my_numbox), 0, A_GIMME, 0);
!     class_addcreator((t_newmethod)my_numbox_new, gensym("my_numbox"), A_GIMME, 0);
      iemgui_subclass(c);
!     class_addbang(c,my_numbox_bang);
!     class_addfloat(c,my_numbox_float);
!     class_addlist(c, my_numbox_list);
!     //class_addmethod(c, (t_method)my_numbox_motion, gensym("motion"), A_FLOAT, A_FLOAT, 0);
!     class_addmethod(c, (t_method)my_numbox_reload, gensym("reload"), A_GIMME, 0);
!     class_addmethod(c, (t_method)my_numbox_loadbang, gensym("loadbang"), 0);
!     class_addmethod(c, (t_method)my_numbox_set,      gensym("set"), A_FLOAT, 0);
!     class_addmethod(c, (t_method)my_numbox_size,     gensym("size"), A_GIMME, 0);
!     class_addmethod(c, (t_method)my_numbox_range,     gensym("range"), A_GIMME, 0);
      /* !@#$ actually overrode label_font to do stuff related to width */
!     class_addmethod(c, (t_method)my_numbox_log, gensym("log"), 0);
!     class_addmethod(c, (t_method)my_numbox_lin, gensym("lin"), 0);
      class_addmethod(c, (t_method)iemgui_init, gensym("init"), A_FLOAT, 0);
!     class_addmethod(c, (t_method)my_numbox_log_height, gensym("log_height"), A_FLOAT, 0);
!     wb.w_getrectfn =  my_numbox_getrect;
      wb.w_displacefn = iemgui_displace;
      wb.w_selectfn =   iemgui_select;
--- 182,204 ----
  void g_numbox_setup(void)
  {
!     t_class *c = nbx_class = class_new(gensym("nbx"), (t_newmethod)nbx_new,
! 	(t_method)nbx_free, sizeof(t_nbx), 0, A_GIMME, 0);
!     class_addcreator((t_newmethod)nbx_new, gensym("nbx"), A_GIMME, 0);
      iemgui_subclass(c);
!     class_addbang(c,nbx_bang);
!     class_addfloat(c,nbx_float);
!     class_addlist(c, nbx_list);
!     //class_addmethod(c, (t_method)nbx_motion, gensym("motion"), A_FLOAT, A_FLOAT, 0);
!     class_addmethod(c, (t_method)nbx_reload, gensym("reload"), A_GIMME, 0);
!     class_addmethod(c, (t_method)nbx_loadbang, gensym("loadbang"), 0);
!     class_addmethod(c, (t_method)nbx_set,      gensym("set"), A_FLOAT, 0);
!     class_addmethod(c, (t_method)nbx_size,     gensym("size"), A_GIMME, 0);
!     class_addmethod(c, (t_method)nbx_range,     gensym("range"), A_GIMME, 0);
      /* !@#$ actually overrode label_font to do stuff related to width */
!     class_addmethod(c, (t_method)nbx_log, gensym("log"), 0);
!     class_addmethod(c, (t_method)nbx_lin, gensym("lin"), 0);
      class_addmethod(c, (t_method)iemgui_init, gensym("init"), A_FLOAT, 0);
!     class_addmethod(c, (t_method)nbx_log_height, gensym("log_height"), A_FLOAT, 0);
!     wb.w_getrectfn =  nbx_getrect;
      wb.w_displacefn = iemgui_displace;
      wb.w_selectfn =   iemgui_select;
***************
*** 197,200 ****
--- 208,212 ----
      wb.w_clickfn =    NULL;
      class_setwidget(c, &wb);
+     class_setsavefn(c,nbx_save);
      class_sethelpsymbol(c, gensym("numbox2"));
  }





More information about the Pd-cvs mailing list