[PD-cvs] pd/src g_bang.c,1.1.1.3.2.2.2.7,1.1.1.3.2.2.2.8 g_canvas.c,1.1.1.4.2.7.2.5,1.1.1.4.2.7.2.6 g_editor.c,1.1.1.4.2.3.2.3,1.1.1.4.2.3.2.4 g_graph.c,1.1.1.3.2.3.2.2,1.1.1.3.2.3.2.3 g_hdial.c,1.1.1.4.2.2.2.6,1.1.1.4.2.2.2.7 g_hslider.c,1.1.1.3.2.2.2.7,1.1.1.3.2.2.2.8 g_mycanvas.c,1.1.1.3.2.2.2.1,1.1.1.3.2.2.2.2 g_numbox.c,1.1.1.4.2.2.2.5,1.1.1.4.2.2.2.6 g_rtext.c,1.1.1.2.2.6.2.3,1.1.1.2.2.6.2.4 g_text.c,1.1.1.4.2.2.2.4,1.1.1.4.2.2.2.5 g_toggle.c,1.1.1.3.2.2.2.5,1.1.1.3.2.2.2.6 g_vumeter.c,1.1.1.3.2.2.2.5,1.1.1.3.2.2.2.6 u_object.tk,1.1.2.11,1.1.2.12

Mathieu Bouchard matju at users.sourceforge.net
Sun Mar 28 09:21:21 CEST 2004


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

Modified Files:
      Tag: impd_0_37
	g_bang.c g_canvas.c g_editor.c g_graph.c g_hdial.c g_hslider.c 
	g_mycanvas.c g_numbox.c g_rtext.c g_text.c g_toggle.c 
	g_vumeter.c u_object.tk 
Log Message:
introducing sys_mgui() and more bugs


Index: g_toggle.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_toggle.c,v
retrieving revision 1.1.1.3.2.2.2.5
retrieving revision 1.1.1.3.2.2.2.6
diff -C2 -d -r1.1.1.3.2.2.2.5 -r1.1.1.3.2.2.2.6
*** g_toggle.c	10 Mar 2004 06:00:11 -0000	1.1.1.3.2.2.2.5
--- g_toggle.c	28 Mar 2004 07:21:18 -0000	1.1.1.3.2.2.2.6
***************
*** 27,46 ****
  
  void toggle_draw(t_toggle *x, t_glist *glist, int mode) {
- t_canvas *canvas=glist_getcanvas(glist);
  switch(mode) {
! default:{
  	pd_upload((t_gobj *)x);
! 	sys_vgui("toggle_draw %x .x%x.c\n", x, canvas);
  	/* fallthru */
- }
  case IEM_GUI_DRAW_MODE_UPDATE:
! 	if(glist_isvisible(glist))
! 	sys_vgui("toggle_set %x .x%x.c %d\n", x, canvas, x->x_on!=0.0);
  	break;
  case IEM_GUI_DRAW_MODE_ERASE:
! 	sys_vgui("toggle_erase .x%x.c %x\n", canvas, x);
  	break;
  case IEM_GUI_DRAW_MODE_SELECT:
! 	sys_vgui("toggle_select .x%x.c %x %d\n", canvas, x, x->x_gui.x_fsf.x_selected);
  	break;
  }}
--- 27,43 ----
  
  void toggle_draw(t_toggle *x, t_glist *glist, int mode) {
  switch(mode) {
! default:
  	pd_upload((t_gobj *)x);
! 	sys_mgui((t_iemgui *)x,"toggle","draw","");
  	/* fallthru */
  case IEM_GUI_DRAW_MODE_UPDATE:
! 	if(glist_isvisible(glist)) sys_mgui((t_iemgui *)x,"toggle","set","i",x->x_on!=0.0);
  	break;
  case IEM_GUI_DRAW_MODE_ERASE:
! 	sys_mgui((t_iemgui *)x,"toggle","erase","");
  	break;
  case IEM_GUI_DRAW_MODE_SELECT:
! 	sys_mgui((t_iemgui *)x,"toggle","erase","i",x->x_gui.x_fsf.x_selected);
  	break;
  }}
***************
*** 183,205 ****
  static void toggle_delta(t_toggle *x, t_symbol *s, int ac, t_atom *av)
  {iemgui_delta((void *)x, &x->x_gui, s, ac, av);}
- 
  static void toggle_pos(t_toggle *x, t_symbol *s, int ac, t_atom *av)
  {iemgui_pos((void *)x, &x->x_gui, s, ac, av);}
- 
  static void toggle_color(t_toggle *x, t_symbol *s, int ac, t_atom *av)
  {iemgui_color((void *)x, &x->x_gui, s, ac, av);}
- 
  static void toggle_send(t_toggle *x, t_symbol *s)
  {iemgui_send(x, &x->x_gui, s);}
- 
  static void toggle_receive(t_toggle *x, t_symbol *s)
  {iemgui_receive(x, &x->x_gui, s);}
- 
  static void toggle_label(t_toggle *x, t_symbol *s)
  {iemgui_label((void *)x, &x->x_gui, s);}
- 
  static void toggle_label_font(t_toggle *x, t_symbol *s, int ac, t_atom *av)
  {iemgui_label_font((void *)x, &x->x_gui, s, ac, av);}
- 
  static void toggle_label_pos(t_toggle *x, t_symbol *s, int ac, t_atom *av)
  {iemgui_label_pos((void *)x, &x->x_gui, s, ac, av);}
--- 180,195 ----
***************
*** 215,223 ****
      t_toggle *x = (t_toggle *)pd_new(toggle_class);
      int bflcol[]={-262144, -1, -1};
!     int a=IEM_GUI_DEFAULTSIZE, f=0;
      int ldx=0, ldy=-6;
      int fs=8;
      float on=0.0, nonzero=1.0;
-     char str[144];
      int fstyle=0, isa=0;
      t_symbol *srl[3]={0,0,0};
--- 205,212 ----
      t_toggle *x = (t_toggle *)pd_new(toggle_class);
      int bflcol[]={-262144, -1, -1};
!     int a=IEM_GUI_DEFAULTSIZE;
      int ldx=0, ldy=-6;
      int fs=8;
      float on=0.0, nonzero=1.0;
      int fstyle=0, isa=0;
      t_symbol *srl[3]={0,0,0};
***************
*** 231,239 ****
  	nonzero = (float)atom_getfloatarg(13, argc, argv);
      x->x_gui.x_draw = (t_iemfunptr)toggle_draw;
-     x->x_gui.x_fsf.x_snd_able = 1;
-     x->x_gui.x_fsf.x_rcv_able = 1;
      x->x_gui.x_glist = (t_glist *)canvas_getcurrent();
!     if (!strcmp(x->x_gui.x_snd->s_name, "empty")) x->x_gui.x_fsf.x_snd_able = 0;
!     if (!strcmp(x->x_gui.x_rcv->s_name, "empty")) x->x_gui.x_fsf.x_rcv_able = 0;
      if(x->x_gui.x_fsf.x_font_style == 1) strcpy(x->x_gui.x_font, "helvetica");
      else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times");
--- 220,226 ----
  	nonzero = (float)atom_getfloatarg(13, argc, argv);
      x->x_gui.x_draw = (t_iemfunptr)toggle_draw;
      x->x_gui.x_glist = (t_glist *)canvas_getcurrent();
!     x->x_gui.x_fsf.x_snd_able = strcmp(x->x_gui.x_snd->s_name, "empty")!=0;
!     x->x_gui.x_fsf.x_rcv_able = strcmp(x->x_gui.x_rcv->s_name, "empty")!=0;
      if(x->x_gui.x_fsf.x_font_style == 1) strcpy(x->x_gui.x_font, "helvetica");
      else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times");

Index: g_text.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_text.c,v
retrieving revision 1.1.1.4.2.2.2.4
retrieving revision 1.1.1.4.2.2.2.5
diff -C2 -d -r1.1.1.4.2.2.2.4 -r1.1.1.4.2.2.2.5
*** g_text.c	14 Mar 2004 22:33:54 -0000	1.1.1.4.2.2.2.4
--- g_text.c	28 Mar 2004 07:21:17 -0000	1.1.1.4.2.2.2.5
***************
*** 663,667 ****
      {
      	*xp = x1 - 1;
! 	*yp = y1 - 1 - sys_fontheight(glist_getfont(glist));;
      }
      else
--- 663,667 ----
      {
      	*xp = x1 - 1;
! 	*yp = y1 - 1 - sys_fontheight(glist_getfont(glist));
      }
      else
***************
*** 887,891 ****
      rtext_select(y, state);
      if (glist_isvisible(glist) && text_shouldvis(x, glist)) {
! 	sys_vgui("%s_select .x%x.c %s %d\n", text_classname(x), glist, rtext_gettag(y), state);
      }
  }
--- 887,891 ----
      rtext_select(y, state);
      if (glist_isvisible(glist) && text_shouldvis(x, glist)) {
! 	sys_vgui("%s_select %s .x%x.c %d\n", text_classname(x), rtext_gettag(y),glist,  state);
      }
  }
***************
*** 1064,1069 ****
      char *tag, int x1, int y1, int x2, int y2)
  {
!     sys_vgui("io_draw .x%x.c %s %d %d %d %d %d %d\n",
! 	glist_getcanvas(glist), tag, x1, y1, x2-x1, y2-x1,
  	obj_ninlets(ob), obj_noutlets(ob));
  }
--- 1064,1069 ----
      char *tag, int x1, int y1, int x2, int y2)
  {
!     sys_vgui("io_draw %s .x%x.c %d %d %d %d %d %d\n",
! 	tag, glist_getcanvas(glist), x1, y1, x2-x1, y2-x1,
  	obj_ninlets(ob), obj_noutlets(ob));
  }
***************
*** 1076,1081 ****
      text_getrect(&x->te_g, glist, &x1, &y1, &x2, &y2);
      ob = pd_checkobject(&x->te_pd);
!     sys_vgui("%s_draw .x%x.c %s %d %d %d %d %d %d\n",
! 	text_classname(x),glist,tag,x1,y1,x2-x1,y2-y1,
  	ob?obj_ninlets(ob):0, ob?obj_noutlets(ob):0);
  }
--- 1076,1081 ----
      text_getrect(&x->te_g, glist, &x1, &y1, &x2, &y2);
      ob = pd_checkobject(&x->te_pd);
!     sys_vgui("%s_draw %s .x%x.c %d %d %d %d %d %d\n",
! 	text_classname(x),tag,glist,x1,y1,x2-x1,y2-y1,
  	ob?obj_ninlets(ob):0, ob?obj_noutlets(ob):0);
  }
***************
*** 1083,1093 ****
  void glist_eraseiofor(t_glist *glist, t_object *ob, char *tag)
  {
!     sys_vgui("io_erase .x%x.c %s\n",glist_getcanvas(glist),tag);
  }
  
  void text_eraseborder(t_text *x, t_glist *glist, char *tag)
  {
!     sys_vgui("%s_erase .x%x.c %s\n", text_classname(x), glist_getcanvas(glist), tag);
!     sys_vgui("io_erase .x%x.c %s\n",glist_getcanvas(glist),tag);
  }
  
--- 1083,1093 ----
  void glist_eraseiofor(t_glist *glist, t_object *ob, char *tag)
  {
!     sys_vgui("io_erase %s .x%x.c\n",tag,glist_getcanvas(glist));
  }
  
  void text_eraseborder(t_text *x, t_glist *glist, char *tag)
  {
!     sys_vgui("%s_erase %s .x%x.c\n", text_classname(x), tag,glist_getcanvas(glist));
!     sys_vgui("io_erase %s .x%x.c\n",tag,glist_getcanvas(glist));
  }
  

Index: g_hdial.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_hdial.c,v
retrieving revision 1.1.1.4.2.2.2.6
retrieving revision 1.1.1.4.2.2.2.7
diff -C2 -d -r1.1.1.4.2.2.2.6 -r1.1.1.4.2.2.2.7
*** g_hdial.c	10 Mar 2004 06:00:11 -0000	1.1.1.4.2.2.2.6
--- g_hdial.c	28 Mar 2004 07:21:17 -0000	1.1.1.4.2.2.2.7
***************
*** 39,47 ****
      if(glist_isvisible(glist)) {
  	t_canvas *canvas=glist_getcanvas(glist);
!         sys_vgui("radio_set .x%x.c %x %d\n",canvas,x,x->x_on);
      }
  break;
  case IEM_GUI_DRAW_MODE_SELECT:
!     sys_vgui("bluebox_select .x%x.c %xBASE %d\n", canvas, x, x->x_gui.x_fsf.x_selected);
  break;
  case IEM_GUI_DRAW_MODE_ERASE:
