graffle 0.1.9 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. data/History.txt +9 -0
  2. data/Manifest.txt +15 -8
  3. data/Rakefile.hoe +1 -2
  4. data/bin/interpret-intentions.rb +51 -0
  5. data/examples/objects with notes.rb +1 -0
  6. data/examples/old-style-rails-workflow-test.expected +11 -0
  7. data/examples/old-style-rails-workflow-test.rb +43 -0
  8. data/examples/rails-workflow-test.rb +7 -6
  9. data/examples/sheet with key.expected +5 -0
  10. data/examples/sheet with key.graffle +0 -0
  11. data/examples/sheet with key.rb +38 -0
  12. data/graffle.tmproj +242 -75
  13. data/lib/graffle.rb +11 -2
  14. data/lib/graffle/nodoc/hacks.rb +1 -0
  15. data/lib/graffle/point.rb +1 -0
  16. data/lib/graffle/stereotypes.rb +34 -3
  17. data/lib/graffle/version.rb +3 -1
  18. data/lib/graphical_tests_for_rails.rb +11 -9
  19. data/lib/graphical_tests_for_rails/jumbled-string-canonicalizer.rb +117 -0
  20. data/lib/graphical_tests_for_rails/orderings.rb +1 -2
  21. data/lib/graphical_tests_for_rails/picture-applier.rb +257 -0
  22. data/lib/graphical_tests_for_rails/stereotype-extensions.rb +111 -0
  23. data/lib/graphical_tests_for_rails/text-appliers.rb +10 -84
  24. data/lib/graphical_tests_for_rails/user-intention.rb +250 -0
  25. data/test/abstract-graphic-tests.rb +10 -0
  26. data/test/container-tests.rb +29 -0
  27. data/test/graphical_tests_for_rails/jumbled-string-canonicalizer-tests.rb +174 -0
  28. data/test/graphical_tests_for_rails/new-style-picture-applier-tests.rb +286 -0
  29. data/test/graphical_tests_for_rails/old-style-picture-applier-tests.rb +129 -0
  30. data/test/graphical_tests_for_rails/user-intention-tests.rb +389 -0
  31. data/test/graphical_tests_for_rails/util.rb +9 -0
  32. data/test/sheet-tests.rb +21 -0
  33. data/test/text-tests.rb +6 -0
  34. metadata +25 -26
  35. data/design-notes/graphical-tests-for-rails-objects.graffle +0 -644
  36. data/lib/graphical_tests_for_rails/graphic-volunteers.rb +0 -75
  37. data/lib/graphical_tests_for_rails/picture-appliers.rb +0 -225
  38. data/lib/graphical_tests_for_rails/volunteer-pool.rb +0 -115
  39. data/test/graphical_tests_for_rails/deprecated-graphic-interpreter-tests.rb +0 -121
  40. data/test/graphical_tests_for_rails/graphic-volunteer-tests.rb +0 -218
  41. data/test/graphical_tests_for_rails/picture-applier-tests.rb +0 -215
  42. data/test/graphical_tests_for_rails/text-applier-tests.rb +0 -111
@@ -3,6 +3,7 @@
3
3
  # Created by Brian Marick on 2007-07-20.
4
4
  # Copyright (c) 2007. All rights reserved.
5
5
 
6
+ require 'graphical_tests_for_rails/text-appliers'
6
7
 
7
8
  class CommandRecorder
8
9
  attr_reader :record
@@ -14,3 +15,11 @@ class CommandRecorder
14
15
  @record << "#{message}(" + args.collect { | a | a.inspect }.join(", ") + ')'
15
16
  end
16
17
  end
18
+
19
+ def besheeted(line, label = nil)
20
+ s = sheet {
21
+ with line
22
+ }
23
+ s.with(label) if label
24
+ s.graphics[0]
25
+ end
@@ -137,6 +137,27 @@ class TestSheets < Test::Unit::TestCase
137
137
 
138
138
  assert_equal([], s.all_lines)
139
139
  end
140
+
141
+ def test_shaped_graphics_can_be_found_by_content
142
+ s = sheet {
143
+ with shaped_graphic {
144
+ with_content "not key"
145
+ }
146
+ with line_graphic {
147
+ graffle_id_is 2
148
+ }
149
+ with shaped_graphic {
150
+ with_note "but not content"
151
+ }
152
+ with line_label {
153
+ for_line 2
154
+ with_content "KEY"
155
+ with_note "hello"
156
+
157
+ }
158
+ }
159
+ assert_equal('hello', s.find_by_content("kEy").notes.as_plain_text)
160
+ end
140
161
 
141
162
 
142
163
  end
@@ -55,5 +55,11 @@ class TestText < Test::Unit::TestCase
55
55
  assert_equal([], Text::Null.new.as_lines)
56
56
  end
57
57
 
58
+ # TODO: Not 100% sure this is a good idea, but it's used in Sheet::find_by_content.
59
+ # I think that I and others will automatically ask for plain text of graphics
60
+ # without text, and empty lines seem the best.
61
+ def test_null_text_returns_empty_string
62
+ assert_equal('', Text::Null.new.as_plain_text)
63
+ end
58
64
 
59
65
  end
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.0
3
3
  specification_version: 1
4
4
  name: graffle
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.1.9
7
- date: 2007-07-25 00:00:00 -05:00
6
+ version: 0.2.0
7
+ date: 2007-08-03 00:00:00 -05:00
8
8
  summary: Working with OmniGraffle documents, including support for Rails integration tests.
9
9
  require_paths:
10
10
  - lib
@@ -35,16 +35,21 @@ files:
35
35
  - README.txt
