Update of /cvsroot/pure-data/externals/grill/flext/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24067/source
Modified Files: flattr_ed.cpp flbind.cpp flbuf.cpp flclass.h flext.cpp flinternal.h flitem.cpp Log Message: build system: added profiler mode, more fixes fixed buggy unbinding of receive symbols fixed shared library names better templates, some minor changes added method for clicks into object box
Index: flitem.cpp =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/source/flitem.cpp,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** flitem.cpp 16 Dec 2004 05:01:07 -0000 1.13 --- flitem.cpp 11 Jan 2005 04:58:12 -0000 1.14 *************** *** 61,64 **** --- 61,66 ---- void flext_base::ItemCont::Add(Item *item,const t_symbol *tag,int inlet) { + FLEXT_ASSERT(tag); + if(!Contained(inlet)) Resize(inlet+2); ItemSet &set = GetInlet(inlet); *************** *** 73,78 **** }
! bool flext_base::ItemCont::Remove(Item *item,const t_symbol *tag,int inlet) { if(Contained(inlet)) { ItemSet &set = GetInlet(inlet); --- 75,82 ---- }
! bool flext_base::ItemCont::Remove(Item *item,const t_symbol *tag,int inlet,bool free) { + FLEXT_ASSERT(tag); + if(Contained(inlet)) { ItemSet &set = GetInlet(inlet); *************** *** 84,88 **** else it.data() = lit->nxt;
! lit->nxt = NULL; delete lit; return true; } --- 88,93 ---- else it.data() = lit->nxt;
! lit->nxt = NULL; ! if(free) delete lit; return true; } *************** *** 95,98 **** --- 100,105 ---- flext_base::Item *flext_base::ItemCont::FindList(const t_symbol *tag,int inlet) { + FLEXT_ASSERT(tag); + if(Contained(inlet)) { ItemSet &ai = GetInlet(inlet);
Index: flext.cpp =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/source/flext.cpp,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** flext.cpp 16 Dec 2004 05:01:06 -0000 1.30 --- flext.cpp 11 Jan 2005 04:58:12 -0000 1.31 *************** *** 149,152 **** --- 149,153 ---- #if FLEXT_SYS == FLEXT_SYS_MAX add_assist(c,cb_assist); + add_dblclick(c,cb_click); #endif #else *************** *** 185,206 **** void flext_base::m_loadbang() {}
! #if FLEXT_SYS == FLEXT_SYS_MAX ! void flext_base::cb_assist(t_class *c,void * /*b*/,long msg,long arg,char *s) { thisObject(c)->m_assist(msg,arg,s); } ! #endif
! void flext_base::m_assist(long msg,long arg,char *s) { #if FLEXT_SYS == FLEXT_SYS_MAX switch(msg) { case 1: //ASSIST_INLET: ! strcpy(s,arg < incnt && indesc[arg]?indesc[arg]:""); break; case 2: //ASSIST_OUTLET: ! if(arg < outcnt) ! strcpy(s,outdesc[arg]?outdesc[arg]:""); else ! strcpy(s,arg == outcnt && procattr?"Attributes":""); break; } - #endif } --- 186,225 ---- void flext_base::m_loadbang() {}
! void flext_base::m_click() {}
! #if FLEXT_SYS == FLEXT_SYS_PD ! int flext_base::cb_click(t_gobj *c, struct _glist *glist,int xpix, int ypix, int shift, int alt, int dbl, int doit) { + if(doit && alt) { + thisObject(c)->m_click(); + return 1; + } + else + return 0; + } + #endif + #if FLEXT_SYS == FLEXT_SYS_MAX + void flext_base::cb_click(t_class *c, Point pt, short mods) + { + thisObject(c)->m_click(); + } + + void flext_base::cb_assist(t_class *c,void * /*b*/,long msg,long arg,char *s) + { + flext_base *th = thisObject(c); + switch(msg) { case 1: //ASSIST_INLET: ! if(arg < th->incnt && th->indesc[arg]) strcpy(s,th->indesc[arg]); break; case 2: //ASSIST_OUTLET: ! if(arg < th->outcnt) { ! if(th->outdesc[arg]) strcpy(s,th->outdesc[arg]); ! } else ! if(arg == th->outcnt && th->procattr) strcpy(s,"Attributes"); break; } } + #endif
Index: flattr_ed.cpp =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/source/flattr_ed.cpp,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** flattr_ed.cpp 16 Dec 2004 05:01:06 -0000 1.31 --- flattr_ed.cpp 11 Jan 2005 04:58:12 -0000 1.32 *************** *** 420,424 **** widgetbehavior.w_activatefn = c->c_wb->w_activatefn; widgetbehavior.w_deletefn = c->c_wb->w_deletefn; - widgetbehavior.w_clickfn = c->c_wb->w_clickfn; widgetbehavior.w_selectfn = c->c_wb->w_selectfn; #else --- 420,423 ---- *************** *** 427,431 **** widgetbehavior.w_activatefn = text_widgetbehavior.w_activatefn; widgetbehavior.w_deletefn = text_widgetbehavior.w_deletefn; - widgetbehavior.w_clickfn = text_widgetbehavior.w_clickfn; widgetbehavior.w_selectfn = text_widgetbehavior.w_selectfn; #endif --- 426,429 ---- *************** *** 439,442 **** --- 437,441 ---- #endif
+ widgetbehavior.w_clickfn = cb_click; widgetbehavior.w_visfn = cb_GfxVis; widgetbehavior.w_selectfn = cb_GfxSelect;
Index: flinternal.h =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/source/flinternal.h,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** flinternal.h 21 Jun 2004 13:58:19 -0000 1.9 --- flinternal.h 11 Jan 2005 04:58:12 -0000 1.10 *************** *** 92,95 **** --- 92,96 ---- #define add_assist(clss,meth) addmess((method)meth, "assist", A_CANT, A_NULL) #define add_loadbang(clss,meth) addmess((method)meth, "loadbang", A_CANT, A_NULL) + #define add_dblclick(clss,meth) addmess((method)meth, "dblclick", A_CANT, A_NULL)
#define newout_signal(clss) outlet_new(clss,"signal")
Index: flbind.cpp =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/source/flbind.cpp,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** flbind.cpp 26 Sep 2004 22:55:15 -0000 1.16 --- flbind.cpp 11 Jan 2005 04:58:12 -0000 1.17 *************** *** 166,170 **** for(Item *i = si.data(); i; i = i->nxt) { BindItem *item = (BindItem *)i; ! if(!fun || item->fun == fun) { it = item; break; } } } --- 166,175 ---- for(Item *i = si.data(); i; i = i->nxt) { BindItem *item = (BindItem *)i; ! if(!fun || item->fun == fun) ! { ! it = item; ! if(!sym) sym = si.key(); ! break; ! } } } *************** *** 172,176 **** if(it) { if(data) *data = it->px->data; ! ok = bindhead->Remove(it,sym); if(ok) { it->Unbind(sym); --- 177,181 ---- if(it) { if(data) *data = it->px->data; ! ok = bindhead->Remove(it,sym,0,false); if(ok) { it->Unbind(sym);
Index: flbuf.cpp =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/source/flbuf.cpp,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** flbuf.cpp 7 Jan 2005 04:58:47 -0000 1.21 --- flbuf.cpp 11 Jan 2005 04:58:12 -0000 1.22 *************** *** 44,49 **** tick = clock_new(this,(t_method)cb_tick); #elif FLEXT_SYS == FLEXT_SYS_MAX ! if(!sym_buffer) sym_buffer = flext::MakeSymbol("buffer~"); ! if(!sym_size) sym_size = flext::MakeSymbol("size"); #endif
--- 44,53 ---- tick = clock_new(this,(t_method)cb_tick); #elif FLEXT_SYS == FLEXT_SYS_MAX ! // for some strange reasons (maybe only on Mac) ! // static initializations are not processed ! if(!sym_buffer) { ! sym_buffer = flext::MakeSymbol("buffer~"); ! sym_size = flext::MakeSymbol("size"); ! } #endif
Index: flclass.h =================================================================== RCS file: /cvsroot/pure-data/externals/grill/flext/source/flclass.h,v retrieving revision 1.49 retrieving revision 1.50 diff -C2 -d -r1.49 -r1.50 *** flclass.h 8 Jan 2005 04:58:30 -0000 1.49 --- flclass.h 11 Jan 2005 04:58:12 -0000 1.50 *************** *** 92,97 **** virtual void m_loadbang();
! //! quickhelp for inlets/outlets (gets called in Max/MSP only) ! virtual void m_assist(long /*msg*/,long /*arg*/,char * /*s*/);
/*! \brief Called for every incoming message. --- 92,97 ---- virtual void m_loadbang();
! //! called on (double-)click into object box ! virtual void m_click();
/*! \brief Called for every incoming message. *************** *** 644,648 **** void Add(Item *it,const t_symbol *tag,int inlet = 0); //! Remove an entry ! bool Remove(Item *it,const t_symbol *tag,int inlet = 0); //! Find an entry list in the Item array Item *FindList(const t_symbol *tag,int inlet = 0); --- 644,648 ---- void Add(Item *it,const t_symbol *tag,int inlet = 0); //! Remove an entry ! bool Remove(Item *it,const t_symbol *tag,int inlet,bool free); //! Find an entry list in the Item array Item *FindList(const t_symbol *tag,int inlet = 0); *************** *** 979,986 **** --- 979,991 ---- #endif
+ #if FLEXT_SYS == FLEXT_SYS_PD + static int cb_click(t_gobj *z, struct _glist *glist,int xpix, int ypix, int shift, int alt, int dbl, int doit); + #endif + #if FLEXT_SYS == FLEXT_SYS_MAX char **indesc,**outdesc;
static void cb_assist(t_class *c,void *b,long msg,long arg,char *s); + static void cb_click (t_class *c, Point pt, short mods); #endif };