From d6b088044e161a27d49df537bbb6d998a8d0e50d Mon Sep 17 00:00:00 2001 From: musil Date: Sat, 9 Dec 2006 02:00:52 +0000 Subject: // class_sethelpsymbol(); changed help-*.pd to *-help.pd chanded file structure to standard 1st step remove old svn path=/trunk/externals/iemlib/; revision=6756 --- iemlib2/src/parentdollarzero.c | 53 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 iemlib2/src/parentdollarzero.c (limited to 'iemlib2/src/parentdollarzero.c') diff --git a/iemlib2/src/parentdollarzero.c b/iemlib2/src/parentdollarzero.c new file mode 100644 index 0000000..85b79e9 --- /dev/null +++ b/iemlib2/src/parentdollarzero.c @@ -0,0 +1,53 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2006 */ + + +#include "m_pd.h" +#include "g_canvas.h" +#include "iemlib.h" + + +/* -------------- parentdollarzero --------------- */ +/* -- receives the $0 value of the parent canvas --*/ + +static t_class *parentdollarzero_class; + +typedef struct _parentdollarzero +{ + t_object x_obj; + t_symbol *s_parent_unique; + unsigned int x_is_there_a_parent; +} t_parentdollarzero; + +static void parentdollarzero_bang(t_parentdollarzero *x) +{ + if(x->x_is_there_a_parent) + outlet_symbol(x->x_obj.ob_outlet, x->s_parent_unique); +} + +static void *parentdollarzero_new(void) +{ + t_parentdollarzero *x = (t_parentdollarzero *)pd_new(parentdollarzero_class); + t_glist *glist = (t_glist *)canvas_getcurrent(); + t_canvas *this_canvas = glist_getcanvas(glist); + + x->x_is_there_a_parent = (unsigned int)(0!=this_canvas->gl_owner); + + if(x->x_is_there_a_parent) + x->s_parent_unique = canvas_realizedollar((t_canvas *)this_canvas->gl_owner, gensym("$0")); + else + x->s_parent_unique = gensym(""); + outlet_new(&x->x_obj, &s_symbol); + return (x); +} + +void parentdollarzero_setup(void) +{ + parentdollarzero_class = class_new(gensym("parentdollarzero"), (t_newmethod)parentdollarzero_new, + 0, sizeof(t_parentdollarzero), 0, 0); + class_addcreator((t_newmethod)parentdollarzero_new, gensym("parent$0"), 0); + class_addbang(parentdollarzero_class, (t_method)parentdollarzero_bang); +// class_sethelpsymbol(parentdollarzero_class, gensym("iemhelp/help-parentdollarzero")); +} -- cgit v1.2.1