--- 39,47 ----
      if(glist_isvisible(glist)) {
  	t_canvas *canvas=glist_getcanvas(glist);
!         sys_vgui("radio_set %x .x%x.c %d\n",x,canvas,x->x_on);
      }
  break;
  case IEM_GUI_DRAW_MODE_SELECT:
!     sys_vgui("radio_select %x .x%x.c %d\n", x, canvas, x->x_gui.x_fsf.x_selected);
  break;
  case IEM_GUI_DRAW_MODE_ERASE:
***************
*** 51,55 ****
      pd_upload((t_gobj *)x);
      sys_vgui("radio_draw %x .x%x.c\n", x, canvas);
!     sys_vgui("radio_set .x%x.c %x %d\n",canvas,x,x->x_on);
  break;
  }}
--- 51,55 ----
      pd_upload((t_gobj *)x);
      sys_vgui("radio_draw %x .x%x.c\n", x, canvas);
!     sys_vgui("radio_set %x .x%x.c %d\n",x,canvas,x->x_on);
  break;
  }}
***************
*** 102,111 ****
  	    empty 0.0 empty 0.0 empty %d \
  	    %d new-only new&old %d %d number: %d \
! 	    %s %s \
! 	    %s %d %d \
! 	    %d %d \
! 	    %d %d %d\n",
! 	    x->x_gui.x_w, IEM_GUI_MINSIZE,
! 	    0,/*no_schedule*/
  	    x->x_change, x->x_gui.x_isa.x_loadinit, -1, x->x_number,
  	    srl[0]->s_name, srl[1]->s_name,
--- 102,107 ----
  	    empty 0.0 empty 0.0 empty %d \
  	    %d new-only new&old %d %d number: %d \
! 	    %s %s %s %d %d %d %d %d %d %d\n",
! 	    x->x_gui.x_w, IEM_GUI_MINSIZE, 0,
  	    x->x_change, x->x_gui.x_isa.x_loadinit, -1, x->x_number,
  	    srl[0]->s_name, srl[1]->s_name,
***************
*** 347,382 ****
  static void hradio_delta(t_hradio *x, t_symbol *s, int ac, t_atom *av)
  {iemgui_delta((void *)x, &x->x_gui, s, ac, av);}
- 
  static void hradio_pos(t_hradio *x, t_symbol *s, int ac, t_atom *av)
  {iemgui_pos((void *)x, &x->x_gui, s, ac, av);}
- 
  static void hradio_color(t_hradio *x, t_symbol *s, int ac, t_atom *av)
  {iemgui_color((void *)x, &x->x_gui, s, ac, av);}
- 
  static void hradio_send(t_hradio *x, t_symbol *s)
  {iemgui_send(x, &x->x_gui, s);}
- 
  static void hradio_receive(t_hradio *x, t_symbol *s)
  {iemgui_receive(x, &x->x_gui, s);}
- 
  static void hradio_label(t_hradio *x, t_symbol *s)
  {iemgui_label((void *)x, &x->x_gui, s);}
- 
  static void hradio_label_pos(t_hradio *x, t_symbol *s, int ac, t_atom *av)
  {iemgui_label_pos((void *)x, &x->x_gui, s, ac, av);}
- 
  static void hradio_label_font(t_hradio *x, t_symbol *s, int ac, t_atom *av)
  {iemgui_label_font((void *)x, &x->x_gui, s, ac, av);}
  
  static void hradio_init(t_hradio *x, t_floatarg f)
! {
!     x->x_gui.x_isa.x_loadinit = (f==0.0)?0:1;
! }
! 
! static void hradio_double_change(t_hradio *x)
! {x->x_change = 1;}
  
! static void hradio_single_change(t_hradio *x)
! {x->x_change = 0;}
  
  static void *hradio_donew(t_symbol *s, int argc, t_atom *argv, t_hradio *x)
--- 343,366 ----
  static void hradio_delta(t_hradio *x, t_symbol *s, int ac, t_atom *av)
  {iemgui_delta((void *)x, &x->x_gui, s, ac, av);}
  static void hradio_pos(t_hradio *x, t_symbol *s, int ac, t_atom *av)
  {iemgui_pos((void *)x, &x->x_gui, s, ac, av);}
  static void hradio_color(t_hradio *x, t_symbol *s, int ac, t_atom *av)
  {iemgui_color((void *)x, &x->x_gui, s, ac, av);}
  static void hradio_send(t_hradio *x, t_symbol *s)
  {iemgui_send(x, &x->x_gui, s);}
  static void hradio_receive(t_hradio *x, t_symbol *s)
  {iemgui_receive(x, &x->x_gui, s);}
  static void hradio_label(t_hradio *x, t_symbol *s)
  {iemgui_label((void *)x, &x->x_gui, s);}
  static void hradio_label_pos(t_hradio *x, t_symbol *s, int ac, t_atom *av)
  {iemgui_label_pos((void *)x, &x->x_gui, s, ac, av);}
  static void hradio_label_font(t_hradio *x, t_symbol *s, int ac, t_atom *av)
  {iemgui_label_font((void *)x, &x->x_gui, s, ac, av);}
  
  static void hradio_init(t_hradio *x, t_floatarg f)
! {x->x_gui.x_isa.x_loadinit = (f==0.0)?0:1;}
  
! static void hradio_double_change(t_hradio *x) {x->x_change = 1;}
! static void hradio_single_change(t_hradio *x) {x->x_change = 0;}
  
  static void *hradio_donew(t_symbol *s, int argc, t_atom *argv, t_hradio *x)
***************
*** 403,411 ****
      else iemgui_new_getnames(&x->x_gui, 4, 0);
      x->x_gui.x_draw = (t_iemfunptr)hradio_draw;
-     x->x_gui.x_fsf.x_snd_able = 1;
-     x->x_gui.x_fsf.x_rcv_able = 1;
      x->x_gui.x_glist = (t_glist *)canvas_getcurrent();
!     if (!strcmp(x->x_gui.x_snd->s_name, "empty")) x->x_gui.x_fsf.x_snd_able = 0;
!     if (!strcmp(x->x_gui.x_rcv->s_name, "empty")) x->x_gui.x_fsf.x_rcv_able = 0;
      if(x->x_gui.x_fsf.x_font_style == 1) strcpy(x->x_gui.x_font, "helvetica");
      else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times");
--- 387,393 ----
      else iemgui_new_getnames(&x->x_gui, 4, 0);
      x->x_gui.x_draw = (t_iemfunptr)hradio_draw;
      x->x_gui.x_glist = (t_glist *)canvas_getcurrent();
!     x->x_gui.x_fsf.x_snd_able = strcmp(x->x_gui.x_snd->s_name, "empty")!=0;
!     x->x_gui.x_fsf.x_rcv_able = strcmp(x->x_gui.x_rcv->s_name, "empty")!=0;
      if(x->x_gui.x_fsf.x_font_style == 1) strcpy(x->x_gui.x_font, "helvetica");
      else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times");

Index: g_mycanvas.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_mycanvas.c,v
retrieving revision 1.1.1.3.2.2.2.1
retrieving revision 1.1.1.3.2.2.2.2
diff -C2 -d -r1.1.1.3.2.2.2.1 -r1.1.1.3.2.2.2.2
*** g_mycanvas.c	7 Mar 2004 19:38:13 -0000	1.1.1.3.2.2.2.1
--- g_mycanvas.c	28 Mar 2004 07:21:17 -0000	1.1.1.3.2.2.2.2
***************
*** 307,317 ****
      }
      x->x_gui.x_draw = (t_iemfunptr)my_canvas_draw;
-     x->x_gui.x_fsf.x_snd_able = 1;
-     x->x_gui.x_fsf.x_rcv_able = 1;
      x->x_gui.x_glist = (t_glist *)canvas_getcurrent();
!     if (!strcmp(x->x_gui.x_snd->s_name, "empty"))
!     	x->x_gui.x_fsf.x_snd_able = 0;
!     if (!strcmp(x->x_gui.x_rcv->s_name, "empty"))
!     	x->x_gui.x_fsf.x_rcv_able = 0;
      if(a < 1)
  	a = 1;
--- 307,313 ----
      }
      x->x_gui.x_draw = (t_iemfunptr)my_canvas_draw;
      x->x_gui.x_glist = (t_glist *)canvas_getcurrent();
!     x->x_gui.x_fsf.x_snd_able = strcmp(x->x_gui.x_snd->s_name, "empty")!=0;
!     x->x_gui.x_fsf.x_rcv_able = strcmp(x->x_gui.x_rcv->s_name, "empty")!=0;
      if(a < 1)
  	a = 1;

Index: u_object.tk
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/u_object.tk,v
retrieving revision 1.1.2.11
retrieving revision 1.1.2.12
diff -C2 -d -r1.1.2.11 -r1.1.2.12
*** u_object.tk	23 Mar 2004 02:17:42 -0000	1.1.2.11
--- u_object.tk	28 Mar 2004 07:21:18 -0000	1.1.2.12
***************
*** 69,74 ****
  #   0: creation
  #   1: resize (or move)
