#N struct drawsymbol-help-template float x float y symbol cat symbol
dog float dog-vis;
#N canvas 428 36 555 619 10;
#X obj 0 595 cnv 15 552 21 empty \$0-pddp.cnv.footer empty 20 12 0
14 -228856 -66577 0;
#X obj 0 0 cnv 15 552 40 empty \$0-pddp.cnv.header drawsymbol 3 12
0 18 -204280 -1 0;
#X obj 0 113 cnv 3 550 3 empty \$0-pddp.cnv.inlets inlets 8 12 0 13
-228856 -1 0;
#N canvas 485 286 494 344 META 0;
#X text 12 105 LIBRARY internal;
#X text 12 145 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 165 RELEASE_DATE 2009-06-12;
#X text 12 45 LICENSE SIBSD;
#X text 12 125 AUTHOR Miller Puckette;
#X text 12 185 HELP_PATCH_AUTHORS Updated for Pd version 0.39. Jonathan
Wilkes revised the patch to conform to the PDDP template for Pd version
0.42.;
#X text 12 85 INLET_0 float;
#X text 12 65 DESCRIPTION display a symbolic field of a template;
#X text 12 25 KEYWORDS control data_structure symbol_op;
#X text 12 5 ALIAS drawnumber;
#X restore 500 597 pd META;
#X obj 0 188 cnv 3 550 3 empty \$0-pddp.cnv.outlets outlets 8 12 0
13 -228856 -1 0;
#X obj 0 216 cnv 3 550 3 empty \$0-pddp.cnv.argument arguments 8 12
0 13 -228856 -1 0;
#X obj 0 440 cnv 3 550 3 empty \$0-pddp.cnv.more_info more_info 8 12
0 13 -228856 -1 0;
#N canvas 212 456 428 169 Related_objects 0;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X obj 192 42 drawpolygon;
#X obj 273 42 plot;
#X obj 312 42 drawcurve;
#X text 7 78 Other Data Structure Objects;
#X obj 245 112 element;
#X obj 76 112 get;
#X obj 107 112 set;
#X obj 136 112 getsize;
#X obj 190 112 setsize;
#X obj 22 112 pointer;
#X obj 17 42 drawnumber;
#X obj 92 42 struct example;
#X text 7 1 [drawsymbol] Related Objects;
#X restore 101 597 pd Related_objects;
#X obj 78 122 cnv 17 3 55 empty \$0-pddp.cnv.let.0 0 5 9 0 16 -228856
-162280 0;
#X text 98 121 float;
#X text 98 161 list;
#X text 98 192 (none);
#X text 179 60 <- subpatch to display the data structures;
#X obj 477 11 drawsymbol;
#X text 98 444 Keyboard entry is not yet supported for drawsymbol.
;
#N canvas 32 180 428 164 drawsymbol-help-data 0;
#X scalar drawsymbol-help-template 101 61 whiskers rex 1 \;;
#X scalar drawsymbol-help-template 251 61 converse tinker 1 \;;
#X obj 1 1 cnv 15 425 20 empty empty empty 20 12 2 14 -204280 -195568
0;
#X text 21 91 Each dog/cat pair is one scalar. You can click each in
editmode to get a bounding blue box and move them around. You can also
right-click on the scalar and choose "Properties" to change its field
values (remember to click "Ok" when you are finished).;
#X text 6 1 Window to Display Data Structures;
#X restore 28 62 pd drawsymbol-help-data;
#N canvas 123 102 428 537 drawsymbol-help-template 0;
#X obj 23 101 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
;
#N canvas 441 67 465 142 init 0;
#X obj 24 96 outlet;
#X obj 24 30 loadbang;
#X msg 24 52 traverse pd-drawsymbol-help-data \, next;
#X obj 24 74 pointer;
#X text 88 75 This just sends a pointer to the [set] object in the
parent patch.;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 0 0;
#X restore 235 339 pd init;
#X obj 22 322 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -204280 -1 0;
#X obj 22 363 set drawsymbol-help-template dog-vis;
#X obj 22 457 struct drawsymbol-help-template float x float y symbol
cat symbol dog float dog-vis;
#X obj 23 200 drawsymbol -v dog-vis dog 0 -15 900 dog=;
#X text 20 38 [drawsymbol] is used below to display the values of two
fields- dog and cat. These two fields are defined in the template "drawnumber-help-template"
located at the bottom of this subpatch.;
#X text 42 100 "0" makes both "cat" fields invisible;
#X text 20 148 This [drawsymbol] object displays the field "cat". A
toggle is connected to the inlet- this toggles visibility globally
(i.e. \, for all instances of the data structure).;
#X text 40 319 "0" makes a single instance of a "dog" field invisible
;
#X text 19 490 This object defines the fields for this template. Their
values were initialized when the help patch was created.;
#X text 19 219 The [drawsymbol] object for "dog" instead uses the -v
flag. This controls visilibility of the "dog" field for only one instance
of the data structure. "-v dog-vis" means the value of the field "dog-vis"
determines whether "dog" will be visible. If you use the -v flag you
can no longer use the inlet of this [drawsymbol] object to control
visibility globally.;
#X text 19 382 Using the [set] object \, we can turn visibility on
and off for an instance of the data structure by changing the value
of "dog-vis". Notice when you click the toggle \, visibility only changes
for one "dog"- the one which the [set] object is currently pointing
to.;
#X text 7 1 [drawsymbol] subpatch for data structure template;
#X obj 23 130 drawsymbol cat 0 0 0 cat=;
#X connect 0 0 15 0;
#X connect 1 0 4 1;
#X connect 2 0 4 0;
#X restore 28 84 pd drawsymbol-help-template;
#X text 201 84 <- click this subpatch to see how [drawsymbol] is used.
;
#X text 11 23 display a symbolic field of a template;
#X text 98 460 Note: Attempting to scroll a symbol like a number will
output the following message to the console (for each pixel scrolled!):
drawnumber_motion: symbol;
#X text 98 503 Unfortunately \, [append] does not accept symbols. Currently
\, you must use [set] with the "-symbol" flag to set symbolic fields
like those shown in the "drawsymbol-help-template" subpatch above.
;
#X text 168 161 - a list will be truncated to the first element.;
#X text 98 420 Note: you cannot use both the -n and -v flag.;
#X text 80 236 0-2 flags;
#X text 168 341 - RGB color (0=black \, 999=white \, 900=red \, 90=green
\, 9=blue \, 555=grey \, etc.).;
#X text 168 369 - (optional) label ("cat=" for instance).;
#X text 168 309 - relative x coordinate.;
#X text 168 325 - relative y coordinate.;
#X text 80 309 2) *;
#X text 80 325 3) *;
#X text 80 341 4) *;
#X text 168 292 - the field name of the symbol to draw.;
#X text 168 236 - "-n" flag to make the symbol invisible initially.
;
#X text 168 253 - a "-v [variable]" flag to assign a variable to make
the symbol visible/invisible.;
#X text 168 121 - [drawsymbol] has a single inlet to toggle visibility
of the number. A zero makes it invisible. Any nonzero value makes it
visible.;
#X text 79 253 (symbol atoms);
#X text 80 292 1) symbol atom;
#X text 80 369 5) symbol atom;
#X text 98 388 * Any of these can be numbers (float) or field names
(symbol atom).;
#X obj 4 597 pddp/pddplink all_about_help_patches.pd -text Usage Guide
;
#X obj 326 556 pddp/pddplink ../4.data.structures/09.scaling.pd -text
doc/4.data.structure/09.scaling.pd;
#X obj 326 571 pddp/pddplink ../4.data.structures/10.onoff.pd -text
doc/4.data.structures/10.onoff.pd;
#X obj 98 571 pddp/pddplink all_about_z_order.pd;
#X obj 98 556 pddp/pddplink scalar-help.pd;
