Update of /cvsroot/pure-data/externals/tkwidgets In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26626
Modified Files: text-help.pd text-test.pd text.c Log Message:
- renamed [scrollbar( to [scrollbars( since there should be a bottom one too
- got full querying working, including C-side attributes
- starting working on store/restore/save mechanism, but was stymied by how to trigger the store_options() callback so that the stuff can be saved.
- removed [entry]'s old attribute storage where redundant
Index: text-test.pd =================================================================== RCS file: /cvsroot/pure-data/externals/tkwidgets/text-test.pd,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** text-test.pd 14 Nov 2007 06:16:12 -0000 1.2 --- text-test.pd 14 Nov 2007 07:49:26 -0000 1.3 *************** *** 1,50 **** ! #N canvas 165 195 721 672 10; ! #X obj 130 117 text 130 60; #X msg 47 29 size 100 100; ! #X obj 48 540 text 130 60; #X msg 130 30 size 400 200; ! #X obj 310 11 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; ! #X msg 309 31 scrollbar $1; ! #X msg 376 479; ! #X obj 310 269 hcs/sys_gui; ! #X msg 310 221 puts stderr [concat [.x6a74d0.c.frame6a7af0.text6a7af0 ! find all]]; ! #X msg 23 315 highlightthickness $1; ! #X obj 26 289 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 -262144 -1 -1 0 1; ! #X msg 76 402 padx $1; ! #X obj 79 381 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 -262144 -1 -1 0 1; ! #X msg 132 515 font "Lucida Sans" 18 bold; ! #X msg 272 425 size 200 50; ! #X msg 89 490 font Arial 16; ! #X obj 200 612 print QUERY; ! #X floatatom 309 620 5 0 0 0 - - -; ! #X obj 309 596 route highlightthickness font; ! #X obj 396 624 pddp/print; ! #X msg 421 372 width 8; ! #X obj 309 642 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; ! #X msg 114 435 query highlightthickness; ! #X msg 143 458 query; ! #X connect 0 1 6 0; #X connect 1 0 0 0; ! #X connect 2 1 18 0; #X connect 3 0 0 0; ! #X connect 4 0 5 0; ! #X connect 5 0 0 0; ! #X connect 8 0 7 0; ! #X connect 9 0 2 0; ! #X connect 10 0 9 0; #X connect 11 0 2 0; ! #X connect 12 0 11 0; ! #X connect 13 0 2 0; ! #X connect 14 0 2 0; ! #X connect 15 0 2 0; ! #X connect 17 0 21 0; ! #X connect 18 0 17 0; ! #X connect 18 1 19 0; #X connect 20 0 2 0; - #X connect 22 0 2 0; - #X connect 23 0 2 0; --- 1,45 ---- ! #N canvas 171 184 721 672 10; ! #X obj 256 77 text 400 200 1; #X msg 47 29 size 100 100; ! #X obj 48 470 text 130 60 0; #X msg 130 30 size 400 200; ! #X obj 310 11 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 1; ! #X msg 655 333; ! #X msg 23 245 highlightthickness $1; ! #X obj 26 219 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 -262144 -1 -1 0 1; ! #X msg 49 290 padx $1; ! #X obj 52 269 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 -262144 -1 -1 0 1; ! #X msg 110 405 font "Lucida Sans" 18 bold; ! #X msg 124 429 font Arial 16; ! #X obj 200 542 print QUERY; ! #X floatatom 309 550 5 0 0 0 - - -; ! #X obj 309 526 route highlightthickness font; ! #X obj 396 554 pddp/print; ! #X obj 309 572 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; ! #X msg 68 321 query highlightthickness; ! #X msg 78 345 query; ! #X msg 309 31 scrollbars $1; ! #X msg 85 367 query size; ! #X connect 0 1 5 0; #X connect 1 0 0 0; ! #X connect 2 1 14 0; ! #X connect 2 1 12 0; #X connect 3 0 0 0; ! #X connect 4 0 19 0; ! #X connect 6 0 2 0; ! #X connect 7 0 6 0; ! #X connect 8 0 2 0; ! #X connect 9 0 8 0; ! #X connect 10 0 2 0; #X connect 11 0 2 0; ! #X connect 13 0 16 0; ! #X connect 14 0 13 0; ! #X connect 14 1 15 0; ! #X connect 17 0 2 0; ! #X connect 18 0 2 0; ! #X connect 19 0 0 0; #X connect 20 0 2 0;
Index: text.c =================================================================== RCS file: /cvsroot/pure-data/externals/tkwidgets/text.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** text.c 14 Nov 2007 06:16:12 -0000 1.3 --- text.c 14 Nov 2007 07:49:26 -0000 1.4 *************** *** 26,29 **** --- 26,31 ---- /* TODO: get Ctrl-A working to select all */ /* TODO: set message doesnt work with a loadbang */ + /* TODO: add size to query and save */ + /* TODO: add scrollbars to query and save */
*************** *** 48,66 **** t_symbol* receive_name;
! int optionc; ! t_atom* optionv;
! int x_height; ! int x_width; ! int x_resizing; ! ! t_symbol* x_font_face; ! t_int x_font_size; ! t_symbol* x_font_weight;
! t_float x_border; ! t_symbol* x_relief; ! t_int x_have_scrollbar; ! t_int x_selected;
/* IDs for Tk widgets */ --- 50,61 ---- t_symbol* receive_name;
! t_binbuf* options_binbuf;
! int size_x; ! int size_y; ! int x_have_scrollbars;
! int x_resizing; ! int x_selected;
/* IDs for Tk widgets */ *************** *** 120,123 **** --- 115,120 ----
/* move these to tkwidgets.c */ + static t_symbol *scrollbars_symbol; + static t_symbol *size_symbol; static t_symbol *backspace_symbol; static t_symbol *return_symbol; *************** *** 141,146 **** static void textwidget_save(t_gobj *z, t_binbuf *b);
! static t_widgetbehavior textwidget_widgetbehavior = { w_getrectfn: textwidget_getrect, w_displacefn: textwidget_displace, --- 138,145 ---- static void textwidget_save(t_gobj *z, t_binbuf *b);
+ static void textwidget_query_callback(t_textwidget *x, t_symbol *s, int argc, t_atom *argv);
! ! static t_widgetbehavior textwidget_widgetbehavior = { w_getrectfn: textwidget_getrect, w_displacefn: textwidget_displace, *************** *** 154,175 **** /* widget helper functions */
! static void save_options(t_textwidget *x, int argc, char** argv) { int i; post("total options: %d", argc); for(i = 0; i < argc; i++) { ! // sys_vgui("lappend ::%s::optionsList %s \n", x->tcl_namespace, argv[i]); ! sys_vgui("pd [concat %s query_callback %s [%s cget -%s] \;]\n", ! x->receive_name->s_name, argv[i], x->text_id, argv[i]); ! post("option %d: %s", i, argv[i]); } ! /* sys_vgui("foreach ::%s::option $::%s::optionsList {\n",x->tcl_namespace,x->tcl_namespace); */ ! /* sys_vgui("pd [concat %s query_callback $::%s::option [%s cget [format "-%%s" $::%s::option]] \;]\n", */ ! /* x->receive_name->s_name, x->tcl_namespace, x->text_id, x->tcl_namespace); */ ! // sys_vgui("puts stderr [concat %s query_callback $::%s::option [%s cget [format "-%%s" $::%s::option]] \;] \n", ! // x->receive_name->s_name, x->tcl_namespace, x->text_id, x->tcl_namespace); ! /* sys_gui("}\n"); */ ! /* sys_vgui("unset ::%s::optionsList \n", x->tcl_namespace); */ }
--- 153,178 ---- /* widget helper functions */
! static void store_options(t_textwidget *x) { + // build list then send the whole shebang to store_callback int i; + int argc = sizeof(textwidget_tk_options)/sizeof(char *); post("total options: %d", argc); for(i = 0; i < argc; i++) { ! sys_vgui("lappend ::%s::store_list -%s \n", ! x->tcl_namespace, textwidget_tk_options[i]); ! sys_vgui("lappend ::%s::store_list [%s cget -%s] \n", ! x->tcl_namespace, x->text_id, textwidget_tk_options[i]); ! post("option %d: %s", i, textwidget_tk_options[i]); } ! sys_vgui("pd [concat %s store_callback $::%s::store_list \;]\n", ! x->receive_name->s_name, x->tcl_namespace); ! sys_vgui("unset ::%s::store_list \n", x->tcl_namespace); ! } ! ! static void restore_options(t_textwidget *x) ! { ! // TODO restore options from x->options_binbuf }
*************** *** 177,181 **** { int i; - post("total options: %d", argc); for(i = 0; i < argc; i++) sys_vgui("pd [concat %s query_callback %s [%s cget -%s] \;]\n", --- 180,183 ---- *************** *** 225,229 **** { post("calculate_onset"); ! return(text_xpix(&x->x_obj, glist) + (x->x_width - IOWIDTH) \ * current_iolet / (total_iolets == 1 ? 1 : total_iolets - 1)); } --- 227,231 ---- { post("calculate_onset"); ! return(text_xpix(&x->x_obj, glist) + (x->size_x - IOWIDTH) \ * current_iolet / (total_iolets == 1 ? 1 : total_iolets - 1)); } *************** *** 247,252 **** onset = calculate_onset(x, glist, i, total_outlets); sys_vgui("%s create rectangle %d %d %d %d -tags {%xo%d %xo %s}\n", ! x->canvas_id, onset, text_ypix(&x->x_obj, glist) + x->x_height, ! onset + IOWIDTH, text_ypix(&x->x_obj, glist) + x->x_height + 2, x, i, x, x->all_tag); } --- 249,254 ---- onset = calculate_onset(x, glist, i, total_outlets); sys_vgui("%s create rectangle %d %d %d %d -tags {%xo%d %xo %s}\n", ! x->canvas_id, onset, text_ypix(&x->x_obj, glist) + x->size_y, ! onset + IOWIDTH, text_ypix(&x->x_obj, glist) + x->size_y + 2, x, i, x, x->all_tag); } *************** *** 266,270 **** sys_vgui("pack %s -side right -fill y -before %s \n", x->scrollbar_id, x->text_id); ! x->x_have_scrollbar = 1; }
--- 268,272 ---- sys_vgui("pack %s -side right -fill y -before %s \n", x->scrollbar_id, x->text_id); ! x->x_have_scrollbars = 1; }
*************** *** 272,276 **** { sys_vgui("pack forget %s \n", x->scrollbar_id); ! x->x_have_scrollbar = 0; }
--- 274,278 ---- { sys_vgui("pack forget %s \n", x->scrollbar_id); ! x->x_have_scrollbars = 0; }
*************** *** 327,335 **** sys_vgui("destroy %s\n", x->frame_id); sys_vgui("frame %s \n", x->frame_id); ! sys_vgui("text %s -font {%s %d %s} -border 1 \ -highlightthickness 1 -relief sunken -bg "%s" -fg "%s" \ -yscrollcommand {%s set} \n", x->text_id, - x->x_font_face->s_name, x->x_font_size, x->x_font_weight->s_name, DEFAULT_COLOR, "black", x->scrollbar_id); --- 329,336 ---- sys_vgui("destroy %s\n", x->frame_id); sys_vgui("frame %s \n", x->frame_id); ! sys_vgui("text %s -border 1 \ -highlightthickness 1 -relief sunken -bg "%s" -fg "%s" \ -yscrollcommand {%s set} \n", x->text_id, DEFAULT_COLOR, "black", x->scrollbar_id); *************** *** 353,361 **** create_widget(x); textwidget_draw_inlets(x, glist, firsttime, TOTAL_INLETS, TOTAL_OUTLETS); ! if(x->x_have_scrollbar) draw_scrollbar(x); sys_vgui("%s create window %d %d -anchor nw -window %s \ -tags {%s %s} -width %d -height %d \n", x->canvas_id, text_xpix(&x->x_obj, glist), text_ypix(&x->x_obj, glist), ! x->frame_id, x->window_tag, x->all_tag, x->x_width, x->x_height); } else --- 354,362 ---- create_widget(x); textwidget_draw_inlets(x, glist, firsttime, TOTAL_INLETS, TOTAL_OUTLETS); ! if(x->x_have_scrollbars) draw_scrollbar(x); sys_vgui("%s create window %d %d -anchor nw -window %s \ -tags {%s %s} -width %d -height %d \n", x->canvas_id, text_xpix(&x->x_obj, glist), text_ypix(&x->x_obj, glist), ! x->frame_id, x->window_tag, x->all_tag, x->size_x, x->size_y); } else *************** *** 390,395 **** *xp1 = text_xpix(&x->x_obj, owner); *yp1 = text_ypix(&x->x_obj, owner); ! *xp2 = *xp1 + x->x_width; ! *yp2 = *yp1 + x->x_height + 2; // add 2 to give space for outlets }
--- 391,396 ---- *xp1 = text_xpix(&x->x_obj, owner); *yp1 = text_ypix(&x->x_obj, owner); ! *xp2 = *xp1 + x->size_x; ! *yp2 = *yp1 + x->size_y + 2; // add 2 to give space for outlets }
*************** *** 407,412 **** /* sys_vgui("%s coords %s %d %d %d %d\n", x->canvas_id, x->all_tag, text_xpix(&x->x_obj, glist), text_ypix(&x->x_obj, glist)-1, ! text_xpix(&x->x_obj, glist) + x->x_width, ! text_ypix(&x->x_obj, glist) + x->x_height-2);*/ // textwidget_drawme(x, glist, 0); canvas_fixlinesfor(glist_getcanvas(glist), (t_text*) x); --- 408,413 ---- /* sys_vgui("%s coords %s %d %d %d %d\n", x->canvas_id, x->all_tag, text_xpix(&x->x_obj, glist), text_ypix(&x->x_obj, glist)-1, ! text_xpix(&x->x_obj, glist) + x->size_x, ! text_ypix(&x->x_obj, glist) + x->size_y-2);*/ // textwidget_drawme(x, glist, 0); canvas_fixlinesfor(glist_getcanvas(glist), (t_text*) x); *************** *** 574,583 **** }
! static void textwidget_output(t_textwidget* x, t_symbol *s, int argc, t_atom *argv) ! { ! outlet_list(x->x_data_outlet, s, argc, argv ); ! } ! ! /* Pass the contents of the text widget onto the textwidget_output fuction above */ static void textwidget_bang_output(t_textwidget* x) { --- 575,579 ---- }
! /* Pass the contents of the text widget onto the textwidget_output_callback fuction above */ static void textwidget_bang_output(t_textwidget* x) { *************** *** 588,591 **** --- 584,592 ---- }
+ static void textwidget_output_callback(t_textwidget* x, t_symbol *s, int argc, t_atom *argv) + { + outlet_list(x->x_data_outlet, s, argc, argv ); + } + static void textwidget_keyup_callback(t_textwidget *x, t_float f) { *************** *** 641,648 **** t_textwidget *x = (t_textwidget *)z;
! binbuf_addv(b, "ssiisii;", &s__X, gensym("obj"), x->x_obj.te_xpix, x->x_obj.te_ypix, atom_getsymbol(binbuf_getvec(x->x_obj.te_binbuf)), ! x->x_width, x->x_height); }
--- 642,649 ---- t_textwidget *x = (t_textwidget *)z;
! binbuf_addv(b, "ssiisiii;", &s__X, gensym("obj"), x->x_obj.te_xpix, x->x_obj.te_ypix, atom_getsymbol(binbuf_getvec(x->x_obj.te_binbuf)), ! x->size_x, x->size_y, x->x_have_scrollbars); }
*************** *** 665,678 **** }
static void textwidget_query(t_textwidget *x, t_symbol *s) { post("textwidget_query %s", s->s_name); if(s == &s_) query_options(x, sizeof(textwidget_tk_options)/sizeof(char *), textwidget_tk_options); else query_options(x, 1, &(s->s_name)); }
! static void textwidget_scrollbar(t_textwidget *x, t_float f) { if(f > 0) --- 666,704 ---- }
+ static void query_scrollbars(t_textwidget *x) + { + t_atom state[2]; + SETSYMBOL(state, scrollbars_symbol); + SETFLOAT(state + 1, (t_float)x->x_have_scrollbars); + textwidget_query_callback(x, gensym("query_callback"), 2, state); + } + + static void query_size(t_textwidget *x) + { + t_atom coords[3]; + SETSYMBOL(coords, size_symbol); + SETFLOAT(coords + 1, (t_float)x->size_x); + SETFLOAT(coords + 2, (t_float)x->size_y); + textwidget_query_callback(x, gensym("query_callback"), 3, coords); + } + static void textwidget_query(t_textwidget *x, t_symbol *s) { post("textwidget_query %s", s->s_name); if(s == &s_) + { query_options(x, sizeof(textwidget_tk_options)/sizeof(char *), textwidget_tk_options); + query_scrollbars(x); + query_size(x); + } + else if(s == scrollbars_symbol) + query_scrollbars(x); + else if(s == size_symbol) + query_size(x); else query_options(x, 1, &(s->s_name)); }
! static void textwidget_scrollbars(t_textwidget *x, t_float f) { if(f > 0) *************** *** 682,709 **** }
- static void textwidget_fontsize(t_textwidget *x, t_float font_size) - { - DEBUG(post("textwidget_fontsize");); - if(font_size > 8) - { - x->x_font_size = (t_int)font_size; - sys_vgui("%s configure -font {%s %d %s} \n", - x->text_id, - x->x_font_face->s_name, x->x_font_size, - x->x_font_weight->s_name); - } - else - pd_error(x,"textwidget: invalid font size: %f",font_size); - } - static void textwidget_size(t_textwidget *x, t_float width, t_float height) { DEBUG(post("textwidget_size");); ! x->x_height = height; ! x->x_width = width; if(glist_isvisible(x->x_glist)) { sys_vgui("%s itemconfigure %s -width %d -height %d\n", ! x->canvas_id, x->window_tag, x->x_width, x->x_height); erase_inlets(x); textwidget_draw_inlets(x, x->x_glist, 1, TOTAL_INLETS, TOTAL_OUTLETS); --- 708,720 ---- }
static void textwidget_size(t_textwidget *x, t_float width, t_float height) { DEBUG(post("textwidget_size");); ! x->size_y = height; ! x->size_x = width; if(glist_isvisible(x->x_glist)) { sys_vgui("%s itemconfigure %s -width %d -height %d\n", ! x->canvas_id, x->window_tag, x->size_x, x->size_y); erase_inlets(x); textwidget_draw_inlets(x, x->x_glist, 1, TOTAL_INLETS, TOTAL_OUTLETS); *************** *** 714,717 **** --- 725,734 ---- /* callback functions */
+ static void textwidget_store_callback(t_textwidget *x, t_symbol *s, int argc, t_atom *argv) + { + if(s != &s_) + binbuf_restore(x->options_binbuf, argc, argv); + } + static void textwidget_query_callback(t_textwidget *x, t_symbol *s, int argc, t_atom *argv) { *************** *** 763,771 **** if (glist_isvisible(x->x_glist)) { ! x->x_width += dx; ! x->x_height += dy; sys_vgui("%s itemconfigure %s -width %d -height %d\n", x->canvas_id, x->window_tag, ! x->x_width, x->x_height); sys_vgui("%s move RSZ %d %d\n", x->canvas_id, dx, dy); --- 780,788 ---- if (glist_isvisible(x->x_glist)) { ! x->size_x += dx; ! x->size_y += dy; sys_vgui("%s itemconfigure %s -width %d -height %d\n", x->canvas_id, x->window_tag, ! x->size_x, x->size_y); sys_vgui("%s move RSZ %d %d\n", x->canvas_id, dx, dy); *************** *** 785,805 **** char buf[MAXPDSTRING];
! x->x_height = 1; ! x->x_font_face = gensym("helvetica"); ! x->x_font_size = 10; ! x->x_font_weight = gensym("normal"); ! x->x_have_scrollbar = 0; x->x_selected = 0; ! if (argc < 4) { ! post("textwidget: You must enter at least 4 arguments. Default values used."); ! x->x_width = TEXT_DEFAULT_WIDTH; ! x->x_height = TEXT_DEFAULT_HEIGHT; ! ! } else { ! /* Copy args into structure */ ! x->x_width = atom_getint(argv); ! x->x_height = atom_getint(argv+1); }
--- 802,827 ---- char buf[MAXPDSTRING];
! x->options_binbuf = binbuf_new(); ! x->x_selected = 0; + x->x_resizing = 0; ! if (argc < 3) { ! post("[text]: less than 3 arguments entered, default values used."); ! x->size_x = TEXT_DEFAULT_WIDTH; ! x->size_y = TEXT_DEFAULT_HEIGHT; ! x->x_have_scrollbars = 0; ! } ! else ! { ! x->size_x = atom_getint(argv); ! x->size_y = atom_getint(argv + 1); ! x->x_have_scrollbars = atom_getint(argv + 2); ! if(argc > 3) ! { ! binbuf_add(x->options_binbuf, argc - 3, argv + 3); ! restore_options(x); ! } }
*************** *** 829,843 **** class_addanything(textwidget_class, (t_method)textwidget_option);
- class_addmethod(textwidget_class, (t_method)textwidget_query, gensym("query"), A_DEFSYMBOL, 0); ! class_addmethod(textwidget_class, (t_method)textwidget_scrollbar, ! gensym("scrollbar"), A_DEFFLOAT, 0); class_addmethod(textwidget_class, (t_method)textwidget_size, gensym("size"), A_DEFFLOAT, A_DEFFLOAT, 0); - class_addmethod(textwidget_class, (t_method)textwidget_fontsize, - gensym("fontsize"), A_DEFFLOAT, 0); - class_addmethod(textwidget_class, (t_method)textwidget_output, - gensym("output"), A_GIMME, 0); class_addmethod(textwidget_class, (t_method)textwidget_set, gensym("set"), A_GIMME, 0); --- 851,860 ---- class_addanything(textwidget_class, (t_method)textwidget_option);
class_addmethod(textwidget_class, (t_method)textwidget_query, gensym("query"), A_DEFSYMBOL, 0); ! class_addmethod(textwidget_class, (t_method)textwidget_scrollbars, ! gensym("scrollbars"), A_DEFFLOAT, 0); class_addmethod(textwidget_class, (t_method)textwidget_size, gensym("size"), A_DEFFLOAT, A_DEFFLOAT, 0); class_addmethod(textwidget_class, (t_method)textwidget_set, gensym("set"), A_GIMME, 0); *************** *** 849,854 **** --- 866,875 ---- gensym("clear"), 0); /* callbacks */ + class_addmethod(textwidget_class, (t_method)textwidget_store_callback, + gensym("store_callback"), A_GIMME, 0); class_addmethod(textwidget_class, (t_method)textwidget_query_callback, gensym("query_callback"), A_GIMME, 0); + class_addmethod(textwidget_class, (t_method)textwidget_output_callback, + gensym("output"), A_GIMME, 0); class_addmethod(textwidget_class, (t_method)textwidget_keyup_callback, gensym("keyup"), A_DEFFLOAT, 0); *************** *** 864,867 **** --- 885,890 ----
/* commonly used symbols */ + size_symbol = gensym("size"); + scrollbars_symbol = gensym("scrollbars"); backspace_symbol = gensym("backspace"); return_symbol = gensym("return");
Index: text-help.pd =================================================================== RCS file: /cvsroot/pure-data/externals/tkwidgets/text-help.pd,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** text-help.pd 14 Nov 2007 02:53:03 -0000 1.1 --- text-help.pd 14 Nov 2007 07:49:26 -0000 1.2 *************** *** 1,4 **** #N canvas 343 45 785 704 10; ! #X obj 52 -48 text 130 60; #X obj 53 -198 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; --- 1,4 ---- #N canvas 343 45 785 704 10; ! #X obj 52 -48 text 130 60 0; #X obj 53 -198 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; *************** *** 6,10 **** #X msg 89 -183 clear; #X msg 107 -162 set one two three four five six; ! #X obj 36 137 text 130 60; #X obj 231 -2 select return; #X obj 59 61 pddp/print; --- 6,10 ---- #X msg 89 -183 clear; #X msg 107 -162 set one two three four five six; ! #X obj 36 137 text 130 60 0; #X obj 231 -2 select return; #X obj 59 61 pddp/print; *************** *** 15,19 **** #X msg 118 -139 append seven eight nine; #X msg 122 -119 append ten eleven.; ! #X obj 554 -176 text 130 60; #X obj 581 -218 symbol; #X msg 479 -245 flat; --- 15,19 ---- #X msg 118 -139 append seven eight nine; #X msg 122 -119 append ten eleven.; ! #X obj 554 -176 text 130 60 0; #X obj 581 -218 symbol; #X msg 479 -245 flat; *************** *** 31,37 **** #X msg 26 105 size 100 50; #X text 633 231 disable editing; ! #X obj 582 -39 text 130 60; #X obj 581 -84 symbol; ! #X obj 513 147 text 130 60; #X obj 577 102 symbol; #X msg 539 -109 none; --- 31,37 ---- #X msg 26 105 size 100 50; #X text 633 231 disable editing; ! #X obj 582 -39 text 130 60 0; #X obj 581 -84 symbol; ! #X obj 513 147 text 130 60 0; #X obj 577 102 symbol; #X msg 539 -109 none; *************** *** 44,51 **** #X obj 452 40 pddp/pddplink http://en.wikipedia.org/wiki/X11_color_names ; ! #X obj 394 -39 text 130 60; #X obj 396 -89 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 10 -262144 -1 -1 0 1; ! #X obj 62 345 text 130 60; #X obj 61 300 symbol; #X obj 49 409 pddp/pddplink http://tcl.tk/man/tcl8.4/TkCmd/cursors.htm --- 44,51 ---- #X obj 452 40 pddp/pddplink http://en.wikipedia.org/wiki/X11_color_names ; ! #X obj 394 -39 text 130 60 0; #X obj 396 -89 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 10 -262144 -1 -1 0 1; ! #X obj 62 345 text 130 60 0; #X obj 61 300 symbol; #X obj 49 409 pddp/pddplink http://tcl.tk/man/tcl8.4/TkCmd/cursors.htm *************** *** 57,61 **** #X obj 404 -217 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 10 -262144 -1 -1 0 1; - #X msg 471 119 scrollbar $1; #X obj 471 99 tgl 15 0 empty empty empty 0 -6 0 10 -262144 -1 -1 0 1; --- 57,60 ---- *************** *** 66,71 **** #X floatatom 369 275 5 0 0 0 - - -; #X msg 249 -46 key 3322; ! #X obj 560 330 text 130 60; ! #X obj 352 328 text 130 60; #X text 347 232 type single chars:; #X msg 421 279 key a; --- 65,70 ---- #X floatatom 369 275 5 0 0 0 - - -; #X msg 249 -46 key 3322; ! #X obj 560 330 text 130 60 0; ! #X obj 352 328 text 130 60 0; #X text 347 232 type single chars:; #X msg 421 279 key a; *************** *** 86,90 **** #X msg 577 70 #00f; #X text 528 231 turn off undo; ! #X obj 261 152 text 130 60; #X msg 285 128 font "Lucida Sans" 18 bold; #X msg 261 103 font Arial 16; --- 85,89 ---- #X msg 577 70 #00f; #X text 528 231 turn off undo; ! #X obj 261 152 text 130 60 0; #X msg 285 128 font "Lucida Sans" 18 bold; #X msg 261 103 font Arial 16; *************** *** 97,100 **** --- 96,100 ---- -text text; #X text 37 -234 This object is based on:; + #X msg 471 119 scrollbars $1; #X connect 0 0 2 0; #X connect 0 0 7 0; *************** *** 110,114 **** #X connect 12 0 0 0; #X connect 13 0 0 0; ! #X connect 15 0 72 0; #X connect 16 0 15 0; #X connect 17 0 15 0; --- 110,114 ---- #X connect 12 0 0 0; #X connect 13 0 0 0; ! #X connect 15 0 71 0; #X connect 16 0 15 0; #X connect 17 0 15 0; *************** *** 117,122 **** #X connect 20 0 15 0; #X connect 21 0 15 0; ! #X connect 22 0 76 0; ! #X connect 23 0 75 0; #X connect 24 0 23 0; #X connect 25 0 23 0; --- 117,122 ---- #X connect 20 0 15 0; #X connect 21 0 15 0; ! #X connect 22 0 75 0; ! #X connect 23 0 74 0; #X connect 24 0 23 0; #X connect 25 0 23 0; *************** *** 124,129 **** #X connect 27 0 22 0; #X connect 28 0 5 0; ! #X connect 31 0 73 0; ! #X connect 33 0 70 0; #X connect 34 0 31 0; #X connect 35 0 31 0; --- 124,129 ---- #X connect 27 0 22 0; #X connect 28 0 5 0; ! #X connect 31 0 72 0; ! #X connect 33 0 69 0; #X connect 34 0 31 0; #X connect 35 0 31 0; *************** *** 132,164 **** #X connect 39 0 33 0; #X connect 40 0 33 0; ! #X connect 43 0 74 0; ! #X connect 45 0 69 0; #X connect 47 0 45 0; #X connect 48 0 45 0; #X connect 49 0 45 0; #X connect 50 0 45 0; ! #X connect 51 0 71 0; ! #X connect 52 0 32 0; ! #X connect 53 0 52 0; #X connect 54 0 0 0; ! #X connect 55 0 0 0; ! #X connect 56 0 57 0; ! #X connect 56 0 58 0; ! #X connect 57 0 61 0; ! #X connect 59 0 0 0; ! #X connect 63 0 61 0; ! #X connect 64 0 61 0; ! #X connect 67 0 61 0; ! #X connect 68 0 45 0; ! #X connect 69 0 44 0; ! #X connect 70 0 32 0; #X connect 71 0 14 0; ! #X connect 72 0 14 0; ! #X connect 73 0 30 0; ! #X connect 74 0 42 0; ! #X connect 75 0 60 0; ! #X connect 76 0 60 0; ! #X connect 77 0 5 0; ! #X connect 78 0 33 0; ! #X connect 81 0 80 0; ! #X connect 82 0 80 0; --- 132,164 ---- #X connect 39 0 33 0; #X connect 40 0 33 0; ! #X connect 43 0 73 0; ! #X connect 45 0 68 0; #X connect 47 0 45 0; #X connect 48 0 45 0; #X connect 49 0 45 0; #X connect 50 0 45 0; ! #X connect 51 0 70 0; ! #X connect 52 0 87 0; ! #X connect 53 0 0 0; #X connect 54 0 0 0; ! #X connect 55 0 56 0; ! #X connect 55 0 57 0; ! #X connect 56 0 60 0; ! #X connect 58 0 0 0; ! #X connect 62 0 60 0; ! #X connect 63 0 60 0; ! #X connect 66 0 60 0; ! #X connect 67 0 45 0; ! #X connect 68 0 44 0; ! #X connect 69 0 32 0; ! #X connect 70 0 14 0; #X connect 71 0 14 0; ! #X connect 72 0 30 0; ! #X connect 73 0 42 0; ! #X connect 74 0 59 0; ! #X connect 75 0 59 0; ! #X connect 76 0 5 0; ! #X connect 77 0 33 0; ! #X connect 80 0 79 0; ! #X connect 81 0 79 0; ! #X connect 87 0 32 0;