! 
! proc wire_draw {canvas tag thick x1 y1 x2 y2} {
  	global look
  	set xys [list $x1 $y1 $x2 $y2]
--- 69,73 ----
  #   0: creation
  #   1: resize (or move)
! proc wire_draw {self canvas thick x1 y1 x2 y2} {
[...966 lines suppressed...]
! proc vu_draw {self canvas} {
! 	global _
! 	set isnew [expr [llength [$canvas gettags ${self}BASE]] == 0]
! 	set x1 $_($self:x1)
! 	set y1 $_($self:y1)
! 	set xs $_($self:w)
! 	set ys $_($self:w)
  	set x2 [expr $x1+$xs]
  	set y2 [expr $y1+$ys]
! 	set ins  [expr 2*([string compare $_($self:rcv) empty]==0)]
! 	set outs 2
! 	#[expr [string compare $_($self:snd) empty]==0]
! 	set isnew [expr [llength [$canvas gettags ${self}BASE]] == 0]
! 	set colour [parse_color $_($self:bcol)]
! 	bluebox_draw $self $canvas $x1 $y1 $xs $ys $ins $outs $colour
! }
! 
! proc vu_erase {self canvas} {
! 	bluebox_erase $self $canvas
  }

Index: g_rtext.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_rtext.c,v
retrieving revision 1.1.1.2.2.6.2.3
retrieving revision 1.1.1.2.2.6.2.4
diff -C2 -d -r1.1.1.2.2.6.2.3 -r1.1.1.2.2.6.2.4
*** g_rtext.c	16 Mar 2004 21:55:55 -0000	1.1.1.2.2.6.2.3
--- g_rtext.c	28 Mar 2004 07:21:17 -0000	1.1.1.2.2.6.2.4
***************
*** 338,342 ****
  void rtext_erase(t_rtext *x)
  {
!     sys_vgui(".x%x.c delete %s\n", glist_getcanvas(x->x_glist), x->x_tag);
  }
  
--- 338,342 ----
  void rtext_erase(t_rtext *x)
  {
!     sys_vgui("pdtk_text_delete .x%x.c %s\n", glist_getcanvas(x->x_glist), x->x_tag);
  }
  

Index: g_graph.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_graph.c,v
retrieving revision 1.1.1.3.2.3.2.2
retrieving revision 1.1.1.3.2.3.2.3
diff -C2 -d -r1.1.1.3.2.3.2.2 -r1.1.1.3.2.3.2.3
*** g_graph.c	8 Mar 2004 12:32:38 -0000	1.1.1.3.2.3.2.2
--- g_graph.c	28 Mar 2004 07:21:17 -0000	1.1.1.3.2.3.2.3
***************
*** 113,117 ****
  void glist_clear(t_glist *x)
  {
!     t_gobj *y, *y2;
      int dspstate = canvas_suspend_dsp();
      while (y = x->gl_list)
--- 113,117 ----
  void glist_clear(t_glist *x)
  {
!     t_gobj *y;
      int dspstate = canvas_suspend_dsp();
      while (y = x->gl_list)
***************
*** 122,126 ****
  void glist_retext(t_glist *glist, t_text *y)
  {
-     t_canvas *c = glist_getcanvas(glist);
      	/* check that we have built rtexts yet.  LATER need a better test. */
      if (glist->gl_editor && glist->gl_editor->e_rtext)
--- 122,125 ----

Index: g_vumeter.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_vumeter.c,v
retrieving revision 1.1.1.3.2.2.2.5
retrieving revision 1.1.1.3.2.2.2.6
diff -C2 -d -r1.1.1.3.2.2.2.5 -r1.1.1.3.2.2.2.6
*** g_vumeter.c	28 Mar 2004 04:18:18 -0000	1.1.1.3.2.2.2.5
--- g_vumeter.c	28 Mar 2004 07:21:18 -0000	1.1.1.3.2.2.2.6
***************
*** 157,163 ****
  	     strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"",
  	     x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_lcol, x);
!     sys_vgui("io_draw .x%x.c %x %d %d %d %d %d %d\n",
! 	canvas, x, xpos-1, ypos-2, x->x_gui.x_w+1, x->x_gui.x_h+2, 
  	2*!x->x_gui.x_fsf.x_rcv_able, 2*!x->x_gui.x_fsf.x_snd_able);
  }
  
--- 157,165 ----
  	     strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"",
  	     x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_lcol, x);
!     pd_upload((t_gobj *)x);
!     sys_mgui((t_iemgui *)x,"vu","draw","");
! /*	canvas, x, xpos-1, ypos-2, x->x_gui.x_w+1, x->x_gui.x_h+2, 
  	2*!x->x_gui.x_fsf.x_rcv_able, 2*!x->x_gui.x_fsf.x_snd_able);
+ */
  }
  
***************
*** 597,604 ****
  
      x->x_gui.x_fsf.x_snd_able = 0;
!     x->x_gui.x_fsf.x_rcv_able = 1;
      x->x_gui.x_glist = (t_glist *)canvas_getcurrent();
-     if (!strcmp(x->x_gui.x_rcv->s_name, "empty"))
-     	x->x_gui.x_fsf.x_rcv_able = 0;
      if (x->x_gui.x_fsf.x_font_style == 1)
      	strcpy(x->x_gui.x_font, "helvetica");
--- 599,604 ----
  
      x->x_gui.x_fsf.x_snd_able = 0;
!     x->x_gui.x_fsf.x_rcv_able = strcmp(x->x_gui.x_rcv->s_name, "empty")!=0;
      x->x_gui.x_glist = (t_glist *)canvas_getcurrent();
      if (x->x_gui.x_fsf.x_font_style == 1)
      	strcpy(x->x_gui.x_font, "helvetica");

Index: g_canvas.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_canvas.c,v
retrieving revision 1.1.1.4.2.7.2.5
retrieving revision 1.1.1.4.2.7.2.6
diff -C2 -d -r1.1.1.4.2.7.2.5 -r1.1.1.4.2.7.2.6
*** g_canvas.c	16 Mar 2004 21:54:02 -0000	1.1.1.4.2.7.2.5
--- g_canvas.c	28 Mar 2004 07:21:16 -0000	1.1.1.4.2.7.2.6
***************
*** 274,283 ****
  	while (outno == t->tr_nout)
  	{
!     	    t_gobj *y;
      	    t_object *ob = 0;
!     	    if (!t->tr_ob) y = t->tr_x->gl_list;
!     	    else y = t->tr_ob->ob_g.g_next;
!     	    for (; y; y = y->g_next)
!     		if (ob = pd_checkobject(&y->g_pd)) break;
      	    if (!ob) return (0);
      	    t->tr_ob = ob;
--- 274,280 ----
  	while (outno == t->tr_nout)
  	{
!     	    t_gobj *y = t->tr_ob ? y = t->tr_ob->ob_g.g_next : t->tr_x->gl_list;
      	    t_object *ob = 0;
!     	    for (; y; y=y->g_next) {ob=pd_checkobject(&y->g_pd); if (ob) break;}
      	    if (!ob) return (0);
      	    t->tr_ob = ob;
***************
*** 358,379 ****
  
      if (argc == 5)  /* toplevel: x, y, w, h, font */
!     {
!     	xloc = atom_getintarg(0, argc, argv);
!     	yloc = atom_getintarg(1, argc, argv);
!     	width = atom_getintarg(2, argc, argv);
!     	height = atom_getintarg(3, argc, argv);
!     	font = atom_getintarg(4, argc, argv);
!     }
      else if (argc == 6)  /* subwindow: x, y, w, h, name, vis */
!     {
!     	xloc = atom_getintarg(0, argc, argv);
!     	yloc = atom_getintarg(1, argc, argv);
!     	width = atom_getintarg(2, argc, argv);
!     	height = atom_getintarg(3, argc, argv);
!     	s = atom_getsymbolarg(4, argc, argv);
!     	vis = atom_getintarg(5, argc, argv);
!     }
      	/* (otherwise assume we're being created from the menu.) */
- 
      if (canvas_newdirectory->s_name[0])
      {
--- 355,362 ----
  
      if (argc == 5)  /* toplevel: x, y, w, h, font */
! 	pd_scanargs(argc,argv,"iiiii",&xloc,&yloc,&width,&height,&font);
      else if (argc == 6)  /* subwindow: x, y, w, h, name, vis */
! 	pd_scanargs(argc,argv,"iiiisi",&xloc,&yloc,&width,&height,&s,&vis);
      	/* (otherwise assume we're being created from the menu.) */
      if (canvas_newdirectory->s_name[0])
      {
***************
*** 417,427 ****
  static void canvas_coords(t_glist *x, t_symbol *s, int argc, t_atom *argv)
  {
!     x->gl_x1 = atom_getfloatarg(0, argc, argv);
!     x->gl_y1 = atom_getfloatarg(1, argc, argv);
!     x->gl_x2 = atom_getfloatarg(2, argc, argv);
!     x->gl_y2 = atom_getfloatarg(3, argc, argv);
!     x->gl_pixwidth = atom_getintarg(4, argc, argv);
!     x->gl_pixheight = atom_getintarg(5, argc, argv);
!     canvas_setgraph(x, atom_getintarg(6, argc, argv));
  }
  
--- 400,407 ----
  static void canvas_coords(t_glist *x, t_symbol *s, int argc, t_atom *argv)
  {
!     int graph;
!     pd_scanargs(argc,argv,"ffffiii",
! 	&x->gl_x1,&x->gl_y1,&x->gl_x2,&x->gl_y2,&x->gl_pixwidth,&x->gl_pixheight,&graph);
!     canvas_setgraph(x,graph);
  }
  
***************
*** 495,507 ****
  void glist_glist(t_glist *g, t_symbol *s, int argc, t_atom *argv)
  {
!     t_symbol *sym = atom_getsymbolarg(0, argc, argv);   
!     float x1 = atom_getfloatarg(1, argc, argv);  
!     float y1 = atom_getfloatarg(2, argc, argv);  
!     float x2 = atom_getfloatarg(3, argc, argv);  
!     float y2 = atom_getfloatarg(4, argc, argv);  
!     float px1 = atom_getfloatarg(5, argc, argv);  
!     float py1 = atom_getfloatarg(6, argc, argv);  
!     float px2 = atom_getfloatarg(7, argc, argv);  
!     float py2 = atom_getfloatarg(8, argc, argv);
      glist_addglist(g, sym, x1, y1, x2, y2, px1, py1, px2, py2);
  }
--- 475,481 ----
  void glist_glist(t_glist *g, t_symbol *s, int argc, t_atom *argv)
  {
!     t_symbol *sym;
!     float x1,y1,x2,y2,px1,py1,px2,py2;
!     pd_scanargs(argc,argv,"sffffffff",&x1,&y1,&x2,&y2,&px1,&py1,&px2,&py2);
      glist_addglist(g, sym, x1, y1, x2, y2, px1, py1, px2, py2);
  }
***************
*** 634,638 ****
  	t_canvas *x = canvas_list;
  	while (x) {
- 		fprintf(stderr,"canvas=%08x\n",x);
  		canvas_redraw(x);
  		x->gl_mapped=0; canvas_map(x,1);
--- 608,611 ----
***************
*** 715,719 ****
  void canvas_vis(t_canvas *x, t_floatarg f)
  {
-     char buf[30];
      int flag = (f != 0);
      if (flag)
--- 688,691 ----
***************
*** 861,866 ****
  	int x1=t.tr_lx1, y1=t.tr_ly1;
  	int x2=t.tr_lx2, y2=t.tr_ly2;
! 	sys_vgui("wire_draw .x%x.c l%x %d %d %d %d %d\n",
! 	    glist_getcanvas(x), oc, (outlet_getsymbol(t.tr_outlet) == &s_signal ? 2:1), x1, y1, x2, y2);
      }
  }
--- 833,838 ----
  	int x1=t.tr_lx1, y1=t.tr_ly1;
  	int x2=t.tr_lx2, y2=t.tr_ly2;
! 	sys_vgui("wire_draw l%x .x%x.c %d %d %d %d %d\n",
! 	    oc, glist_getcanvas(x), (outlet_getsymbol(t.tr_outlet) == &s_signal ? 2:1), x1, y1, x2, y2);
      }
  }
***************
*** 875,880 ****
  	    int x1=t.tr_lx1, y1=t.tr_ly1;
  	    int x2=t.tr_lx2, y2=t.tr_ly2;
! 	    sys_vgui("wire_draw .x%x.c l%x %d %d %d %d %d\n",
! 		glist_getcanvas(x), oc, (outlet_getsymbol(t.tr_outlet) == &s_signal ? 2:1), x1, y1, x2, y2);
      	}
      }
--- 847,852 ----
  	    int x1=t.tr_lx1, y1=t.tr_ly1;
  	    int x2=t.tr_lx2, y2=t.tr_ly2;
! 	    sys_vgui("wire_draw l%x .x%x.c %d %d %d %d %d\n",
! 		oc, glist_getcanvas(x), (outlet_getsymbol(t.tr_outlet) == &s_signal ? 2:1), x1, y1, x2, y2);
      	}
      }
***************
*** 1375,1424 ****
      class_addmethod(pd_canvasmaker, (t_method)canvas_new, gensym("canvas"),
      	A_GIMME, 0);
!     class_addmethod(canvas_class, (t_method)canvas_restore,
!     	gensym("restore"), A_GIMME, 0);
!     class_addmethod(canvas_class, (t_method)canvas_coords,
!     	gensym("coords"), A_GIMME, 0);
! 
  /* -------------------------- objects ----------------------------- */
!     class_addmethod(canvas_class, (t_method)canvas_obj,
!     	gensym("obj"), A_GIMME, A_NULL);
!     class_addmethod(canvas_class, (t_method)canvas_msg,
!     	gensym("msg"), A_GIMME, A_NULL);
!     class_addmethod(canvas_class, (t_method)canvas_floatatom,
!     	gensym("floatatom"), A_GIMME, A_NULL);
!     class_addmethod(canvas_class, (t_method)canvas_symbolatom,
!     	gensym("symbolatom"), A_GIMME, A_NULL);
!     class_addmethod(canvas_class, (t_method)glist_text,
!     	gensym("text"), A_GIMME, A_NULL);
!     class_addmethod(canvas_class, (t_method)glist_glist, gensym("graph"),
!     	A_GIMME, A_NULL);
!     class_addmethod(canvas_class, (t_method)glist_scalar,
!     	gensym("scalar"), A_GIMME, A_NULL);
! 
!     /* -------------- Thomas Musil's GUI objects ------------ */
!     class_addmethod(canvas_class, (t_method)canvas_bng, gensym("bng"),
! 		    A_GIMME, A_NULL);
!     class_addmethod(canvas_class, (t_method)canvas_toggle, gensym("toggle"),
!                     A_GIMME, A_NULL);
!     class_addmethod(canvas_class, (t_method)canvas_vslider, gensym("vslider"),
!                     A_GIMME, A_NULL);
!     class_addmethod(canvas_class, (t_method)canvas_hslider, gensym("hslider"),
!                     A_GIMME, A_NULL);
!     class_addmethod(canvas_class, (t_method)canvas_hdial, gensym("hdial"),
! 		    A_GIMME, A_NULL);
!     class_addmethod(canvas_class, (t_method)canvas_vdial, gensym("vdial"),
!                     A_GIMME, A_NULL);
!     class_addmethod(canvas_class, (t_method)canvas_hradio, gensym("hradio"),
!                     A_GIMME, A_NULL);
!     class_addmethod(canvas_class, (t_method)canvas_vradio, gensym("vradio"),
!                     A_GIMME, A_NULL);
!     class_addmethod(canvas_class, (t_method)canvas_vumeter, gensym("vumeter"),
!                     A_GIMME, A_NULL);
!     class_addmethod(canvas_class, (t_method)canvas_mycnv, gensym("mycnv"),
! 		    A_GIMME, A_NULL);
!     class_addmethod(canvas_class, (t_method)canvas_numbox, gensym("numbox"),
!                     A_GIMME, A_NULL);
!     class_addmethod(canvas_class, (t_method)canvas_guiext, gensym("guiext"),
! 		    A_GIMME, A_NULL);
      
  /* ------------------------ gui stuff --------------------------- */
--- 1347,1373 ----
      class_addmethod(pd_canvasmaker, (t_method)canvas_new, gensym("canvas"),
      	A_GIMME, 0);
! #define DEF(_f_,_s_) class_addmethod(canvas_class, (t_method)_f_, gensym(_s_), A_GIMME, 0);
!     DEF(canvas_restore,"restore");
!     DEF(canvas_coords,"coords");
  /* -------------------------- objects ----------------------------- */
