From 31299c2678a4c357d47e8a4527c3a34fdab94914 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Tue, 24 Mar 2009 15:24:46 +0000 Subject: illustrated getting from parent patches svn path=/trunk/externals/hcs/; revision=10897 --- canvas_name-help.pd | 156 ++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 138 insertions(+), 18 deletions(-) diff --git a/canvas_name-help.pd b/canvas_name-help.pd index ee83f78..126874b 100644 --- a/canvas_name-help.pd +++ b/canvas_name-help.pd @@ -1,13 +1,13 @@ -#N canvas 276 245 480 392 10; -#X obj 156 276 sys_gui; -#X symbolatom 274 192 0 0 0 0 - - -; -#X obj 261 131 loadbang; -#X msg 156 246 \$2 configure -background \$1; -#X obj 156 217 pack symbol symbol; -#X obj 106 50 colorpanel; -#X obj 87 342 pddp/pddplink http://tcl.tk/man/tcl8.4/TkCmd/canvas.htm +#N canvas 73 22 480 392 10; +#X obj 136 290 sys_gui; +#X symbolatom 254 206 0 0 0 0 - - -; +#X obj 241 145 loadbang; +#X msg 136 260 \$2 configure -background \$1; +#X obj 136 231 pack symbol symbol; +#X obj 86 64 colorpanel; +#X obj 67 356 pddp/pddplink http://tcl.tk/man/tcl8.4/TkCmd/canvas.htm ; -#X text 54 316 for more options:; +#X text 34 330 for more options:; #N canvas 685 90 416 325 generate 0; #X obj 81 23 inlet; #X obj 82 262 outlet; @@ -38,16 +38,136 @@ #X connect 11 0 12 2; #X connect 12 0 13 0; #X connect 13 0 1 0; -#X restore 106 71 pd generate web color; -#X obj 106 6 bng 35 250 50 0 empty empty empty 17 7 0 10 -204786 -1 +#X restore 86 85 pd generate web color; +#X obj 86 20 bng 35 250 50 0 empty empty empty 17 7 0 10 -204786 -1 -1; -#X symbolatom 126 99 10 0 0 0 - - -; -#X obj 218 279 print; -#X obj 261 168 canvas_name; -#X msg 158 129 grey; -#X msg 168 148 white; -#X msg 178 169 pink; -#X msg 182 191 black; +#X symbolatom 106 113 10 0 0 0 - - -; +#X obj 198 293 print; +#X obj 241 182 canvas_name; +#X msg 138 143 grey; +#X msg 148 162 white; +#X msg 158 183 pink; +#X msg 162 205 black; +#N canvas 373 75 457 313 get 0; +#X symbolatom 42 225 0 0 0 0 - - -; +#X obj 42 204 canvas_name; +#X obj 42 181 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X symbolatom 126 225 0 0 0 0 - - -; +#X obj 126 181 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#N canvas 0 22 450 300 subname 0; +#X obj 117 21 inlet; +#X obj 119 265 outlet; +#X obj 107 137 canvas_name; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X restore 126 204 pd subname; +#X symbolatom 209 225 0 0 0 0 - - -; +#X obj 209 181 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#N canvas 496 269 450 300 get 0; +#X obj 117 21 inlet; +#X obj 119 265 outlet; +#X obj 109 137 canvas_name 1; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X restore 209 204 pd get parent; +#X symbolatom 73 118 0 0 0 0 - - -; +#X obj 73 74 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X text 47 26 You can get the canvas name of other patches that this +one is embedded in by setting the argument to the level:; +#X obj 73 97 canvas_name 1; +#X text 78 137 ^-- this is the same as the top level of this help patch +; +#X symbolatom 299 225 0 0 0 0 - - -; +#X obj 299 181 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#N canvas 496 269 450 300 get 0; +#X obj 117 21 inlet; +#X obj 119 265 outlet; +#X obj 109 137 canvas_name 2; +#X connect 0 0 2 0; +#X connect 2 0 1 0; +#X restore 299 204 pd get parent of parent; +#N canvas 169 157 481 329 get 0; +#X symbolatom 114 120 0 0 0 0 - - -; +#X obj 101 96 canvas_name 1; +#X symbolatom 119 205 0 0 0 0 - - -; +#X obj 84 66 loadbang; +#X obj 106 181 canvas_name 0; +#X symbolatom 43 204 0 0 0 0 - - -; +#X obj 30 180 canvas_name; +#N canvas 0 22 450 300 add 0; +#X symbolatom 175 224 0 0 0 0 - - -; +#X obj 162 200 canvas_name 1; +#X symbolatom 264 224 0 0 0 0 - - -; +#X obj 251 200 canvas_name 2; +#X symbolatom 85 224 0 0 0 0 - - -; +#X obj 175 101 loadbang; +#X obj 72 200 canvas_name 0; +#X text 59 28 Now 0 is this subpatch \, 1 is the "pd get from parent" +subpatch that this subpatch is in \, and 2 is the "canvas_name-help.pd" +patch.; +#X connect 1 0 0 0; +#X connect 3 0 2 0; +#X connect 5 0 1 0; +#X connect 5 0 3 0; +#X connect 5 0 6 0; +#X connect 6 0 4 0; +#X restore 164 267 pd add another level; +#X text 31 14 Following the interface of [getdir] and others \, you +can get the canvas name from parent patches by using a float to represent +how many levels up you want to get:; +#X text 36 237 To see it in action with a 2nd level \, check this subpatch: +; +#X text 189 204 <-- these two are the same since Pd inits to 0; +#X text 187 119 <-- this gets the canvas name from the parent; +#X connect 1 0 0 0; +#X connect 3 0 1 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 4 0 2 0; +#X connect 6 0 5 0; +#X restore 183 267 pd get from parent; +#X text 43 268 some more examples:; +#X connect 1 0 0 0; +#X connect 2 0 1 0; +#X connect 4 0 5 0; +#X connect 5 0 3 0; +#X connect 7 0 8 0; +#X connect 8 0 6 0; +#X connect 10 0 12 0; +#X connect 12 0 9 0; +#X connect 15 0 16 0; +#X connect 16 0 14 0; +#X restore 265 51 pd get from different levels; +#N canvas 0 22 450 300 get 0; +#X symbolatom 73 259 0 0 0 0 - - -; +#X obj 73 215 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X symbolatom 72 176 0 0 0 0 - - -; +#X obj 72 132 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 72 155 canvas_name pd-test; +#X obj 73 238 canvas_name pd-canvas_name-help.pd; +#N canvas 0 22 450 300 test 0; +#X restore 221 155 pd test; +#X obj 220 77 namecanvas myname; +#X symbolatom 73 99 0 0 0 0 - - -; +#X obj 73 55 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 +-1; +#X obj 73 78 canvas_name myname; +#X text 53 14 You can also use the canvas receive symbol to get the +canvas_name:; +#X connect 1 0 5 0; +#X connect 3 0 4 0; +#X connect 4 0 2 0; +#X connect 5 0 0 0; +#X connect 9 0 10 0; +#X connect 10 0 8 0; +#X restore 265 76 pd get by canvas receive symbol; #X connect 2 0 12 0; #X connect 3 0 0 0; #X connect 3 0 11 0; -- cgit v1.2.1