graffle 0.1.8 → 0.1.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. data/History.txt +5 -0
  2. data/Manifest.txt +22 -11
  3. data/README.txt +2 -2
  4. data/Rakefile.hoe +2 -1
  5. data/design-notes/graphical-tests-for-rails-objects.graffle +644 -0
  6. data/examples/objects with notes.expected +5 -0
  7. data/examples/objects with notes.graffle +338 -0
  8. data/examples/objects with notes.rb +42 -0
  9. data/examples/rails-workflow-test.expected +1 -1
  10. data/examples/rails-workflow-test.graffle/data.plist +86 -7
  11. data/examples/rails-workflow-test.rb +11 -9
  12. data/graffle.tmproj +82 -190
  13. data/lib/graffle.rb +19 -2
  14. data/lib/graffle/point.rb +1 -2
  15. data/lib/graffle/stereotypes.rb +62 -16
  16. data/lib/graffle/version.rb +1 -1
  17. data/lib/graphical_tests_for_rails.rb +8 -5
  18. data/lib/graphical_tests_for_rails/graphic-volunteers.rb +75 -0
  19. data/lib/graphical_tests_for_rails/orderings.rb +90 -84
  20. data/lib/graphical_tests_for_rails/picture-appliers.rb +225 -0
  21. data/lib/graphical_tests_for_rails/text-appliers.rb +135 -0
  22. data/lib/graphical_tests_for_rails/volunteer-pool.rb +115 -0
  23. data/test/abstract-graphic-tests.rb +48 -0
  24. data/test/document-tests.rb +5 -5
  25. data/test/examples-tests.rb +42 -0
  26. data/test/graphical_tests_for_rails/{graphic-interpreter-tests.rb → deprecated-graphic-interpreter-tests.rb} +11 -21
  27. data/test/graphical_tests_for_rails/graphic-volunteer-tests.rb +218 -0
  28. data/test/graphical_tests_for_rails/in-workflow-order-tests.rb +1 -1
  29. data/test/graphical_tests_for_rails/picture-applier-tests.rb +215 -0
  30. data/test/graphical_tests_for_rails/{text-interpreter-tests.rb → text-applier-tests.rb} +17 -3
  31. data/test/graphical_tests_for_rails/util.rb +16 -0
  32. data/test/line-graphic-tests.rb +9 -1
  33. data/test/note-tests.rb +62 -0
  34. data/test/{graffle-file-types → sample-files}/as-a-package.graffle/data.plist +0 -0
  35. data/test/{graffle-file-types → sample-files}/as-a-package.graffle/image1.png +0 -0
  36. data/test/{graffle-file-types → sample-files}/as-a-package.graffle/image2.png +0 -0
  37. data/test/{graffle-file-types → sample-files}/as-a-package.graffle/image3.png +0 -0
  38. data/test/{graffle-file-types → sample-files}/multiple-canvases.graffle +0 -0
  39. data/test/{graffle-file-types → sample-files}/opening-tests.rb +9 -4
  40. data/test/{graffle-file-types → sample-files}/two-boxes-and-a-line.graffle +0 -0
  41. data/test/shaped-graphic-tests.rb +2 -3
  42. metadata +42 -18
  43. data/lib/graphical_tests_for_rails/interpreters.rb +0 -147
  44. data/test/tests-of-examples/workflow-slowtests.rb +0 -19
data/History.txt CHANGED
@@ -1,3 +1,8 @@
1
+ Version 0.1.9
2
+ * Added support for annotations.
3
+ * New PictureApplier to replace GraphicInterpreter.
4
+ * Deprecate Graffle.parse. Use Graffle.parse_file or Graffle.parse_xml
5
+
1
6
  Version 0.1.8
2
7
  * Can now trace workflows in documents.
3
8
  * A rails-ish example added.
data/Manifest.txt CHANGED
@@ -4,6 +4,10 @@ Manifest.txt
4
4
  README.txt
5
5
  Rakefile
6
6
  Rakefile.hoe
