[PD-cvs] externals/bbogart/entry entry.c,1.8,1.9

Hans-Christoph Steiner eighthave at users.sourceforge.net
Thu Oct 25 06:45:18 CEST 2007


Update of /cvsroot/pure-data/externals/bbogart/entry
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26063

Modified Files:
	entry.c 
Log Message:
almost there, I can get data out the second outlet, but it's global, the bind is to all Text widgets

Index: entry.c
===================================================================
RCS file: /cvsroot/pure-data/externals/bbogart/entry/entry.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** entry.c	24 Oct 2007 05:22:45 -0000	1.8
--- entry.c	25 Oct 2007 04:45:15 -0000	1.9
***************
*** 25,28 ****
--- 25,30 ----
  /* TODO: make entry_save include whole classname, including namespace prefix */
  /* TODO: set message doesnt work with a loadbang */
+ /* TODO: add [append( message to add contents after existing contents, just
+  *      base it on the set method, without the preceeding delete  */
  
  #ifdef _MSC_VER
***************
*** 75,78 ****
--- 77,91 ----
  static t_class *entry_class;
  
+ 
+ static t_symbol *backspace_symbol;
+ static t_symbol *return_symbol;
+ static t_symbol *space_symbol;
+ static t_symbol *tab_symbol;
+ static t_symbol *escape_symbol;
+ static t_symbol *left_symbol;
+ static t_symbol *right_symbol;
+ static t_symbol *up_symbol;
+ static t_symbol *down_symbol;
+ 
  /* widget helper functions */
  
***************
*** 191,196 ****
                 x->x_widget_name, x->x_widget_name); 
    }
-   post("namespace eval %s {} \n", x->x_receive_name->s_name);
-   sys_vgui("namespace eval %s {} \n", x->x_receive_name->s_name);
  }
  
--- 204,207 ----
***************
*** 394,399 ****
  {
    /* With "," and ";" escaping thanks to JMZ */
!   post("pd [concat entry%lx output [string map {\",\" \"\\\\,\" \";\" \"\\\\;\"} [%s get 0.0 end]] \\;]\n", x, x->x_widget_name);
!   sys_vgui("pd [concat entry%lx output [string map {\",\" \"\\\\,\" \";\" \"\\\\;\"} [%s get 0.0 end]] \\;]\n", x, x->x_widget_name);
  
    /* Without "," and ";" escaping, left here but commented out in case we want to add a kind of "pd terminal" mode in the future.
--- 405,412 ----
  {
    /* With "," and ";" escaping thanks to JMZ */
!   post("pd [concat %s output [string map {\",\" \"\\\\,\" \";\" \"\\\\;\"} [%s get 0.0 end]] \\;]\n", 
!        x->x_receive_name->s_name, x->x_widget_name);
!   sys_vgui("pd [concat %s output [string map {\",\" \"\\\\,\" \";\" \"\\\\;\"} [%s get 0.0 end]] \\;]\n", 
!            x->x_receive_name->s_name, x->x_widget_name);
  
    /* Without "," and ";" escaping, left here but commented out in case we want to add a kind of "pd terminal" mode in the future.
***************
*** 408,415 ****
    }
  }
!  
! static void entry_keyup(t_entry *x, t_symbol *s)
  {
!     outlet_symbol(x->x_status_outlet, s);
  }
   
--- 421,471 ----
    }
  }
! 
! static void entry_keyup(t_entry *x, t_float f)
  {
!     int keycode = (int) f;
!     char buf[10];
!     t_symbol *output_symbol;
!     if( (f > 32 ) && (f < 65288) )
!     {
!         snprintf(buf, 2, "%c", keycode);
!         post("keyup: %c", keycode);
!         output_symbol = gensym(buf);
!     } else
!         switch(keycode)
!         {
!         case 32: /* space */
!             output_symbol = space_symbol;
!             break;
!         case 65293: /* return */
!             output_symbol = return_symbol;
!             break;
!         case 65288: /* backspace */
!             output_symbol = backspace_symbol;
!             break;
!         case 65289: /* tab */
!             output_symbol = tab_symbol;
!             break;
!         case 65307: /* escape */
!             output_symbol = escape_symbol;
!             break;
!         case 65361: /* left */
!             output_symbol = left_symbol;
!             break;
!         case 65363: /* right */
!             output_symbol = right_symbol;
!             break;
!         case 65362: /* up */
!             output_symbol = up_symbol;
!             break;
!         case 65364: /* down */
!             output_symbol = down_symbol;
!             break;
!         default:
!             snprintf(buf, 10, "key_%d", keycode);
!             post("keyup: %d", keycode);
!             output_symbol = gensym(buf);
!         }
!     outlet_symbol(x->x_status_outlet, output_symbol);
  }
   
***************
*** 493,503 ****
       x->x_height = x->x_char_height*5; */
  
      /* Bind the recieve "entry%lx" to the widget instance*/
!     snprintf(buf,MAXPDSTRING,"entry%lx",(long unsigned int)x);
      x->x_receive_name = gensym(buf);
      pd_bind(&x->x_obj.ob_pd, x->x_receive_name);
  	
!     x->x_data_outlet = outlet_new(&x->x_obj, &s_float);
!     x->x_status_outlet = outlet_new(&x->x_obj, &s_symbol);
      return (x);
  }
--- 549,568 ----
       x->x_height = x->x_char_height*5; */
  
+     x->x_data_outlet = outlet_new(&x->x_obj, &s_float);
+     x->x_status_outlet = outlet_new(&x->x_obj, &s_symbol);
+ 
      /* Bind the recieve "entry%lx" to the widget instance*/
!     snprintf(buf,MAXPDSTRING,"#entry%lx",(long unsigned int)x);
      x->x_receive_name = gensym(buf);
      pd_bind(&x->x_obj.ob_pd, x->x_receive_name);
+ 
+     post("bind Text <KeyRelease> {pd [concat %s keyup %%K \\;]} \n", 
+          x->x_canvas_name,x->x_receive_name->s_name);
+ /*     sys_vgui("bind Text <KeyRelease> {pd [concat test keyup %%A \\;]} \n", */
+ /*              x->x_canvas_name,x->x_receive_name->s_name); */
+     sys_vgui("bind Text <KeyRelease> {pd %s keyup %%N \\;} \n", x->x_receive_name->s_name);
  	
!     post("namespace eval entry%lx {} \n", x);
!     sys_vgui("namespace eval entry%lx {} \n", x);
      return (x);
  }
***************
*** 511,515 ****
      class_addmethod(entry_class, (t_method)entry_keyup,
                      gensym("keyup"),
!                     A_DEFSYMBOL,
                      0);
  
--- 576,580 ----
      class_addmethod(entry_class, (t_method)entry_keyup,
                      gensym("keyup"),
!                     A_DEFFLOAT,
                      0);
  
***************
*** 548,551 ****
--- 613,626 ----
  #endif
  
+     backspace_symbol = gensym("Backspace");
+     return_symbol = gensym("Return");
+ 	space_symbol = gensym("Space");
+ 	tab_symbol = gensym("Tab");
+ 	escape_symbol = gensym("Escape");
+ 	left_symbol = gensym("Left");
+ 	right_symbol = gensym("Right");
+ 	up_symbol = gensym("Up");
+ 	down_symbol = gensym("Down");
+     
  	post("Text v0.1 Ben Bogart.\nCVS: $Revision$ $Date$");
  }





More information about the Pd-cvs mailing list