!     DEF(canvas_obj,"obj");
!     DEF(canvas_msg,"msg");
!     DEF(canvas_floatatom,"floatatom");
!     DEF(canvas_symbolatom,"symbolatom");
!     DEF(glist_text,"text");
!     DEF(glist_glist,"graph");
!     DEF(glist_scalar,"scalar");
!     DEF(canvas_bng,"bng");
!     DEF(canvas_toggle,"toggle");
!     DEF(canvas_vslider,"vslider");
!     DEF(canvas_hslider,"hslider");
!     DEF(canvas_hdial,"hdial");
!     DEF(canvas_vdial,"vdial");
!     DEF(canvas_hradio,"hradio");
!     DEF(canvas_vradio,"vradio");
!     DEF(canvas_vumeter,"vumeter");
!     DEF(canvas_mycnv,"mycnv");
!     DEF(canvas_numbox,"numbox");
!     DEF(canvas_guiext,"guiext");
      
  /* ------------------------ gui stuff --------------------------- */
***************
*** 1435,1440 ****
      class_addmethod(canvas_class, (t_method)canvas_map,
      	gensym("map"), A_FLOAT, A_NULL);
! //    class_addmethod(canvas_class, (t_method)canvas_redraw,
! //    	gensym("redraw"), A_NULL);
      class_setpropertiesfn(canvas_class, graph_properties);
  
--- 1384,1389 ----
      class_addmethod(canvas_class, (t_method)canvas_map,
      	gensym("map"), A_FLOAT, A_NULL);
! /*    class_addmethod(canvas_class, (t_method)canvas_redraw,
!     	gensym("redraw"), A_NULL);*/
      class_setpropertiesfn(canvas_class, graph_properties);
  

Index: g_editor.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_editor.c,v
retrieving revision 1.1.1.4.2.3.2.3
retrieving revision 1.1.1.4.2.3.2.4
diff -C2 -d -r1.1.1.4.2.3.2.3 -r1.1.1.4.2.3.2.4
*** g_editor.c	8 Mar 2004 12:32:38 -0000	1.1.1.4.2.3.2.3
--- g_editor.c	28 Mar 2004 07:21:17 -0000	1.1.1.4.2.3.2.4
***************
*** 30,35 ****
  /* ---------------- generic widget behavior ------------------------- */
  
! void gobj_getrect(t_gobj *x, t_glist *glist, int *x1, int *y1,
!     int *x2, int *y2)
  {
      if (x->g_pd->c_wb && x->g_pd->c_wb->w_getrectfn)
--- 30,34 ----
  /* ---------------- generic widget behavior ------------------------- */
  
! void gobj_getrect(t_gobj *x, t_glist *glist, int *x1, int *y1, int *x2, int *y2)
  {
      if (x->g_pd->c_wb && x->g_pd->c_wb->w_getrectfn)
***************
*** 433,437 ****
  {
      t_undo_cut *buf;
-     t_gobj *y;
      t_linetraverser t;
      t_outconnect *oc;
--- 432,435 ----
***************
*** 736,751 ****
  void canvas_inlettip(t_canvas* x,t_object* ob,int closest,int xpos,int ypos)
  {
    if (!sys_tooltips) return;
    if (ob->ob_pd->c_firstin) closest--;
    if (closest < 0)
!     sys_vgui(".x%x.c create text %d %d -anchor sw -text \"%s\" -tags y\n",
! 	     x, xpos, ypos,ob->ob_pd->c_firsttip->s_name);
    else
!     sys_vgui(".x%x.c create text %d %d -anchor sw -text \"%s\" -tags y\n",
! 	     x, xpos, ypos-4,inlet_tip(ob->te_inlet,closest));
  }
  
- 
- 
      /* check if a point lies in a gobj.  */
  int canvas_hitbox(t_canvas *x, t_gobj *y, int xpos, int ypos,
--- 734,748 ----
  void canvas_inlettip(t_canvas* x,t_object* ob,int closest,int xpos,int ypos)
  {
+   int inlet=closest;
    if (!sys_tooltips) return;
    if (ob->ob_pd->c_firstin) closest--;
    if (closest < 0)
!     sys_vgui(".x%x.c create text %d %d -anchor sw -text \"%d: %s\" -tags y\n",
! 	     x, xpos, ypos-4,inlet,ob->ob_pd->c_firsttip->s_name);
    else
!     sys_vgui(".x%x.c create text %d %d -anchor sw -text \"%d: %s\" -tags y\n",
! 	     x, xpos, ypos-4,inlet,inlet_tip(ob->te_inlet,closest));
  }
  
      /* check if a point lies in a gobj.  */
  int canvas_hitbox(t_canvas *x, t_gobj *y, int xpos, int ypos,
***************
*** 1080,1084 ****
      	    	    	x->gl_editor->e_ywas = ypos;
      	    	    	sys_vgui(
!     	    	    	  "wire_draw .x%x.c x %d %d %d %d %d\n",
      	    	    	    	x, (issignal ? 2 : 1), xpos, ypos, xpos, ypos);
      	    	    }    	    	    	    	
--- 1077,1081 ----
      	    	    	x->gl_editor->e_ywas = ypos;
      	    	    	sys_vgui(
!     	    	    	  "wire_draw x .x%x.c %d %d %d %d %d\n",
      	    	    	    	x, (issignal ? 2 : 1), xpos, ypos, xpos, ypos);
      	    	    }    	    	    	    	
***************
*** 1213,1217 ****
      	ywas = x->gl_editor->e_ywas;
      if (doit) sys_vgui(".x%x.c delete x\n", x);
!     else sys_vgui("wire_draw .x%x.c x 1 %d %d %d %d\n",
      	    x, x->gl_editor->e_xwas, x->gl_editor->e_ywas, xpos, ypos);
  
--- 1210,1214 ----
      	ywas = x->gl_editor->e_ywas;
      if (doit) sys_vgui(".x%x.c delete x\n", x);
!     else sys_vgui("wire_draw x .x%x.c 1 %d %d %d %d\n",
      	    x, x->gl_editor->e_xwas, x->gl_editor->e_ywas, xpos, ypos);
  
***************
*** 1274,1279 ****
     	    		    + IOMIDDLE;
      	    	ly2 = y21;
!     	    	sys_vgui("wire_draw .x%x.c l%x %d %d %d %d %d\n",
! 		    glist_getcanvas(x), oc, (obj_issignaloutlet(ob1, closest1) ? 2 : 1),
  		    	lx1, ly1, lx2, ly2);
  		canvas_setundo(x, canvas_undo_connect,
--- 1271,1276 ----
     	    		    + IOMIDDLE;
      	    	ly2 = y21;
!     	    	sys_vgui("wire_draw l%x .x%x.c %d %d %d %d %d\n",
! 		    oc, glist_getcanvas(x), (obj_issignaloutlet(ob1, closest1) ? 2 : 1),
  		    	lx1, ly1, lx2, ly2);
  		canvas_setundo(x, canvas_undo_connect,
***************
*** 1481,1492 ****
  	}
  	    	/* check for arrow keys */
! 	else if (!strcmp(gotkeysym->s_name, "Up"))
! 	    canvas_displaceselection(x, 0, shift ? -10 : -1);
! 	else if (!strcmp(gotkeysym->s_name, "Down"))
! 	    canvas_displaceselection(x, 0, shift ? 10 : 1);
! 	else if (!strcmp(gotkeysym->s_name, "Left"))
! 	    canvas_displaceselection(x, shift ? -10 : -1, 0);
! 	else if (!strcmp(gotkeysym->s_name, "Right"))
! 	    canvas_displaceselection(x, shift ? 10 : 1, 0);
      }
  }
--- 1478,1485 ----
  	}
  	    	/* check for arrow keys */
! 	else if (!strcmp(gotkeysym->s_name, "Up"))    canvas_displaceselection(x, 0, shift ? -10 : -1);
! 	else if (!strcmp(gotkeysym->s_name, "Down"))  canvas_displaceselection(x, 0, shift ? 10 : 1);
! 	else if (!strcmp(gotkeysym->s_name, "Left"))  canvas_displaceselection(x, shift ? -10 : -1, 0);
! 	else if (!strcmp(gotkeysym->s_name, "Right")) canvas_displaceselection(x, shift ? 10 : 1, 0);
      }
  }