7
+ design-notes/graphical-tests-for-rails-objects.graffle
8
+ examples/objects with notes.expected
9
+ examples/objects with notes.graffle
10
+ examples/objects with notes.rb
7
11
  examples/rails-workflow-test.expected
8
12
  examples/rails-workflow-test.graffle/data.plist
9
13
  examples/rails-workflow-test.graffle/image1.png
@@ -19,30 +23,37 @@ lib/graffle/stereotypes.rb
19
23
  lib/graffle/styled-text-reader.rb
20
24
  lib/graffle/version.rb
21
25
  lib/graphical_tests_for_rails.rb
22
- lib/graphical_tests_for_rails/interpreters.rb
26
+ lib/graphical_tests_for_rails/graphic-volunteers.rb
23
27
  lib/graphical_tests_for_rails/orderings.rb
28
+ lib/graphical_tests_for_rails/picture-appliers.rb
29
+ lib/graphical_tests_for_rails/text-appliers.rb
30
+ lib/graphical_tests_for_rails/volunteer-pool.rb
24
31
  setup.rb
25
32
  test/abstract-graphic-tests.rb
26
33
  test/array-and-hash-stereotyping-tests.rb
27
34
  test/document-tests.rb
28
- test/graffle-file-types/as-a-package.graffle/data.plist
29
- test/graffle-file-types/as-a-package.graffle/image1.png
30
- test/graffle-file-types/as-a-package.graffle/image2.png
31
- test/graffle-file-types/as-a-package.graffle/image3.png
32
- test/graffle-file-types/multiple-canvases.graffle
33
- test/graffle-file-types/opening-tests.rb
34
- test/graffle-file-types/two-boxes-and-a-line.graffle
35
- test/graphical_tests_for_rails/graphic-interpreter-tests.rb
35
+ test/examples-tests.rb
36
+ test/graphical_tests_for_rails/deprecated-graphic-interpreter-tests.rb
37
+ test/graphical_tests_for_rails/graphic-volunteer-tests.rb
36
38
  test/graphical_tests_for_rails/in-workflow-order-tests.rb
37
- test/graphical_tests_for_rails/text-interpreter-tests.rb
39
+ test/graphical_tests_for_rails/picture-applier-tests.rb
40
+ test/graphical_tests_for_rails/text-applier-tests.rb
41
+ test/graphical_tests_for_rails/util.rb
38
42
  test/group-tests.rb
39
43
  test/hacks-tests.rb
40
44
  test/line-graphic-tests.rb
45
+ test/note-tests.rb
41
46
  test/point-tests.rb
47
+ test/sample-files/as-a-package.graffle/data.plist
48
+ test/sample-files/as-a-package.graffle/image1.png
49
+ test/sample-files/as-a-package.graffle/image2.png
50
+ test/sample-files/as-a-package.graffle/image3.png
51
+ test/sample-files/multiple-canvases.graffle
52
+ test/sample-files/opening-tests.rb
53
+ test/sample-files/two-boxes-and-a-line.graffle
42
54
  test/set-standalone-test-paths.rb
43
55
  test/shaped-graphic-tests.rb
44
56
  test/sheet-tests.rb
45
57
  test/styled-text-reader-tests.rb
46
- test/tests-of-examples/workflow-slowtests.rb
47
58
  test/text-tests.rb
48
59
  test/util.rb
