Update of /cvsroot/pure-data/externals/grill/flext/source
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18428/source
Modified Files:
flattr_ed.cpp flqueue.cpp
Log Message:
fixed a thread sensitive spot
make some adaptations for 0.38 compatibility
made queue length longer and added overflow checks
Index: flqueue.cpp
===================================================================
RCS file: /cvsroot/pure-data/externals/grill/flext/source/flqueue.cpp,v
retrieving revision 1.20
retrieving revision 1.21
diff -C2 -d -r1.20 -r1.21
*** flqueue.cpp 7 Nov 2004 03:30:45 -0000 1.20
--- flqueue.cpp 9 Nov 2004 03:31:34 -0000 1.21
***************
*** 27,32 ****
! #define QUEUE_LENGTH 512
! #define QUEUE_ATOMS 1024
class qmsg
--- 27,32 ----
! #define QUEUE_LENGTH 2048
! #define QUEUE_ATOMS 8192
class qmsg
***************
*** 198,202 ****
#endif
! for(int i = 0; i < qc; ++i) {
queue.Head().Send();
queue.Pop();
--- 198,203 ----
#endif
! // once more, because flushing in destructors could have reduced the count
! for(qc = queue.Count(); qc--; ) {
queue.Head().Send();
queue.Pop();
Index: flattr_ed.cpp
===================================================================
RCS file: /cvsroot/pure-data/externals/grill/flext/source/flattr_ed.cpp,v
retrieving revision 1.24
retrieving revision 1.25
diff -C2 -d -r1.24 -r1.25
*** flattr_ed.cpp 7 Nov 2004 03:30:42 -0000 1.24
--- flattr_ed.cpp 9 Nov 2004 03:31:34 -0000 1.25
***************
*** 44,82 ****
#endif
! void flext_base::SetAttrEditor(t_classid c)
{
! // widgetbehavior struct MUST be resident... (static is just ok here)
!
! #ifndef FLEXT_CLONEWIDGET
! ori_vis = c->c_wb->w_visfn;
! widgetbehavior.w_getrectfn = c->c_wb->w_getrectfn;
! widgetbehavior.w_displacefn = c->c_wb->w_displacefn;
! widgetbehavior.w_selectfn = c->c_wb->w_selectfn;
! widgetbehavior.w_activatefn = c->c_wb->w_activatefn;
! widgetbehavior.w_deletefn = c->c_wb->w_deletefn;
! widgetbehavior.w_clickfn = c->c_wb->w_clickfn;
! #else
! widgetbehavior.w_getrectfn = text_widgetbehavior.w_getrectfn;
! widgetbehavior.w_displacefn = text_widgetbehavior.w_displacefn;
! widgetbehavior.w_selectfn = text_widgetbehavior.w_selectfn;
! widgetbehavior.w_activatefn = text_widgetbehavior.w_activatefn;
! widgetbehavior.w_deletefn = text_widgetbehavior.w_deletefn;
! widgetbehavior.w_clickfn = text_widgetbehavior.w_clickfn;
! #endif
!
! #if PD_MINOR_VERSION >= 37
! class_setpropertiesfn(c,cb_GfxProperties);
! class_setsavefn(c,cb_GfxSave);
! #else
! widgetbehavior.w_propertiesfn = cb_GfxProperties;
! widgetbehavior.w_savefn = cb_GfxSave;
! #endif
!
! widgetbehavior.w_visfn = cb_GfxVis;
! class_setwidget(c, &widgetbehavior);
!
! // generate the script for the property dialog
! sys_gui(
"proc flext_escatoms {lst} {\n"
"set tmp {}\n"
--- 44,55 ----
#endif
! //! generate the script for the property dialog
! static void tclscript()
{
! static bool havecode = false;
! if(havecode) return;
! else havecode = true;
! sys_vgui(
"proc flext_escatoms {lst} {\n"
"set tmp {}\n"
***************
*** 85,94 ****
"set a [regsub {,} $a \\\\,]\n" // replace , with \,
"set a [regsub {;} $a \\\\\\;]\n" // replace ; with \;
- // "set a [regsub {%} $a %%]\n" // replace % with \%
"lappend tmp $a\n"
"}\n"
"return $tmp\n"
"}\n"
!
"proc flext_makevalue {id ix} {\n"
// strip "." from the TK id to make a variable name suffix
--- 58,67 ----
"set a [regsub {,} $a \\\\,]\n" // replace , with \,
"set a [regsub {;} $a \\\\\\;]\n" // replace ; with \;
"lappend tmp $a\n"
"}\n"
"return $tmp\n"
"}\n"
! );
! sys_vgui(
"proc flext_makevalue {id ix} {\n"
// strip "." from the TK id to make a variable name suffix
***************
*** 124,128 ****
"return $lst\n"
"}\n"
!
"proc flext_apply {id ix} {\n"
"set lst [flext_makevalue $id $ix]\n"
--- 97,102 ----
"return $lst\n"
"}\n"
! );
! sys_vgui(
"proc flext_apply {id ix} {\n"
"set lst [flext_makevalue $id $ix]\n"
***************
*** 151,155 ****
"flext_cancel $id\n"
"}\n"
!
"proc flext_help {id} {\n"
"toplevel $id.hw\n"
--- 125,130 ----
"flext_cancel $id\n"
"}\n"
! );
! sys_vgui(
"proc flext_help {id} {\n"
"toplevel $id.hw\n"
***************
*** 178,182 ****
"$id.hw.text configure -state disabled\n"
"}\n"
!
"proc flext_copyval {dst src} {\n"
"global $src $dst\n"
--- 153,158 ----
"$id.hw.text configure -state disabled\n"
"}\n"
! );
! sys_vgui(
"proc flext_copyval {dst src} {\n"
"global $src $dst\n"
***************
*** 193,197 ****
"destroy $id\n"
"}\n"
!
"proc flext_textzoom {id var title attr edit} {\n"
"global $var\n"
--- 169,174 ----
"destroy $id\n"
"}\n"
! );
! sys_vgui(
"proc flext_textzoom {id var title attr edit} {\n"
"global $var\n"
***************
*** 231,235 ****
"bind $id.w {<KeyPress-Escape>} \"destroy $id.w\"\n"
"}\n"
!
"proc pdtk_flext_dialog {id title attrlist} {\n"
"set vid [string trimleft $id .]\n"
--- 208,213 ----
"bind $id.w {<KeyPress-Escape>} \"destroy $id.w\"\n"
"}\n"
! );
! sys_vgui(
"proc pdtk_flext_dialog {id title attrlist} {\n"
"set vid [string trimleft $id .]\n"
***************
*** 275,279 ****
"grid config $id.sep -column 0 -columnspan 9 -row $row -pady 2 -sticky {snew}\n"
"incr row\n"
!
"set ix 1\n"
"foreach {an av ai atp asv afl} $attrlist {\n"
--- 253,258 ----
"grid config $id.sep -column 0 -columnspan 9 -row $row -pady 2 -sticky {snew}\n"
"incr row\n"
! );
! sys_vgui(
"set ix 1\n"
"foreach {an av ai atp asv afl} $attrlist {\n"
***************
*** 310,314 ****
"label $id.label-$ix -text \"$an :\" -font {Helvetica 8 bold}\n"
"grid config $id.label-$ix -column 0 -row $row -padx 5 -sticky {e}\n"
!
"if { $afl != 0 } {\n"
// attribute is puttable
--- 289,294 ----
"label $id.label-$ix -text \"$an :\" -font {Helvetica 8 bold}\n"
"grid config $id.label-$ix -column 0 -row $row -padx 5 -sticky {e}\n"
! );
! sys_vgui(
"if { $afl != 0 } {\n"
// attribute is puttable
***************
*** 360,363 ****
--- 340,345 ----
"grid config $id.b$i-$ix -column [expr $i + 6] -row $row \n"
"}\n"
+ );
+ sys_vgui(
"} else {\n"
// attribute is gettable only
***************
*** 393,397 ****
"incr row\n"
"}\n"
!
// Separator
"frame $id.sep2 -relief ridge -bd 1 -height 2\n"
--- 375,380 ----
"incr row\n"
"}\n"
! );
! sys_vgui(
// Separator
"frame $id.sep2 -relief ridge -bd 1 -height 2\n"
***************
*** 425,428 ****
--- 408,446 ----
}
+ void flext_base::SetAttrEditor(t_classid c)
+ {
+ // widgetbehavior struct MUST be resident... (static is just ok here)
+
+ #ifndef FLEXT_CLONEWIDGET
+ ori_vis = c->c_wb->w_visfn;
+ widgetbehavior.w_getrectfn = c->c_wb->w_getrectfn;
+ widgetbehavior.w_displacefn = c->c_wb->w_displacefn;
+ widgetbehavior.w_selectfn = c->c_wb->w_selectfn;
+ widgetbehavior.w_activatefn = c->c_wb->w_activatefn;
+ widgetbehavior.w_deletefn = c->c_wb->w_deletefn;
+ widgetbehavior.w_clickfn = c->c_wb->w_clickfn;
+ #else
+ widgetbehavior.w_getrectfn = text_widgetbehavior.w_getrectfn;
+ widgetbehavior.w_displacefn = text_widgetbehavior.w_displacefn;
+ widgetbehavior.w_selectfn = text_widgetbehavior.w_selectfn;
+ widgetbehavior.w_activatefn = text_widgetbehavior.w_activatefn;
+ widgetbehavior.w_deletefn = text_widgetbehavior.w_deletefn;
+ widgetbehavior.w_clickfn = text_widgetbehavior.w_clickfn;
+ #endif
+
+ #if PD_MINOR_VERSION >= 37
+ class_setpropertiesfn(c,cb_GfxProperties);
+ class_setsavefn(c,cb_GfxSave);
+ #else
+ widgetbehavior.w_propertiesfn = cb_GfxProperties;
+ widgetbehavior.w_savefn = cb_GfxSave;
+ #endif
+
+ widgetbehavior.w_visfn = cb_GfxVis;
+ class_setwidget(c, &widgetbehavior);
+
+ tclscript();
+ }
+
static size_t escapeit(char *dst,size_t maxlen,const char *src)
{
***************
*** 511,515 ****
PrintAtom(lv[i],tmp,sizeof tmp);
b += escapeit(b,sizeof(buf)+buf-b,tmp);
! if(i < lv.Count()-1) { *(b++) = ' '; *(b++) = 0; }
}
}
--- 529,533 ----
PrintAtom(lv[i],tmp,sizeof tmp);
b += escapeit(b,sizeof(buf)+buf-b,tmp);
! if(i < lv.Count()-1) { *(b++) = ' '; *b = 0; }
}
}
***************
*** 525,532 ****
for(int i = 0; i < lp.Count(); ++i) {
! char tmp[100];
PrintAtom(lp[i],tmp,sizeof(tmp));
b += escapeit(b,sizeof(buf)+buf-b,tmp);
! if(i < lp.Count()-1) { *(b++) = ' '; *(b++) = 0; }
}
}
--- 543,550 ----
for(int i = 0; i < lp.Count(); ++i) {
! char tmp[256];
PrintAtom(lp[i],tmp,sizeof(tmp));
b += escapeit(b,sizeof(buf)+buf-b,tmp);
! if(i < lp.Count()-1) { *(b++) = ' '; *b = 0; }
}
}