***************
*** 1887,1891 ****
  static void canvas_dopaste(t_canvas *x, t_binbuf *b)
  {
!     t_gobj *newgobj, *last, *g2;
      int dspstate = canvas_suspend_dsp(), nbox, count;
  
--- 1880,1884 ----
  static void canvas_dopaste(t_canvas *x, t_binbuf *b)
  {
!     t_gobj *g2;
      int dspstate = canvas_suspend_dsp(), nbox, count;
  
***************
*** 1983,1987 ****
  static void canvas_tidy(t_canvas *x)
  {
!     t_gobj *y, *y2, *y3;
      int ax1, ay1, ax2, ay2, bx1, by1, bx2, by2;
      int histogram[NHIST], *ip, i, besthist, bestdist;
--- 1976,1980 ----
  static void canvas_tidy(t_canvas *x)
  {
!     t_gobj *y, *y2;
      int ax1, ay1, ax2, ay2, bx1, by1, bx2, by2;
      int histogram[NHIST], *ip, i, besthist, bestdist;

Index: g_hslider.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_hslider.c,v
retrieving revision 1.1.1.3.2.2.2.7
retrieving revision 1.1.1.3.2.2.2.8
diff -C2 -d -r1.1.1.3.2.2.2.7 -r1.1.1.3.2.2.2.8
*** g_hslider.c	14 Mar 2004 22:33:54 -0000	1.1.1.3.2.2.2.7
--- g_hslider.c	28 Mar 2004 07:21:17 -0000	1.1.1.3.2.2.2.8
***************
*** 36,101 ****
  }
  
- static void hslider_draw_update(t_hslider *x, t_glist *glist)
- {
-     t_canvas *canvas=glist_getcanvas(glist);
-     if (glist_isvisible(glist))
-     {sys_vgui("slider_set .x%x.c %x %d %d #%6.6x\n", canvas, x, x->x_val,
- 	isvert(x),x->x_gui.x_fcol);}
- }
- 
- static void hslider_draw_new(t_hslider *x, t_glist *glist)
- {
-     int xpos=text_xpix(&x->x_gui.x_obj, glist);
-     int ypos=text_ypix(&x->x_gui.x_obj, glist);
-     t_canvas *canvas=glist_getcanvas(glist);
-     pd_upload(x);
-     sys_vgui("slider_draw %x .x%x.c\n", x, canvas);
-     sys_vgui("slider_set .x%x.c %x %d %d #%6.6x\n", canvas, x, x->x_val, isvert(x),x->x_gui.x_fcol);
- }
- 
- static void hslider_draw_move(t_hslider *x, t_glist *glist)
- {
-     int xpos=text_xpix(&x->x_gui.x_obj, glist);
-     int ypos=text_ypix(&x->x_gui.x_obj, glist);
-     t_canvas *canvas=glist_getcanvas(glist);
-     pd_upload((t_gobj *)x);
-     sys_vgui("slider_draw %x .x%x.c\n", x, canvas);
-     sys_vgui("slider_set .x%x.c %x %d %d #%6.6x\n", canvas, x, x->x_val,isvert(x), x->x_gui.x_fcol);
- }
- 
- static void hslider_draw_erase(t_hslider* x,t_glist* glist)
- {
-     t_canvas *canvas=glist_getcanvas(glist);
-     sys_vgui("slider_erase .x%x.c %x\n", canvas, x);
- }
- 
- static void hslider_draw_config(t_hslider* x,t_glist* glist)
- {
-     t_canvas *canvas=glist_getcanvas(glist);
-     sys_vgui(".x%x.c itemconfigure %xLABEL -font {%s %d bold} -fill #%6.6x -text {%s} \n",
- 	     canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize,
- 	     x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol,
- 	     strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"");
-     sys_vgui("slider_set .x%x.c %x %d %d #%6.6x\n", canvas, x, x->x_val, isvert(x), x->x_gui.x_fcol);
-     sys_vgui("slider_select .x%x.c %x %d\n", canvas, x, x->x_gui.x_fsf.x_selected);
- }
- 
- static void hslider_draw_select(t_hslider *x, t_glist *glist)
- {
-     t_canvas *canvas=glist_getcanvas(glist);
-     sys_vgui("slider_select .x%x.c %x %d\n", canvas, x, x->x_gui.x_fsf.x_selected);
-     sys_vgui(".x%x.c itemconfigure %xLABEL -fill #%6.6x\n", canvas, x,
- 	x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol);
- }
- 
  static void hslider_draw(t_hslider *x, t_glist *glist, int mode)
  {
!     if     (mode == IEM_GUI_DRAW_MODE_UPDATE) hslider_draw_update(x, glist);
!     else if(mode == IEM_GUI_DRAW_MODE_MOVE)   hslider_draw_move(x, glist);
!     else if(mode == IEM_GUI_DRAW_MODE_NEW)    hslider_draw_new(x, glist);
!     else if(mode == IEM_GUI_DRAW_MODE_SELECT) hslider_draw_select(x, glist);
!     else if(mode == IEM_GUI_DRAW_MODE_ERASE)  hslider_draw_erase(x, glist);
!     else if(mode == IEM_GUI_DRAW_MODE_CONFIG) hslider_draw_config(x, glist);
!     else if(mode >= IEM_GUI_DRAW_MODE_IO)     hslider_draw_move(x, glist);
  }
  
--- 36,50 ----
  }
  
  static void hslider_draw(t_hslider *x, t_glist *glist, int mode)
  {
!     if (mode==IEM_GUI_DRAW_MODE_ERASE) {
! 	sys_mgui((t_iemgui *)x,"slider","erase","");
!     } else if (mode==IEM_GUI_DRAW_MODE_SELECT) {
! 	sys_mgui((t_iemgui *)x,"slider","select","i",x->x_gui.x_fsf.x_selected);
!     } else {
! 	pd_upload((t_gobj *)x);
! 	sys_mgui((t_iemgui *)x,"slider","draw","");
! 	sys_mgui((t_iemgui *)x,"slider","set","i",x->x_val);
!     }
  }
  
***************
*** 218,226 ****
  }
  
! static void hslider_set(t_hslider *x, t_floatarg f)    /* bugfix */
  {
      double g;
! 
!     if(x->x_gui.x_isa.x_reverse)    /* bugfix */
      {
  	if(f > x->x_min) f = x->x_min;
--- 167,174 ----
  }
  
! static void hslider_set(t_hslider *x, t_floatarg f)
  {
      double g;
!     if(x->x_gui.x_isa.x_reverse)
      {
  	if(f > x->x_min) f = x->x_min;
***************
*** 232,239 ****
  	if(f < x->x_min) f = x->x_min;
      }
!     if(x->x_lin0_log1)
! 	g = log(f/x->x_min)/x->x_k;
!     else
! 	g = (f - x->x_min) / x->x_k;
      x->x_val = (int)(100.0*g + 0.49999);
      x->x_pos = x->x_val;
--- 180,184 ----
  	if(f < x->x_min) f = x->x_min;
      }
!     g = (x->x_lin0_log1 ? log(f/x->x_min) : (f-x->x_min)) / x->x_k;
      x->x_val = (int)(100.0*g + 0.49999);
      x->x_pos = x->x_val;
***************
*** 243,254 ****
  static void hslider_bang(t_hslider *x)
  {
!     double out;
! 
!     if(x->x_lin0_log1)
! 	out = x->x_min*exp(x->x_k*(double)(x->x_val)*0.01);
!     else
! 	out = (double)(x->x_val)*0.01*x->x_k + x->x_min;
!     if((out < 1.0e-10)&&(out > -1.0e-10))
! 	out = 0.0;
      outlet_float(x->x_gui.x_obj.ob_outlet, out);
      if(x->x_gui.x_fsf.x_snd_able && x->x_gui.x_snd->s_thing)
--- 188,195 ----
  static void hslider_bang(t_hslider *x)
  {
!     double out = x->x_lin0_log1 ?
! 	x->x_min*exp(x->x_k*(double)(x->x_val)*0.01) :
! 	(double)(x->x_val)*0.01*x->x_k + x->x_min;
!     if((out < 1.0e-10)&&(out > -1.0e-10)) out = 0.0;
      outlet_float(x->x_gui.x_obj.ob_outlet, out);
      if(x->x_gui.x_fsf.x_snd_able && x->x_gui.x_snd->s_thing)
***************
*** 356,360 ****
  {
      t_hslider* x = (t_hslider *)z;
- 
      if(doit)
      {
--- 297,300 ----
***************
*** 378,387 ****
  }}
  
- static void hslider_delta(t_hslider *x, t_symbol *s, int ac, t_atom *av)
- {iemgui_delta((void *)x, &x->x_gui, s, ac, av);}
- 
- static void hslider_pos(t_hslider *x, t_symbol *s, int ac, t_atom *av)
- {iemgui_pos((void *)x, &x->x_gui, s, ac, av);}
- 
  static void hslider_range(t_hslider *x, t_symbol *s, int ac, t_atom *av)
  {
--- 318,321 ----
***************
*** 390,408 ****
  }
  
  static void hslider_color(t_hslider *x, t_symbol *s, int ac, t_atom *av)
  {iemgui_color((void *)x, &x->x_gui, s, ac, av);}
- 
  static void hslider_send(t_hslider *x, t_symbol *s)
  {iemgui_send(x, &x->x_gui, s);}
- 
  static void hslider_receive(t_hslider *x, t_symbol *s)
  {iemgui_receive(x, &x->x_gui, s);}
- 
  static void hslider_label(t_hslider *x, t_symbol *s)
  {iemgui_label((void *)x, &x->x_gui, s);}
- 
  static void hslider_label_pos(t_hslider *x, t_symbol *s, int ac, t_atom *av)
  {iemgui_label_pos((void *)x, &x->x_gui, s, ac, av);}
- 
  static void hslider_label_font(t_hslider *x, t_symbol *s, int ac, t_atom *av)
  {iemgui_label_font((void *)x, &x->x_gui, s, ac, av);}
--- 324,341 ----
  }
  
+ static void hslider_delta(t_hslider *x, t_symbol *s, int ac, t_atom *av)
+ {iemgui_delta((void *)x, &x->x_gui, s, ac, av);}
+ static void hslider_pos(t_hslider *x, t_symbol *s, int ac, t_atom *av)
+ {iemgui_pos((void *)x, &x->x_gui, s, ac, av);}
  static void hslider_color(t_hslider *x, t_symbol *s, int ac, t_atom *av)
  {iemgui_color((void *)x, &x->x_gui, s, ac, av);}
  static void hslider_send(t_hslider *x, t_symbol *s)
  {iemgui_send(x, &x->x_gui, s);}
  static void hslider_receive(t_hslider *x, t_symbol *s)
  {iemgui_receive(x, &x->x_gui, s);}
  static void hslider_label(t_hslider *x, t_symbol *s)
  {iemgui_label((void *)x, &x->x_gui, s);}
  static void hslider_label_pos(t_hslider *x, t_symbol *s, int ac, t_atom *av)
  {iemgui_label_pos((void *)x, &x->x_gui, s, ac, av);}
  static void hslider_label_font(t_hslider *x, t_symbol *s, int ac, t_atom *av)
  {iemgui_label_font((void *)x, &x->x_gui, s, ac, av);}
***************
*** 421,432 ****
  
  static void hslider_init(t_hslider *x, t_floatarg f)
! {
!     x->x_gui.x_isa.x_loadinit = (f==0.0)?0:1;
! }
  
  static void hslider_steady(t_hslider *x, t_floatarg f)
! {
!     x->x_steady = (f==0.0)?0:1;
! }
  
  static void hslider_float(t_hslider *x, t_floatarg f)
--- 354,361 ----
  
  static void hslider_init(t_hslider *x, t_floatarg f)
! {x->x_gui.x_isa.x_loadinit = (f==0.0)?0:1;}
  
  static void hslider_steady(t_hslider *x, t_floatarg f)
! {x->x_steady = (f==0.0)?0:1;}
  
  static void hslider_float(t_hslider *x, t_floatarg f)
***************
*** 471,475 ****
      int bflcol[]={-262144, -1, -1};
      int w=IEM_SL_DEFAULTSIZE, h=IEM_GUI_DEFAULTSIZE;
!     int lilo=0, ldx=-2, ldy=-6, f=0, v=0, steady=1, fs=8;
      double min=0.0, max=(double)(IEM_SL_DEFAULTSIZE-1);
      int isa,fstyle;
--- 400,404 ----
      int bflcol[]={-262144, -1, -1};
      int w=IEM_SL_DEFAULTSIZE, h=IEM_GUI_DEFAULTSIZE;
!     int lilo=0, ldx=-2, ldy=-6, v=0, steady=1, fs=8;
      double min=0.0, max=(double)(IEM_SL_DEFAULTSIZE-1);
      int isa,fstyle;
***************
*** 501,506 ****
      if((argc == 18)&&IS_A_FLOAT(argv,17)) steady=!!(int)atom_getintarg(17,argc,argv);
      x->x_gui.x_draw = (t_iemfunptr)hslider_draw;
-     x->x_gui.x_fsf.x_snd_able = 1;
-     x->x_gui.x_fsf.x_rcv_able = 1;
      x->x_gui.x_glist = (t_glist *)canvas_getcurrent();
      x->x_val = x->x_gui.x_isa.x_loadinit ? v : 0;
--- 430,433 ----
***************
*** 509,514 ****
      x->x_lin0_log1 = lilo;
      x->x_steady = steady;
!     if (!strcmp(x->x_gui.x_snd->s_name, "empty")) x->x_gui.x_fsf.x_snd_able = 0;
!     if (!strcmp(x->x_gui.x_rcv->s_name, "empty")) x->x_gui.x_fsf.x_rcv_able = 0;
      if(x->x_gui.x_fsf.x_font_style == 1) strcpy(x->x_gui.x_font, "helvetica");
      else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times");
--- 436,441 ----
      x->x_lin0_log1 = lilo;
      x->x_steady = steady;
!     x->x_gui.x_fsf.x_snd_able = strcmp(x->x_gui.x_snd->s_name, "empty")!=0;
!     x->x_gui.x_fsf.x_rcv_able = strcmp(x->x_gui.x_rcv->s_name, "empty")!=0;
      if(x->x_gui.x_fsf.x_font_style == 1) strcpy(x->x_gui.x_font, "helvetica");
      else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times");

Index: g_bang.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_bang.c,v
retrieving revision 1.1.1.3.2.2.2.7
retrieving revision 1.1.1.3.2.2.2.8
diff -C2 -d -r1.1.1.3.2.2.2.7 -r1.1.1.3.2.2.2.8
*** g_bang.c	14 Mar 2004 22:33:54 -0000	1.1.1.3.2.2.2.7
--- g_bang.c	28 Mar 2004 07:21:15 -0000	1.1.1.3.2.2.2.8
***************
*** 28,48 ****
  void bng_draw(t_bng *x, t_glist *glist, int mode) {
  t_canvas *canvas=glist_getcanvas(glist);
! switch(mode) {
! default:{
! 	pd_upload((t_gobj *)x);
! 	sys_vgui("bang_draw %x .x%x.c\n", x, canvas);
  }
- case IEM_GUI_DRAW_MODE_UPDATE:
- 	if(glist_isvisible(glist))
- 	sys_vgui(".x%x.c itemconfigure %xBUT -fill #%6.6x\n", glist_getcanvas(glist), x,
- 		pd_bluify(x->x_flashed?x->x_gui.x_fcol:x->x_gui.x_bcol));
- 	break;
- case IEM_GUI_DRAW_MODE_ERASE:
- 	sys_vgui("bang_erase .x%x.c %x\n", canvas, x);
- 	break;
- case IEM_GUI_DRAW_MODE_SELECT:
- 	sys_vgui("bang_select .x%x.c %x %d\n", canvas, x, x->x_gui.x_fsf.x_selected);
- 	break;
- }}
  
  /* ------------------------ bng widgetbehaviour----------------------------- */
--- 28,37 ----
  void bng_draw(t_bng *x, t_glist *glist, int mode) {
  t_canvas *canvas=glist_getcanvas(glist);
! if (mode==IEM_GUI_DRAW_MODE_ERASE)
! 	sys_mgui((t_iemgui *)x,"bang","erase","");
! else if (mode==IEM_GUI_DRAW_MODE_SELECT)
! 	sys_mgui((t_iemgui *)x,"bang","select","i",x->x_gui.x_fsf.x_selected);
! else {pd_upload((t_gobj *)x); sys_mgui((t_iemgui *)x,"bang","draw","");}
  }
  
  /* ------------------------ bng widgetbehaviour----------------------------- */
***************
*** 51,55 ****
  {
      t_bng *x = (t_bng *)z;
- 
      *xp1 = text_xpix(&x->x_gui.x_obj, glist);
      *yp1 = text_ypix(&x->x_gui.x_obj, glist);
--- 40,43 ----
***************
*** 66,77 ****
      iemgui_save(&x->x_gui, srl, bflcol);
      binbuf_addv(b, "ssiisiiiisssiiiiiii", gensym("#X"),gensym("obj"),
! 		(t_int)x->x_gui.x_obj.te_xpix, (t_int)x->x_gui.x_obj.te_ypix,
! 		gensym("bng"), x->x_gui.x_w,
! 		x->x_flashtime_hold, x->x_flashtime_break,
! 		iem_symargstoint(&x->x_gui.x_isa),
! 		srl[0], srl[1], srl[2],
! 		x->x_gui.x_ldx, x->x_gui.x_ldy,
! 		iem_fstyletoint(&x->x_gui.x_fsf), x->x_gui.x_fontsize,
! 		bflcol[0], bflcol[1], bflcol[2]);
      binbuf_addv(b, ";");
  }
--- 54,65 ----
      iemgui_save(&x->x_gui, srl, bflcol);
      binbuf_addv(b, "ssiisiiiisssiiiiiii", gensym("#X"),gensym("obj"),
! 	(t_int)x->x_gui.x_obj.te_xpix, (t_int)x->x_gui.x_obj.te_ypix,
! 	gensym("bng"), x->x_gui.x_w,
! 	x->x_flashtime_hold, x->x_flashtime_break,
! 	iem_symargstoint(&x->x_gui.x_isa),
! 	srl[0], srl[1], srl[2],
! 	x->x_gui.x_ldx, x->x_gui.x_ldy,
! 	iem_fstyletoint(&x->x_gui.x_fsf), x->x_gui.x_fontsize,
! 	bflcol[0], bflcol[1], bflcol[2]);
      binbuf_addv(b, ";");
  }
***************
*** 98,116 ****
  
      iemgui_properties(&x->x_gui, srl);
!     sprintf(buf, "pdtk_iemgui_dialog %%s BANG \
! 	    ----------dimensions(pix):----------- %d %d size: 0 0 empty \
! 	    --------flash-time(ms)(ms):--------- %d intrrpt: %d hold: %d \
! 	    %d empty empty %d %d empty %d \
! 	    %s %s \
! 	    %s %d %d \
! 	    %d %d \
! 	    %d %d %d\n",
! 	    x->x_gui.x_w, IEM_GUI_MINSIZE,
! 	    x->x_flashtime_break, x->x_flashtime_hold, 2,/*min_max_schedule+clip*/
! 	    -1, x->x_gui.x_isa.x_loadinit, -1, -1,/*no linlog, no multi*/
! 	    srl[0]->s_name, srl[1]->s_name,
! 	    srl[2]->s_name, x->x_gui.x_ldx, x->x_gui.x_ldy,
! 	    x->x_gui.x_fsf.x_font_style, x->x_gui.x_fontsize,
! 	    0xffffff & x->x_gui.x_bcol, 0xffffff & x->x_gui.x_fcol, 0xffffff & x->x_gui.x_lcol);
      gfxstub_new(&x->x_gui.x_obj.ob_pd, x, buf);
  }
--- 86,101 ----
  
      iemgui_properties(&x->x_gui, srl);
!     sprintf(buf, "pdtk_iemgui_dialog %%s BANG "
! 	"----------dimensions(pix):----------- %d %d size: 0 0 empty "
! 	"--------flash-time(ms)(ms):--------- %d intrrpt: %d hold: %d "
! 	"%d empty empty %d %d empty %d "
! 	"%s %s %s %d %d %d %d %d %d %d\n",
! 	x->x_gui.x_w, IEM_GUI_MINSIZE,
! 	x->x_flashtime_break, x->x_flashtime_hold, 2,
! 	-1, x->x_gui.x_isa.x_loadinit, -1, -1,
! 	srl[0]->s_name, srl[1]->s_name,
! 	srl[2]->s_name, x->x_gui.x_ldx, x->x_gui.x_ldy,
! 	x->x_gui.x_fsf.x_font_style, x->x_gui.x_fontsize,
! 	0xffffff & x->x_gui.x_bcol, 0xffffff & x->x_gui.x_fcol, 0xffffff & x->x_gui.x_lcol);
      gfxstub_new(&x->x_gui.x_obj.ob_pd, x, buf);
  }
