diff options
author | Hans-Christoph Steiner <eighthave@users.sourceforge.net> | 2007-11-09 19:45:33 +0000 |
---|---|---|
committer | Hans-Christoph Steiner <eighthave@users.sourceforge.net> | 2007-11-09 19:45:33 +0000 |
commit | a32020485a2f03948e06f8b163999dcfcd86e89e (patch) | |
tree | 1957e04163318490807f41d92ba9705b9bb11c5d | |
parent | c7712e6a60298efb7437b1c6e3dba1741ce560a1 (diff) |
added quick hack to get the Tk canvas name in Pd space
svn path=/trunk/externals/hcs/; revision=8974
-rw-r--r-- | canvas_name.c | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/canvas_name.c b/canvas_name.c new file mode 100644 index 0000000..a8b93eb --- /dev/null +++ b/canvas_name.c @@ -0,0 +1,41 @@ +#include <stdio.h> +#include <string.h> +#include <m_pd.h> +#include <g_canvas.h> + +#define DEBUG(x) + +static t_class *canvas_name_class; + +typedef struct _canvas_name +{ + t_object x_obj; + t_symbol *x_canvas_name; +} t_canvas_name; + +static void canvas_name_bang(t_canvas_name *x) +{ + outlet_symbol(x->x_obj.ob_outlet,x->x_canvas_name); +} + +static void *canvas_name_new(void) +{ + t_canvas_name *x = (t_canvas_name *)pd_new(canvas_name_class); + char buf[MAXPDSTRING]; + + snprintf(buf,MAXPDSTRING,".x%lx.c",(long unsigned int)canvas_getcurrent()); + x->x_canvas_name = gensym(buf); + + outlet_new(&x->x_obj, &s_symbol); + + return(x); +} + +void canvas_name_setup(void) +{ + canvas_name_class = class_new(gensym("canvas_name"), + (t_newmethod)canvas_name_new, NULL, + sizeof(t_canvas_name), 0, 0); + + class_addbang(canvas_name_class, (t_method)canvas_name_bang); +} |