[PD-cvs] SF.net SVN: pure-data:[10272] trunk/externals/iem/iemguts
zmoelnig at users.sourceforge.net
zmoelnig at users.sourceforge.net
Mon Sep 1 16:36:05 CEST 2008
Revision: 10272
http://pure-data.svn.sourceforge.net/pure-data/?rev=10272&view=rev
Author: zmoelnig
Date: 2008-09-01 14:36:04 +0000 (Mon, 01 Sep 2008)
Log Message:
-----------
renamed [parentposition] to [canvasposition] (consistent naming scheme);
added more helppatches
Modified Paths:
--------------
trunk/externals/iem/iemguts/help/propertybang-help.pd
Added Paths:
-----------
trunk/externals/iem/iemguts/help/canvasdollarzero-help.pd
trunk/externals/iem/iemguts/help/canvasindex-help.pd
trunk/externals/iem/iemguts/help/canvasposition-help.pd
trunk/externals/iem/iemguts/help/sendcanvas-help.pd
trunk/externals/iem/iemguts/src/canvasposition.c
Removed Paths:
-------------
trunk/externals/iem/iemguts/src/parentposition.c
Added: trunk/externals/iem/iemguts/help/canvasdollarzero-help.pd
===================================================================
--- trunk/externals/iem/iemguts/help/canvasdollarzero-help.pd (rev 0)
+++ trunk/externals/iem/iemguts/help/canvasdollarzero-help.pd 2008-09-01 14:36:04 UTC (rev 10272)
@@ -0,0 +1,32 @@
+#N canvas 251 447 635 427 10;
+#X obj 99 229 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 81 25 canvasdollarzero;
+#X text 207 25 get \$0 of the (parent) canvas;
+#X msg 88 128 bang;
+#X obj 88 148 canvasdollarzero;
+#X symbolatom 88 168 10 0 0 0 - - -;
+#X text 57 85 this object is a shameless clone of iemlib's [parentdollarzero]
+with an added feature.;
+#X text 53 194 the feature is \, that you can query the \$0 of _any_
+parent canvas;
+#N canvas 0 0 781 383 canvasdollarzero 0;
+#X obj 147 72 inlet;
+#X text 298 167 "1" indicates to read the parent patch's (depth:1)
+\$0;
+#X msg 147 126 bang;
+#X symbolatom 182 188 10 0 0 0 - - -;
+#X obj 147 213 outlet;
+#X obj 147 166 canvasdollarzero 1;
+#X text 125 275 ok \, this example is not very splendid \, as \$0 is
+the same for a patch and all it's subpatches anyhow \; nevertheless
+\, believe me that it also works with abstractions;
+#X connect 0 0 2 0;
+#X connect 2 0 5 0;
+#X connect 5 0 3 0;
+#X connect 5 0 4 0;
+#X restore 99 248 pd canvasdollarzero 1;
+#X text 58 308 (c) 2008 IOhannes m zmoelnig \, Thomas Musil;
+#X connect 0 0 8 0;
+#X connect 3 0 4 0;
+#X connect 4 0 5 0;
Added: trunk/externals/iem/iemguts/help/canvasindex-help.pd
===================================================================
--- trunk/externals/iem/iemguts/help/canvasindex-help.pd (rev 0)
+++ trunk/externals/iem/iemguts/help/canvasindex-help.pd 2008-09-01 14:36:04 UTC (rev 10272)
@@ -0,0 +1,58 @@
+#N canvas 180 165 635 592 10;
+#X msg 88 128 bang;
+#X obj 81 25 canvasindex;
+#X text 207 25 get the ID/index of an abstraction/subpatch within it's
+containing patch;
+#X text 99 88 this object allows you to dynamically find out indicies
+to connect with dynamic patching;
+#N canvas 0 0 450 300 object1 0;
+#X obj 75 48 inlet;
+#X obj 75 189 outlet;
+#X obj 75 129 canvasindex;
+#X obj 324 59 inlet;
+#X connect 0 0 2 0;
+#X connect 2 0 1 0;
+#X restore 88 168 pd object1;
+#X obj 88 148 t b b;
+#N canvas 0 0 450 300 object2 0;
+#X obj 75 48 inlet;
+#X obj 75 189 outlet;
+#X obj 75 129 canvasindex;
+#X obj 281 205 outlet;
+#X connect 0 0 2 0;
+#X connect 2 0 1 0;
+#X restore 188 168 pd object2;
+#X floatatom 188 191 5 0 0 0 - - -;
+#X floatatom 88 192 5 0 0 0 - - -;
+#X text 47 547 (c) 2008 IOhannes m zmoelnig;
+#X obj 88 288 namecanvas \$0-canvas;
+#X obj 88 269 send \$0-canvas;
+#X msg 88 245 connect \$2 1 \$1 1;
+#X obj 88 222 pack;
+#X msg 101 378 bang;
+#X floatatom 101 422 5 0 0 0 - - -;
+#N canvas 0 0 450 300 objectcount 0;
+#X obj 75 48 inlet;
+#X obj 75 189 outlet;
+#X obj 75 129 canvasindex 1;
+#X connect 0 0 2 0;
+#X connect 2 1 1 0;
+#X restore 101 398 pd objectcount;
+#X text 71 347 the second outlet tells you \, how many objects the
+parent patch contains in total.;
+#X text 55 461 you can specify the depth of the parent-patch via a
+optional argument:;
+#X obj 79 496 canvasindex 2;
+#X text 178 494 will work on the grandparent (parent-depth:2) of this
+patch;
+#X connect 0 0 5 0;
+#X connect 4 0 8 0;
+#X connect 5 0 4 0;
+#X connect 5 1 6 0;
+#X connect 6 0 7 0;
+#X connect 7 0 13 1;
+#X connect 8 0 13 0;
+#X connect 12 0 11 0;
+#X connect 13 0 12 0;
+#X connect 14 0 16 0;
+#X connect 16 0 15 0;
Added: trunk/externals/iem/iemguts/help/canvasposition-help.pd
===================================================================
--- trunk/externals/iem/iemguts/help/canvasposition-help.pd (rev 0)
+++ trunk/externals/iem/iemguts/help/canvasposition-help.pd 2008-09-01 14:36:04 UTC (rev 10272)
@@ -0,0 +1,62 @@
+#N canvas 1388 107 635 592 10;
+#X obj 81 25 canvasindex;
+#X text 47 547 (c) 2008 IOhannes m zmoelnig;
+#X text 55 471 you can specify the depth of the parent-patch via a
+optional argument:;
+#X text 178 504 will work on the grandparent (parent-depth:2) of this
+patch;
+#X text 207 25 get/set the position of the containing patch within
+it's parent;
+#X text 39 88 this object allows you to retrieve the position of an
+abstraction/subpatch within it's containing canvas;
+#X msg 98 124 bang;
+#X obj 98 172 unpack;
+#X floatatom 137 194 5 0 0 0 - - -;
+#X floatatom 98 194 5 0 0 0 - - -;
+#X text 178 145 <--- you can move this object and click "bang" again
+;
+#X msg 88 253 bang;
+#X obj 88 292 unpack;
+#X floatatom 127 314 5 0 0 0 - - -;
+#X floatatom 88 314 5 0 0 0 - - -;
+#X text 168 269 <--- you can move this object and click "bang" again
+;
+#X text 39 218 you can also query the size of the containing canvas
+via the 2nd outlet;
+#N canvas 0 0 450 300 getsize 0;
+#X obj 75 48 inlet;
+#X obj 75 189 outlet;
+#X obj 75 129 canvasposition;
+#X connect 0 0 2 0;
+#X connect 2 1 1 0;
+#X restore 88 272 pd getsize;
+#N canvas 0 0 450 300 getpos 0;
+#X obj 75 48 inlet;
+#X obj 75 189 outlet;
+#X obj 75 129 canvasposition;
+#X connect 0 0 2 0;
+#X connect 2 0 1 0;
+#X restore 98 148 pd getpos;
+#X text 69 333 note: there is a bug in Pd that might require you to
+save a patch \, before the "size" will actually change;
+#N canvas 0 0 450 300 setpos 0;
+#X obj 75 48 inlet;
+#X obj 75 129 canvasposition;
+#X connect 0 0 1 0;
+#X restore 100 440 pd setpos;
+#X obj 103 398 hsl 128 15 100 400 0 0 empty empty empty -2 -8 0 10
+-262144 -1 -1 0 1;
+#X obj 52 505 canvasposition 2;
+#X text 46 368 finally you can move an object around (without any hackish
+mouse emulation);
+#X msg 100 418 \$1 440;
+#X connect 6 0 18 0;
+#X connect 7 0 9 0;
+#X connect 7 1 8 0;
+#X connect 11 0 17 0;
+#X connect 12 0 14 0;
+#X connect 12 1 13 0;
+#X connect 17 0 12 0;
+#X connect 18 0 7 0;
+#X connect 21 0 24 0;
+#X connect 24 0 20 0;
Modified: trunk/externals/iem/iemguts/help/propertybang-help.pd
===================================================================
--- trunk/externals/iem/iemguts/help/propertybang-help.pd 2008-09-01 13:59:31 UTC (rev 10271)
+++ trunk/externals/iem/iemguts/help/propertybang-help.pd 2008-09-01 14:36:04 UTC (rev 10272)
@@ -11,7 +11,7 @@
#X restore 86 152 pd with propertybang;
#X obj 86 176 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
-#X text 174 44 enables the "property" menu for abstractions;
+#X text 184 44 enables the "property" menu for abstractions;
#X text 90 77 usage:;
#X text 140 77 put a [propertybang] object into your abstraction;
#X text 139 94 put your abstraction into your patch;
Added: trunk/externals/iem/iemguts/help/sendcanvas-help.pd
===================================================================
--- trunk/externals/iem/iemguts/help/sendcanvas-help.pd (rev 0)
+++ trunk/externals/iem/iemguts/help/sendcanvas-help.pd 2008-09-01 14:36:04 UTC (rev 10272)
@@ -0,0 +1,27 @@
+#N canvas 251 447 635 427 10;
+#X obj 81 25 sendcanvas;
+#X text 168 27 send messages to a (parent) canvas;
+#X obj 88 151 sendcanvas;
+#X msg 88 130 obj 300 150 f;
+#X text 57 85 this object will send messages to a canvas \; by default
+it will send a message to the canvas containing it:;
+#X text 53 194 but you can also send to a message to a parent-canvas
+(of any depth);
+#N canvas 0 0 781 310 sendcanvas 0;
+#X obj 147 72 inlet;
+#X obj 147 166 sendcanvas 1;
+#X msg 147 126 obj 300 250 print;
+#X text 252 170 "1" means that the message is sent to the parent-patch
+(depth:1);
+#X connect 0 0 2 0;
+#X connect 2 0 1 0;
+#X restore 99 248 pd sendcanvas;
+#X obj 99 229 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X text 80 306 you can basically achieve this functionality with [namecanvas]
+and an ordinary [send] \; so this object is merely convenient as you
+can dynamify a canvas without prior thought to it;
+#X text 58 295 note:;
+#X text 72 390 (c) 2008 IOhannes m zmoelnig;
+#X connect 3 0 2 0;
+#X connect 7 0 6 0;
Copied: trunk/externals/iem/iemguts/src/canvasposition.c (from rev 10270, trunk/externals/iem/iemguts/src/parentposition.c)
===================================================================
--- trunk/externals/iem/iemguts/src/canvasposition.c (rev 0)
+++ trunk/externals/iem/iemguts/src/canvasposition.c 2008-09-01 14:36:04 UTC (rev 10272)
@@ -0,0 +1,144 @@
+
+/******************************************************
+ *
+ * canvasposition - implementation file
+ *
+ * copyleft (c) IOhannes m zm\xF6lnig
+ *
+ * 2007:forum::f\xFCr::uml\xE4ute:2007
+ *
+ * institute of electronic music and acoustics (iem)
+ *
+ ******************************************************
+ *
+ * license: GNU General Public License v.2
+ *
+ ******************************************************/
+
+
+/*
+ * this object provides a way to get and set the position of the containing
+ * abstraction within the parent-patch
+ *
+ * by default the position of the containing abstraction within the parent-patch is
+ * queried
+ * you can give the "depth" as argument;
+ * e.g. [canvasposition 1] will set/get the position of the abstraction containing the
+ * abstraction within its canvas.
+ */
+
+#include "m_pd.h"
+
+#include "g_canvas.h"
+#include "m_imp.h"
+
+/* ------------------------- canvasposition ---------------------------- */
+
+static t_class *canvasposition_class;
+
+typedef struct _canvasposition
+{
+ t_object x_obj;
+ t_canvas *x_canvas;
+
+ t_outlet*xoutlet, *youtlet;
+} t_canvasposition;
+
+
+static void canvasposition_bang(t_canvasposition *x)
+{
+ t_canvas*c=x->x_canvas;
+ t_canvas*c0=0;
+
+ int x1=0, y1=0, width=0, height=0;
+ t_atom alist[2];
+
+ if(!c) return;
+
+
+ x1=c->gl_obj.te_xpix;
+ y1=c->gl_obj.te_ypix;
+
+
+ c0=c->gl_owner;
+ if(c0!=0) {
+ width= (int)(c0->gl_screenx2 - c0->gl_screenx1);
+ height=(int)(c0->gl_screeny2 - c0->gl_screeny1);
+ }
+
+ SETFLOAT(alist, (t_float)width);
+ SETFLOAT(alist+1, (t_float)height);
+ outlet_list(x->youtlet, 0, 2, alist);
+
+ // outlet_float(x->youtlet, y1);
+ SETFLOAT(alist, (t_float)x1);
+ SETFLOAT(alist+1, (t_float)y1);
+ outlet_list(x->xoutlet, 0, 2, alist);
+}
+
+static void canvasposition_list(t_canvasposition *x, t_symbol*s, int argc, t_atom*argv)
+{
+ t_canvas*c=x->x_canvas;
+ t_canvas*c0=0;
+ int dx, dy;
+
+ if(!c) return;
+ c0=c->gl_owner;
+
+ if(argc==0){
+ canvasposition_bang(x);
+ return;
+ }
+
+ if(argc!=2 || (A_FLOAT != (argv+0)->a_type) || (A_FLOAT != (argv+1)->a_type)) {
+ pd_error(x, "expected <x> <y> as new position");
+ return;
+ }
+ dx = atom_getint(argv+0) - c->gl_obj.te_xpix;
+ dy = atom_getint(argv+1) - c->gl_obj.te_ypix;
+
+ if(c0&&glist_isvisible(c0)) {
+ gobj_displace((t_gobj*)c, c0, dx, dy);
+ canvas_fixlinesfor(c0, (t_text*)c);
+ } else {
+ c->gl_obj.te_xpix+=dx;
+ c->gl_obj.te_ypix+=dy;
+ }
+}
+
+static void canvasposition_free(t_canvasposition *x)
+{
+ outlet_free(x->xoutlet);
+ outlet_free(x->youtlet);
+}
+
+static void *canvasposition_new(t_floatarg f)
+{
+ t_canvasposition *x = (t_canvasposition *)pd_new(canvasposition_class);
+ t_glist *glist=(t_glist *)canvas_getcurrent();
+ t_canvas *canvas=(t_canvas*)glist_getcanvas(glist);
+ int depth=(int)f;
+
+ if(depth<0)depth=0;
+ while(depth && canvas) {
+ canvas=canvas->gl_owner;
+ depth--;
+ }
+
+ x->x_canvas = canvas;
+
+ x->xoutlet=outlet_new(&x->x_obj, &s_list);
+ x->youtlet=outlet_new(&x->x_obj, &s_list);
+
+ return (x);
+}
+
+void canvasposition_setup(void)
+{
+ canvasposition_class = class_new(gensym("canvasposition"),
+ (t_newmethod)canvasposition_new, (t_method)canvasposition_free,
+ sizeof(t_canvasposition), 0,
+ A_DEFFLOAT, 0);
+ class_addbang(canvasposition_class, (t_method)canvasposition_bang);
+ class_addlist(canvasposition_class, (t_method)canvasposition_list);
+}
Property changes on: trunk/externals/iem/iemguts/src/canvasposition.c
___________________________________________________________________
Added: svn:mergeinfo
+
Deleted: trunk/externals/iem/iemguts/src/parentposition.c
===================================================================
--- trunk/externals/iem/iemguts/src/parentposition.c 2008-09-01 13:59:31 UTC (rev 10271)
+++ trunk/externals/iem/iemguts/src/parentposition.c 2008-09-01 14:36:04 UTC (rev 10272)
@@ -1,144 +0,0 @@
-
-/******************************************************
- *
- * parentposition - implementation file
- *
- * copyleft (c) IOhannes m zm\xF6lnig
- *
- * 2007:forum::f\xFCr::uml\xE4ute:2007
- *
- * institute of electronic music and acoustics (iem)
- *
- ******************************************************
- *
- * license: GNU General Public License v.2
- *
- ******************************************************/
-
-
-/*
- * this object provides a way to get and set the position of the containing
- * abstraction within the parent-patch
- *
- * by default the position of the containing abstraction within the parent-patch is
- * queried
- * you can give the "depth" as argument;
- * e.g. [parentposition 1] will set/get the position of the abstraction containing the
- * abstraction within its canvas.
- */
-
-#include "m_pd.h"
-
-#include "g_canvas.h"
-#include "m_imp.h"
-
-/* ------------------------- parentposition ---------------------------- */
-
-static t_class *parentposition_class;
-
-typedef struct _parentposition
-{
- t_object x_obj;
- t_canvas *x_canvas;
-
- t_outlet*xoutlet, *youtlet;
-} t_parentposition;
-
-
-static void parentposition_bang(t_parentposition *x)
-{
- t_canvas*c=x->x_canvas;
- t_canvas*c0=0;
-
- int x1=0, y1=0, width=0, height=0;
- t_atom alist[2];
-
- if(!c) return;
-
-
- x1=c->gl_obj.te_xpix;
- y1=c->gl_obj.te_ypix;
-
-
- c0=c->gl_owner;
- if(c0!=0) {
- width= (int)(c0->gl_screenx2 - c0->gl_screenx1);
- height=(int)(c0->gl_screeny2 - c0->gl_screeny1);
- }
-
- SETFLOAT(alist, (t_float)width);
- SETFLOAT(alist+1, (t_float)height);
- outlet_list(x->youtlet, 0, 2, alist);
-
- // outlet_float(x->youtlet, y1);
- SETFLOAT(alist, (t_float)x1);
- SETFLOAT(alist+1, (t_float)y1);
- outlet_list(x->xoutlet, 0, 2, alist);
-}
-
-static void parentposition_list(t_parentposition *x, t_symbol*s, int argc, t_atom*argv)
-{
- t_canvas*c=x->x_canvas;
- t_canvas*c0=0;
- int dx, dy;
-
- if(!c) return;
- c0=c->gl_owner;
-
- if(argc==0){
- parentposition_bang(x);
- return;
- }
-
- if(argc!=2 || (A_FLOAT != (argv+0)->a_type) || (A_FLOAT != (argv+1)->a_type)) {
- pd_error(x, "expected <x> <y> as new position");
- return;
- }
- dx = atom_getint(argv+0) - c->gl_obj.te_xpix;
- dy = atom_getint(argv+1) - c->gl_obj.te_ypix;
-
- if(c0&&glist_isvisible(c0)) {
- gobj_displace((t_gobj*)c, c0, dx, dy);
- canvas_fixlinesfor(c0, (t_text*)c);
- } else {
- c->gl_obj.te_xpix+=dx;
- c->gl_obj.te_ypix+=dy;
- }
-}
-
-static void parentposition_free(t_parentposition *x)
-{
- outlet_free(x->xoutlet);
- outlet_free(x->youtlet);
-}
-
-static void *parentposition_new(t_floatarg f)
-{
- t_parentposition *x = (t_parentposition *)pd_new(parentposition_class);
- t_glist *glist=(t_glist *)canvas_getcurrent();
- t_canvas *canvas=(t_canvas*)glist_getcanvas(glist);
- int depth=(int)f;
-
- if(depth<0)depth=0;
- while(depth && canvas) {
- canvas=canvas->gl_owner;
- depth--;
- }
-
- x->x_canvas = canvas;
-
- x->xoutlet=outlet_new(&x->x_obj, &s_list);
- x->youtlet=outlet_new(&x->x_obj, &s_list);
-
- return (x);
-}
-
-void parentposition_setup(void)
-{
- parentposition_class = class_new(gensym("parentposition"),
- (t_newmethod)parentposition_new, (t_method)parentposition_free,
- sizeof(t_parentposition), 0,
- A_DEFFLOAT, 0);
- class_addbang(parentposition_class, (t_method)parentposition_bang);
- class_addlist(parentposition_class, (t_method)parentposition_list);
-}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Pd-cvs
mailing list