***************
*** 133,137 ****
  }
  
! static void bng_bout1(t_bng *x)/*wird nur mehr gesendet, wenn snd != rcv*/
  {
      if(!x->x_gui.x_fsf.x_put_in2out)
--- 118,122 ----
  }
  
! static void bng_bout2(t_bng *x)
  {
      if(!x->x_gui.x_fsf.x_put_in2out)
***************
*** 141,150 ****
      }
      outlet_bang(x->x_gui.x_obj.ob_outlet);
!     if(x->x_gui.x_fsf.x_snd_able && x->x_gui.x_snd->s_thing && x->x_gui.x_fsf.x_put_in2out)
  	pd_bang(x->x_gui.x_snd->s_thing);
  }
  
! static void bng_bout2(t_bng *x)/*wird immer gesendet, wenn moeglich*/
  {
      if(!x->x_gui.x_fsf.x_put_in2out)
      {
--- 126,137 ----
      }
      outlet_bang(x->x_gui.x_obj.ob_outlet);
!     if(x->x_gui.x_fsf.x_snd_able && x->x_gui.x_snd->s_thing)
  	pd_bang(x->x_gui.x_snd->s_thing);
  }
  
! static void bng_bang(t_bng *x)
  {
+     if(x->x_gui.x_isa.x_locked) return;
+     bng_set(x);
      if(!x->x_gui.x_fsf.x_put_in2out)
      {
***************
*** 153,168 ****
      }
      outlet_bang(x->x_gui.x_obj.ob_outlet);
!     if(x->x_gui.x_fsf.x_snd_able && x->x_gui.x_snd->s_thing)
  	pd_bang(x->x_gui.x_snd->s_thing);
  }
! 
! static void bng_bang(t_bng *x)/*wird nur mehr gesendet, wenn snd != rcv*/
! {
!     if(!x->x_gui.x_isa.x_locked) {bng_set(x); bng_bout1(x);}
! }
! 
! static void bng_bang2(t_bng *x)/*wird immer gesendet, wenn moeglich*/
! {
!     if(!x->x_gui.x_isa.x_locked) {bng_set(x); bng_bout2(x);}
  }
  
--- 140,150 ----
      }
      outlet_bang(x->x_gui.x_obj.ob_outlet);
!     if(x->x_gui.x_fsf.x_snd_able && x->x_gui.x_snd->s_thing && x->x_gui.x_fsf.x_put_in2out)
  	pd_bang(x->x_gui.x_snd->s_thing);
  }
! static void bng_bang2(t_bng *x) {
! 	if(x->x_gui.x_isa.x_locked) return;
! 	bng_set(x);
! 	bng_bout2(x);
  }
  
***************
*** 174,191 ****
      int ftbreak = (int)atom_getintarg(3, argc, argv);
      int sr_flags = iemgui_dialog(&x->x_gui, srl, argc, argv);
- 
      x->x_gui.x_w = iemgui_clip_size(a);
      x->x_gui.x_h = x->x_gui.x_w;
      bng_check_minmax(x, ftbreak, fthold);
!     (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_CONFIG);
!     (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_IO + sr_flags);
!     (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_MOVE);
      canvas_fixlinesfor(glist_getcanvas(x->x_gui.x_glist), (t_text*)x);
  }
  
  static void bng_click(t_bng *x, t_floatarg xpos, t_floatarg ypos, t_floatarg shift, t_floatarg ctrl, t_floatarg alt)
! {
!     bng_set(x); bng_bout2(x);
! }
  
  static int bng_newclick(t_gobj *z, struct _glist *glist, int xpix, int ypix, int shift, int alt, int dbl, int doit)
--- 156,168 ----
      int ftbreak = (int)atom_getintarg(3, argc, argv);
      int sr_flags = iemgui_dialog(&x->x_gui, srl, argc, argv);
      x->x_gui.x_w = iemgui_clip_size(a);
      x->x_gui.x_h = x->x_gui.x_w;
      bng_check_minmax(x, ftbreak, fthold);
!     (*x->x_gui.x_draw)(x, x->x_gui.x_glist, 0);
      canvas_fixlinesfor(glist_getcanvas(x->x_gui.x_glist), (t_text*)x);
  }
  
  static void bng_click(t_bng *x, t_floatarg xpos, t_floatarg ypos, t_floatarg shift, t_floatarg ctrl, t_floatarg alt)
! {bng_set(x); bng_bout2(x);}
  
  static int bng_newclick(t_gobj *z, struct _glist *glist, int xpix, int ypix, int shift, int alt, int dbl, int doit)
***************
*** 193,197 ****
      if(doit)
  	bng_click((t_bng *)z, (t_floatarg)xpix, (t_floatarg)ypix, (t_floatarg)shift, 0, (t_floatarg)alt);
!     return (1);
  }
  
--- 170,174 ----
      if(doit)
  	bng_click((t_bng *)z, (t_floatarg)xpix, (t_floatarg)ypix, (t_floatarg)shift, 0, (t_floatarg)alt);
!     return 1;
  }
  
***************
*** 203,209 ****
  
  static void bng_loadbang(t_bng *x)
! {
!     if(!sys_noloadbang && x->x_gui.x_isa.x_loadinit) {bng_set(x); bng_bout2(x);}
! }
  
  static void bng_size(t_bng *x, t_symbol *s, int ac, t_atom *av)
--- 180,184 ----
  
  static void bng_loadbang(t_bng *x)
! {if(!sys_noloadbang && x->x_gui.x_isa.x_loadinit) {bng_set(x); bng_bout2(x);}}
  
  static void bng_size(t_bng *x, t_symbol *s, int ac, t_atom *av)
***************
*** 214,223 ****
  }
  
- static void bng_delta(t_bng *x, t_symbol *s, int ac, t_atom *av)
- {iemgui_delta((void *)x, &x->x_gui, s, ac, av);}
- 
- static void bng_pos(t_bng *x, t_symbol *s, int ac, t_atom *av)
- {iemgui_pos((void *)x, &x->x_gui, s, ac, av);}
- 
  static void bng_flashtime(t_bng *x, t_symbol *s, int ac, t_atom *av)
  {
--- 189,192 ----
***************
*** 226,229 ****
--- 195,202 ----
  }
  
+ static void bng_delta(t_bng *x, t_symbol *s, int ac, t_atom *av)
+ {iemgui_delta((void *)x, &x->x_gui, s, ac, av);}
+ static void bng_pos(t_bng *x, t_symbol *s, int ac, t_atom *av)
+ {iemgui_pos((void *)x, &x->x_gui, s, ac, av);}
  static void bng_color(t_bng *x, t_symbol *s, int ac, t_atom *av)
  {iemgui_color((void *)x, &x->x_gui, s, ac, av);}
***************
*** 244,262 ****
  }
  
! static void bng_tick_hld(t_bng *x)
! {
!     x->x_flashed = 0;
!     (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_UPDATE);
! }
! 
! static void bng_tick_brk(t_bng *x)
! {
!     (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_UPDATE);
! }
! 
! static void bng_tick_lck(t_bng *x)
! {
!     x->x_gui.x_isa.x_locked = 0;
! }
  
  static void *bng_new(t_symbol *s, int argc, t_atom *argv)
--- 217,226 ----
  }
  
! static void bng_tick_hld(t_bng *x) {x->x_flashed = 0;
!     (*x->x_gui.x_draw)(x, x->x_gui.x_glist, 0);}
! static void bng_tick_brk(t_bng *x) {
!     (*x->x_gui.x_draw)(x, x->x_gui.x_glist, 0);}
! static void bng_tick_lck(t_bng *x) {
!     x->x_gui.x_isa.x_locked = 0;}
  
  static void *bng_new(t_symbol *s, int argc, t_atom *argv)
***************
*** 280,289 ****
      iemgui_new_getnames2(&x->x_gui, 4, srl[0], srl[1], srl[2]);
      x->x_gui.x_draw = (t_iemfunptr)bng_draw;
-     x->x_gui.x_fsf.x_snd_able = 1;
-     x->x_gui.x_fsf.x_rcv_able = 1;
-     x->x_flashed = 0;
      x->x_gui.x_glist = (t_glist *)canvas_getcurrent();
!     if (!strcmp(x->x_gui.x_snd->s_name, "empty")) x->x_gui.x_fsf.x_snd_able = 0;
!     if (!strcmp(x->x_gui.x_rcv->s_name, "empty")) x->x_gui.x_fsf.x_rcv_able = 0;
      if(x->x_gui.x_fsf.x_font_style == 1) strcpy(x->x_gui.x_font, "helvetica");
      else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times");
--- 244,251 ----
      iemgui_new_getnames2(&x->x_gui, 4, srl[0], srl[1], srl[2]);
      x->x_gui.x_draw = (t_iemfunptr)bng_draw;
      x->x_gui.x_glist = (t_glist *)canvas_getcurrent();