data/README.txt CHANGED
@@ -1,4 +1,4 @@
1
- This is a package that parses OmniGraffle documents. {Omnigraffle}[http://www.omnigroup.com/applications/omnigraffle/] is a drawing program only available on the Mac.
1
+ This is a package that parses OmniGraffle documents. {Omnigraffle}[http://www.omnigroup.com/applications/omnigraffle/] is a drawing program only available on the Mac. It also contains GraphicalTestsForRails, a package that helps you use OmniGraffle documents as executable tests.
2
2
 
3
3
  OmniGraffle documents are stored in Apple {plist format}[http://developer.apple.com/documentation/Cocoa/Conceptual/PropertyLists/Articles/XMLPListsConcept.html]. This package first
4
4
  uses the {Plist}[http://rubyforge.org/projects/plist/] gem to read the document and convert it into a structure of
@@ -6,7 +6,7 @@ _nodes_ (hashes and arrays). It then descends the structure and decorates the no
6
6
 
7
7
  Here's a short example of some of the accessors in action:
8
8
 
9
- document = Graffle.parse("two-boxes-and-a-line.graffle")
9
+ document = Graffle.parse_file("two-boxes-and-a-line.graffle")
10
10
  line = document.first_sheet.first_line
11
11
  puts line.tail.content.as_plain_text
12
12
  puts line.head.content.as_plain_text
data/Rakefile.hoe CHANGED
@@ -20,7 +20,8 @@ Hoe.new("graffle", Graffle::Version) do |p|
20
20
  p.email = "marick@exampler.com"
21
21
  p.extra_deps = [['extensions', '>= 0.6.0'],
22
22
  ['plist', '>= 3.0.0'],
23
- ['s4t-utils', '>= 1.0.0']]
23
+ ['s4t-utils', '>= 1.0.1'],
24
+ ['fluid', '>= 1.0.1']]
24
25
  p.test_globs = "test/**/*-tests.rb"
25
26
  p.rdoc_pattern = %r{README.txt|History.txt|lib/graphical_tests_for_rails.rb|lib/graffle.rb|#{second_level_to_document}|lib/graphical_tests_for_rails/.+\.rb}
26
27
  p.url = "http://graffle.rubyforge.org"
@@ -0,0 +1,644 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>ActiveLayerIndex</key>
6
+ <integer>0</integer>
7
+ <key>AutoAdjust</key>
8
+ <true/>
9
+ <key>CanvasColor</key>
10
+ <dict>
11
+ <key>w</key>
12
+ <string>1</string>
13
+ </dict>
14
+ <key>CanvasOrigin</key>
15
+ <string>{0, 0}</string>
16
+ <key>CanvasScale</key>
17
+ <real>1</real>
18
+ <key>ColumnAlign</key>
19
+ <integer>1</integer>
20
+ <key>ColumnSpacing</key>
21
+ <real>36</real>
22
+ <key>CreationDate</key>
23
+ <string>2007-07-21 13:07:58 -0500</string>
24
+ <key>Creator</key>
25
+ <string>Brian Marick</string>
26
+ <key>DisplayScale</key>
27
+ <string>1 in = 1 in</string>
28
+ <key>GraphDocumentVersion</key>
29
+ <integer>5</integer>
30
+ <key>GraphicsList</key>
31
+ <array>
32
+ <dict>
33
+ <key>Bounds</key>
34
+ <string>{{144.9, 23}, {289, 14}}</string>
35
+ <key>Class</key>
36
+ <string>ShapedGraphic</string>
37
+ <key>FitText</key>
38
+ <string>YES</string>
39
+ <key>Flow</key>
40
+ <string>Resize</string>
41
+ <key>FontInfo</key>
42
+ <dict>
43
+ <key>Color</key>
44
+ <dict>
45
+ <key>w</key>
46
+ <string>0</string>
47
+ </dict>
48
+ <key>Font</key>
49
+ <string>Helvetica</string>
50
+ <key>Size</key>
51
+ <real>12</real>
52
+ </dict>
53
+ <key>ID</key>
54
+ <integer>179</integer>
55
+ <key>Notes</key>
56
+ <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf420
57
+ {\fonttbl\f0\fswiss\fcharset77 Helvetica;}
58
+ {\colortbl;\red255\green255\blue255;}
59
+ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural\pardirnatural
60
+
61
+ \f0\fs24 \cf0 type: button\
62
+ name: run\
63
+ active: no}</string>
64
+ <key>Shape</key>
65
+ <string>Rectangle</string>
66
+ <key>Style</key>
67
+ <dict>
68
+ <key>fill</key>
69
+ <dict>
70
+ <key>Color</key>
71
+ <dict>
72
+ <key>b</key>
73
+ <string>0.901961</string>
74
+ <key>g</key>
75
+ <string>0.901961</string>
76
+ <key>r</key>
77
+ <string>0.901961</string>
78
+ </dict>
79
+ <key>Draws</key>
80
+ <string>NO</string>
81
+ </dict>
82
+ <key>shadow</key>
83
+ <dict>
84
+ <key>Draws</key>
85
+ <string>NO</string>
86
+ </dict>
87
+ <key>stroke</key>
88
+ <dict>
89
+ <key>Color</key>
90
+ <dict>
91
+ <key>b</key>
92
+ <string>0.592391</string>
93
+ <key>g</key>
94
+ <string>0.592391</string>
95
+ <key>r</key>
96
+ <string>0.592391</string>
97
+ </dict>
98
+ <key>Draws</key>
99
+ <string>NO</string>
100
+ </dict>
101
+ </dict>
102
+ <key>Text</key>
103
+ <dict>
104
+ <key>Text</key>
105
+ <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf420
106
+ {\fonttbl\f0\fswiss\fcharset77 Helvetica;}
107
+ {\colortbl;\red255\green255\blue255;}
108
+ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
109
+
110
+ \f0\fs24 \cf0 Objects that participate in the graphical tests for rails}</string>
111
+ </dict>
112
+ <key>Wrap</key>
113
+ <string>NO</string>
114
+ </dict>
115
+ <dict>
116
+ <key>Bounds</key>
117
+ <string>{{71.5, 375.202}, {187, 52}}</string>
118
+ <key>Class</key>
119
+ <string>ShapedGraphic</string>
120
+ <key>FitText</key>
121
+ <string>YES</string>
122
+ <key>FontInfo</key>
123
+ <dict>
124
+ <key>Color</key>
125
+ <dict>
126
+ <key>w</key>
127
+ <string>0</string>
128
+ </dict>
129
+ <key>Font</key>
130
+ <string>Helvetica</string>
131
+ <key>Size</key>
132
+ <real>12</real>
133
+ </dict>
134
+ <key>ID</key>
135
+ <integer>37</integer>
136
+ <key>Line</key>
137
+ <dict>
138
+ <key>ID</key>
139
+ <integer>36</integer>
140
+ <key>Position</key>
141
+ <real>0.48107233643531799</real>
142
+ <key>RotationType</key>
143
+ <integer>0</integer>
144
+ </dict>
145
+ <key>Shape</key>
146
+ <string>Rectangle</string>
147
+ <key>Style</key>
148
+ <dict>
149
+ <key>shadow</key>
150
+ <dict>
151
+ <key>Draws</key>
152
+ <string>NO</string>
153
+ </dict>
154
+ <key>stroke</key>
155
+ <dict>
156
+ <key>Draws</key>
157
+ <string>NO</string>
158
+ </dict>
159
+ </dict>
160
+ <key>Text</key>
161
+ <dict>
162
+ <key>Text</key>
163
+ <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf420
164
+ {\fonttbl\f0\fswiss\fcharset77 Helvetica;\f1\fswiss\fcharset77 Helvetica-Oblique;}
165
+ {\colortbl;\red255\green255\blue255;}
166
+ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
167
+
168
+ \f0\fs24 \cf0 It does that by converting the \
169
+ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
170
+
171
+ \f1\i graphic
172
+ \f0\i0 into lines of text and then\
173
+ using a... }</string>
174
+ <key>VerticalPad</key>
175
+ <integer>5</integer>
176
+ </dict>
177
+ </dict>
178
+ <dict>
179
+ <key>Class</key>
180
+ <string>LineGraphic</string>
181
+ <key>Head</key>
182
+ <dict>
183
+ <key>ID</key>
184
+ <integer>35</integer>
185
+ </dict>
186
+ <key>ID</key>
187
+ <integer>36</integer>
188
+ <key>OrthogonalBarAutomatic</key>
189
+ <true/>
190
+ <key>OrthogonalBarPosition</key>
191
+ <real>-1</real>
192
+ <key>Points</key>
193
+ <array>
194
+ <string>{165, 355.5}</string>
195
+ <string>{165, 450.5}</string>
196
+ </array>
197
+ <key>Style</key>
198
+ <dict>
199
+ <key>stroke</key>
200
+ <dict>
201
+ <key>HeadArrow</key>
202
+ <string>0</string>
203
+ <key>LineType</key>
204
+ <integer>2</integer>
205
+ <key>TailArrow</key>
206
+ <string>0</string>
207
+ </dict>
208
+ </dict>
209
+ <key>Tail</key>
210
+ <dict>
211
+ <key>ID</key>
212
+ <integer>5</integer>
213
+ </dict>
214
+ </dict>
215
+ <dict>
216
+ <key>Bounds</key>
217
+ <string>{{92.5, 191}, {145, 24}}</string>
218
+ <key>Class</key>
219
+ <string>ShapedGraphic</string>
220
+ <key>FitText</key>
221
+ <string>YES</string>
222
+ <key>FontInfo</key>
223
+ <dict>
224
+ <key>Color</key>
225
+ <dict>
226
+ <key>w</key>
227
+ <string>0</string>
228
+ </dict>
229
+ <key>Font</key>
230
+ <string>Helvetica</string>
231
+ <key>Size</key>
232
+ <real>12</real>
233
+ </dict>
234
+ <key>ID</key>
235
+ <integer>32</integer>
236
+ <key>Line</key>
237
+ <dict>
238
+ <key>ID</key>
239
+ <integer>31</integer>
240
+ <key>Position</key>
241
+ <real>0.52906984090805054</real>
242
+ <key>RotationType</key>
243
+ <integer>0</integer>
244
+ </dict>
245
+ <key>Shape</key>
246
+ <string>Rectangle</string>
247
+ <key>Style</key>
248
+ <dict>
249
+ <key>shadow</key>
250
+ <dict>
251
+ <key>Draws</key>
252
+ <string>NO</string>
253
+ </dict>
254
+ <key>stroke</key>
255
+ <dict>
256
+ <key>Draws</key>
257
+ <string>NO</string>
258
+ </dict>
259
+ </dict>
260
+ <key>Text</key>
261
+ <dict>
262
+ <key>Text</key>
263
+ <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf420
264
+ {\fonttbl\f0\fswiss\fcharset77 Helvetica;}
265
+ {\colortbl;\red255\green255\blue255;}
266
+ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
267
+
268
+ \f0\fs24 \cf0 ...makes use of a set of...}</string>
269
+ <key>VerticalPad</key>
270
+ <integer>5</integer>
271
+ </dict>
272
+ </dict>
273
+ <dict>
274
+ <key>Class</key>
275
+ <string>LineGraphic</string>
276
+ <key>Head</key>
277
+ <dict>
278
+ <key>ID</key>
279
+ <integer>5</integer>
280
+ </dict>
281
+ <key>ID</key>
282
+ <integer>31</integer>
283
+ <key>OrthogonalBarAutomatic</key>
284
+ <true/>
285
+ <key>OrthogonalBarPosition</key>
286
+ <real>-1</real>
287
+ <key>Points</key>
288
+ <array>
289
+ <string>{165, 157.5}</string>
290
+ <string>{165, 243.5}</string>
291
+ </array>
292
+ <key>Style</key>
293
+ <dict>
294
+ <key>stroke</key>
295
+ <dict>
296
+ <key>HeadArrow</key>
297
+ <string>0</string>
298
+ <key>LineType</key>
299
+ <integer>2</integer>
300
+ <key>TailArrow</key>
301
+ <string>0</string>
302
+ </dict>
303
+ </dict>
304
+ <key>Tail</key>
305
+ <dict>
306
+ <key>ID</key>
307
+ <integer>3</integer>
308
+ </dict>
309
+ </dict>
310
+ <dict>
311
+ <key>Bounds</key>
312
+ <string>{{69, 451}, {192, 80}}</string>
313
+ <key>Class</key>
314
+ <string>ShapedGraphic</string>
315
+ <key>ID</key>
316
+ <integer>35</integer>
317
+ <key>Shape</key>
318
+ <string>Rectangle</string>
319
+ <key>Text</key>
320
+ <dict>
321
+ <key>Text</key>
322
+ <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf420
323
+ {\fonttbl\f0\fswiss\fcharset77 Helvetica-Bold;\f1\fswiss\fcharset77 Helvetica;\f2\fswiss\fcharset77 Helvetica-Oblique;
324
+ }
325
+ {\colortbl;\red255\green255\blue255;}
326
+ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\slleading100\qc\pardirnatural
327
+
328
+ \f0\b\fs24 \cf0 TextApplier\
329
+ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
330
+
331
+ \f1\b0 \cf0 converts the lines into a series of messages, which are sent to the
332
+ \f2\i target}</string>
333
+ <key>VerticalPad</key>
334
+ <integer>5</integer>
335
+ </dict>
336
+ <key>TextPlacement</key>
337
+ <integer>0</integer>
338
+ </dict>
339
+ <dict>
340
+ <key>Bounds</key>
341
+ <string>{{330, 126.25}, {192, 153.5}}</string>
342
+ <key>Class</key>
343
+ <string>ShapedGraphic</string>
344
+ <key>ID</key>
345
+ <integer>7</integer>
346
+ <key>Shape</key>
347
+ <string>Rectangle</string>
348
+ <key>Text</key>
349
+ <dict>
350
+ <key>Text</key>
351
+ <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf420
352
+ {\fonttbl\f0\fswiss\fcharset77 Helvetica-Bold;\f1\fswiss\fcharset77 Helvetica;}
353
+ {\colortbl;\red255\green255\blue255;}
354
+ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\slleading100\qc\pardirnatural
355
+
356
+ \f0\b\fs24 \cf0 GraphicVolunteerPool\
357
+ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
358
+
359
+ \f1\b0 \cf0 contains a set of named volunteers that can handle particular kinds of graphics. The
360
+ \f0\b PictureApplier
361
+ \f1\b0 is given those names and asks the pool for the appropriate volunteers. At that time, each volunteer is also told what
362
+ \f0\b TextApplier
363
+ \f1\b0 to use.}</string>
364
+ <key>VerticalPad</key>
365
+ <integer>5</integer>
366
+ </dict>
367
+ <key>TextPlacement</key>
368
+ <integer>0</integer>
369
+ </dict>
370
+ <dict>
371
+ <key>Bounds</key>
372
+ <string>{{270, 558}, {192, 137}}</string>
373
+ <key>Class</key>
374
+ <string>ShapedGraphic</string>
375
+ <key>ID</key>
376
+ <integer>6</integer>
377
+ <key>Shape</key>
378
+ <string>Rectangle</string>
379
+ <key>Text</key>
380
+ <dict>
381
+ <key>Text</key>
382
+ <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf420
383
+ {\fonttbl\f0\fswiss\fcharset77 Helvetica-Bold;\f1\fswiss\fcharset77 Helvetica;}
384
+ {\colortbl;\red255\green255\blue255;}
385
+ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\slleading100\qc\pardirnatural
386
+
387
+ \f0\b\fs24 \cf0 PictureApplier\
388
+ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
389
+
390
+ \f1\b0 \cf0 text}</string>
391
+ <key>VerticalPad</key>
392
+ <integer>5</integer>
393
+ </dict>
394
+ <key>TextPlacement</key>
395
+ <integer>0</integer>
396
+ </dict>
397
+ <dict>
398
+ <key>Bounds</key>
399
+ <string>{{69, 244}, {192, 111}}</string>
400
+ <key>Class</key>
401
+ <string>ShapedGraphic</string>
402
+ <key>ID</key>
403
+ <integer>5</integer>
404
+ <key>Shape</key>
405
+ <string>Rectangle</string>
406
+ <key>Text</key>
407
+ <dict>
408
+ <key>Text</key>
409
+ <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf420
410
+ {\fonttbl\f0\fswiss\fcharset77 Helvetica-Bold;\f1\fswiss\fcharset77 Helvetica;\f2\fswiss\fcharset77 Helvetica-Oblique;
411
+ }
412
+ {\colortbl;\red255\green255\blue255;}
413
+ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\slleading100\qc\pardirnatural
414
+
415
+ \f0\b\fs24 \cf0 GraphicVolunteer\
416
+ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
417
+
418
+ \f1\b0 \cf0 is presented with a graphic. If it has been programmed to match such a
419
+ \f2\i graphic
420
+ \f1\i0 , it volunteers to apply that graphic to a
421
+ \f2\i target
422
+ \f1\i0 .}</string>
423
+ <key>VerticalPad</key>
424
+ <integer>5</integer>
425
+ </dict>
426
+ <key>TextPlacement</key>
427
+ <integer>0</integer>
428
+ </dict>
429
+ <dict>
430
+ <key>Bounds</key>
431
+ <string>{{69, 71}, {192, 86}}</string>
432
+ <key>Class</key>
433
+ <string>ShapedGraphic</string>
434
+ <key>ID</key>
435
+ <integer>3</integer>
436
+ <key>Shape</key>
437
+ <string>Rectangle</string>
438
+ <key>Text</key>
439
+ <dict>
440
+ <key>Text</key>
441
+ <string>{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf420
442
+ {\fonttbl\f0\fswiss\fcharset77 Helvetica-Bold;\f1\fswiss\fcharset77 Helvetica;\f2\fswiss\fcharset77 Helvetica-Oblique;
443
+ }
444
+ {\colortbl;\red255\green255\blue255;}
445
+ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\slleading100\qc\pardirnatural
446
+
447
+ \f0\b\fs24 \cf0 PictureApplier\
448
+ \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\pardirnatural
449
+
450
+ \f1\b0 converts an array of Graffle
451
+ \f2\i graphics
452
+ \f1\i0 into messages that are sent to some
453
+ \f2\i target
454
+ \f1\i0 object.}</string>
455
+ <key>VerticalPad</key>
456
+ <integer>5</integer>
457
+ </dict>
458
+ <key>TextPlacement</key>
459
+ <integer>0</integer>
460
+ </dict>
461
+ </array>
462
+ <key>GridInfo</key>
463
+ <dict/>
464
+ <key>GuidesLocked</key>
465
+ <string>NO</string>
466
+ <key>GuidesVisible</key>
467
+ <string>YES</string>
468
+ <key>HPages</key>
469
+ <integer>1</integer>
470
+ <key>ImageCounter</key>
471
+ <integer>1</integer>
472
+ <key>IsPalette</key>
473
+ <string>NO</string>
474
+ <key>KeepToScale</key>
475
+ <false/>
476
+ <key>Layers</key>
477
+ <array>
478
+ <dict>
479
+ <key>Lock</key>
480
+ <string>NO</string>
481
+ <key>Name</key>
482
+ <string>Layer 1</string>
483
+ <key>Print</key>
484
+ <string>YES</string>
485
+ <key>View</key>
486
+ <string>YES</string>
487
+ </dict>
488
+ </array>
489
+ <key>LayoutInfo</key>
490
+ <dict/>
491
+ <key>LinksVisible</key>
492
+ <string>NO</string>
493
+ <key>MagnetsVisible</key>
494
+ <string>NO</string>
495
+ <key>MasterSheet</key>
496
+ <string>Master 1</string>
497
+ <key>MasterSheets</key>
498
+ <array>
499
+ <dict>
500
+ <key>ActiveLayerIndex</key>
501
+ <integer>0</integer>
502
+ <key>AutoAdjust</key>
503
+ <true/>
504
+ <key>CanvasColor</key>
505
+ <dict>
506
+ <key>w</key>
507
+ <string>1</string>
508
+ </dict>
509
+ <key>CanvasOrigin</key>
510
+ <string>{0, 0}</string>
511
+ <key>CanvasScale</key>
512
+ <real>1</real>
513
+ <key>ColumnAlign</key>
514
+ <integer>1</integer>
515
+ <key>ColumnSpacing</key>
516
+ <real>36</real>
517
+ <key>DisplayScale</key>
518
+ <string>1 in = 1 in</string>
519
+ <key>GraphicsList</key>
520
+ <array/>
521
+ <key>GridInfo</key>
522
+ <dict/>
523
+ <key>HPages</key>
524
+ <integer>1</integer>
525
+ <key>IsPalette</key>
526
+ <string>NO</string>
527
+ <key>KeepToScale</key>
528
+ <false/>
529
+ <key>Layers</key>
530
+ <array>
531
+ <dict>
532
+ <key>Lock</key>
533
+ <string>NO</string>
534
+ <key>Name</key>
535
+ <string>Layer 1</string>
536
+ <key>Print</key>
537
+ <string>YES</string>
538
+ <key>View</key>
539
+ <string>YES</string>
540
+ </dict>
541
+ </array>
542
+ <key>LayoutInfo</key>
543
+ <dict/>
544
+ <key>Orientation</key>
545
+ <integer>2</integer>
546
+ <key>OutlineStyle</key>
547
+ <string>Basic</string>
548
+ <key>RowAlign</key>
549
+ <integer>1</integer>
550
+ <key>RowSpacing</key>
551
+ <real>36</real>
552
+ <key>SheetTitle</key>
553
+ <string>Master 1</string>
554
+ <key>UniqueID</key>
555
+ <integer>1</integer>
556
+ <key>VPages</key>
557
+ <integer>1</integer>
558
+ </dict>
559
+ </array>
560
+ <key>ModificationDate</key>
561
+ <string>2007-07-21 14:14:22 -0500</string>
562
+ <key>Modifier</key>
563
+ <string>Brian Marick</string>
564
+ <key>NotesVisible</key>
565
+ <string>NO</string>
566
+ <key>Orientation</key>
567
+ <integer>2</integer>
568
+ <key>OriginVisible</key>
569
+ <string>NO</string>
570
+ <key>OutlineStyle</key>
571
+ <string>Basic</string>
572
+ <key>PageBreaks</key>
573
+ <string>YES</string>
574
+ <key>PrintInfo</key>
575
+ <dict>
576
+ <key>NSBottomMargin</key>
577
+ <array>
578
+ <string>float</string>
579
+ <string>0</string>
580
+ </array>
581
+ <key>NSLeftMargin</key>
582
+ <array>
583
+ <string>float</string>
584
+ <string>0</string>
585
+ </array>
586
+ <key>NSPaperSize</key>
587
+ <array>
588
+ <string>size</string>
589
+ <string>{612, 792}</string>
590
+ </array>
591
+ <key>NSRightMargin</key>
592
+ <array>
593
+ <string>float</string>
594
+ <string>0</string>
595
+ </array>
596
+ <key>NSTopMargin</key>
597
+ <array>
598
+ <string>float</string>
599
+ <string>0</string>
600
+ </array>
601
+ </dict>
602
+ <key>ReadOnly</key>
603
+ <string>NO</string>
604
+ <key>RowAlign</key>
605
+ <integer>1</integer>
606
+ <key>RowSpacing</key>
607
+ <real>36</real>
608
+ <key>SheetTitle</key>
609
+ <string>Canvas 1</string>
610
+ <key>SmartAlignmentGuidesActive</key>
611
+ <string>YES</string>
612
+ <key>SmartDistanceGuidesActive</key>
613
+ <string>YES</string>
614
+ <key>UniqueID</key>
615
+ <integer>1</integer>
616
+ <key>UseEntirePage</key>
617
+ <true/>
618
+ <key>VPages</key>
619
+ <integer>1</integer>
620
+ <key>WindowInfo</key>
621
+ <dict>
622
+ <key>CurrentSheet</key>
623
+ <string>0</string>
624
+ <key>DrawerOpen</key>
625
+ <false/>
626
+ <key>DrawerTab</key>
627
+ <string>Outline</string>
628
+ <key>DrawerWidth</key>
629
+ <real>209</real>
630
+ <key>FitInWindow</key>
631
+ <false/>
632
+ <key>Frame</key>
633
+ <string>{{152, 0}, {594, 746}}</string>
634
+ <key>ShowRuler</key>
635
+ <false/>
636
+ <key>ShowStatusBar</key>
637
+ <true/>
638
+ <key>VisibleRegion</key>
639
+ <string>{{0, 0}, {579, 632}}</string>
640
+ <key>Zoom</key>
641
+ <string>1</string>
642
+ </dict>
643
+ </dict>
644
+ </plist>