From 5b8f7a679e5f13a52e444327fb19be22b07ec4e0 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Wed, 25 Jul 2007 19:07:40 +0000 Subject: font/gui patch now applies to 0.40.3 cleanly, now it's time to make sure it all works properly. svn path=/trunk/; revision=8242 --- ...s_pixel_accurate_on_every_platform-0.40.3.patch | 1736 ++++++++++++++++++++ 1 file changed, 1736 insertions(+) create mode 100644 packages/patches/make_sizes_pixel_accurate_on_every_platform-0.40.3.patch (limited to 'packages/patches') 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; ix_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; ix_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 -- add to help file search path\n", + "-open -- open file(s) on startup\n", + "-lib -- load object library(s)\n", +-"-font -- specify default font size in points\n", +-"-typeface -- specify default font (default: courier)\n", ++"-font-size -- specify default font size in points\n", ++"-font-face -- specify default font (default: Bitstream Vera Sans Mono)\n", ++"-font-weight -- 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 -- 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. 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 [concat dogatom_ok $id] +- bind $id.paramlo.entry [concat dogatom_ok $id] ++ bind $id.limits.upper.entry [concat dogatom_ok $id] ++ bind $id.limits.lower.entry [concat dogatom_ok $id] + bind $id.params.entry [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