!     x->x_flashed = 0;
!     x->x_gui.x_fsf.x_snd_able = strcmp(x->x_gui.x_snd->s_name, "empty")!=0;
!     x->x_gui.x_fsf.x_rcv_able = strcmp(x->x_gui.x_rcv->s_name, "empty")!=0;
      if(x->x_gui.x_fsf.x_font_style == 1) strcpy(x->x_gui.x_font, "helvetica");
      else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times");
***************
*** 291,295 ****
  	strcpy(x->x_gui.x_font, "courier"); }
      if (x->x_gui.x_fsf.x_rcv_able)
!     	pd_bind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv);
      if(fs < 4) fs = 4;
      x->x_gui.x_fontsize = fs;
--- 253,257 ----
  	strcpy(x->x_gui.x_font, "courier"); }
      if (x->x_gui.x_fsf.x_rcv_able)
! 	pd_bind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv);
      if(fs < 4) fs = 4;
      x->x_gui.x_fontsize = fs;
***************
*** 329,334 ****
      class_addmethod(bng_class, (t_method)bng_click, gensym("click"),
  		    A_FLOAT, A_FLOAT, A_FLOAT, A_FLOAT, A_FLOAT, 0);
!     class_addmethod(bng_class, (t_method)bng_dialog, gensym("dialog"),
! 		    A_GIMME, 0);
      class_addmethod(bng_class, (t_method)bng_loadbang, gensym("loadbang"), 0);
      class_addmethod(bng_class, (t_method)bng_size, gensym("size"), A_GIMME, 0);
--- 291,295 ----
      class_addmethod(bng_class, (t_method)bng_click, gensym("click"),
  		    A_FLOAT, A_FLOAT, A_FLOAT, A_FLOAT, A_FLOAT, 0);
!     class_addmethod(bng_class, (t_method)bng_dialog, gensym("dialog"), A_GIMME, 0);
      class_addmethod(bng_class, (t_method)bng_loadbang, gensym("loadbang"), 0);
      class_addmethod(bng_class, (t_method)bng_size, gensym("size"), A_GIMME, 0);

Index: g_numbox.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_numbox.c,v
retrieving revision 1.1.1.4.2.2.2.5
retrieving revision 1.1.1.4.2.2.2.6
diff -C2 -d -r1.1.1.4.2.2.2.5 -r1.1.1.4.2.2.2.6
*** g_numbox.c	14 Mar 2004 22:33:54 -0000	1.1.1.4.2.2.2.5
--- g_numbox.c	28 Mar 2004 07:21:17 -0000	1.1.1.4.2.2.2.6
***************
*** 21,24 ****
--- 21,26 ----
  #endif
  
+ #define CH post("%d: change=%d", __LINE__, (int)x->x_gui.x_fsf.x_change);
+  
  static void my_numbox_key(void *z, t_floatarg fkey);
  t_widgetbehavior my_numbox_widgetbehavior;
***************
*** 31,35 ****
      if(x->x_gui.x_fsf.x_change)
      {
! 	x->x_gui.x_fsf.x_change = 0;
  	glist_grab(x->x_gui.x_glist, 0, 0, 0, 0, 0);
  	(*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_UPDATE);
--- 33,37 ----
      if(x->x_gui.x_fsf.x_change)
      {
! 	x->x_gui.x_fsf.x_change = 0; CH
  	glist_grab(x->x_gui.x_glist, 0, 0, 0, 0, 0);
  	(*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_UPDATE);
***************
*** 92,101 ****
  	    {
  		int new_exp_index=x->x_gui.x_w-4, old_exp_index=bufsize-4;
- 
  		for(i=0; i < 4; i++, new_exp_index++, old_exp_index++)
  		    x->x_buf[new_exp_index] = x->x_buf[old_exp_index];
  		x->x_buf[x->x_gui.x_w] = 0;
  	    }
- 
  	}
  	else
--- 94,101 ----
***************
*** 113,262 ****
  }
  
! static void my_numbox_draw_update(t_my_numbox *x, t_glist *glist)
! {
!     if (glist_isvisible(glist))
!     {
! 	if(x->x_gui.x_fsf.x_change)
! 	{
! 	    if(x->x_buf[0])
! 	    {
! 		char *cp=x->x_buf;
! 		int sl = strlen(x->x_buf);
! 
! 		x->x_buf[sl] = '>';
! 		x->x_buf[sl+1] = 0;
! 		if(sl >= x->x_gui.x_w)
! 		    cp += sl - x->x_gui.x_w + 1;
! 		sys_vgui(".x%x.c itemconfigure %xNUMBER -fill #%6.6x -text {%s} \n",
! 			 glist_getcanvas(glist), x, IEM_GUI_COLOR_EDITED, cp);
! 		x->x_buf[sl] = 0;
! 	    }
! 	    else
! 	    {
! 		my_numbox_ftoa(x);
! 		sys_vgui(".x%x.c itemconfigure %xNUMBER -fill #%6.6x -text {%s} \n",
! 		    glist_getcanvas(glist), x, IEM_GUI_COLOR_EDITED, x->x_buf);
! 		x->x_buf[0] = 0;
! 	    }
! 	}
! 	else
! 	{
! 	    my_numbox_ftoa(x);
!             sys_vgui(
! 	    	".x%x.c itemconfigure %xNUMBER -fill #%6.6x -text {%s} \n",
! 		glist_getcanvas(glist), x,
! 		x->x_gui.x_fsf.x_selected?
! 		    IEM_GUI_COLOR_SELECTED:x->x_gui.x_fcol,
! 		x->x_buf);
! 	    x->x_buf[0] = 0;
! 	}
!     }
! }
! 
! static void my_numbox_draw_new(t_my_numbox *x, t_glist *glist)
! {
!     int half=x->x_gui.x_h/2, d=1+x->x_gui.x_h/34;
!     int xpos=text_xpix(&x->x_gui.x_obj, glist);
!     int ypos=text_ypix(&x->x_gui.x_obj, glist);
!     t_canvas *canvas=glist_getcanvas(glist);
! 
!     pd_upload(x);
!     sys_vgui("numbox_draw %x .x%x.c\n", x, canvas);
!     sys_vgui(
!     	".x%x.c create line %d %d %d %d %d %d -fill #%6.6x -tags %xBASE2\n",
! 	canvas, xpos, ypos,
! 	xpos + half, ypos + half,
! 	xpos, ypos + x->x_gui.x_h,
! 	x->x_gui.x_fcol, x);
!     my_numbox_ftoa(x);
!     sys_vgui(".x%x.c create text %d %d -text {%s} -anchor w \
! 	-font {%s %d bold} -fill #%6.6x -tags %xNUMBER\n",
! 	canvas, xpos+half+2, ypos+half+d,
! 	x->x_buf, x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_fcol, x);
! }
! 
! static void my_numbox_draw_move(t_my_numbox *x, t_glist *glist)
! {
!     int half = x->x_gui.x_h/2, d=1+x->x_gui.x_h/34;
!     int xpos=text_xpix(&x->x_gui.x_obj, glist);
!     int ypos=text_ypix(&x->x_gui.x_obj, glist);
!     t_canvas *canvas=glist_getcanvas(glist);
!     pd_upload(x);
!     sys_vgui("numbox_draw %x .x%x.c\n", x, canvas);
!     sys_vgui(".x%x.c coords %xBASE2 %d %d %d %d %d %d\n",
! 	     canvas, x, xpos, ypos,
! 	     xpos + half, ypos + half,
! 	     xpos, ypos + x->x_gui.x_h);
!     sys_vgui(".x%x.c coords %xNUMBER %d %d\n",
! 	     canvas, x, xpos+half+2, ypos+half+d);
! }
! 
! static void my_numbox_draw_erase(t_my_numbox* x,t_glist* glist)
! {
!     t_canvas *canvas=glist_getcanvas(glist);
! 
!     sys_vgui("numbox_erase .x%x.c %xBASE\n", canvas, x);
!     sys_vgui(".x%x.c delete %xBASE2\n", canvas, x);
!     sys_vgui(".x%x.c delete %xNUMBER\n", canvas, x);
! }
! 
! static void my_numbox_draw_config(t_my_numbox* x,t_glist* glist)
! {
!     t_canvas *canvas=glist_getcanvas(glist);
!     sys_vgui(".x%x.c itemconfigure %xNUMBER -font {%s %d bold} -fill #%6.6x \n",
! 	     canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize,
! 	     x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_fcol);
!     sys_vgui(".x%x.c itemconfigure %xBASE -fill #%6.6x\n", canvas,
! 	     x, x->x_gui.x_bcol);
!     sys_vgui(".x%x.c itemconfigure %xBASE2 -fill #%6.6x\n", canvas,
! 	     x, x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_fcol);
! }
! 
! static void my_numbox_draw_select(t_my_numbox *x, t_glist *glist)
  {
      t_canvas *canvas=glist_getcanvas(glist);
! 
!     if(x->x_gui.x_fsf.x_selected)
!     {
! 	if(x->x_gui.x_fsf.x_change)
! 	{
! 	    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_vgui(".x%x.c itemconfigure %xBASE -outline #%6.6x\n",
! 	    canvas, x, IEM_GUI_COLOR_SELECTED);
! 	sys_vgui(".x%x.c itemconfigure %xBASE2 -fill #%6.6x\n",
! 	    canvas, x, IEM_GUI_COLOR_SELECTED);
! 	sys_vgui(".x%x.c itemconfigure %xLABEL -fill #%6.6x\n",
! 	    canvas, x, IEM_GUI_COLOR_SELECTED);
! 	sys_vgui(".x%x.c itemconfigure %xNUMBER -fill #%6.6x\n",
! 	    canvas, x, IEM_GUI_COLOR_SELECTED);
!     }
!     else
!     {
! 	sys_vgui(".x%x.c itemconfigure %xBASE -outline #%6.6x\n",
! 	    canvas, x, IEM_GUI_COLOR_NORMAL);
! 	sys_vgui(".x%x.c itemconfigure %xBASE2 -fill #%6.6x\n",
! 	    canvas, x, x->x_gui.x_fcol);
! 	sys_vgui(".x%x.c itemconfigure %xLABEL -fill #%6.6x\n",
! 	    canvas, x, x->x_gui.x_lcol);
! 	sys_vgui(".x%x.c itemconfigure %xNUMBER -fill #%6.6x\n",
! 	    canvas, x, x->x_gui.x_fcol);
      }
  }
  
- 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);
-     else if(mode == IEM_GUI_DRAW_MODE_MOVE)	my_numbox_draw_move(x, glist);
-     else if(mode == IEM_GUI_DRAW_MODE_NEW)	my_numbox_draw_new(x, glist);
-     else if(mode == IEM_GUI_DRAW_MODE_SELECT)	my_numbox_draw_select(x, glist);
-     else if(mode == IEM_GUI_DRAW_MODE_ERASE)	my_numbox_draw_erase(x, glist);
-     else if(mode == IEM_GUI_DRAW_MODE_CONFIG)	my_numbox_draw_config(x, glist);
-     else if(mode >= IEM_GUI_DRAW_MODE_IO)	my_numbox_draw_move(x, glist);
- }
- 
  /* ------------------------ nbx widgetbehaviour----------------------------- */
  
--- 113,138 ----
  }
  
! void my_numbox_draw(t_my_numbox *x, t_glist *glist, int mode)
  {
      t_canvas *canvas=glist_getcanvas(glist);
!     switch (mode) {
! 	case IEM_GUI_DRAW_MODE_ERASE: 
! 	    sys_vgui("numbox_erase .x%x.c %x\n",canvas,x); break;
! 	case IEM_GUI_DRAW_MODE_SELECT:
! 	/*    if(x->x_gui.x_fsf.x_selected && x->x_gui.x_fsf.x_change) {
! 		x->x_gui.x_fsf.x_change = 0; CH
! 		clock_unset(x->x_clock_reset);
! 	    }*/
! 	/* fallthru */
! 	default:
! 	    pd_upload((t_gobj *)x);
! 	    my_numbox_ftoa(x);
! 	    sys_vgui("numbox_draw %x .x%x.c\n", x, canvas);
! 	    post("numberbox: %d %d",(int)x->x_gui.x_fsf.x_selected,(int)x->x_gui.x_fsf.x_change);
! 	    sys_vgui("numbox_select %x .x%x.c %d\n", x, canvas,
! 		(int)x->x_gui.x_fsf.x_selected + 2*(int)x->x_gui.x_fsf.x_change); break;
      }
  }
  
  /* ------------------------ nbx widgetbehaviour----------------------------- */
  
***************
*** 278,286 ****
      int bflcol[3];
      t_symbol *srl[3];
- 
      iemgui_save(&x->x_gui, srl, bflcol);
