[PD-cvs] externals/grill/flext/source flattr_ed.cpp,1.31,1.32 flbind.cpp,1.16,1.17 flbuf.cpp,1.21,1.22 flclass.h,1.49,1.50 flext.cpp,1.30,1.31 flinternal.h,1.9,1.10 flitem.cpp,1.13,1.14

Thomas Grill xovo at users.sourceforge.net
Tue Jan 11 05:58:15 CET 2005


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
  };





More information about the Pd-cvs mailing list