aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/patches/make_sizes_pixel_accurate_on_every_platform-0.40.3.patch1736
1 files changed, 1736 insertions, 0 deletions
diff --git a/packages/patches/make_sizes_pixel_accurate_on_every_platform-0.40.3.patch b/packages/patches/make_sizes_pixel_accurate_on_every_platform-0.40.3.patch
new file mode 100644
index 00000000..76676998
--- /dev/null
+++ b/packages/patches/make_sizes_pixel_accurate_on_every_platform-0.40.3.patch
@@ -0,0 +1,1736 @@
+Index: g_all_guis.h
+===================================================================
+RCS file: /cvsroot/pure-data/pd/src/g_all_guis.h,v
+retrieving revision 1.5
+retrieving revision 1.5.4.3
+diff -u -w -r1.5 -r1.5.4.3
+--- g_all_guis.h 16 Aug 2005 04:06:28 -0000 1.5
++++ g_all_guis.h 8 Jul 2007 21:56:30 -0000 1.5.4.3
+@@ -144,7 +144,7 @@
+ int x_w;
+ int x_ldx;
+ int x_ldy;
+- char x_font[16];
++ char x_font[MAXPDSTRING]; /* font names can be long! */
+ t_iem_fstyle_flags x_fsf;
+ int x_fontsize;
+ t_iem_init_symargs x_isa;
+Index: g_all_guis.c
+===================================================================
+RCS file: /cvsroot/pure-data/pd/src/g_all_guis.c,v
+retrieving revision 1.8
+retrieving revision 1.8.2.3
+diff -u -w -r1.8 -r1.8.2.3
+--- g_all_guis.c 16 Aug 2005 04:06:28 -0000 1.8
++++ g_all_guis.c 19 May 2007 05:29:33 -0000 1.8.2.3
+@@ -434,7 +434,7 @@
+ else
+ {
+ f = 0;
+- strcpy(iemgui->x_font, "courier");
++ strcpy(iemgui->x_font, sys_font);
+ }
+ iemgui->x_fsf.x_font_style = f;
+ f = (int)atom_getintarg(1, ac, av);
+@@ -442,8 +442,9 @@
+ f = 4;
+ iemgui->x_fontsize = f;
+ if(glist_isvisible(iemgui->x_glist))
+- sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {%s %d bold}\n",
+- glist_getcanvas(iemgui->x_glist), x, iemgui->x_font, iemgui->x_fontsize);
++ sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} %d %s}\n",
++ glist_getcanvas(iemgui->x_glist), x, iemgui->x_font,
++ iemgui->x_fontsize, sys_fontweight);
+ }
+
+ void iemgui_size(void *x, t_iemgui *iemgui)
+@@ -618,7 +619,7 @@
+ else
+ {
+ f = 0;
+- strcpy(iemgui->x_font, "courier");
++ strcpy(iemgui->x_font, sys_font);
+ }
+ iemgui->x_fsf.x_font_style = f;
+ if(fs < 4)
+Index: g_bang.c
+===================================================================
+RCS file: /cvsroot/pure-data/pd/src/g_bang.c,v
+retrieving revision 1.4
+retrieving revision 1.4.12.3
+diff -u -w -r1.4 -r1.4.12.3
+--- g_bang.c 6 Sep 2004 20:20:33 -0000 1.4
++++ g_bang.c 19 May 2007 05:29:33 -0000 1.4.12.3
+@@ -55,11 +55,12 @@
+ xpos + x->x_gui.x_w-1, ypos + x->x_gui.x_h-1,
+ x->x_flashed?x->x_gui.x_fcol:x->x_gui.x_bcol, x);
+ sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
+- -font {%s %d bold} -fill #%6.6x -tags %lxLABEL\n",
++ -font {{%s} %d %s} -fill #%6.6x -tags %lxLABEL\n",
+ canvas, xpos+x->x_gui.x_ldx,
+ ypos+x->x_gui.x_ldy,
+ 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);
++ x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight,
++ x->x_gui.x_lcol, x);
+ if(!x->x_gui.x_fsf.x_snd_able)
+ sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %lxOUT%d\n",
+ canvas, xpos,
+@@ -115,8 +116,8 @@
+ {
+ t_canvas *canvas=glist_getcanvas(glist);
+
+- sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {%s %d bold} -fill #%6.6x -text {%s} \n",
+- canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize,
++ sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} %d %s} -fill #%6.6x -text {%s} \n",
++ canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight,
+ 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(".x%lx.c itemconfigure %lxBASE -fill #%6.6x\n", canvas, x, x->x_gui.x_bcol);
+@@ -237,7 +238,7 @@
+ t_symbol *srl[3];
+
+ iemgui_properties(&x->x_gui, srl);
+- sprintf(buf, "pdtk_iemgui_dialog %%s BANG \
++ 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 \
+@@ -481,7 +482,7 @@
+ 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");
+ else { x->x_gui.x_fsf.x_font_style = 0;
+- strcpy(x->x_gui.x_font, "courier"); }
++ strcpy(x->x_gui.x_font, sys_font); }
+
+ if (x->x_gui.x_fsf.x_rcv_able)
+ pd_bind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv);
+Index: g_graph.c
+===================================================================
+RCS file: /cvsroot/pure-data/pd/src/g_graph.c,v
+retrieving revision 1.9
+retrieving revision 1.9.2.5
+diff -u -w -r1.9 -r1.9.2.5
+--- g_graph.c 15 Sep 2005 03:17:27 -0000 1.9
++++ g_graph.c 19 May 2007 05:29:33 -0000 1.9.2.5
+@@ -741,9 +741,9 @@
+ {
+ i -= sys_fontheight(glist_getfont(x));
+ sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor nw\
+- -font -*-courier-bold--normal--%d-* -tags %s\n",
+- (long)glist_getcanvas(x), x1, i, arrayname->s_name,
+- sys_hostfontsize(glist_getfont(x)), tag);
++ -font {{%s} %d %s} -tags %s\n",
++ (long)glist_getcanvas(x), x1, i, arrayname->s_name, sys_font,
++ sys_hostfontsize(glist_getfont(x)), sys_fontweight, tag);
+ }
+
+ /* draw ticks on horizontal borders. If lperb field is
+@@ -821,21 +829,22 @@
+ /* draw x labels */
+ for (i = 0; i < x->gl_nxlabels; i++)
+ sys_vgui(".x%lx.c create text\
+- %d %d -text {%s} -font -*-courier-bold--normal--%d-* -tags %s\n",
++ %d %d -text {%s} -font {{%s} %d %s} -tags %s\n",
+ glist_getcanvas(x),
+ (int)glist_xtopixels(x, atof(x->gl_xlabel[i]->s_name)),
+- (int)glist_ytopixels(x, x->gl_xlabely), x->gl_xlabel[i]->s_name,
+- glist_getfont(x), tag);
++ (int)glist_ytopixels(x, x->gl_xlabely),
++ x->gl_xlabel[i]->s_name, sys_font,
++ glist_getfont(x), sys_fontweight, tag);
+
+ /* draw y labels */
+ for (i = 0; i < x->gl_nylabels; i++)
+ sys_vgui(".x%lx.c create text\
+- %d %d -text {%s} -font -*-courier-bold--normal--%d-* -tags %s\n",
++ %d %d -text {%s} -font {{%s} %d %s} -tags %s\n",
+ glist_getcanvas(x),
+ (int)glist_xtopixels(x, x->gl_ylabelx),
+ (int)glist_ytopixels(x, atof(x->gl_ylabel[i]->s_name)),
+- x->gl_ylabel[i]->s_name,
+- glist_getfont(x), tag);
++ x->gl_ylabel[i]->s_name, sys_font,
++ glist_getfont(x), sys_fontweight, tag);
+
+ /* draw contents of graph as glist */
+ for (g = x->gl_list; g; g = g->g_next)
+Index: g_hdial.c
+===================================================================
+RCS file: /cvsroot/pure-data/pd/src/g_hdial.c,v
+retrieving revision 1.6
+retrieving revision 1.6.2.3
+diff -u -w -r1.6 -r1.6.2.3
+--- g_hdial.c 16 Aug 2005 04:06:28 -0000 1.6
++++ g_hdial.c 19 May 2007 05:29:33 -0000 1.6.2.3
+@@ -73,10 +73,10 @@
+ x->x_drawn = x->x_on;
+ }
+ sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
+- -font {%s %d bold} -fill #%6.6x -tags %lxLABEL\n",
++ -font {{%s} %d %s} -fill #%6.6x -tags %lxLABEL\n",
+ canvas, xx11b+x->x_gui.x_ldx, yy11+x->x_gui.x_ldy,
+ 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_font, x->x_gui.x_fontsize, sys_fontweight,
+ x->x_gui.x_lcol, x);
+ if(!x->x_gui.x_fsf.x_snd_able)
+ sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %lxOUT%d\n",
+@@ -141,8 +141,8 @@
+ t_canvas *canvas=glist_getcanvas(glist);
+ int n=x->x_number, i;
+
+- sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {%s %d bold} -fill #%6.6x -text {%s} \n",
+- canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize,
++ sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} %d %s} -fill #%6.6x -text {%s} \n",
++ canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight,
+ 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:"");
+ for(i=0; i<n; i++)
+@@ -264,7 +264,7 @@
+ iemgui_properties(&x->x_gui, srl);
+ if (pd_class(&x->x_gui.x_obj.ob_pd) == hradio_old_class)
+ hchange = x->x_change;
+- sprintf(buf, "pdtk_iemgui_dialog %%s hradio \
++ sprintf(buf, "pdtk_iemgui_dialog %%s |hradio| \
+ ----------dimensions(pix):----------- %d %d size: 0 0 empty \
+ empty 0.0 empty 0.0 empty %d \
+ %d new-only new&old %d %d number: %d \
+@@ -589,7 +589,7 @@
+ 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");
+ else { x->x_gui.x_fsf.x_font_style = 0;
+- strcpy(x->x_gui.x_font, "courier"); }
++ strcpy(x->x_gui.x_font, sys_font); }
+ if(num < 1)
+ num = 1;
+ if(num > IEM_RADIO_MAX)
+Index: g_hslider.c
+===================================================================
+RCS file: /cvsroot/pure-data/pd/src/g_hslider.c,v
+retrieving revision 1.5
+retrieving revision 1.5.2.3
+diff -u -w -r1.5 -r1.5.2.3
+--- g_hslider.c 16 Aug 2005 04:06:28 -0000 1.5
++++ g_hslider.c 19 May 2007 05:29:33 -0000 1.5.2.3
+@@ -76,11 +76,12 @@
+ canvas, r, ypos+1, r,
+ ypos + x->x_gui.x_h, x->x_gui.x_fcol, x);
+ sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
+- -font {%s %d bold} -fill #%6.6x -tags %lxLABEL\n",
++ -font {{%s} %d %s} -fill #%6.6x -tags %lxLABEL\n",
+ canvas, xpos+x->x_gui.x_ldx,
+ ypos+x->x_gui.x_ldy,
+ 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);
++ x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight,
++ x->x_gui.x_lcol, x);
+ if(!x->x_gui.x_fsf.x_snd_able)
+ sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %lxOUT%d\n",
+ canvas, xpos-3, ypos + x->x_gui.x_h-1,
+@@ -136,8 +137,8 @@
+ {
+ t_canvas *canvas=glist_getcanvas(glist);
+
+- sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {%s %d bold} -fill #%6.6x -text {%s} \n",
+- canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize,
++ sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} %d %s} -fill #%6.6x -text {%s} \n",
++ canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight,
+ 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(".x%lx.c itemconfigure %lxKNOB -fill #%6.6x\n", canvas, x, x->x_gui.x_fcol);
+@@ -285,7 +286,7 @@
+ t_symbol *srl[3];
+
+ iemgui_properties(&x->x_gui, srl);
+- sprintf(buf, "pdtk_iemgui_dialog %%s HSLIDER \
++ sprintf(buf, "pdtk_iemgui_dialog %%s |hsl| \
+ --------dimensions(pix)(pix):-------- %d %d width: %d %d height: \
+ -----------output-range:----------- %g left: %g right: %g \
+ %d lin log %d %d empty %d \
+@@ -586,7 +587,7 @@
+ 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");
+ else { x->x_gui.x_fsf.x_font_style = 0;
+- strcpy(x->x_gui.x_font, "courier"); }
++ strcpy(x->x_gui.x_font, sys_font); }
+ if(x->x_gui.x_fsf.x_rcv_able)
+ pd_bind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv);
+ x->x_gui.x_ldx = ldx;
+Index: g_mycanvas.c
+===================================================================
+RCS file: /cvsroot/pure-data/pd/src/g_mycanvas.c,v
+retrieving revision 1.5
+retrieving revision 1.5.14.3
+diff -u -w -r1.5 -r1.5.14.3
+--- g_mycanvas.c 6 Sep 2004 20:20:34 -0000 1.5
++++ g_mycanvas.c 19 May 2007 05:29:33 -0000 1.5.14.3
+@@ -44,10 +44,11 @@
+ xpos + x->x_gui.x_w, ypos + x->x_gui.x_h,
+ x->x_gui.x_bcol, x);
+ sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
+- -font {%s %d bold} -fill #%6.6x -tags %lxLABEL\n",
++ -font {{%s} %d %s} -fill #%6.6x -tags %lxLABEL\n",
+ canvas, xpos+x->x_gui.x_ldx, ypos+x->x_gui.x_ldy,
+ 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);
++ x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight,
++ x->x_gui.x_lcol, x);
+ }
+
+ void my_canvas_draw_move(t_my_canvas *x, t_glist *glist)
+@@ -84,8 +85,9 @@
+ x->x_gui.x_bcol, x->x_gui.x_bcol);
+ sys_vgui(".x%lx.c itemconfigure %lxBASE -outline #%6.6x\n", canvas, x,
+ x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_bcol);
+- sys_vgui(".x%lx.c itemconfigure %lxLABEL -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_lcol,
++ sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} %d %s} -fill #%6.6x -text {%s} \n",
++ canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight,
++ x->x_gui.x_lcol,
+ strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"");
+ }
+
+@@ -152,7 +154,7 @@
+ t_symbol *srl[3];
+
+ iemgui_properties(&x->x_gui, srl);
+- sprintf(buf, "pdtk_iemgui_dialog %%s MY_CANVAS \
++ sprintf(buf, "pdtk_iemgui_dialog %%s |cnv| \
+ ------selectable_dimensions(pix):------ %d %d size: 0.0 0.0 empty \
+ ------visible_rectangle(pix)(pix):------ %d width: %d height: %d \
+ %d empty empty %d %d empty %d \
+@@ -331,7 +333,7 @@
+ 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");
+ else { x->x_gui.x_fsf.x_font_style = 0;
+- strcpy(x->x_gui.x_font, "courier"); }
++ strcpy(x->x_gui.x_font, sys_font); }
+ if (x->x_gui.x_fsf.x_rcv_able)
+ pd_bind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv);
+ x->x_gui.x_ldx = ldx;
+Index: g_numbox.c
+===================================================================
+RCS file: /cvsroot/pure-data/pd/src/g_numbox.c,v
+retrieving revision 1.7
+retrieving revision 1.7.2.3
+diff -u -w -r1.7 -r1.7.2.3
+--- g_numbox.c 16 Aug 2005 04:06:28 -0000 1.7
++++ g_numbox.c 19 May 2007 05:29:33 -0000 1.7.2.3
+@@ -195,15 +195,17 @@
+ xpos, ypos + x->x_gui.x_h,
+ x->x_gui.x_fcol, x);
+ sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
+- -font {%s %d bold} -fill #%6.6x -tags %lxLABEL\n",
++ -font {{%s} %d %s} -fill #%6.6x -tags %lxLABEL\n",
+ canvas, xpos+x->x_gui.x_ldx, ypos+x->x_gui.x_ldy,
+ 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);
++ x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight,
++ x->x_gui.x_lcol, x);
+ my_numbox_ftoa(x);
+ sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
+- -font {%s %d bold} -fill #%6.6x -tags %lxNUMBER\n",
++ -font {{%s} %d %s} -fill #%6.6x -tags %lxNUMBER\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);
++ x->x_buf, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight,
++ x->x_gui.x_fcol, x);
+ if(!x->x_gui.x_fsf.x_snd_able)
+ sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %lxOUT%d\n",
+ canvas,
+@@ -269,12 +271,12 @@
+ {
+ t_canvas *canvas=glist_getcanvas(glist);
+
+- sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {%s %d bold} -fill #%6.6x -text {%s} \n",
+- canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize,
++ sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} %d %s} -fill #%6.6x -text {%s} \n",
++ canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight,
+ 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(".x%lx.c itemconfigure %lxNUMBER -font {%s %d bold} -fill #%6.6x \n",
+- canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize,
++ sys_vgui(".x%lx.c itemconfigure %lxNUMBER -font {{%s} %d %s} -fill #%6.6x \n",
++ canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight,
+ x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_fcol);
+ sys_vgui(".x%lx.c itemconfigure %lxBASE1 -fill #%6.6x\n", canvas,
+ x, x->x_gui.x_bcol);
+@@ -451,7 +453,7 @@
+ sys_queuegui(x, x->x_gui.x_glist, my_numbox_draw_update);
+
+ }
+- sprintf(buf, "pdtk_iemgui_dialog %%s NUMBERBOX \
++ sprintf(buf, "pdtk_iemgui_dialog %%s |nbx| \
+ -------dimensions(digits)(pix):------- %d %d width: %d %d height: \
+ -----------output-range:----------- %g min: %g max: %d \
+ %d lin log %d %d log-height: %d \
+@@ -806,7 +808,7 @@
+ 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");
+ else { x->x_gui.x_fsf.x_font_style = 0;
+- strcpy(x->x_gui.x_font, "courier"); }
++ strcpy(x->x_gui.x_font, sys_font); }
+ if (x->x_gui.x_fsf.x_rcv_able)
+ pd_bind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv);
+ x->x_gui.x_ldx = ldx;
+Index: g_rtext.c
+===================================================================
+RCS file: /cvsroot/pure-data/pd/src/g_rtext.c,v
+retrieving revision 1.5
+retrieving revision 1.5.2.4
+diff -u -w -r1.5 -r1.5.2.4
+--- g_rtext.c 2 Jul 2005 05:03:06 -0000 1.5
++++ g_rtext.c 19 May 2007 04:04:30 -0000 1.5.2.4
+@@ -15,10 +15,16 @@
+ #include "g_canvas.h"
+ #include "t_tk.h"
+
+-#define LMARGIN 1
+-#define RMARGIN 1
+-#define TMARGIN 2
+-#define BMARGIN 2
++#define LMARGIN 2
++#define RMARGIN 2
++/* for some reason, it draws text 1 pixel lower on Mac OS X */
++#ifdef __APPLE__
++#define TMARGIN 3
++#define BMARGIN 1
++#else
++#define TMARGIN 4
++#define BMARGIN 0
++#endif
+
+ #define SEND_FIRST 1
+ #define SEND_UPDATE 2
+Index: g_template.c
+===================================================================
+RCS file: /cvsroot/pure-data/pd/src/g_template.c,v
+retrieving revision 1.13
+retrieving revision 1.13.2.4
+diff -u -w -r1.13 -r1.13.2.4
+--- g_template.c 21 Aug 2005 17:46:52 -0000 1.13
++++ g_template.c 19 May 2007 05:29:33 -0000 1.13.2.4
+@@ -2090,8 +2090,8 @@
+ drawnumber_sprintf(x, buf, &at);
+ sys_vgui(".x%lx.c create text %d %d -anchor nw -fill %s -text {%s}",
+ glist_getcanvas(glist), xloc, yloc, colorstring, buf);
+- sys_vgui(" -font -*-courier-bold--normal--%d-*",
+- sys_hostfontsize(glist_getfont(glist)));
++ sys_vgui(" -font {{%s} %d %s}", sys_font,
++ sys_hostfontsize(glist_getfont(glist)), sys_fontweight);
+ sys_vgui(" -tags drawnumber%lx\n", data);
+ }
+ else sys_vgui(".x%lx.c delete drawnumber%lx\n", glist_getcanvas(glist), data);
+Index: g_toggle.c
+===================================================================
+RCS file: /cvsroot/pure-data/pd/src/g_toggle.c,v
+retrieving revision 1.4
+retrieving revision 1.4.12.3
+diff -u -w -r1.4 -r1.4.12.3
+--- g_toggle.c 6 Sep 2004 20:20:34 -0000 1.4
++++ g_toggle.c 19 May 2007 05:29:33 -0000 1.4.12.3
+@@ -61,11 +61,12 @@
+ canvas, xx+w+1, yy + x->x_gui.x_h-w-1, xx + x->x_gui.x_w-w, yy+w, w,
+ (x->x_on!=0.0)?x->x_gui.x_fcol:x->x_gui.x_bcol, x);
+ sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
+- -font {%s %d bold} -fill #%6.6x -tags %lxLABEL\n",
++ -font {{%s} %d %s} -fill #%6.6x -tags %lxLABEL\n",
+ canvas, xx+x->x_gui.x_ldx,
+ yy+x->x_gui.x_ldy,
+ 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);
++ x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight,
++ x->x_gui.x_lcol, x);
+ if(!x->x_gui.x_fsf.x_snd_able)
+ sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %lxOUT%d\n",
+ canvas, xx, yy + x->x_gui.x_h-1, xx + IOWIDTH, yy + x->x_gui.x_h, x, 0);
+@@ -120,8 +121,8 @@
+ {
+ t_canvas *canvas=glist_getcanvas(glist);
+
+- sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {%s %d bold} -fill #%6.6x -text {%s} \n",
+- canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize,
++ sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} %d %s} -fill #%6.6x -text {%s} \n",
++ canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight,
+ 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(".x%lx.c itemconfigure %lxBASE -fill #%6.6x\n", canvas, x,
+@@ -225,7 +226,7 @@
+ t_symbol *srl[3];
+
+ iemgui_properties(&x->x_gui, srl);
+- sprintf(buf, "pdtk_iemgui_dialog %%s TOGGLE \
++ sprintf(buf, "pdtk_iemgui_dialog %%s |tgl| \
+ ----------dimensions(pix):----------- %d %d size: 0 0 empty \
+ -----------non-zero-value:----------- %g value: 0.0 empty %g \
+ -1 lin log %d %d empty %d \
+@@ -407,7 +408,7 @@
+ 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");
+ else { x->x_gui.x_fsf.x_font_style = 0;
+- strcpy(x->x_gui.x_font, "courier"); }
++ strcpy(x->x_gui.x_font, sys_font); }
+ x->x_nonzero = (nonzero!=0.0)?nonzero:1.0;
+ if(x->x_gui.x_isa.x_loadinit)
+ x->x_on = (on!=0.0)?nonzero:0.0;
+Index: g_vdial.c
+===================================================================
+RCS file: /cvsroot/pure-data/pd/src/g_vdial.c,v
+retrieving revision 1.5
+retrieving revision 1.5.2.3
+diff -u -w -r1.5 -r1.5.2.3
+--- g_vdial.c 16 Aug 2005 04:06:28 -0000 1.5
++++ g_vdial.c 19 May 2007 05:29:33 -0000 1.5.2.3
+@@ -75,10 +75,10 @@
+ x->x_drawn = x->x_on;
+ }
+ sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
+- -font {%s %d bold} -fill #%6.6x -tags %lxLABEL\n",
++ -font {{%s} %d %s} -fill #%6.6x -tags %lxLABEL\n",
+ canvas, xx11+x->x_gui.x_ldx, yy11b+x->x_gui.x_ldy,
+ 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_font, x->x_gui.x_fontsize, sys_fontweight,
+ x->x_gui.x_lcol, x);
+ if(!x->x_gui.x_fsf.x_snd_able)
+ sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %lxOUT%d\n",
+@@ -141,8 +141,8 @@
+ t_canvas *canvas=glist_getcanvas(glist);
+ int n=x->x_number, i;
+
+- sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {%s %d bold} -fill #%6.6x -text {%s} \n",
+- canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize,
++ sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} %d %s} -fill #%6.6x -text {%s} \n",
++ canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight,
+ 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:"");
+ for(i=0; i<n; i++)
+@@ -265,7 +265,7 @@
+ iemgui_properties(&x->x_gui, srl);
+ if(pd_class(&x->x_gui.x_obj.ob_pd) == vradio_old_class)
+ hchange = x->x_change;
+- sprintf(buf, "pdtk_iemgui_dialog %%s vradio \
++ sprintf(buf, "pdtk_iemgui_dialog %%s |vradio| \
+ ----------dimensions(pix):----------- %d %d size: 0 0 empty \
+ empty 0.0 empty 0.0 empty %d \
+ %d new-only new&old %d %d number: %d \
+@@ -590,7 +590,7 @@
+ 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");
+ else { x->x_gui.x_fsf.x_font_style = 0;
+- strcpy(x->x_gui.x_font, "courier"); }
++ strcpy(x->x_gui.x_font, sys_font); }
+ if(num < 1)
+ num = 1;
+ if(num > IEM_RADIO_MAX)
+Index: g_vslider.c
+===================================================================
+RCS file: /cvsroot/pure-data/pd/src/g_vslider.c,v
+retrieving revision 1.5
+retrieving revision 1.5.2.3
+diff -u -w -r1.5 -r1.5.2.3
+--- g_vslider.c 16 Aug 2005 04:06:28 -0000 1.5
++++ g_vslider.c 19 May 2007 05:29:33 -0000 1.5.2.3
+@@ -59,10 +59,11 @@
+ canvas, xpos+1, r,
+ xpos + x->x_gui.x_w, r, x->x_gui.x_fcol, x);
+ sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
+- -font {%s %d bold} -fill #%6.6x -tags %lxLABEL\n",
++ -font {{%s} %d %s} -fill #%6.6x -tags %lxLABEL\n",
+ canvas, xpos+x->x_gui.x_ldx, ypos+x->x_gui.x_ldy,
+ 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);
++ x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight,
++ x->x_gui.x_lcol, x);
+ if(!x->x_gui.x_fsf.x_snd_able)
+ sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %lxOUT%d\n",
+ canvas,
+@@ -122,8 +123,8 @@
+ {
+ t_canvas *canvas=glist_getcanvas(glist);
+
+- sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {%s %d bold} -fill #%6.6x -text {%s} \n",
+- canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize,
++ sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} %d %s} -fill #%6.6x -text {%s} \n",
++ canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight,
+ 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(".x%lx.c itemconfigure %lxKNOB -fill #%6.6x\n", canvas,
+@@ -277,7 +278,7 @@
+
+ iemgui_properties(&x->x_gui, srl);
+
+- sprintf(buf, "pdtk_iemgui_dialog %%s VSLIDER \
++ sprintf(buf, "pdtk_iemgui_dialog %%s |vsl| \
+ --------dimensions(pix)(pix):-------- %d %d width: %d %d height: \
+ -----------output-range:----------- %g bottom: %g top: %d \
+ %d lin log %d %d empty %d \
+@@ -562,7 +563,7 @@
+ 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");
+ else { x->x_gui.x_fsf.x_font_style = 0;
+- strcpy(x->x_gui.x_font, "courier"); }
++ strcpy(x->x_gui.x_font, sys_font); }
+ if(x->x_gui.x_fsf.x_rcv_able) pd_bind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv);
+ x->x_gui.x_ldx = ldx;
+ x->x_gui.x_ldy = ldy;
+Index: g_vumeter.c
+===================================================================
+RCS file: /cvsroot/pure-data/pd/src/g_vumeter.c,v
+retrieving revision 1.5
+retrieving revision 1.5.4.3
+diff -u -w -r1.5 -r1.5.4.3
+--- g_vumeter.c 16 Aug 2005 04:06:28 -0000 1.5
++++ g_vumeter.c 19 May 2007 05:29:33 -0000 1.5.4.3
+@@ -116,17 +116,19 @@
+ canvas, quad1, yyy, quad3, yyy, x->x_led_size, iemgui_color_hex[led_col], x, i);
+ if(((i+2)&3) && (x->x_scale))
+ sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
+- -font {%s %d bold} -fill #%6.6x -tags %lxSCALE%d\n",
+- canvas, end, yyy+k3, iemgui_vu_scale_str[i], x->x_gui.x_font, x->x_gui.x_fontsize,
+- x->x_gui.x_lcol, x, i);
++ -font {{%s} %d %s} -fill #%6.6x -tags %lxSCALE%d\n",
++ canvas, end, yyy+k3, iemgui_vu_scale_str[i],
++ x->x_gui.x_font, x->x_gui.x_fontsize,
++ sys_fontweight, x->x_gui.x_lcol, x, i);
+ }
+ if(x->x_scale)
+ {
+ i=IEM_VU_STEPS+1;
+ yyy = k4 + k1*(k2-i);
+ sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
+- -font {%s %d bold} -fill #%6.6x -tags %lxSCALE%d\n",
+- canvas, end, yyy+k3, iemgui_vu_scale_str[i], x->x_gui.x_font, x->x_gui.x_fontsize,
++ -font {{%s} %d %s} -fill #%6.6x -tags %lxSCALE%d\n",
++ canvas, end, yyy+k3, iemgui_vu_scale_str[i], x->x_gui.x_font,
++ x->x_gui.x_fontsize, sys_fontweight,
+ x->x_gui.x_lcol, x, i);
+ }
+ sys_vgui(".x%lx.c create rectangle %d %d %d %d -fill #%6.6x -outline #%6.6x -tags %lxRCOVER\n",
+@@ -136,10 +138,11 @@
+ canvas, mid, ypos+10,
+ mid, ypos+10, x->x_led_size, x->x_gui.x_bcol, x);
+ sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
+- -font {%s %d bold} -fill #%6.6x -tags %lxLABEL\n",
++ -font {{%s} %d %s} -fill #%6.6x -tags %lxLABEL\n",
+ canvas, xpos+x->x_gui.x_ldx, ypos+x->x_gui.x_ldy,
+ 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);
++ x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight,
++ x->x_gui.x_lcol, x);
+ if(!x->x_gui.x_fsf.x_snd_able)
+ {
+ sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %lxOUT%d\n",
+@@ -274,19 +277,21 @@
+ sys_vgui(".x%lx.c itemconfigure %lxRLED%d -width %d\n", canvas, x, i,
+ x->x_led_size);
+ if(((i+2)&3) && (x->x_scale))
+- sys_vgui(".x%lx.c itemconfigure %lxSCALE%d -text {%s} -font {%s %d bold} -fill #%6.6x\n",
+- canvas, x, i, iemgui_vu_scale_str[i], x->x_gui.x_font, x->x_gui.x_fontsize,
++ sys_vgui(".x%lx.c itemconfigure %lxSCALE%d -text {%s} -font {{%s} %d %s} -fill #%6.6x\n",
++ canvas, x, i, iemgui_vu_scale_str[i], x->x_gui.x_font,
++ x->x_gui.x_fontsize, sys_fontweight,
+ x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol);
+ }
+ if(x->x_scale)
+ {
+ i=IEM_VU_STEPS+1;
+- sys_vgui(".x%lx.c itemconfigure %lxSCALE%d -text {%s} -font {%s %d bold} -fill #%6.6x\n",
+- canvas, x, i, iemgui_vu_scale_str[i], x->x_gui.x_font, x->x_gui.x_fontsize,
++ sys_vgui(".x%lx.c itemconfigure %lxSCALE%d -text {%s} -font {{%s} %d %s} -fill #%6.6x\n",
++ canvas, x, i, iemgui_vu_scale_str[i], x->x_gui.x_font,
++ x->x_gui.x_fontsize, sys_fontweight,
+ x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol);
+ }
+- sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {%s %d bold} -fill #%6.6x -text {%s} \n",
+- canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize,
++ sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} %d %s} -fill #%6.6x -text {%s} \n",
++ canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight,
+ 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:"");
+
+@@ -476,16 +481,18 @@
+ yyy = k4 + k1*(k2-i);
+ if((i+2)&3)
+ sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
+- -font {%s %d bold} -fill #%6.6x -tags %lxSCALE%d\n",
+- canvas, end, yyy+k3, iemgui_vu_scale_str[i], x->x_gui.x_font, x->x_gui.x_fontsize,
+- x->x_gui.x_lcol, x, i);
++ -font {{%s} %d %s} -fill #%6.6x -tags %lxSCALE%d\n",
++ canvas, end, yyy+k3, iemgui_vu_scale_str[i],
++ x->x_gui.x_font, x->x_gui.x_fontsize,
++ sys_fontweight, x->x_gui.x_lcol, x, i);
+ }
+ i=IEM_VU_STEPS+1;
+ yyy = k4 + k1*(k2-i);
+ sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
+- -font {%s %d bold} -fill #%6.6x -tags %lxSCALE%d\n",
+- canvas, end, yyy+k3, iemgui_vu_scale_str[i], x->x_gui.x_font, x->x_gui.x_fontsize,
+- x->x_gui.x_lcol, x, i);
++ -font {{%s} %d %s} -fill #%6.6x -tags %lxSCALE%d\n",
++ canvas, end, yyy+k3, iemgui_vu_scale_str[i],
++ x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight,
++ sys_fontweight, x->x_gui.x_lcol, x, i);
+ }
+ }
+ }
+@@ -497,7 +504,7 @@
+ t_symbol *srl[3];
+
+ iemgui_properties(&x->x_gui, srl);
+- sprintf(buf, "pdtk_iemgui_dialog %%s VU-METER \
++ sprintf(buf, "pdtk_iemgui_dialog %%s |vu| \
+ --------dimensions(pix)(pix):-------- %d %d width: %d %d height: \
+ empty 0.0 empty 0.0 empty %d \
+ %d no_scale scale %d %d empty %d \
+@@ -627,7 +634,7 @@
+ t_vu *x = (t_vu *)pd_new(vu_class);
+ int bflcol[]={-66577, -1, -1};
+ int w=IEM_GUI_DEFAULTSIZE, h=IEM_VU_STEPS*IEM_VU_DEFAULTSIZE;
+- int ldx=-1, ldy=-8, f=0, fs=8, scale=1;
++ int ldx=-1, ldy=-8, f=0, fs=10, scale=1;
+ int ftbreak=IEM_BNG_DEFAULTBREAKFLASHTIME, fthold=IEM_BNG_DEFAULTHOLDFLASHTIME;
+ char str[144];
+
+@@ -667,7 +674,7 @@
+ else if(x->x_gui.x_fsf.x_font_style == 2)
+ strcpy(x->x_gui.x_font, "times");
+ else { x->x_gui.x_fsf.x_font_style = 0;
+- strcpy(x->x_gui.x_font, "courier"); }
++ strcpy(x->x_gui.x_font, sys_font); }
+ if(x->x_gui.x_fsf.x_rcv_able)
+ pd_bind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv);
+ x->x_gui.x_ldx = ldx;
+Index: m_pd.h
+===================================================================
+RCS file: /cvsroot/pure-data/pd/src/m_pd.h,v
+retrieving revision 1.8
+retrieving revision 1.8.2.10
+diff -u -w -r1.8 -r1.8.2.10
+--- m_pd.h 19 Aug 2005 23:28:03 -0000 1.8
++++ m_pd.h 18 Jul 2007 14:05:55 -0000 1.8.2.10
+@@ -363,6 +366,8 @@
+ EXTERN void canvas_makefilename(t_glist *c, char *file,
+ char *result,int resultsize);
+ EXTERN t_symbol *canvas_getdir(t_glist *x);
++EXTERN char sys_font[]; /* default typeface set in s_main.c */
++EXTERN char sys_fontweight[]; /* default font weight set in s_main.c */
+ EXTERN int sys_fontwidth(int fontsize);
+ EXTERN int sys_fontheight(int fontsize);
+ EXTERN void canvas_dataproperties(t_glist *x, t_scalar *sc, t_binbuf *b);
+Index: s_inter.c
+===================================================================
+RCS file: /cvsroot/pure-data/pd/src/s_inter.c,v
+retrieving revision 1.14
+retrieving revision 1.14.2.5
+diff -u -w -r1.14 -r1.14.2.5
+--- s_inter.c 15 Oct 2005 23:14:28 -0000 1.14
++++ s_inter.c 18 Jul 2007 14:05:55 -0000 1.14.2.5
+@@ -85,9 +88,7 @@
+ t_socketreceivefn sr_socketreceivefn;
+ };
+
+-extern char *pd_version;
+ extern int sys_guisetportnumber;
+-extern char sys_font[]; /* tb: typeface */
+
+ static int sys_nfdpoll;
+ static t_fdpoll *sys_fdpoll;
+@@ -842,7 +843,8 @@
+
+ #define FIRSTPORTNUM 5400
+
+-static int defaultfontshit[] = {
++#define MAXFONTS 21
++static int defaultfontshit[MAXFONTS] = {
+ 8, 5, 9, 10, 6, 10, 12, 7, 13, 14, 9, 17, 16, 10, 19, 24, 15, 28,
+ 24, 15, 28};
+
+@@ -1245,8 +1248,8 @@
+ #endif
+ sys_get_audio_apis(buf);
+ sys_get_midi_apis(buf2);
+- sys_vgui("pdtk_pd_startup {%s} %s %s {%s}\n", pd_version, buf, buf2,
+- sys_font);
++ sys_vgui("pdtk_pd_startup %s %s {%s} %s\n", buf, buf2, sys_font,
++ sys_fontweight);
+ }
+ return (0);
+
+Index: s_main.c
+===================================================================
+RCS file: /cvsroot/pure-data/pd/src/s_main.c,v
+retrieving revision 1.20
+retrieving revision 1.20.2.9
+diff -u -w -r1.20 -r1.20.2.9
+--- s_main.c 2 Dec 2005 04:58:24 -0000 1.20
++++ s_main.c 9 Jul 2007 17:42:04 -0000 1.20.2.9
+@@ -56,7 +57,12 @@
+ int sys_midiindevlist[MAXMIDIINDEV] = {1};
+ int sys_midioutdevlist[MAXMIDIOUTDEV] = {1};
+
+-char sys_font[100] = "courier"; /* tb: font name */
++#ifdef __APPLE__
++char sys_font[] = "Monaco"; /* tb: font name */
++#else
++char sys_font[] = "Bitstream Vera Sans Mono"; /* tb: font name */
++#endif
++char sys_fontweight[] = "normal"; /* currently only used for iemguis */
+ static int sys_main_srate;
+ static int sys_main_advance;
+
+@@ -106,8 +111,8 @@
+ in the six fonts. */
+
+ static t_fontinfo sys_fontlist[] = {
+- {8, 6, 10, 0, 0, 0}, {10, 7, 13, 0, 0, 0}, {12, 9, 16, 0, 0, 0},
+- {16, 10, 20, 0, 0, 0}, {24, 15, 25, 0, 0, 0}, {36, 25, 45, 0, 0, 0}};
++ {8, 5, 11, 0, 0, 0}, {10, 6, 13, 0, 0, 0}, {12, 7, 16, 0, 0, 0},
++ {16, 10, 19, 0, 0, 0}, {24, 14, 29, 0, 0, 0}, {36, 23, 44, 0, 0, 0}};
+ #define NFONT (sizeof(sys_fontlist)/sizeof(*sys_fontlist))
+
+ /* here are the actual font size structs on msp's systems:
+@@ -141,7 +147,7 @@
+
+ int sys_hostfontsize(int fontsize)
+ {
+- return (sys_findfont(fontsize)->fi_hostfontsize);
++ return (0 - fontsize);
+ }
+
+ int sys_fontwidth(int fontsize)
+@@ -155,11 +161,7 @@
+ }
+
+ int sys_defaultfont;
+-#ifdef MSW
+-#define DEFAULTFONT 12
+-#else
+ #define DEFAULTFONT 10
+-#endif
+
+ static void openit(const char *dirname, const char *filename)
+ {
+@@ -206,11 +211,6 @@
+ atom_getintarg(3 * j + 3, argc, argv) <= wantwidth)
+ best = j;
+ }
+- /* best is now the host font index for the desired font index i. */
+- sys_fontlist[i].fi_hostfontsize =
+- atom_getintarg(3 * best + 2, argc, argv);
+- sys_fontlist[i].fi_width = atom_getintarg(3 * best + 3, argc, argv);
+- sys_fontlist[i].fi_height = atom_getintarg(3 * best + 4, argc, argv);
+ }
+ #if 0
+ for (i = 0; i < 6; i++)
+@@ -358,8 +364,9 @@
+ "-helppath <path> -- add to help file search path\n",
+ "-open <file> -- open file(s) on startup\n",
+ "-lib <file> -- load object library(s)\n",
+-"-font <n> -- specify default font size in points\n",
+-"-typeface <name> -- specify default font (default: courier)\n",
++"-font-size <n> -- specify default font size in points\n",
++"-font-face <name> -- specify default font (default: Bitstream Vera Sans Mono)\n",
++"-font-weight <name>-- specify default font weight (normal or bold)\n",
+ "-verbose -- extra printout on startup and when searching for files\n",
+ "-version -- don't run Pd; just print out which version it is \n",
+ "-d <n> -- specify debug level\n",
+@@ -737,21 +737,25 @@
+ sys_externlist = namelist_append_files(sys_externlist, argv[1]);
+ argc -= 2; argv += 2;
+ }
+- else if (!strcmp(*argv, "-font") && argc > 1)
++ else if ((!strcmp(*argv, "-font-size") || !strcmp(*argv, "-font")) && argc > 1)
+ {
+ sys_defaultfont = sys_nearestfontsize(atoi(argv[1]));
+ argc -= 2;
+ argv += 2;
+ }
+- /* tb: font name { */
+- else if (!strcmp(*argv, "-typeface") && argc > 1)
++ else if ((!strcmp(*argv, "-font-face") || !strcmp(*argv, "-typeface")) && argc > 1)
+ {
+ strncpy(sys_font,*(argv+1),sizeof(sys_font)-1);
+ sys_font[sizeof(sys_font)-1] = 0;
+ argc -= 2;
+ argv += 2;
+ }
+- /* } tb */
++ else if (!strcmp(*argv, "-font-weight") && argc > 1)
++ {
++ strcpy(sys_fontweight,*(argv+1));
++ argc -= 2;
++ argv += 2;
++ }
+ else if (!strcmp(*argv, "-verbose"))
+ {
+ sys_verbose++;
+Index: u_main.tk
+===================================================================
+RCS file: /cvsroot/pure-data/pd/src/u_main.tk,v
+retrieving revision 1.17
+retrieving revision 1.17.2.21
+diff -u -w -r1.17 -r1.17.2.21
+--- u_main.tk 15 Oct 2005 23:14:28 -0000 1.17
++++ u_main.tk 23 Jul 2007 20:49:13 -0000 1.17.2.21
+@@ -1,14 +1,4 @@
+ #!/usr/bin/wish
+-
+-# set pd_nt (bad name) 0 for unix, 1 for microsoft, and 2 for Mac OSX.
+-if { $tcl_platform(platform) == "windows" } {
+- set pd_nt 1
+-} elseif { $tcl_platform(os) == "Darwin" } {
+- set pd_nt 2
+-} else {
+- set pd_nt 0
+-}
+-
+ # Copyright (c) 1997-1999 Miller Puckette.
+ # For information on usage and redistribution, and for a DISCLAIMER OF ALL
+ # WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+@@ -21,6 +11,35 @@
+ #
+ # all this changes are labeled with #######iemlib##########
+
++# set pd_nt (bad name) 0 for unix, 1 for microsoft, and 2 for Mac OSX.
++if { $tcl_platform(platform) == "windows" } {
++ set pd_nt 1
++ set defaultFontFamily {Bitstream Vera Sans Mono}
++ font create menuFont -family Tahoma -size 11
++} elseif { $tcl_platform(os) == "Darwin" } {
++ set pd_nt 2
++ set defaultFontFamily Monaco
++} else {
++ set pd_nt 0
++ set defaultFontFamily {Bitstream Vera Sans Mono}
++}
++
++# start Pd-extended font hacks -----------------------------
++
++# Pd-0.39.2-extended hacks to make font/box sizes the same across platform
++puts stderr "tk scaling is [tk scaling]"
++tk scaling 1
++
++# this font is for the Pd Window console text
++font create console_font -family $defaultFontFamily -size 12 -weight normal
++# this font is for text in Pd windows
++font create text_font -family {Times} -size 14 -weight normal
++# for text in Properties Panels and other panes
++font create highlight_font -family $defaultFontFamily -size 14 -weight bold
++
++# end Pd-extended font hacks -----------------------------
++
++
+ # Tearoff is set to true by default:
+ set pd_tearoff 1
+
+@@ -44,15 +63,14 @@
+ if {$pd_nt == 2} {
+ # turn on James Tittle II's fast drawing
+ set tk::mac::useCGDrawing 1
+- # set minimum line size for anti-aliasing. If set to 1 or 0, then every
+- # line will be anti-aliased. While this makes connections and circles in
+- # [bng] and such look really good, it makes boxes and messages look out of
+- # focus. Setting this to 2 makes it so the thick audio rate connections
+- # are anti-aliased. <hans@at.or.at> 2005-06-09
+- set tk::mac::CGAntialiasLimit 2
++# anti-alias all lines that need it
++ set tk::mac::CGAntialiasLimit 0
+ global pd_guidir
+ global pd_tearoff
+ set pd_gui2 [string range $argv0 0 [expr [string last / $argv0 ] - 1]]
++# this is the embedded libquicktime can find its embedded plugins
++ puts stderr "Setting LIBQUICKTIME_PLUGIN_DIR: $pd_gui2/../../lib/libquicktime"
++ set env(LIBQUICKTIME_PLUGIN_DIR) $pd_gui2/../../lib/libquicktime
+ set pd_guidir $pd_gui2/..
+ load $pd_guidir/bin/libPdTcl.dylib
+ set pd_tearoff 0
+@@ -128,6 +148,15 @@
+ .mbar add cascade -label "Help" -menu .mbar.help
+ }
+
++# fix menu font size on Windows with tk scaling = 1
++if {$pd_nt == 1} {
++ .mbar.file configure -font menuFont
++ .mbar.find configure -font menuFont
++ .mbar.windows configure -font menuFont
++ .mbar.audio configure -font menuFont
++ .mbar.help configure -font menuFont
++}
++
+ set ctrls_audio_on 0
+ set ctrls_meter_on 0
+ set ctrls_inlevel 0
+@@ -136,15 +165,14 @@
+ frame .controls.switches
+ checkbutton .controls.switches.audiobutton -text {compute audio} \
+ -variable ctrls_audio_on \
+- -anchor w \
+ -command {pd [concat pd dsp $ctrls_audio_on \;]}
+
+ checkbutton .controls.switches.meterbutton -text {peak meters} \
+ -variable ctrls_meter_on \
+- -anchor w \
+ -command {pd [concat pd meters $ctrls_meter_on \;]}
+
+-pack .controls.switches.audiobutton .controls.switches.meterbutton -side top
++pack .controls.switches.audiobutton .controls.switches.meterbutton \
++ -side top -anchor w
+
+ frame .controls.inout
+ frame .controls.inout.in
+@@ -171,7 +199,7 @@
+
+
+ frame .printout
+-text .printout.text -relief raised -bd 2 -font -*-courier-bold--normal--12-* \
++text .printout.text -relief raised -bd 2 -font console_font \
+ -yscrollcommand ".printout.scroll set" -width 80
+ # .printout.text insert end "\n\n\n\n\n\n\n\n\n\n"
+ scrollbar .printout.scroll -command ".printout.text yview"
+@@ -364,7 +360,7 @@
+ global pd_myversion
+ set name [format ".help%d" $doc_number]
+ toplevel $name
+- text $name.text -relief raised -bd 2 -font -*-times-regular--normal--14-* \
++ text $name.text -relief raised -bd 2 -font text_font \
+ -yscrollcommand "$name.scroll set" -background white
+ scrollbar $name.scroll -command "$name.text yview"
+ pack $name.scroll -side right -fill y
+@@ -1120,6 +1162,18 @@
+ $name.popup add command -label {Help} \
+ -command [concat popup_action $name 2]
+
++# fix menu font size on Windows with tk scaling = 1
++if {$pd_nt == 1} {
++ $name.m.file configure -font menuFont
++ $name.m.edit configure -font menuFont
++ $name.m.find configure -font menuFont
++ $name.m.put configure -font menuFont
++ $name.m.windows configure -font menuFont
++ $name.m.audio configure -font menuFont
++ $name.m.help configure -font menuFont
++ $name.popup configure -font menuFont
++}
++
+ # WM protocol
+ wm protocol $name WM_DELETE_WINDOW [concat menu_close $name]
+
+@@ -1239,6 +1295,7 @@
+ global pd_nt
+ global pd_array_listview_page
+ global pd_array_listview_id
++ global fontname fontweight
+ set pd_array_listview_page($arrayName) $page
+ set pd_array_listview_id($arrayName) $id
+ set windowName [format ".%sArrayWindow" $arrayName]
+@@ -1252,8 +1309,7 @@
+ set $windowName.lb [listbox $windowName.lb -height 20 -width 25\
+ -selectmode extended \
+ -relief solid -background white -borderwidth 1 \
+- -font [format -*-courier-bold--normal--%d-* \
+- $font] \
++ -font [format {{%s} %d %s} $fontname $font $fontweight]\
+ -yscrollcommand "$windowName.lb.sb set"]
+ set $windowName.lb.sb [scrollbar $windowName.lb.sb \
+ -command "$windowName.lb yview" -orient vertical]
+@@ -1357,9 +1413,7 @@
+ proc pdtk_array_listview_edit {arrayName page font} {
+ global pd_array_listview_entry
+ global pd_nt
+- if {$pd_nt == 0} {
+- set font [expr $font - 2]
+- }
++ global fontname fontweight
+ set lbName [format ".%sArrayWindow.lb" $arrayName]
+ if {[winfo exists $lbName.entry]} {
+ pdtk_array_listview_update_entry \
+@@ -1371,7 +1425,7 @@
+ set bbox [$lbName bbox $itemNum]
+ set y [expr [lindex $bbox 1] - 4]
+ set $lbName.entry [entry $lbName.entry \
+- -font [format -*-courier-bold--normal--%d-* $font]]
++ -font [format {{%s} %d %s} $fontname $font $fontweight]]
+ $lbName.entry insert 0 []
+ place configure $lbName.entry -relx 0 -y $y -relwidth 1
+ lower $lbName.entry
+@@ -1853,6 +1925,8 @@
+
+ set vid [string trimleft $id .]
+
++ global pd_nt
++
+ set var_gatomwidth [concat gatomwidth_$vid]
+ global $var_gatomwidth
+ set var_gatomlo [concat gatomlo_$vid]
+@@ -1877,87 +1951,96 @@
+ set $var_gatomsymto [gatom_unescape $symto]
+
+ toplevel $id
+- wm title $id {Atom}
++ wm title $id "atom box properties"
++ wm resizable $id 0 0
+ wm protocol $id WM_DELETE_WINDOW [concat dogatom_cancel $id]
+
+- frame $id.buttonframe
+- pack $id.buttonframe -side bottom -fill x -pady 2m
++ frame $id.params -height 7
++ pack $id.params -side top
++ label $id.params.entryname -text "width"
++ entry $id.params.entry -textvariable $var_gatomwidth -width 4
++ pack $id.params.entryname $id.params.entry -side left
++
++ labelframe $id.limits -text "limits" -padx 15 -pady 4 -borderwidth 1 \
++ -font highlight_font
++ pack $id.limits -side top -fill x
++ frame $id.limits.lower
++ pack $id.limits.lower -side left
++ label $id.limits.lower.entryname -text "lower"
++ entry $id.limits.lower.entry -textvariable $var_gatomlo -width 8
++ pack $id.limits.lower.entryname $id.limits.lower.entry -side left
++ frame $id.limits.upper
++ pack $id.limits.upper -side left
++ frame $id.limits.upper.spacer -width 20
++ label $id.limits.upper.entryname -text "upper"
++ entry $id.limits.upper.entry -textvariable $var_gatomhi -width 8
++ pack $id.limits.upper.spacer $id.limits.upper.entryname \
++ $id.limits.upper.entry -side left
++
++ frame $id.spacer1 -height 7
++ pack $id.spacer1 -side top
++
++ labelframe $id.label -text "label" -padx 5 -pady 4 -borderwidth 1 \
++ -font highlight_font
++ pack $id.label -side top -fill x
++ frame $id.label.name
++ pack $id.label.name -side top
++ entry $id.label.name.entry -textvariable $var_gatomlabel -width 33
++ pack $id.label.name.entry -side left
++ frame $id.label.radio
++ pack $id.label.radio -side top
++ radiobutton $id.label.radio.left -value 0 \
++ -variable $var_gatomwherelabel \
++ -text "left " -justify left
++ radiobutton $id.label.radio.right -value 1 \
++ -variable $var_gatomwherelabel \
++ -text "right" -justify left
++ radiobutton $id.label.radio.top -value 2 \
++ -variable $var_gatomwherelabel \
++ -text "top" -justify left
++ radiobutton $id.label.radio.bottom -value 3 \
++ -variable $var_gatomwherelabel \
++ -text "bottom" -justify left
++ pack $id.label.radio.left -side left -anchor w
++ pack $id.label.radio.right -side right -anchor w
++ pack $id.label.radio.top -side top -anchor w
++ pack $id.label.radio.bottom -side bottom -anchor w
++
++ frame $id.spacer2 -height 7
++ pack $id.spacer2 -side top
++
++ labelframe $id.s_r -text "messages" -padx 5 -pady 4 -borderwidth 1 \
++ -font highlight_font
++ pack $id.s_r -side top -fill x
++ frame $id.s_r.paramsymto
++ pack $id.s_r.paramsymto -side top -anchor e
++ label $id.s_r.paramsymto.entryname -text "send symbol"
++ entry $id.s_r.paramsymto.entry -textvariable $var_gatomsymto -width 21
++ pack $id.s_r.paramsymto.entry $id.s_r.paramsymto.entryname -side right
++
++ frame $id.s_r.paramsymfrom
++ pack $id.s_r.paramsymfrom -side top -anchor e
++ label $id.s_r.paramsymfrom.entryname -text "receive symbol"
++ entry $id.s_r.paramsymfrom.entry -textvariable $var_gatomsymfrom -width 21
++ pack $id.s_r.paramsymfrom.entry $id.s_r.paramsymfrom.entryname -side right
++
++ frame $id.buttonframe -pady 5
++ pack $id.buttonframe -side top -fill x -pady 2m
+ button $id.buttonframe.cancel -text {Cancel}\
+ -command "dogatom_cancel $id"
++ pack $id.buttonframe.cancel -side left -expand 1
+ button $id.buttonframe.apply -text {Apply}\
+ -command "dogatom_apply $id"
++ pack $id.buttonframe.apply -side left -expand 1
+ button $id.buttonframe.ok -text {OK}\
+ -command "dogatom_ok $id"
+- pack $id.buttonframe.cancel -side left -expand 1
+- pack $id.buttonframe.apply -side left -expand 1
+ pack $id.buttonframe.ok -side left -expand 1
+
+- frame $id.paramsymto
+- pack $id.paramsymto -side bottom
+- label $id.paramsymto.entryname -text {send symbol}
+- entry $id.paramsymto.entry -textvariable $var_gatomsymto -width 20
+- pack $id.paramsymto.entryname $id.paramsymto.entry -side left
+-
+- frame $id.paramsymfrom
+- pack $id.paramsymfrom -side bottom
+- label $id.paramsymfrom.entryname -text {receive symbol}
+- entry $id.paramsymfrom.entry -textvariable $var_gatomsymfrom -width 20
+- pack $id.paramsymfrom.entryname $id.paramsymfrom.entry -side left
+-
+- frame $id.radio
+- pack $id.radio -side bottom
+- label $id.radio.label -text {show label on:}
+- frame $id.radio.l
+- frame $id.radio.r
+- pack $id.radio.label -side top
+- pack $id.radio.l $id.radio.r -side left
+- radiobutton $id.radio.l.radio0 -value 0 \
+- -variable $var_gatomwherelabel \
+- -text "left"
+- radiobutton $id.radio.l.radio1 -value 1 \
+- -variable $var_gatomwherelabel \
+- -text "right"
+- radiobutton $id.radio.r.radio2 -value 2 \
+- -variable $var_gatomwherelabel \
+- -text "top"
+- radiobutton $id.radio.r.radio3 -value 3 \
+- -variable $var_gatomwherelabel \
+- -text "bottom"
+- pack $id.radio.l.radio0 $id.radio.l.radio1 -side top -anchor w
+- pack $id.radio.r.radio2 $id.radio.r.radio3 -side top -anchor w
+-
+-
+- frame $id.paramlabel
+- pack $id.paramlabel -side bottom
+- label $id.paramlabel.entryname -text label
+- entry $id.paramlabel.entry -textvariable $var_gatomlabel -width 20
+- pack $id.paramlabel.entryname $id.paramlabel.entry -side left
+-
+- frame $id.paramhi
+- pack $id.paramhi -side bottom
+- label $id.paramhi.entryname -text "upper limit"
+- entry $id.paramhi.entry -textvariable $var_gatomhi -width 8
+- pack $id.paramhi.entryname $id.paramhi.entry -side left
+-
+- frame $id.paramlo
+- pack $id.paramlo -side bottom
+- label $id.paramlo.entryname -text "lower limit"
+- entry $id.paramlo.entry -textvariable $var_gatomlo -width 8
+- pack $id.paramlo.entryname $id.paramlo.entry -side left
+-
+- frame $id.params
+- pack $id.params -side bottom
+- label $id.params.entryname -text width
+- entry $id.params.entry -textvariable $var_gatomwidth -width 4
+- pack $id.params.entryname $id.params.entry -side left
+-
+-
+-
+- bind $id.paramhi.entry <KeyPress-Return> [concat dogatom_ok $id]
+- bind $id.paramlo.entry <KeyPress-Return> [concat dogatom_ok $id]
++ bind $id.limits.upper.entry <KeyPress-Return> [concat dogatom_ok $id]
++ bind $id.limits.lower.entry <KeyPress-Return> [concat dogatom_ok $id]
+ bind $id.params.entry <KeyPress-Return> [concat dogatom_ok $id]
+- pdtk_standardkeybindings $id.paramhi.entry
+- pdtk_standardkeybindings $id.paramlo.entry
++ pdtk_standardkeybindings $id.limits.upper.entry
++ pdtk_standardkeybindings $id.limits.lower.entry
+ pdtk_standardkeybindings $id.params.entry
+ $id.params.entry select from 0
+ $id.params.entry select adjust end
+@@ -2110,7 +2193,7 @@
+
+ if {[eval concat $$var_iemgui_gn_fs] < $iemgui_define_min_fontsize} {
+ set $var_iemgui_gn_fs $iemgui_define_min_fontsize
+- $id.gnfs.fs_ent configure -textvariable $var_iemgui_gn_fs
++ $id.label.fs_ent configure -textvariable $var_iemgui_gn_fs
+ }
+ }
+
+@@ -2124,20 +2207,20 @@
+ set var_iemgui_lcol [concat iemgui_lcol_$vid]
+ global $var_iemgui_lcol
+
+- $id.col_example_choose.lb_bk configure \
++ $id.colors.sections.lb_bk configure \
+ -background [format "#%6.6x" [eval concat $$var_iemgui_bcol]] \
+ -activebackground [format "#%6.6x" [eval concat $$var_iemgui_bcol]] \
+ -foreground [format "#%6.6x" [eval concat $$var_iemgui_lcol]] \
+ -activeforeground [format "#%6.6x" [eval concat $$var_iemgui_lcol]]
+
+ if { [eval concat $$var_iemgui_fcol] >= 0 } {
+- $id.col_example_choose.fr_bk configure \
++ $id.colors.sections.fr_bk configure \
+ -background [format "#%6.6x" [eval concat $$var_iemgui_bcol]] \
+ -activebackground [format "#%6.6x" [eval concat $$var_iemgui_bcol]] \
+ -foreground [format "#%6.6x" [eval concat $$var_iemgui_fcol]] \
+ -activeforeground [format "#%6.6x" [eval concat $$var_iemgui_fcol]]
+ } else {
+- $id.col_example_choose.fr_bk configure \
++ $id.colors.sections.fr_bk configure \
+ -background [format "#%6.6x" [eval concat $$var_iemgui_bcol]] \
+ -activebackground [format "#%6.6x" [eval concat $$var_iemgui_bcol]] \
+ -foreground [format "#%6.6x" [eval concat $$var_iemgui_bcol]] \
+@@ -2221,17 +2304,27 @@
+ }
+ }
+
+-proc iemgui_toggle_font {id} {
++proc iemgui_toggle_font {id gn_f} {
+ set vid [string trimleft $id .]
+
+ set var_iemgui_gn_f [concat iemgui_gn_f_$vid]
+ global $var_iemgui_gn_f
++ global fontname fontweight
+
+- set $var_iemgui_gn_f [expr [eval concat $$var_iemgui_gn_f] + 1]
+- if {[eval concat $$var_iemgui_gn_f] > 2} {set $var_iemgui_gn_f 0}
+- if {[eval concat $$var_iemgui_gn_f] == 0} {$id.gnfs.fb configure -text "courier" -font {courier 10 bold}}
+- if {[eval concat $$var_iemgui_gn_f] == 1} {$id.gnfs.fb configure -text "helvetica" -font {helvetica 10 bold}}
+- if {[eval concat $$var_iemgui_gn_f] == 2} {$id.gnfs.fb configure -text "times" -font {times 10 bold}}
++ set $var_iemgui_gn_f $gn_f
++
++ switch -- $gn_f {
++ 0 { set current_font $fontname}
++ 1 { set current_font "Helvetica" }
++ 2 { set current_font "Times" }
++ }
++ set current_font_spec "{$current_font} 12 $fontweight"
++
++ $id.label.fontpopup_label configure -text $current_font \
++ -font $current_font_spec
++ $id.label.name_entry configure -font $current_font_spec
++ $id.colors.sections.fr_bk configure -font $current_font_spec
++ $id.colors.sections.lb_bk configure -font $current_font_spec
+ }
+
+ proc iemgui_lb {id} {
+@@ -2377,6 +2470,9 @@
+
+ set vid [string trimleft $id .]
+
++ global pd_nt
++ global fontname fontweight
++
+ set var_iemgui_wdt [concat iemgui_wdt_$vid]
+ global $var_iemgui_wdt
+ set var_iemgui_min_wdt [concat iemgui_min_wdt_$vid]
+@@ -2464,7 +2560,8 @@
+ set $var_iemgui_l2_f1_b0 0
+
+ toplevel $id
+- wm title $id [format "%s-PROPERTIES" $mainheader]
++ wm title $id [format "%s Properties" $mainheader]
++ wm resizable $id 0 0
+ wm protocol $id WM_DELETE_WINDOW [concat iemgui_cancel $id]
+
+ frame $id.dim
+@@ -2497,7 +2594,7 @@
+ $id.rng.max_lab $id.rng.max_ent -side left} }
+
+ if { [eval concat $$var_iemgui_lin0_log1] >= 0 || [eval concat $$var_iemgui_loadbang] >= 0 || [eval concat $$var_iemgui_num] > 0 || [eval concat $$var_iemgui_steady] >= 0 } {
+- label $id.space1 -text "---------------------------------"
++ label $id.space1 -text ""
+ pack $id.space1 -side top }
+
+ frame $id.para
+@@ -2526,157 +2623,189 @@
+ pack $id.para.dummy3 $id.para.num_lab $id.para.num_ent -side left -expand 1}
+ if {[eval concat $$var_iemgui_steady] >= 0} {
+ pack $id.para.dummy3 $id.para.stdy_jmp -side left -expand 1}
+- if { $snd != "nosndno" || $rcv != "norcvno" } {
+- label $id.space2 -text "---------------------------------"
+- pack $id.space2 -side top }
+-
+- frame $id.snd
+- pack $id.snd -side top
+- label $id.snd.dummy1 -text "" -width 2
+- label $id.snd.lab -text "send-symbol:" -width 12
+- entry $id.snd.ent -textvariable $var_iemgui_snd -width 20
++
++ frame $id.spacer0 -height 4
++ pack $id.spacer0 -side top
++
++ labelframe $id.s_r -borderwidth 1 -pady 4 -text "messages" \
++ -font highlight_font
++ pack $id.s_r -side top -fill x -ipadx 5
++ frame $id.s_r.send
++ pack $id.s_r.send -side top
++ label $id.s_r.send.lab -text " send-symbol:" -width 12 -justify right
++ entry $id.s_r.send.ent -textvariable $var_iemgui_snd -width 22
+ if { $snd != "nosndno" } {
+- pack $id.snd.dummy1 $id.snd.lab $id.snd.ent -side left}
++ pack $id.s_r.send.lab $id.s_r.send.ent -side left}
+
+- frame $id.rcv
+- pack $id.rcv -side top
+- label $id.rcv.lab -text "receive-symbol:" -width 15
+- entry $id.rcv.ent -textvariable $var_iemgui_rcv -width 20
++ frame $id.s_r.receive
++ pack $id.s_r.receive -side top
++ label $id.s_r.receive.lab -text "receive-symbol:" -width 12 -justify right
++ entry $id.s_r.receive.ent -textvariable $var_iemgui_rcv -width 22
+ if { $rcv != "norcvno" } {
+- pack $id.rcv.lab $id.rcv.ent -side left}
++ pack $id.s_r.receive.lab $id.s_r.receive.ent -side left}
+
+- frame $id.gnam
+- pack $id.gnam -side top
+- label $id.gnam.head -text "--------------label:---------------"
+- label $id.gnam.dummy1 -text "" -width 1
+- label $id.gnam.lab -text "name:" -width 6
+- entry $id.gnam.ent -textvariable $var_iemgui_gui_nam -width 29
+- label $id.gnam.dummy2 -text "" -width 1
+- pack $id.gnam.head -side top
+- pack $id.gnam.dummy1 $id.gnam.lab $id.gnam.ent $id.gnam.dummy2 -side left
+-
+- frame $id.gnxy
+- pack $id.gnxy -side top
+- label $id.gnxy.x_lab -text "x_off:" -width 6
+- entry $id.gnxy.x_ent -textvariable $var_iemgui_gn_dx -width 5
+- label $id.gnxy.dummy1 -text " " -width 10
+- label $id.gnxy.y_lab -text "y_off:" -width 6
+- entry $id.gnxy.y_ent -textvariable $var_iemgui_gn_dy -width 5
+- pack $id.gnxy.x_lab $id.gnxy.x_ent $id.gnxy.dummy1 \
+- $id.gnxy.y_lab $id.gnxy.y_ent -side left
+-
+- frame $id.gnfs
+- pack $id.gnfs -side top
+- label $id.gnfs.f_lab -text "font:" -width 6
+- if {[eval concat $$var_iemgui_gn_f] == 0} {
+- button $id.gnfs.fb -text "courier" -font {courier 10 bold} -width 7 -command "iemgui_toggle_font $id" }
+- if {[eval concat $$var_iemgui_gn_f] == 1} {
+- button $id.gnfs.fb -text "helvetica" -font {helvetica 10 bold} -width 7 -command "iemgui_toggle_font $id" }
+- if {[eval concat $$var_iemgui_gn_f] == 2} {
+- button $id.gnfs.fb -text "times" -font {times 10 bold} -width 7 -command "iemgui_toggle_font $id" }
+- label $id.gnfs.dummy1 -text "" -width 1
+- label $id.gnfs.fs_lab -text "fontsize:" -width 8
+- entry $id.gnfs.fs_ent -textvariable $var_iemgui_gn_fs -width 5
+- pack $id.gnfs.f_lab $id.gnfs.fb $id.gnfs.dummy1 \
+- $id.gnfs.fs_lab $id.gnfs.fs_ent -side left
+-
+- label $id.col_head -text "--------------colors:--------------"
+- pack $id.col_head -side top
+-
+- frame $id.col_select
+- pack $id.col_select -side top
+- radiobutton $id.col_select.radio0 -value 0 -variable $var_iemgui_l2_f1_b0 \
+- -text "backgd" -width 5
+- radiobutton $id.col_select.radio1 -value 1 -variable $var_iemgui_l2_f1_b0 \
+- -text "front" -width 5
+- radiobutton $id.col_select.radio2 -value 2 -variable $var_iemgui_l2_f1_b0 \
+- -text "label" -width 5
++# get the current font name from the int given from C-space (gn_f)
++ set current_font $fontname
++ if {[eval concat $$var_iemgui_gn_f] == 1} \
++ { set current_font "Helvetica" }
++ if {[eval concat $$var_iemgui_gn_f] == 2} \
++ { set current_font "Times" }
++
++ frame $id.spacer1 -height 7
++ pack $id.spacer1 -side top
++
++ labelframe $id.label -borderwidth 1 -text "label" -pady 4 \
++ -font highlight_font
++ pack $id.label -side top -fill x
++ entry $id.label.name_entry -textvariable $var_iemgui_gui_nam -width 30 \
++ -font [list $current_font 12 $fontweight]
++ pack $id.label.name_entry -side top -expand yes -fill both -padx 5
++
++ frame $id.label.xy -padx 27 -pady 1
++ pack $id.label.xy -side top
++ label $id.label.xy.x_lab -text "x offset" -width 6
++ entry $id.label.xy.x_entry -textvariable $var_iemgui_gn_dx -width 5
++ label $id.label.xy.dummy1 -text " " -width 2
++ label $id.label.xy.y_lab -text "y offset" -width 6
++ entry $id.label.xy.y_entry -textvariable $var_iemgui_gn_dy -width 5
++ pack $id.label.xy.x_lab $id.label.xy.x_entry $id.label.xy.dummy1 \
++ $id.label.xy.y_lab $id.label.xy.y_entry -side left -anchor e
++
++ label $id.label.fontpopup_label -text $current_font \
++ -relief groove -font [list $current_font 12 $fontweight] -padx 5
++ pack $id.label.fontpopup_label -side left -anchor w -expand yes -fill x
++ label $id.label.fontsize_label -text "size" -width 4
++ entry $id.label.fontsize_entry -textvariable $var_iemgui_gn_fs -width 5
++ pack $id.label.fontsize_entry $id.label.fontsize_label \
++ -side right -anchor e -padx 5 -pady 5
++ menu $id.popup
++ $id.popup add command \
++ -label $fontname \
++ -font [format {{%s} 12 %s} $fontname $fontweight] \
++ -command "iemgui_toggle_font $id 0"
++ $id.popup add command \
++ -label "Helvetica" \
++ -font [format {Helvetica 12 %s} $fontweight] \
++ -command "iemgui_toggle_font $id 1"
++ $id.popup add command \
++ -label "Times" \
++ -font [format {Times 12 %s} $fontweight] \
++ -command "iemgui_toggle_font $id 2"
++ bind $id.label.fontpopup_label <Button> \
++ [list tk_popup $id.popup %X %Y]
++
++ frame $id.spacer2 -height 7
++ pack $id.spacer2 -side top
++
++ labelframe $id.colors -borderwidth 1 -text "colors" -font highlight_font
++ pack $id.colors -fill x -ipadx 5 -ipady 4
++
++ frame $id.colors.select
++ pack $id.colors.select -side top
++ radiobutton $id.colors.select.radio0 -value 0 -variable \
++ $var_iemgui_l2_f1_b0 -text "background" -width 10 -justify left
++ radiobutton $id.colors.select.radio1 -value 1 -variable \
++ $var_iemgui_l2_f1_b0 -text "front" -width 5 -justify left
++ radiobutton $id.colors.select.radio2 -value 2 -variable \
++ $var_iemgui_l2_f1_b0 -text "label" -width 5 -justify left
+ if { [eval concat $$var_iemgui_fcol] >= 0 } {
+- pack $id.col_select.radio0 $id.col_select.radio1 $id.col_select.radio2 -side left
+- } else {pack $id.col_select.radio0 $id.col_select.radio2 -side left}
++ pack $id.colors.select.radio0 $id.colors.select.radio1 \
++ $id.colors.select.radio2 -side left
++ } else {
++ pack $id.colors.select.radio0 $id.colors.select.radio2 -side left \
++ }
+
+- frame $id.col_example_choose
+- pack $id.col_example_choose -side top
+- button $id.col_example_choose.but -text "compose color" -width 10 \
++ frame $id.colors.sections
++ pack $id.colors.sections -side top
++ button $id.colors.sections.but -text "compose color" -width 12 \
+ -command "iemgui_choose_col_bkfrlb $id"
+- label $id.col_example_choose.dummy1 -text "" -width 1
++ pack $id.colors.sections.but -side left -anchor w -padx 10 -pady 5 \
++ -expand yes -fill x
+ if { [eval concat $$var_iemgui_fcol] >= 0 } {
+- button $id.col_example_choose.fr_bk -text "o=||=o" -width 5 \
++ label $id.colors.sections.fr_bk -text "o=||=o" -width 6 \
+ -background [format "#%6.6x" [eval concat $$var_iemgui_bcol]] \
+ -activebackground [format "#%6.6x" [eval concat $$var_iemgui_bcol]] \
+ -foreground [format "#%6.6x" [eval concat $$var_iemgui_fcol]] \
+- -activeforeground [format "#%6.6x" [eval concat $$var_iemgui_fcol]] -pady 2
++ -activeforeground [format "#%6.6x" [eval concat $$var_iemgui_fcol]] \
++ -font [list $current_font 12 $fontweight] -padx 2 -pady 2 -relief ridge
+ } else {
+- button $id.col_example_choose.fr_bk -text "o=||=o" -width 5 \
++ label $id.colors.sections.fr_bk -text "o=||=o" -width 6 \
+ -background [format "#%6.6x" [eval concat $$var_iemgui_bcol]] \
+ -activebackground [format "#%6.6x" [eval concat $$var_iemgui_bcol]] \
+ -foreground [format "#%6.6x" [eval concat $$var_iemgui_bcol]] \
+- -activeforeground [format "#%6.6x" [eval concat $$var_iemgui_bcol]] -pady 2}
+- button $id.col_example_choose.lb_bk -text "testlabel" -width 7 \
++ -activeforeground [format "#%6.6x" [eval concat $$var_iemgui_bcol]] \
++ -font [list $current_font 12 $fontweight] -padx 2 -pady 2 -relief ridge
++ }
++ label $id.colors.sections.lb_bk -text "testlabel" -width 9 \
+ -background [format "#%6.6x" [eval concat $$var_iemgui_bcol]] \
+ -activebackground [format "#%6.6x" [eval concat $$var_iemgui_bcol]] \
+ -foreground [format "#%6.6x" [eval concat $$var_iemgui_lcol]] \
+- -activeforeground [format "#%6.6x" [eval concat $$var_iemgui_lcol]] -pady 2
+-
+- pack $id.col_example_choose.but $id.col_example_choose.dummy1 \
+- $id.col_example_choose.fr_bk $id.col_example_choose.lb_bk -side left
+-
+- label $id.space3 -text "------or click color preset:-------"
+- pack $id.space3 -side top
+-
+- frame $id.bcol
+- pack $id.bcol -side top
+- foreach i { 0 1 2 3 4 5 6 7 8 9 } hexcol { 16579836 14737632 12369084 \
+- 16572640 16572608 16579784 14220504 14220540 14476540 16308476 } {
+- button $id.bcol.c$i -background [format "#%6.6x" $hexcol] \
+- -activebackground [format "#%6.6x" $hexcol] \
+- -font {courier 2 normal} -padx 7 -pady 6 \
+- -command [format "iemgui_preset_col %s %d" $id $hexcol] }
+- pack $id.bcol.c0 $id.bcol.c1 $id.bcol.c2 $id.bcol.c3 $id.bcol.c4 \
+- $id.bcol.c5 $id.bcol.c6 $id.bcol.c7 $id.bcol.c8 $id.bcol.c9 -side left
+-
+- frame $id.fcol
+- pack $id.fcol -side top
+- foreach i { 0 1 2 3 4 5 6 7 8 9 } hexcol { 10526880 8158332 6316128 \
+- 16525352 16559172 15263784 1370132 2684148 3952892 16003312 } {
+- button $id.fcol.c$i -background [format "#%6.6x" $hexcol] \
+- -activebackground [format "#%6.6x" $hexcol] \
+- -font {courier 2 normal} -padx 7 -pady 6 \
+- -command [format "iemgui_preset_col %s %d" $id $hexcol] }
+- pack $id.fcol.c0 $id.fcol.c1 $id.fcol.c2 $id.fcol.c3 $id.fcol.c4 \
+- $id.fcol.c5 $id.fcol.c6 $id.fcol.c7 $id.fcol.c8 $id.fcol.c9 -side left
+-
+- frame $id.lcol
+- pack $id.lcol -side top
+- foreach i { 0 1 2 3 4 5 6 7 8 9 } hexcol { 4210752 2105376 0 \
+- 9177096 5779456 7874580 2641940 17488 5256 5767248 } {
+- button $id.lcol.c$i -background [format "#%6.6x" $hexcol] \
+- -activebackground [format "#%6.6x" $hexcol] \
+- -font {courier 2 normal} -padx 7 -pady 6 \
+- -command [format "iemgui_preset_col %s %d" $id $hexcol] }
+- pack $id.lcol.c0 $id.lcol.c1 $id.lcol.c2 $id.lcol.c3 $id.lcol.c4 \
+- $id.lcol.c5 $id.lcol.c6 $id.lcol.c7 $id.lcol.c8 $id.lcol.c9 -side left
++ -activeforeground [format "#%6.6x" [eval concat $$var_iemgui_lcol]] \
++ -font [list $current_font 12 $fontweight] -padx 2 -pady 2 -relief ridge
++ pack $id.colors.sections.lb_bk $id.colors.sections.fr_bk \
++ -side right -anchor e -expand yes -fill both -pady 7
++
++# color scheme by Mary Ann Benedetto http://piR2.org
++ frame $id.colors.r1
++ pack $id.colors.r1 -side top
++ foreach i { 0 1 2 3 4 5 6 7 8 9} \
++ hexcol { 0xFFFFFF 0xDFDFDF 0xBBBBBB 0xFFC7C6 0xFFE3C6 \
++ 0xFEFFC6 0xC6FFC7 0xc6FEFF 0xC7C6FF 0xE3C6FF } \
++ {
++ label $id.colors.r1.c$i -background [format "#%6.6x" $hexcol] \
++ -activebackground [format "#%6.6x" $hexcol] -relief ridge \
++ -padx 7 -pady 0
++ bind $id.colors.r1.c$i <Button> [format "iemgui_preset_col %s %d" $id $hexcol]
++ }
++ pack $id.colors.r1.c0 $id.colors.r1.c1 $id.colors.r1.c2 $id.colors.r1.c3 \
++ $id.colors.r1.c4 $id.colors.r1.c5 $id.colors.r1.c6 $id.colors.r1.c7 \
++ $id.colors.r1.c8 $id.colors.r1.c9 -side left
++
++ frame $id.colors.r2
++ pack $id.colors.r2 -side top
++ foreach i { 0 1 2 3 4 5 6 7 8 9 } \
++ hexcol { 0x9F9F9F 0x7C7C7C 0x606060 0xFF0400 0xFF8300 \
++ 0xFAFF00 0x00FF04 0x00FAFF 0x0400FF 0x9C00FF } \
++ {
++ label $id.colors.r2.c$i -background [format "#%6.6x" $hexcol] \
++ -activebackground [format "#%6.6x" $hexcol] -relief ridge \
++ -padx 7 -pady 0
++ bind $id.colors.r2.c$i <Button> \
++ [format "iemgui_preset_col %s %d" $id $hexcol]
++ }
++ pack $id.colors.r2.c0 $id.colors.r2.c1 $id.colors.r2.c2 $id.colors.r2.c3 \
++ $id.colors.r2.c4 $id.colors.r2.c5 $id.colors.r2.c6 $id.colors.r2.c7 \
++ $id.colors.r2.c8 $id.colors.r2.c9 -side left
++
++ frame $id.colors.r3
++ pack $id.colors.r3 -side top
++ foreach i { 0 1 2 3 4 5 6 7 8 9 } \
++ hexcol { 0x404040 0x202020 0x000000 0x551312 0x553512 \
++ 0x535512 0x0F4710 0x0E4345 0x131255 0x2F004D } \
++ {
++ label $id.colors.r3.c$i -background [format "#%6.6x" $hexcol] \
++ -activebackground [format "#%6.6x" $hexcol] -relief ridge \
++ -padx 7 -pady 0
++ bind $id.colors.r3.c$i <Button> \
++ [format "iemgui_preset_col %s %d" $id $hexcol]
++ }
++ pack $id.colors.r3.c0 $id.colors.r3.c1 $id.colors.r3.c2 $id.colors.r3.c3 \
++ $id.colors.r3.c4 $id.colors.r3.c5 $id.colors.r3.c6 $id.colors.r3.c7 \
++ $id.colors.r3.c8 $id.colors.r3.c9 -side left
+
+-
+- label $id.space4 -text "---------------------------------"
+- pack $id.space4 -side top
+-
+- frame $id.cao
++ frame $id.cao -pady 10
+ pack $id.cao -side top
+ button $id.cao.cancel -text {Cancel} -width 6 \
+ -command "iemgui_cancel $id"
+ label $id.cao.dummy1 -text "" -width 3
+- button $id.cao.apply -text {Apply} -width 6 \
+- -command "iemgui_apply $id"
++ button $id.cao.apply -text {Apply} -width 6 -command "iemgui_apply $id"
+ label $id.cao.dummy2 -text "" -width 3
+ button $id.cao.ok -text {OK} -width 6 \
+ -command "iemgui_ok $id"
+- pack $id.cao.cancel $id.cao.dummy1 \
+- $id.cao.apply $id.cao.dummy2 \
+- $id.cao.ok -side left
+
+- label $id.space5 -text ""
+- pack $id.space5 -side top
++ pack $id.cao.cancel $id.cao.dummy1 -side left
++ pack $id.cao.apply $id.cao.dummy2 -side left
++ pack $id.cao.ok -side left
+
+ if {[info tclversion] < 8.4} {
+ bind $id <Key-Tab> {tkTabToWindow [tk_focusNext %W]}
+@@ -2691,24 +2820,24 @@
+ bind $id.rng.min_ent <KeyPress-Return> [concat iemgui_ok $id]
+ bind $id.rng.max_ent <KeyPress-Return> [concat iemgui_ok $id]
+ bind $id.para.num_ent <KeyPress-Return> [concat iemgui_ok $id]
+- bind $id.snd.ent <KeyPress-Return> [concat iemgui_ok $id]
+- bind $id.rcv.ent <KeyPress-Return> [concat iemgui_ok $id]
+- bind $id.gnam.ent <KeyPress-Return> [concat iemgui_ok $id]
+- bind $id.gnxy.x_ent <KeyPress-Return> [concat iemgui_ok $id]
+- bind $id.gnxy.y_ent <KeyPress-Return> [concat iemgui_ok $id]
+- bind $id.gnfs.fs_ent <KeyPress-Return> [concat iemgui_ok $id]
++ bind $id.s_r.send.ent <KeyPress-Return> [concat iemgui_ok $id]
++ bind $id.s_r.receive.ent <KeyPress-Return> [concat iemgui_ok $id]
++ bind $id.label.name_entry <KeyPress-Return> [concat iemgui_ok $id]
++ bind $id.label.xy.x_entry <KeyPress-Return> [concat iemgui_ok $id]
++ bind $id.label.xy.y_entry <KeyPress-Return> [concat iemgui_ok $id]
++ bind $id.label.fontsize_entry <KeyPress-Return> [concat iemgui_ok $id]
+ bind $id.cao.ok <KeyPress-Return> [concat iemgui_ok $id]
+ pdtk_standardkeybindings $id.dim.w_ent
+ pdtk_standardkeybindings $id.dim.h_ent
+ pdtk_standardkeybindings $id.rng.min_ent
+ pdtk_standardkeybindings $id.rng.max_ent
+ pdtk_standardkeybindings $id.para.num_ent
+- pdtk_standardkeybindings $id.snd.ent
+- pdtk_standardkeybindings $id.rcv.ent
+- pdtk_standardkeybindings $id.gnam.ent
+- pdtk_standardkeybindings $id.gnxy.x_ent
+- pdtk_standardkeybindings $id.gnxy.y_ent
+- pdtk_standardkeybindings $id.gnfs.fs_ent
++ pdtk_standardkeybindings $id.s_r.send.ent
++ pdtk_standardkeybindings $id.s_r.receive.ent
++ pdtk_standardkeybindings $id.label.name_entry
++ pdtk_standardkeybindings $id.label.xy.x_entry
++ pdtk_standardkeybindings $id.label.xy.y_entry
++ pdtk_standardkeybindings $id.label.fontsize_entry
+ pdtk_standardkeybindings $id.cao.ok
+
+ $id.dim.w_ent select from 0
+@@ -2786,6 +2915,7 @@
+
+ toplevel $id
+ wm title $id {array}
++ wm resizable $id 0 0
+ wm protocol $id WM_DELETE_WINDOW [concat array_cancel $id]
+
+ frame $id.name
+@@ -3264,10 +3260,9 @@
+ # seven "useful" font sizes.
+
+ # tb: user defined typefaces
+-proc pdtk_pd_startup {version apilist midiapilist fontname} {
++proc pdtk_pd_startup {apilist midiapilist fontname_from_pd fontweight_from_pd} {
+ # puts stderr [concat $version $apilist $fontname]
+- global pd_myversion pd_apilist pd_midiapilist
+- set pd_myversion $version
++ global pd_apilist pd_midiapilist pd_nt
+ set pd_apilist $apilist
+ set pd_midiapilist $midiapilist
+ global pd_fontlist
+@@ -3275,7 +3270,7 @@
+
+ set fontlist ""
+ foreach i {8 9 10 12 14 16 18 24 30 36} {
+- set font [concat $fontname -$i bold]
++ set font [format {{%s} -%d %s} $fontname_from_pd $i $fontweight_from_pd]
+ set pd_fontlist [linsert $pd_fontlist 100000 $font]
+ set width0 [font measure $font x]
+ set height0 [lindex [font metrics $font] 5]
+@@ -3498,8 +3633,12 @@
+
+ # create a popup menu
+ proc audio_popup {name buttonname varname devlist} {
++ global pd_nt
+ if [winfo exists $name.popup] {destroy $name.popup}
+ menu $name.popup -tearoff false
++ if {$pd_nt == 1} {
++ $name.popup configure -font menuFont
++ }
+ # puts stderr [concat $devlist ]
+ for {set x 0} {$x<[llength $devlist]} {incr x} {
+ $name.popup add command -label [lindex $devlist $x] \
+@@ -3771,8 +3910,12 @@
+
+ # create a popup menu
+ proc midi_popup {name buttonname varname devlist} {
++ global pd_nt
+ if [winfo exists $name.popup] {destroy $name.popup}
+ menu $name.popup -tearoff false
++ if {$pd_nt == 1} {
++ $name.popup configure -font menuFont
++ }
+ # puts stderr [concat $devlist ]
+ for {set x 0} {$x<[llength $devlist]} {incr x} {
+ $name.popup add command -label [lindex $devlist $x] \