!     if(x->x_gui.x_fsf.x_change)
!     {
! 	x->x_gui.x_fsf.x_change = 0;
          clock_unset(x->x_clock_reset);
  	glist_grab(x->x_gui.x_glist, 0, 0, 0, 0, 0);
--- 154,161 ----
      int bflcol[3];
      t_symbol *srl[3];
      iemgui_save(&x->x_gui, srl, bflcol);
! /*
!     if(x->x_gui.x_fsf.x_change) {
! 	x->x_gui.x_fsf.x_change = 0; CH
          clock_unset(x->x_clock_reset);
  	glist_grab(x->x_gui.x_glist, 0, 0, 0, 0, 0);
***************
*** 288,292 ****
  
      }
!     binbuf_addv(b, "ssiisiiffiisssiiiiiiifi", gensym("#X"),gensym("obj"),
  		(t_int)x->x_gui.x_obj.te_xpix, (t_int)x->x_gui.x_obj.te_ypix,
  		gensym("nbx"), x->x_gui.x_w, x->x_gui.x_h,
--- 163,168 ----
  
      }
! */
! 	binbuf_addv(b, "ssiisiiffiisssiiiiiiifi", gensym("#X"),gensym("obj"),
  		(t_int)x->x_gui.x_obj.te_xpix, (t_int)x->x_gui.x_obj.te_ypix,
  		gensym("nbx"), x->x_gui.x_w, x->x_gui.x_h,
***************
*** 334,338 ****
      if(x->x_gui.x_fsf.x_change)
      {
! 	x->x_gui.x_fsf.x_change = 0;
          clock_unset(x->x_clock_reset);
  	glist_grab(x->x_gui.x_glist, 0, 0, 0, 0, 0);
--- 210,214 ----
      if(x->x_gui.x_fsf.x_change)
      {
! 	x->x_gui.x_fsf.x_change = 0; CH
          clock_unset(x->x_clock_reset);
  	glist_grab(x->x_gui.x_glist, 0, 0, 0, 0, 0);
***************
*** 392,397 ****
      x->x_log_height = log_height;
      my_numbox_calc_fontwidth(x);
-     /*if(my_numbox_check_minmax(x, min, max))
-      my_numbox_bang(x);*/
      my_numbox_check_minmax(x, min, max);
      (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_UPDATE);
--- 268,271 ----
***************
*** 404,411 ****
  static void my_numbox_motion(t_my_numbox *x, t_floatarg dx, t_floatarg dy)
  {
!     double k2=1.0;
! 
!     if(x->x_gui.x_fsf.x_finemoved)
! 	k2 = 0.01;
      if(x->x_lin0_log1)
  	x->x_val *= pow(x->x_k, -k2*dy);
--- 278,282 ----
  static void my_numbox_motion(t_my_numbox *x, t_floatarg dx, t_floatarg dy)
  {
!     double k2= x->x_gui.x_fsf.x_finemoved ? 0.01 : 1.0;
      if(x->x_lin0_log1)
  	x->x_val *= pow(x->x_k, -k2*dy);
***************
*** 429,454 ****
  {
      t_my_numbox* x = (t_my_numbox *)z;
- 
      if(doit)
      {
  	my_numbox_click( x, (t_floatarg)xpix, (t_floatarg)ypix,
  	    (t_floatarg)shift, 0, (t_floatarg)alt);
! 	if(shift)
! 	    x->x_gui.x_fsf.x_finemoved = 1;
! 	else
! 	    x->x_gui.x_fsf.x_finemoved = 0;
  	if(!x->x_gui.x_fsf.x_change)
  	{
              clock_delay(x->x_clock_wait, 50);
! 	    x->x_gui.x_fsf.x_change = 1;
  	    clock_delay(x->x_clock_reset, 3000);
-             /* glist_grab(x->x_gui.x_glist, &x->x_gui.x_obj.ob_g,
- 	    	0, my_numbox_key, 0, 0); */
- 
  	    x->x_buf[0] = 0;
  	}
          else
  	{
! 	    x->x_gui.x_fsf.x_change = 0;
              clock_unset(x->x_clock_reset);
  	    glist_grab(x->x_gui.x_glist, 0, 0, 0, 0, 0);
--- 300,318 ----
  {
      t_my_numbox* x = (t_my_numbox *)z;
      if(doit)
      {
  	my_numbox_click( x, (t_floatarg)xpix, (t_floatarg)ypix,
  	    (t_floatarg)shift, 0, (t_floatarg)alt);
! 	x->x_gui.x_fsf.x_finemoved = !! shift;
  	if(!x->x_gui.x_fsf.x_change)
  	{
              clock_delay(x->x_clock_wait, 50);
! 	    x->x_gui.x_fsf.x_change = 1; CH
  	    clock_delay(x->x_clock_reset, 3000);
  	    x->x_buf[0] = 0;
  	}
          else
  	{
! 	    x->x_gui.x_fsf.x_change = 0; CH
              clock_unset(x->x_clock_reset);
  	    glist_grab(x->x_gui.x_glist, 0, 0, 0, 0, 0);
***************
*** 517,521 ****
      {
  	(*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_UPDATE);
- 	/*my_numbox_bang(x);*/
      }
  }
--- 381,384 ----
***************
*** 558,562 ****
      {
  	(*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_UPDATE);
- 	/*my_numbox_bang(x);*/
      }
  }
--- 421,424 ----
***************
*** 590,594 ****
      if (c == 0)
      {
! 	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);
--- 452,456 ----
      if (c == 0)
      {
! 	x->x_gui.x_fsf.x_change = 0; CH
  	clock_unset(x->x_clock_reset);
  	(*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_UPDATE);
***************
*** 618,622 ****
  	x->x_val = atof(x->x_buf);
  	x->x_buf[0] = 0;
! 	x->x_gui.x_fsf.x_change = 0;
  	clock_unset(x->x_clock_reset);
          my_numbox_clip(x);
--- 480,484 ----
  	x->x_val = atof(x->x_buf);
  	x->x_buf[0] = 0;
! 	x->x_gui.x_fsf.x_change = 0; CH
  	clock_unset(x->x_clock_reset);
          my_numbox_clip(x);
***************
*** 645,649 ****
      int log_height=256;
      double min=-1.0e+37, max=1.0e+37,v=0.0;
-     char str[144];
      int isa,fstyle;
      t_symbol *srl[3]={0,0,0};
--- 507,510 ----
***************
*** 694,698 ****
      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_gui.x_fsf.x_change = 0;
      outlet_new(&x->x_gui.x_obj, &s_float);
      return (x);
--- 555,559 ----
      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_gui.x_fsf.x_change = 0; CH
      outlet_new(&x->x_gui.x_obj, &s_float);
      return (x);
***************
*** 710,768 ****
  void g_numbox_setup(void)
  {
!     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);
!     class_addbang(my_numbox_class,my_numbox_bang);
!     class_addfloat(my_numbox_class,my_numbox_float);
!     class_addlist(my_numbox_class, my_numbox_list);
!     class_addmethod(my_numbox_class, (t_method)my_numbox_click,
      	gensym("click"), A_FLOAT, A_FLOAT, A_FLOAT, A_FLOAT, A_FLOAT, 0);
!     class_addmethod(my_numbox_class, (t_method)my_numbox_motion,
      	gensym("motion"), A_FLOAT, A_FLOAT, 0);
!     class_addmethod(my_numbox_class, (t_method)my_numbox_dialog,
!     	gensym("dialog"), A_GIMME, 0);
!     class_addmethod(my_numbox_class, (t_method)my_numbox_loadbang,
!     	gensym("loadbang"), 0);
!     class_addmethod(my_numbox_class, (t_method)my_numbox_set,
!     	gensym("set"), A_FLOAT, 0);
!     class_addmethod(my_numbox_class, (t_method)my_numbox_size,
!     	gensym("size"), A_GIMME, 0);
!     class_addmethod(my_numbox_class, (t_method)my_numbox_delta,
!     	gensym("delta"), A_GIMME, 0);
!     class_addmethod(my_numbox_class, (t_method)my_numbox_pos,
!     	gensym("pos"), A_GIMME, 0);
!     class_addmethod(my_numbox_class, (t_method)my_numbox_range,
!     	gensym("range"), A_GIMME, 0);
!     class_addmethod(my_numbox_class, (t_method)my_numbox_color,
!     	gensym("color"), A_GIMME, 0);
!     class_addmethod(my_numbox_class, (t_method)my_numbox_send,
!     	gensym("send"), A_DEFSYM, 0);
!     class_addmethod(my_numbox_class, (t_method)my_numbox_receive,
!     	gensym("receive"), A_DEFSYM, 0);
!     class_addmethod(my_numbox_class, (t_method)my_numbox_label,
!     	gensym("label"), A_DEFSYM, 0);
!     class_addmethod(my_numbox_class, (t_method)my_numbox_label_pos,
!     	gensym("label_pos"), A_GIMME, 0);
!     class_addmethod(my_numbox_class, (t_method)my_numbox_label_font,
!     	gensym("label_font"), A_GIMME, 0);
!     class_addmethod(my_numbox_class, (t_method)my_numbox_log,
!     	gensym("log"), 0);
!     class_addmethod(my_numbox_class, (t_method)my_numbox_lin,
!     	gensym("lin"), 0);
!     class_addmethod(my_numbox_class, (t_method)my_numbox_init,
!     	gensym("init"), A_FLOAT, 0);
!     class_addmethod(my_numbox_class, (t_method)my_numbox_log_height,
!     	gensym("log_height"), A_FLOAT, 0);
!     my_numbox_widgetbehavior.w_getrectfn =    my_numbox_getrect;
!     my_numbox_widgetbehavior.w_displacefn =   iemgui_displace;
!     my_numbox_widgetbehavior.w_selectfn =     iemgui_select;
!     my_numbox_widgetbehavior.w_activatefn =   NULL;
!     my_numbox_widgetbehavior.w_deletefn =     iemgui_delete;
!     my_numbox_widgetbehavior.w_visfn =        iemgui_vis;
!     my_numbox_widgetbehavior.w_clickfn =      my_numbox_newclick;
!     class_setwidget(my_numbox_class, &my_numbox_widgetbehavior);
!     class_sethelpsymbol(my_numbox_class, gensym("numbox2"));
!     class_setsavefn(my_numbox_class, my_numbox_save);
!     class_setpropertiesfn(my_numbox_class, my_numbox_properties);
  }
--- 571,612 ----
  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);
!     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_click,
      	gensym("click"), A_FLOAT, A_FLOAT, A_FLOAT, A_FLOAT, A_FLOAT, 0);
!     class_addmethod(c, (t_method)my_numbox_motion,
      	gensym("motion"), A_FLOAT, A_FLOAT, 0);
!     class_addmethod(c, (t_method)my_numbox_dialog,   gensym("dialog"), 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_delta,    gensym("delta"), A_GIMME, 0);
!     class_addmethod(c, (t_method)my_numbox_pos,      gensym("pos"), A_GIMME, 0);
!     class_addmethod(c, (t_method)my_numbox_range,    gensym("range"), A_GIMME, 0);
!     class_addmethod(c, (t_method)my_numbox_color,    gensym("color"), A_GIMME, 0);
!     class_addmethod(c, (t_method)my_numbox_send,     gensym("send"), A_DEFSYM, 0);
!     class_addmethod(c, (t_method)my_numbox_receive,  gensym("receive"), A_DEFSYM, 0);
!     class_addmethod(c, (t_method)my_numbox_label,    gensym("label"), A_DEFSYM, 0);
!     class_addmethod(c, (t_method)my_numbox_label_pos, gensym("label_pos"), A_GIMME, 0);
!     class_addmethod(c, (t_method)my_numbox_label_font, gensym("label_font"), A_GIMME, 0);
!     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)my_numbox_init, gensym("init"), A_FLOAT, 0);
!     class_addmethod(c, (t_method)my_numbox_log_height, gensym("log_height"), A_FLOAT, 0);
!     my_numbox_widgetbehavior.w_getrectfn =  my_numbox_getrect;
!     my_numbox_widgetbehavior.w_displacefn = iemgui_displace;
!     my_numbox_widgetbehavior.w_selectfn =   iemgui_select;
!     my_numbox_widgetbehavior.w_activatefn = NULL;
!     my_numbox_widgetbehavior.w_deletefn =   iemgui_delete;
!     my_numbox_widgetbehavior.w_visfn =      iemgui_vis;
!     my_numbox_widgetbehavior.w_clickfn =    my_numbox_newclick;
!     class_setwidget(c, &my_numbox_widgetbehavior);
!     class_sethelpsymbol(c, gensym("numbox2"));
!     class_setsavefn(c, my_numbox_save);
!     class_setpropertiesfn(c, my_numbox_properties);
  }





More information about the Pd-cvs mailing list