iCuke 0.4.5
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.
- data/.gitignore +13 -0
- data/LICENSE +20 -0
- data/README.rdoc +69 -0
- data/Rakefile +80 -0
- data/VERSION +1 -0
- data/app/iCuke/.gitignore +1 -0
- data/app/iCuke/Classes/FlipsideView.h +13 -0
- data/app/iCuke/Classes/FlipsideView.m +32 -0
- data/app/iCuke/Classes/FlipsideViewController.h +25 -0
- data/app/iCuke/Classes/FlipsideViewController.m +54 -0
- data/app/iCuke/Classes/MainView.h +15 -0
- data/app/iCuke/Classes/MainView.m +32 -0
- data/app/iCuke/Classes/MainViewController.h +16 -0
- data/app/iCuke/Classes/MainViewController.m +86 -0
- data/app/iCuke/Classes/iCukeAppDelegate.h +20 -0
- data/app/iCuke/Classes/iCukeAppDelegate.m +33 -0
- data/app/iCuke/FlipsideView.xib +444 -0
- data/app/iCuke/MainView.xib +520 -0
- data/app/iCuke/MainWindow.xib +355 -0
- data/app/iCuke/SniffingView.h +20 -0
- data/app/iCuke/SniffingView.m +191 -0
- data/app/iCuke/iCuke-Info.plist +30 -0
- data/app/iCuke/iCuke.xcodeproj/project.pbxproj +313 -0
- data/app/iCuke/iCuke_Prefix.pch +14 -0
- data/app/iCuke/main.m +16 -0
- data/ext/iCuke/.gitignore +2 -0
- data/ext/iCuke/DefaultsResponse.h +5 -0
- data/ext/iCuke/DefaultsResponse.m +67 -0
- data/ext/iCuke/EventResponse.h +5 -0
- data/ext/iCuke/EventResponse.m +122 -0
- data/ext/iCuke/Rakefile +22 -0
- data/ext/iCuke/Recorder.h +15 -0
- data/ext/iCuke/Recorder.m +85 -0
- data/ext/iCuke/RecorderResponse.h +5 -0
- data/ext/iCuke/RecorderResponse.m +59 -0
- data/ext/iCuke/SynthesizeSingleton.h +68 -0
- data/ext/iCuke/ViewResponse.h +5 -0
- data/ext/iCuke/ViewResponse.m +84 -0
- data/ext/iCuke/Viewer.h +8 -0
- data/ext/iCuke/Viewer.m +153 -0
- data/ext/iCuke/iCukeHTTPResponseHandler.h +50 -0
- data/ext/iCuke/iCukeHTTPResponseHandler.m +381 -0
- data/ext/iCuke/iCukeHTTPServer.h +53 -0
- data/ext/iCuke/iCukeHTTPServer.m +365 -0
- data/ext/iCuke/iCukeServer.h +16 -0
- data/ext/iCuke/iCukeServer.m +46 -0
- data/ext/iCuke/json/JSON.h +50 -0
- data/ext/iCuke/json/NSObject+SBJSON.h +68 -0
- data/ext/iCuke/json/NSObject+SBJSON.m +53 -0
- data/ext/iCuke/json/NSString+SBJSON.h +58 -0
- data/ext/iCuke/json/NSString+SBJSON.m +55 -0
- data/ext/iCuke/json/SBJSON.h +75 -0
- data/ext/iCuke/json/SBJSON.m +212 -0
- data/ext/iCuke/json/SBJsonBase.h +86 -0
- data/ext/iCuke/json/SBJsonBase.m +78 -0
- data/ext/iCuke/json/SBJsonParser.h +87 -0
- data/ext/iCuke/json/SBJsonParser.m +475 -0
- data/ext/iCuke/json/SBJsonWriter.h +129 -0
- data/ext/iCuke/json/SBJsonWriter.m +228 -0
- data/features/icuke.feature +17 -0
- data/features/support/env.rb +3 -0
- data/iCuke.gemspec +113 -0
- data/lib/icuke/cucumber.rb +211 -0
- data/lib/icuke/simulate.rb +132 -0
- data/lib/icuke/simulator.rb +107 -0
- data/lib/icuke.rb +1 -0
- metadata +163 -0
@@ -0,0 +1,355 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
|
3
|
+
<data>
|
4
|
+
<int key="IBDocument.SystemTarget">784</int>
|
5
|
+
<string key="IBDocument.SystemVersion">10C540</string>
|
6
|
+
<string key="IBDocument.InterfaceBuilderVersion">740</string>
|
7
|
+
<string key="IBDocument.AppKitVersion">1038.25</string>
|
8
|
+
<string key="IBDocument.HIToolboxVersion">458.00</string>
|
9
|
+
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
10
|
+
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
11
|
+
<string key="NS.object.0">62</string>
|
12
|
+
</object>
|
13
|
+
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
|
14
|
+
<bool key="EncodedWithXMLCoder">YES</bool>
|
15
|
+
<integer value="2"/>
|
16
|
+
</object>
|
17
|
+
<object class="NSArray" key="IBDocument.PluginDependencies">
|
18
|
+
<bool key="EncodedWithXMLCoder">YES</bool>
|
19
|
+
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
20
|
+
</object>
|
21
|
+
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
22
|
+
<bool key="EncodedWithXMLCoder">YES</bool>
|
23
|
+
<object class="NSArray" key="dict.sortedKeys" id="0">
|
24
|
+
<bool key="EncodedWithXMLCoder">YES</bool>
|
25
|
+
</object>
|
26
|
+
<object class="NSMutableArray" key="dict.values">
|
27
|
+
<bool key="EncodedWithXMLCoder">YES</bool>
|
28
|
+
</object>
|
29
|
+
</object>
|
30
|
+
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
31
|
+
<bool key="EncodedWithXMLCoder">YES</bool>
|
32
|
+
<object class="IBProxyObject" id="841351856">
|
33
|
+
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
34
|
+
</object>
|
35
|
+
<object class="IBProxyObject" id="71653367">
|
36
|
+
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
37
|
+
</object>
|
38
|
+
<object class="IBUICustomObject" id="664661524"/>
|
39
|
+
<object class="IBUIWindow" id="380026005">
|
40
|
+
<reference key="NSNextResponder"/>
|
41
|
+
<int key="NSvFlags">1316</int>
|
42
|
+
<object class="NSPSMatrix" key="NSFrameMatrix"/>
|
43
|
+
<string key="NSFrameSize">{320, 480}</string>
|
44
|
+
<reference key="NSSuperview"/>
|
45
|
+
<object class="NSColor" key="IBUIBackgroundColor">
|
46
|
+
<int key="NSColorSpace">1</int>
|
47
|
+
<bytes key="NSRGB">MCAwIDAAA</bytes>
|
48
|
+
</object>
|
49
|
+
<bool key="IBUIClearsContextBeforeDrawing">NO</bool>
|
50
|
+
<bool key="IBUIMultipleTouchEnabled">YES</bool>
|
51
|
+
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
|
52
|
+
</object>
|
53
|
+
</object>
|
54
|
+
<object class="IBObjectContainer" key="IBDocument.Objects">
|
55
|
+
<object class="NSMutableArray" key="connectionRecords">
|
56
|
+
<bool key="EncodedWithXMLCoder">YES</bool>
|
57
|
+
<object class="IBConnectionRecord">
|
58
|
+
<object class="IBCocoaTouchOutletConnection" key="connection">
|
59
|
+
<string key="label">delegate</string>
|
60
|
+
<reference key="source" ref="841351856"/>
|
61
|
+
<reference key="destination" ref="664661524"/>
|
62
|
+
</object>
|
63
|
+
<int key="connectionID">4</int>
|
64
|
+
</object>
|
65
|
+
<object class="IBConnectionRecord">
|
66
|
+
<object class="IBCocoaTouchOutletConnection" key="connection">
|
67
|
+
<string key="label">window</string>
|
68
|
+
<reference key="source" ref="664661524"/>
|
69
|
+
<reference key="destination" ref="380026005"/>
|
70
|
+
</object>
|
71
|
+
<int key="connectionID">5</int>
|
72
|
+
</object>
|
73
|
+
</object>
|
74
|
+
<object class="IBMutableOrderedSet" key="objectRecords">
|
75
|
+
<object class="NSArray" key="orderedObjects">
|
76
|
+
<bool key="EncodedWithXMLCoder">YES</bool>
|
77
|
+
<object class="IBObjectRecord">
|
78
|
+
<int key="objectID">0</int>
|
79
|
+
<reference key="object" ref="0"/>
|
80
|
+
<reference key="children" ref="1000"/>
|
81
|
+
<nil key="parent"/>
|
82
|
+
</object>
|
83
|
+
<object class="IBObjectRecord">
|
84
|
+
<int key="objectID">2</int>
|
85
|
+
<reference key="object" ref="380026005"/>
|
86
|
+
<object class="NSMutableArray" key="children">
|
87
|
+
<bool key="EncodedWithXMLCoder">YES</bool>
|
88
|
+
</object>
|
89
|
+
<reference key="parent" ref="0"/>
|
90
|
+
</object>
|
91
|
+
<object class="IBObjectRecord">
|
92
|
+
<int key="objectID">-1</int>
|
93
|
+
<reference key="object" ref="841351856"/>
|
94
|
+
<reference key="parent" ref="0"/>
|
95
|
+
<string key="objectName">File's Owner</string>
|
96
|
+
</object>
|
97
|
+
<object class="IBObjectRecord">
|
98
|
+
<int key="objectID">3</int>
|
99
|
+
<reference key="object" ref="664661524"/>
|
100
|
+
<reference key="parent" ref="0"/>
|
101
|
+
</object>
|
102
|
+
<object class="IBObjectRecord">
|
103
|
+
<int key="objectID">-2</int>
|
104
|
+
<reference key="object" ref="71653367"/>
|
105
|
+
<reference key="parent" ref="0"/>
|
106
|
+
</object>
|
107
|
+
</object>
|
108
|
+
</object>
|
109
|
+
<object class="NSMutableDictionary" key="flattenedProperties">
|
110
|
+
<bool key="EncodedWithXMLCoder">YES</bool>
|
111
|
+
<object class="NSArray" key="dict.sortedKeys">
|
112
|
+
<bool key="EncodedWithXMLCoder">YES</bool>
|
113
|
+
<string>-1.CustomClassName</string>
|
114
|
+
<string>-2.CustomClassName</string>
|
115
|
+
<string>2.IBAttributePlaceholdersKey</string>
|
116
|
+
<string>2.IBEditorWindowLastContentRect</string>
|
117
|
+
<string>2.IBPluginDependency</string>
|
118
|
+
<string>3.CustomClassName</string>
|
119
|
+
<string>3.IBPluginDependency</string>
|
120
|
+
</object>
|
121
|
+
<object class="NSMutableArray" key="dict.values">
|
122
|
+
<bool key="EncodedWithXMLCoder">YES</bool>
|
123
|
+
<string>UIApplication</string>
|
124
|
+
<string>UIResponder</string>
|
125
|
+
<object class="NSMutableDictionary">
|
126
|
+
<bool key="EncodedWithXMLCoder">YES</bool>
|
127
|
+
<reference key="dict.sortedKeys" ref="0"/>
|
128
|
+
<object class="NSMutableArray" key="dict.values">
|
129
|
+
<bool key="EncodedWithXMLCoder">YES</bool>
|
130
|
+
</object>
|
131
|
+
</object>
|
132
|
+
<string>{{629, 276}, {320, 480}}</string>
|
133
|
+
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
134
|
+
<string>iCukeAppDelegate</string>
|
135
|
+
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
136
|
+
</object>
|
137
|
+
</object>
|
138
|
+
<object class="NSMutableDictionary" key="unlocalizedProperties">
|
139
|
+
<bool key="EncodedWithXMLCoder">YES</bool>
|
140
|
+
<reference key="dict.sortedKeys" ref="0"/>
|
141
|
+
<object class="NSMutableArray" key="dict.values">
|
142
|
+
<bool key="EncodedWithXMLCoder">YES</bool>
|
143
|
+
</object>
|
144
|
+
</object>
|
145
|
+
<nil key="activeLocalization"/>
|
146
|
+
<object class="NSMutableDictionary" key="localizations">
|
147
|
+
<bool key="EncodedWithXMLCoder">YES</bool>
|
148
|
+
<reference key="dict.sortedKeys" ref="0"/>
|
149
|
+
<object class="NSMutableArray" key="dict.values">
|
150
|
+
<bool key="EncodedWithXMLCoder">YES</bool>
|
151
|
+
</object>
|
152
|
+
</object>
|
153
|
+
<nil key="sourceID"/>
|
154
|
+
<int key="maxID">21</int>
|
155
|
+
</object>
|
156
|
+
<object class="IBClassDescriber" key="IBDocument.Classes">
|
157
|
+
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
158
|
+
<bool key="EncodedWithXMLCoder">YES</bool>
|
159
|
+
<object class="IBPartialClassDescription">
|
160
|
+
<string key="className">NSObject</string>
|
161
|
+
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
162
|
+
<string key="majorKey">IBProjectSource</string>
|
163
|
+
<string key="minorKey">json/NSObject+SBJSON.h</string>
|
164
|
+
</object>
|
165
|
+
</object>
|
166
|
+
<object class="IBPartialClassDescription">
|
167
|
+
<string key="className">NSObject</string>
|
168
|
+
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
169
|
+
<string key="majorKey">IBProjectSource</string>
|
170
|
+
<string key="minorKey">json/SBJsonWriter.h</string>
|
171
|
+
</object>
|
172
|
+
</object>
|
173
|
+
<object class="IBPartialClassDescription">
|
174
|
+
<string key="className">iCukeAppDelegate</string>
|
175
|
+
<string key="superclassName">NSObject</string>
|
176
|
+
<object class="NSMutableDictionary" key="outlets">
|
177
|
+
<string key="NS.key.0">window</string>
|
178
|
+
<string key="NS.object.0">UIWindow</string>
|
179
|
+
</object>
|
180
|
+
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
181
|
+
<string key="majorKey">IBProjectSource</string>
|
182
|
+
<string key="minorKey">Classes/iCukeAppDelegate.h</string>
|
183
|
+
</object>
|
184
|
+
</object>
|
185
|
+
</object>
|
186
|
+
<object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
|
187
|
+
<bool key="EncodedWithXMLCoder">YES</bool>
|
188
|
+
<object class="IBPartialClassDescription">
|
189
|
+
<string key="className">NSObject</string>
|
190
|
+
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
191
|
+
<string key="majorKey">IBFrameworkSource</string>
|
192
|
+
<string key="minorKey">Foundation.framework/Headers/NSError.h</string>
|
193
|
+
</object>
|
194
|
+
</object>
|
195
|
+
<object class="IBPartialClassDescription">
|
196
|
+
<string key="className">NSObject</string>
|
197
|
+
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
198
|
+
<string key="majorKey">IBFrameworkSource</string>
|
199
|
+
<string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
|
200
|
+
</object>
|
201
|
+
</object>
|
202
|
+
<object class="IBPartialClassDescription">
|
203
|
+
<string key="className">NSObject</string>
|
204
|
+
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
205
|
+
<string key="majorKey">IBFrameworkSource</string>
|
206
|
+
<string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
|
207
|
+
</object>
|
208
|
+
</object>
|
209
|
+
<object class="IBPartialClassDescription">
|
210
|
+
<string key="className">NSObject</string>
|
211
|
+
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
212
|
+
<string key="majorKey">IBFrameworkSource</string>
|
213
|
+
<string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
|
214
|
+
</object>
|
215
|
+
</object>
|
216
|
+
<object class="IBPartialClassDescription">
|
217
|
+
<string key="className">NSObject</string>
|
218
|
+
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
219
|
+
<string key="majorKey">IBFrameworkSource</string>
|
220
|
+
<string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
|
221
|
+
</object>
|
222
|
+
</object>
|
223
|
+
<object class="IBPartialClassDescription">
|
224
|
+
<string key="className">NSObject</string>
|
225
|
+
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
226
|
+
<string key="majorKey">IBFrameworkSource</string>
|
227
|
+
<string key="minorKey">Foundation.framework/Headers/NSNetServices.h</string>
|
228
|
+
</object>
|
229
|
+
</object>
|
230
|
+
<object class="IBPartialClassDescription">
|
231
|
+
<string key="className">NSObject</string>
|
232
|
+
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
233
|
+
<string key="majorKey">IBFrameworkSource</string>
|
234
|
+
<string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
|
235
|
+
</object>
|
236
|
+
</object>
|
237
|
+
<object class="IBPartialClassDescription">
|
238
|
+
<string key="className">NSObject</string>
|
239
|
+
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
240
|
+
<string key="majorKey">IBFrameworkSource</string>
|
241
|
+
<string key="minorKey">Foundation.framework/Headers/NSPort.h</string>
|
242
|
+
</object>
|
243
|
+
</object>
|
244
|
+
<object class="IBPartialClassDescription">
|
245
|
+
<string key="className">NSObject</string>
|
246
|
+
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
247
|
+
<string key="majorKey">IBFrameworkSource</string>
|
248
|
+
<string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
|
249
|
+
</object>
|
250
|
+
</object>
|
251
|
+
<object class="IBPartialClassDescription">
|
252
|
+
<string key="className">NSObject</string>
|
253
|
+
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
254
|
+
<string key="majorKey">IBFrameworkSource</string>
|
255
|
+
<string key="minorKey">Foundation.framework/Headers/NSStream.h</string>
|
256
|
+
</object>
|
257
|
+
</object>
|
258
|
+
<object class="IBPartialClassDescription">
|
259
|
+
<string key="className">NSObject</string>
|
260
|
+
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
261
|
+
<string key="majorKey">IBFrameworkSource</string>
|
262
|
+
<string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
|
263
|
+
</object>
|
264
|
+
</object>
|
265
|
+
<object class="IBPartialClassDescription">
|
266
|
+
<string key="className">NSObject</string>
|
267
|
+
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
268
|
+
<string key="majorKey">IBFrameworkSource</string>
|
269
|
+
<string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
|
270
|
+
</object>
|
271
|
+
</object>
|
272
|
+
<object class="IBPartialClassDescription">
|
273
|
+
<string key="className">NSObject</string>
|
274
|
+
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
275
|
+
<string key="majorKey">IBFrameworkSource</string>
|
276
|
+
<string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
|
277
|
+
</object>
|
278
|
+
</object>
|
279
|
+
<object class="IBPartialClassDescription">
|
280
|
+
<string key="className">NSObject</string>
|
281
|
+
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
282
|
+
<string key="majorKey">IBFrameworkSource</string>
|
283
|
+
<string key="minorKey">Foundation.framework/Headers/NSXMLParser.h</string>
|
284
|
+
</object>
|
285
|
+
</object>
|
286
|
+
<object class="IBPartialClassDescription">
|
287
|
+
<string key="className">NSObject</string>
|
288
|
+
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
289
|
+
<string key="majorKey">IBFrameworkSource</string>
|
290
|
+
<string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string>
|
291
|
+
</object>
|
292
|
+
</object>
|
293
|
+
<object class="IBPartialClassDescription">
|
294
|
+
<string key="className">NSObject</string>
|
295
|
+
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
296
|
+
<string key="majorKey">IBFrameworkSource</string>
|
297
|
+
<string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string>
|
298
|
+
</object>
|
299
|
+
</object>
|
300
|
+
<object class="IBPartialClassDescription">
|
301
|
+
<string key="className">NSObject</string>
|
302
|
+
<object class="IBClassDescriptionSource" key="sourceIdentifier" id="588827240">
|
303
|
+
<string key="majorKey">IBFrameworkSource</string>
|
304
|
+
<string key="minorKey">UIKit.framework/Headers/UIResponder.h</string>
|
305
|
+
</object>
|
306
|
+
</object>
|
307
|
+
<object class="IBPartialClassDescription">
|
308
|
+
<string key="className">UIApplication</string>
|
309
|
+
<string key="superclassName">UIResponder</string>
|
310
|
+
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
311
|
+
<string key="majorKey">IBFrameworkSource</string>
|
312
|
+
<string key="minorKey">UIKit.framework/Headers/UIApplication.h</string>
|
313
|
+
</object>
|
314
|
+
</object>
|
315
|
+
<object class="IBPartialClassDescription">
|
316
|
+
<string key="className">UIResponder</string>
|
317
|
+
<string key="superclassName">NSObject</string>
|
318
|
+
<reference key="sourceIdentifier" ref="588827240"/>
|
319
|
+
</object>
|
320
|
+
<object class="IBPartialClassDescription">
|
321
|
+
<string key="className">UIView</string>
|
322
|
+
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
323
|
+
<string key="majorKey">IBFrameworkSource</string>
|
324
|
+
<string key="minorKey">UIKit.framework/Headers/UITextField.h</string>
|
325
|
+
</object>
|
326
|
+
</object>
|
327
|
+
<object class="IBPartialClassDescription">
|
328
|
+
<string key="className">UIView</string>
|
329
|
+
<string key="superclassName">UIResponder</string>
|
330
|
+
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
331
|
+
<string key="majorKey">IBFrameworkSource</string>
|
332
|
+
<string key="minorKey">UIKit.framework/Headers/UIView.h</string>
|
333
|
+
</object>
|
334
|
+
</object>
|
335
|
+
<object class="IBPartialClassDescription">
|
336
|
+
<string key="className">UIWindow</string>
|
337
|
+
<string key="superclassName">UIView</string>
|
338
|
+
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
339
|
+
<string key="majorKey">IBFrameworkSource</string>
|
340
|
+
<string key="minorKey">UIKit.framework/Headers/UIWindow.h</string>
|
341
|
+
</object>
|
342
|
+
</object>
|
343
|
+
</object>
|
344
|
+
</object>
|
345
|
+
<int key="IBDocument.localizationMode">0</int>
|
346
|
+
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
|
347
|
+
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
|
348
|
+
<integer value="3100" key="NS.object.0"/>
|
349
|
+
</object>
|
350
|
+
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
351
|
+
<string key="IBDocument.LastKnownRelativeProjectPath">iCuke.xcodeproj</string>
|
352
|
+
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
353
|
+
<string key="IBCocoaTouchPluginVersion">3.1</string>
|
354
|
+
</data>
|
355
|
+
</archive>
|
@@ -0,0 +1,20 @@
|
|
1
|
+
//
|
2
|
+
// SniffingView.h
|
3
|
+
// iCuke
|
4
|
+
//
|
5
|
+
// Created by Rob Holland on 08/03/2010.
|
6
|
+
// Copyright 2010 The IT Refinery. All rights reserved.
|
7
|
+
//
|
8
|
+
|
9
|
+
#import <Foundation/Foundation.h>
|
10
|
+
|
11
|
+
|
12
|
+
@interface SniffingView : UIView {
|
13
|
+
|
14
|
+
}
|
15
|
+
|
16
|
+
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
|
17
|
+
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
|
18
|
+
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
|
19
|
+
|
20
|
+
@end
|
@@ -0,0 +1,191 @@
|
|
1
|
+
//
|
2
|
+
// SniffingView.m
|
3
|
+
// iCuke
|
4
|
+
//
|
5
|
+
// Created by Rob Holland on 08/03/2010.
|
6
|
+
// Copyright 2010 The IT Refinery. All rights reserved.
|
7
|
+
//
|
8
|
+
|
9
|
+
#import "SniffingView.h"
|
10
|
+
|
11
|
+
@interface UIEvent (Observing)
|
12
|
+
-(void *)_gsEvent;
|
13
|
+
@end
|
14
|
+
|
15
|
+
typedef void * GSEventRef;
|
16
|
+
|
17
|
+
typedef struct {
|
18
|
+
unsigned char index;
|
19
|
+
unsigned char index2;
|
20
|
+
unsigned char type;
|
21
|
+
unsigned char flags;
|
22
|
+
float sizeX;
|
23
|
+
float sizeY;
|
24
|
+
float x;
|
25
|
+
float y;
|
26
|
+
int x24;
|
27
|
+
} gs_path_info_t;
|
28
|
+
|
29
|
+
typedef struct {
|
30
|
+
int type;
|
31
|
+
short deltaX;
|
32
|
+
short deltaY;
|
33
|
+
float x3;
|
34
|
+
float x4;
|
35
|
+
float pinch1;
|
36
|
+
float pinch2;
|
37
|
+
float averageX;
|
38
|
+
float averageY;
|
39
|
+
unsigned char x9_1;
|
40
|
+
unsigned char pathCount;
|
41
|
+
} gs_hand_info_t;
|
42
|
+
|
43
|
+
id GSEventCreatePlistRepresentation(GSEventRef event);
|
44
|
+
extern CGFloat GSEventGetDeltaX(GSEventRef event);
|
45
|
+
extern CGFloat GSEventGetDeltaY(GSEventRef event);
|
46
|
+
extern int GSEventGetType(GSEventRef event);
|
47
|
+
extern int GSEventGetSubType(GSEventRef event);
|
48
|
+
extern int GSEventIsChordingHandEvent(GSEventRef event);
|
49
|
+
extern CGPoint GSEventGetInnerMostPathPosition(GSEventRef event);
|
50
|
+
extern CGPoint GSEventGetOuterMostPathPosition(GSEventRef event);
|
51
|
+
extern CGPoint GSEventGetLocationInWindow(GSEventRef event);
|
52
|
+
extern gs_hand_info_t GSEventGetHandInfo(GSEventRef event);
|
53
|
+
extern gs_path_info_t GSEventGetPathInfoAtIndex(GSEventRef event, CFIndex index);
|
54
|
+
|
55
|
+
@implementation SniffingView
|
56
|
+
|
57
|
+
-(void)eventStats:(UIEvent *)event {
|
58
|
+
void *gs_event = [event _gsEvent];
|
59
|
+
NSMutableDictionary *plist = GSEventCreatePlistRepresentation(gs_event);
|
60
|
+
|
61
|
+
NSLog(@"Raw event: %@", event);
|
62
|
+
|
63
|
+
NSLog(@"Plist data: %@", [plist objectForKey: @"Data"]);
|
64
|
+
|
65
|
+
NSMutableData *data = [NSMutableData dataWithCapacity: 60];
|
66
|
+
|
67
|
+
gs_hand_info_t gs_hand = GSEventGetHandInfo(gs_event);
|
68
|
+
|
69
|
+
[data appendBytes: &gs_hand length: sizeof(gs_hand)];
|
70
|
+
|
71
|
+
switch(gs_hand.type) {
|
72
|
+
case 1:
|
73
|
+
case 2:
|
74
|
+
case 6:
|
75
|
+
break;
|
76
|
+
default:
|
77
|
+
NSLog(@"Unexpected hand event type: %i", gs_hand.type);
|
78
|
+
}
|
79
|
+
|
80
|
+
if (gs_hand.deltaX != 1.0 && gs_hand.deltaX != 2.0) {
|
81
|
+
NSLog(@"Unknown hand event deltaX: %f", gs_hand.deltaX);
|
82
|
+
}
|
83
|
+
|
84
|
+
if (gs_hand.deltaY != 1.0 && gs_hand.deltaY != 2.0) {
|
85
|
+
NSLog(@"Unknown hand event deltaY: %f", gs_hand.deltaY);
|
86
|
+
}
|
87
|
+
|
88
|
+
if (gs_hand.x3 != 0.0) {
|
89
|
+
NSLog(@"Non-zero hand event x3: %f", gs_hand.x3);
|
90
|
+
}
|
91
|
+
|
92
|
+
if (gs_hand.x4 != 0.0) {
|
93
|
+
NSLog(@"Non-zero hand event x4: %f", gs_hand.x4);
|
94
|
+
}
|
95
|
+
|
96
|
+
if (gs_hand.pinch1 != 0) {
|
97
|
+
NSLog(@"Non-zero hand event pinch1: %f", gs_hand.pinch1);
|
98
|
+
}
|
99
|
+
|
100
|
+
if (gs_hand.pinch2 != 0) {
|
101
|
+
NSLog(@"Non-zero hand event pinch2: %f", gs_hand.pinch2);
|
102
|
+
}
|
103
|
+
|
104
|
+
if (gs_hand.x9_1 != 0) {
|
105
|
+
NSLog(@"Non-zero hand event x9_1: %i", gs_hand.x9_1);
|
106
|
+
}
|
107
|
+
|
108
|
+
if (gs_hand.pathCount != 1 && gs_hand.pathCount != 2) {
|
109
|
+
NSLog(@"Unexpected path count: %i", gs_hand.pathCount);
|
110
|
+
}
|
111
|
+
|
112
|
+
if (gs_hand.pathCount != gs_hand.deltaX || gs_hand.pathCount != gs_hand.deltaY) {
|
113
|
+
NSLog(@"Path count does not match deltas: %i vs %f/%f", gs_hand.pathCount, gs_hand.deltaX, gs_hand.deltaY);
|
114
|
+
}
|
115
|
+
|
116
|
+
float averageX = 0;
|
117
|
+
float averageY = 0;
|
118
|
+
|
119
|
+
for (int i = 0; i < gs_hand.pathCount; i++) {
|
120
|
+
gs_path_info_t gs_path = GSEventGetPathInfoAtIndex(gs_event, i);
|
121
|
+
|
122
|
+
[data appendBytes: &gs_path length: sizeof(gs_path)];
|
123
|
+
|
124
|
+
if (gs_path.index > (gs_hand.pathCount + 1)) {
|
125
|
+
NSLog(@"Unexpected path event index: %i", gs_path.index);
|
126
|
+
}
|
127
|
+
|
128
|
+
if (gs_path.index != gs_path.index2) {
|
129
|
+
NSLog(@"Unexpected path event index mismatch: %i vs %i", gs_path.index, gs_path.index2);
|
130
|
+
}
|
131
|
+
|
132
|
+
if (gs_path.type != (gs_hand.type == 6 ? 1 : 2)) {
|
133
|
+
NSLog(@"Unexpected path event type: %i", gs_path.type);
|
134
|
+
}
|
135
|
+
|
136
|
+
if (gs_hand.type == 1) {
|
137
|
+
if (gs_path.flags != 191) {
|
138
|
+
NSLog(@"Unexpected path event flags: %i", gs_path.flags);
|
139
|
+
}
|
140
|
+
} else if (gs_hand.type == 2) {
|
141
|
+
if (gs_path.flags != 0 && gs_path.flags != 255) {
|
142
|
+
NSLog(@"Unexpected path event flags: %i", gs_path.flags);
|
143
|
+
}
|
144
|
+
} else {
|
145
|
+
if (gs_path.flags != 255) {
|
146
|
+
NSLog(@"Unexpected path event flags: %i", gs_path.flags);
|
147
|
+
}
|
148
|
+
}
|
149
|
+
|
150
|
+
if (gs_path.sizeX != 1.0 || gs_path.sizeY != 1.0) {
|
151
|
+
NSLog(@"Unexpeced path event size: %f/%f", gs_path.sizeX, gs_path.sizeY);
|
152
|
+
}
|
153
|
+
|
154
|
+
averageX += gs_path.x;
|
155
|
+
averageY += gs_path.y;
|
156
|
+
}
|
157
|
+
|
158
|
+
averageX = averageX / gs_hand.pathCount;
|
159
|
+
averageY = averageY / gs_hand.pathCount;
|
160
|
+
|
161
|
+
float x = [[[plist objectForKey:@"WindowLocation"] objectForKey:@"X"] floatValue];
|
162
|
+
if (averageX != x) {
|
163
|
+
NSLog(@"Average X value doesn't match WindowLocation X: %f vs %f", averageX, x);
|
164
|
+
}
|
165
|
+
|
166
|
+
float y = [[[plist objectForKey:@"WindowLocation"] objectForKey:@"Y"] floatValue];
|
167
|
+
if (averageY != y) {
|
168
|
+
NSLog(@"Average Y value doesn't match WindowLocation Y: %f vs %f", averageY, y);
|
169
|
+
}
|
170
|
+
|
171
|
+
NSLog(@"*****");
|
172
|
+
|
173
|
+
return;
|
174
|
+
}
|
175
|
+
|
176
|
+
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
|
177
|
+
[self eventStats: event];
|
178
|
+
[super touchesBegan: touches withEvent: event];
|
179
|
+
}
|
180
|
+
|
181
|
+
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
|
182
|
+
[self eventStats: event];
|
183
|
+
[super touchesMoved: touches withEvent: event];
|
184
|
+
}
|
185
|
+
|
186
|
+
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
|
187
|
+
[self eventStats: event];
|
188
|
+
[super touchesEnded: touches withEvent:event];
|
189
|
+
}
|
190
|
+
|
191
|
+
@end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
3
|
+
<plist version="1.0">
|
4
|
+
<dict>
|
5
|
+
<key>CFBundleDevelopmentRegion</key>
|
6
|
+
<string>English</string>
|
7
|
+
<key>CFBundleDisplayName</key>
|
8
|
+
<string>${PRODUCT_NAME}</string>
|
9
|
+
<key>CFBundleExecutable</key>
|
10
|
+
<string>${EXECUTABLE_NAME}</string>
|
11
|
+
<key>CFBundleIconFile</key>
|
12
|
+
<string></string>
|
13
|
+
<key>CFBundleIdentifier</key>
|
14
|
+
<string>com.yourcompany.${PRODUCT_NAME:rfc1034identifier}</string>
|
15
|
+
<key>CFBundleInfoDictionaryVersion</key>
|
16
|
+
<string>6.0</string>
|
17
|
+
<key>CFBundleName</key>
|
18
|
+
<string>${PRODUCT_NAME}</string>
|
19
|
+
<key>CFBundlePackageType</key>
|
20
|
+
<string>APPL</string>
|
21
|
+
<key>CFBundleSignature</key>
|
22
|
+
<string>????</string>
|
23
|
+
<key>CFBundleVersion</key>
|
24
|
+
<string>1.0</string>
|
25
|
+
<key>LSRequiresIPhoneOS</key>
|
26
|
+
<true/>
|
27
|
+
<key>NSMainNibFile</key>
|
28
|
+
<string>MainWindow</string>
|
29
|
+
</dict>
|
30
|
+
</plist>
|