#N struct template3 float x float y float w float h float q;
#N canvas 387 65 585 485 12;
#X floatatom 60 371 0 0 0 0 - - -;
#X floatatom 60 323 0 0 0 0 - - -;
#X floatatom 60 275 0 0 0 0 - - -;
#X floatatom 60 227 0 0 0 0 - - -;
#X floatatom 324 322 0 0 0 0 - - -;
#X floatatom 283 322 0 0 0 0 - - -;
#X floatatom 240 322 0 0 0 0 - - -;
#X obj 197 274 pointer;
#X msg 205 249 next;
#X floatatom 197 322 0 0 0 0 - - -;
#N canvas 2 70 381 425 data3 1;
#X scalar template3 18 85 43 18 741 \;;
#X scalar template3 111 169 75 25 72 \;;
#X scalar template3 111 92 4 15 163 \;;
#X scalar template3 59 61 13 34 563 \;;
#X scalar template3 148 86 37 20 566 \;;
#X scalar template3 173 281 76 48 763 \;;
#X scalar template3 250 187 18 36 543 \;;
#X scalar template3 124 270 78 21 107 \;;
#X scalar template3 264 243 1 33 178 \;;
#X scalar template3 26 88 56 60 132 \;;
#X scalar template3 2 262 66 2 808 \;;
#X scalar template3 270 106 74 51 23 \;;
#X scalar template3 214 286 8 43 180 \;;
#X scalar template3 57 205 51 58 939 \;;
#X scalar template3 216 162 36 43 505 \;;
#X scalar template3 166 146 68 9 614 \;;
#X scalar template3 144 251 56 28 886 \;;
#X scalar template3 228 62 62 1 786 \;;
#X scalar template3 168 229 28 23 654 \;;
#X scalar template3 223 308 73 50 727 \;;
#X restore 269 425 pd data3;
#N canvas 97 433 512 247 template3 0;
#X obj 25 68 filledpolygon q 0 1 0 0 w 0 w h 0 h;
#X text 22 39 five numeric ("float") fields;
#X text 25 88 drawing a rectangle \, interior color q \, border black
and one unit thick \, through the points (0 \, 0) \, (w \, 0) \, (w
\, h) \, and (0 \, h). Note that the three points containing variables
become hot spots for mouse dragging.;
#X obj 24 19 struct template3 float x float y float w float h float
q;
#X text 26 184 Draw the value of q as an Arabic numeral \, at (0 \,
0) \, in black.;
#X obj 26 163 drawnumber q 0 -15 0;
#X restore 269 446 pd template3;
#N canvas 395 94 628 377 stuff 0;
#X obj 352 180 pointer;
#X obj 352 204 t b b p;
#X obj 222 333 append template3 x y w h q;
#X obj 288 9 loadbang;
#X obj 288 62 t b b b;
#X msg 331 138 traverse pd-data3;
#X msg 477 136 \; pd-data3 clear;
#X msg 240 110 0;
#X obj 187 136 f;
#X obj 220 136 + 1;
#X obj 189 112 until;
#X obj 201 159 sel 20;
#X obj 251 159 t b;
#X msg 290 32 bang;
#X obj 25 237 random 300;
#X obj 100 237 random 300;
#X obj 323 236 random 1000;
#X obj 177 237 random 80;
#X obj 252 237 random 80;
#X obj 354 11 inlet;
#X obj 101 263 + 30;
#X connect 0 0 1 0;
#X connect 1 0 14 0;
#X connect 1 1 15 0;
#X connect 1 1 16 0;
#X connect 1 1 17 0;
#X connect 1 1 18 0;
#X connect 1 2 2 5;
#X connect 3 0 13 0;
#X connect 4 0 10 0;
#X connect 4 1 5 0;
#X connect 4 1 7 0;
#X connect 4 2 6 0;
#X connect 5 0 0 0;
#X connect 7 0 8 1;
#X connect 8 0 11 0;
#X connect 8 0 9 0;
#X connect 9 0 8 1;
#X connect 10 0 8 0;
#X connect 11 0 10 1;
#X connect 11 1 12 0;
#X connect 12 0 0 0;
#X connect 13 0 4 0;
#X connect 14 0 2 0;
#X connect 15 0 20 0;
#X connect 16 0 2 4;
#X connect 17 0 2 2;
#X connect 18 0 2 3;
#X connect 19 0 13 0;
#X connect 20 0 2 1;
#X restore 269 404 pd stuff;
#X msg 269 379 remake;
#X obj 197 298 get template3 x y w h q;
#X floatatom 356 322 0 0 0 0 - - -;
#X obj 60 251 set template3 x;
#X obj 60 299 set template3 y;
#X obj 60 347 set template3 w;
#X obj 60 394 set template3 h;
#X floatatom 60 418 0 0 0 0 - - -;
#X obj 60 441 set template3 q;
#X msg 197 226 traverse pd-data3;
#X text 46 5 The "set" object allows you to change numeric values.
In this example \, the template specifies five fields describing the
(x \, y) location \, width \, height \, and color. A new feature is
that the color is also getting printed out under the rectangles. This
is done using the "drawnumber" object in the template.;
#X text 323 378 <- click to randomize;
#X text 45 99 Getting parameter values is as in the previous patch
\; however \, as you traverse the list with "next" messages the new
pointers are also sent to the five "set" objects. These have as arguments
the template name and the name of the field they will set. You can
drag on the five number boxes (after selecting an object with "traverse"
and "next" messages) to change its location \, shape \, and color.
;
#X connect 0 0 19 0;
#X connect 1 0 18 0;
#X connect 2 0 17 0;
#X connect 3 0 16 0;
#X connect 7 0 14 0;
#X connect 7 0 16 1;
#X connect 7 0 17 1;
#X connect 7 0 18 1;
#X connect 7 0 19 1;
#X connect 7 0 21 1;
#X connect 8 0 7 0;
#X connect 13 0 12 0;
#X connect 14 0 9 0;
#X connect 14 1 6 0;
#X connect 14 2 5 0;
#X connect 14 3 4 0;
#X connect 14 4 15 0;
#X connect 20 0 21 0;
#X connect 22 0 7 0;
