Update of /cvsroot/pure-data/externals/bbogart/popup In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13075
Modified Files: README.txt popup.c Log Message: Fixed resetting name on shade/minimize/desktop switch.
Index: popup.c =================================================================== RCS file: /cvsroot/pure-data/externals/bbogart/popup/popup.c,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** popup.c 14 Jan 2005 20:12:00 -0000 1.10 --- popup.c 17 Jan 2005 21:06:59 -0000 1.11 *************** *** 53,56 **** --- 53,57 ---- int x_width; + int current_selection; int x_num_options; t_symbol* x_colour; *************** *** 139,142 **** --- 140,144 ---- char text[MAXPDSTRING]; int len,i; + t_symbol* temp_name; t_canvas *canvas=glist_getcanvas(glist); x->x_rect_width = x->x_width; *************** *** 145,153 **** /* Create menubutton and empty menu widget -- maybe the menu should be created elseware?*/
/* Seems we have to delete the widget in case it already exists (Provided by Guenter)*/ sys_vgui("destroy .x%x.c.s%x\n",glist_getcanvas(glist),x);
sys_vgui("set %xw .x%x.c.s%x ; menubutton $%xw -relief raised -background "%s" -text "%s" -direction flush -menu $%xw.menu ; menu $%xw.menu -tearoff 0\n", ! x,canvas,x,x,x->x_colour->s_name,x->x_name->s_name,x,x);
for(i=0 ; i<x->x_num_options ; i++) --- 147,163 ---- /* Create menubutton and empty menu widget -- maybe the menu should be created elseware?*/
+ /* draw using the last name if it was selected otherwise use default name. */ + if(x->current_selection < 0) + { + temp_name = x->x_name; + } else { + temp_name = x->x_options[x->current_selection]; + } + /* Seems we have to delete the widget in case it already exists (Provided by Guenter)*/ sys_vgui("destroy .x%x.c.s%x\n",glist_getcanvas(glist),x);
sys_vgui("set %xw .x%x.c.s%x ; menubutton $%xw -relief raised -background "%s" -text "%s" -direction flush -menu $%xw.menu ; menu $%xw.menu -tearoff 0\n", ! x,canvas,x,x,x->x_colour->s_name,temp_name->s_name,x,x);
for(i=0 ; i<x->x_num_options ; i++) *************** *** 183,186 **** --- 193,197 ----
// Output a bang to first outlet when we're ready to receive float messages the first time!. + // Too bad this is NOT always the first time... window shading makes the bang go out again. :( if(firsttime) {outlet_bang(x->x_obj.ob_outlet);}
*************** *** 338,341 **** --- 349,353 ---- DEBUG(post("output start");)
+ x->current_selection = popup_index; outlet_symbol(x->out2, x->x_options[(int)popup_index]); outlet_float(x->x_obj.ob_outlet, popup_index); *************** *** 413,416 **** --- 425,429 ---- sys_vgui(".x%x.c.s%x configure -text "%s" ; popup_sel%x "%d" \n", glist_getcanvas(x->x_glist), x, x->x_options[i]->s_name,x, i); + } else { post("popup: Valid menu selections are from %d to %d\npopup: You entered %d.", 0, x->x_num_options, i); *************** *** 478,483 **** x->x_glist = (t_glist*)NULL;
- x->x_height = 25; if (argc < 5) --- 491,496 ---- x->x_glist = (t_glist*)NULL;
x->x_height = 25; + x->current_selection = -1; if (argc < 5) *************** *** 519,526 **** outlet_new(&x->x_obj, &s_float); x->out2 = outlet_new(&x->x_obj, &s_symbol); - return (x);
! DEBUG(post("popup new end");)
}
--- 532,539 ---- outlet_new(&x->x_obj, &s_float); x->out2 = outlet_new(&x->x_obj, &s_symbol);
! DEBUG(post("popup new end");)
+ return (x); }
Index: README.txt =================================================================== RCS file: /cvsroot/pure-data/externals/bbogart/popup/README.txt,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** README.txt 14 Jan 2005 20:14:36 -0000 1.5 --- README.txt 17 Jan 2005 21:06:59 -0000 1.6 *************** *** 40,47 **** - Do not use a loadbang to set a patch-default value. Will cause a segfault. The left outlet will send a "bang" message when we're ready to set values, ! see example patch on how to use this to set a default value. ! ! - If you change virtual desktops or "shade" the patcher window the selection ! visible on the popup will be reset to the popup-name.
Have Fun. --- 40,46 ---- - Do not use a loadbang to set a patch-default value. Will cause a segfault. The left outlet will send a "bang" message when we're ready to set values, ! see example patch on how to use this to set a default value. Unfortunatly ! this bang message is actually set on un-minimization and un-shading as ! well as on load.
Have Fun.