graffle 0.1.8 → 0.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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>