36
36
  - Rakefile
37
37
  - Rakefile.hoe
38
- - design-notes/graphical-tests-for-rails-objects.graffle
38
+ - bin/interpret-intentions.rb
39
39
  - examples/objects with notes.expected
40
40
  - examples/objects with notes.graffle
41
41
  - examples/objects with notes.rb
42
+ - examples/old-style-rails-workflow-test.expected
43
+ - examples/old-style-rails-workflow-test.rb
42
44
  - examples/rails-workflow-test.expected
43
45
  - examples/rails-workflow-test.graffle/data.plist
44
46
  - examples/rails-workflow-test.graffle/image1.png
45
47
  - examples/rails-workflow-test.graffle/image2.png
46
48
  - examples/rails-workflow-test.graffle/image3.png
47
49
  - examples/rails-workflow-test.rb
50
+ - examples/sheet with key.expected
51
+ - examples/sheet with key.graffle
52
+ - examples/sheet with key.rb
48
53
  - graffle.tmproj
49
54
  - lib/graffle.rb
50
55
  - lib/graffle/.document
@@ -54,21 +59,23 @@ files:
54
59
  - lib/graffle/styled-text-reader.rb
55
60
  - lib/graffle/version.rb
56
61
  - lib/graphical_tests_for_rails.rb
57
- - lib/graphical_tests_for_rails/graphic-volunteers.rb
62
+ - lib/graphical_tests_for_rails/jumbled-string-canonicalizer.rb
58
63
  - lib/graphical_tests_for_rails/orderings.rb
59
- - lib/graphical_tests_for_rails/picture-appliers.rb
64
+ - lib/graphical_tests_for_rails/picture-applier.rb
65
+ - lib/graphical_tests_for_rails/stereotype-extensions.rb
60
66
  - lib/graphical_tests_for_rails/text-appliers.rb
61
- - lib/graphical_tests_for_rails/volunteer-pool.rb
67
+ - lib/graphical_tests_for_rails/user-intention.rb
62
68
  - setup.rb
63
69
  - test/abstract-graphic-tests.rb
64
70
  - test/array-and-hash-stereotyping-tests.rb
71
+ - test/container-tests.rb
65
72
  - test/document-tests.rb
66
73
  - test/examples-tests.rb
67
- - test/graphical_tests_for_rails/deprecated-graphic-interpreter-tests.rb
68
- - test/graphical_tests_for_rails/graphic-volunteer-tests.rb
69
74
  - test/graphical_tests_for_rails/in-workflow-order-tests.rb
70
- - test/graphical_tests_for_rails/picture-applier-tests.rb
71
- - test/graphical_tests_for_rails/text-applier-tests.rb
75
+ - test/graphical_tests_for_rails/jumbled-string-canonicalizer-tests.rb
76
+ - test/graphical_tests_for_rails/new-style-picture-applier-tests.rb
77
+ - test/graphical_tests_for_rails/old-style-picture-applier-tests.rb
78
+ - test/graphical_tests_for_rails/user-intention-tests.rb
72
79
  - test/graphical_tests_for_rails/util.rb
73
80
  - test/group-tests.rb
74
81
  - test/hacks-tests.rb
@@ -91,6 +98,7 @@ files:
91
98
  test_files:
92
99
  - test/abstract-graphic-tests.rb
93
100
  - test/array-and-hash-stereotyping-tests.rb
101
+ - test/container-tests.rb
94
102
  - test/document-tests.rb
95
103
  - test/examples-tests.rb
96
104
  - test/group-tests.rb
@@ -102,11 +110,11 @@ test_files:
102
110
  - test/sheet-tests.rb
103
111
  - test/styled-text-reader-tests.rb
104
112
  - test/text-tests.rb
105
- - test/graphical_tests_for_rails/deprecated-graphic-interpreter-tests.rb
106
- - test/graphical_tests_for_rails/graphic-volunteer-tests.rb
107
113
  - test/graphical_tests_for_rails/in-workflow-order-tests.rb
108
- - test/graphical_tests_for_rails/picture-applier-tests.rb
109
- - test/graphical_tests_for_rails/text-applier-tests.rb
114
+ - test/graphical_tests_for_rails/jumbled-string-canonicalizer-tests.rb
115
+ - test/graphical_tests_for_rails/new-style-picture-applier-tests.rb
116
+ - test/graphical_tests_for_rails/old-style-picture-applier-tests.rb
117
+ - test/graphical_tests_for_rails/user-intention-tests.rb
110
118
  - test/sample-files/opening-tests.rb
111
119
  rdoc_options:
112
120
  - --main
@@ -116,8 +124,8 @@ extra_rdoc_files:
116
124
  - LICENSE.txt
117
125
  - Manifest.txt
118
126
  - README.txt
119
- executables: []
120
-
127
+ executables:
128
+ - interpret-intentions.rb
121
129
  extensions: []
122
130
 
123
131
  requirements: []
@@ -148,16 +156,7 @@ dependencies:
148
156
  requirements:
149
157
  - - ">="
150
158
  - !ruby/object:Gem::Version
151
- version: 1.0.1
152
- version:
153
- - !ruby/object:Gem::Dependency
154
- name: fluid
155
- version_requirement:
156
- version_requirements: !ruby/object:Gem::Version::Requirement
157
- requirements:
158
- - - ">="
159
- - !ruby/object:Gem::Version
160
- version: 1.0.1
159
+ version: 1.0.2
161
160
  version:
162
161
  - !ruby/object:Gem::Dependency
163
162
  name: hoe
@@ -1,644 +0,0 @@
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>