iCuke 0.4.12 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (114) hide show
  1. data/Rakefile +3 -3
  2. data/VERSION +1 -1
  3. data/app/AlertsViewController.h +59 -0
  4. data/app/AlertsViewController.m +341 -0
  5. data/app/AppDelegate.h +60 -0
  6. data/app/AppDelegate.m +101 -0
  7. data/app/ButtonsViewController.h +80 -0
  8. data/app/ButtonsViewController.m +448 -0
  9. data/app/Constants.h +58 -0
  10. data/app/ControlsViewController.h +72 -0
  11. data/app/ControlsViewController.m +379 -0
  12. data/app/ImagesViewController.h +62 -0
  13. data/app/ImagesViewController.m +137 -0
  14. data/app/{iCuke/iCuke-Info.plist → Info.plist} +4 -4
  15. data/app/MainViewController.h +57 -0
  16. data/app/MainViewController.m +262 -0
  17. data/app/Picker/CustomPickerDataSource.h +55 -0
  18. data/app/Picker/CustomPickerDataSource.m +135 -0
  19. data/app/Picker/CustomView.h +62 -0
  20. data/app/Picker/CustomView.m +119 -0
  21. data/app/PickerViewController.h +88 -0
  22. data/app/PickerViewController.m +402 -0
  23. data/app/Prefix.pch +5 -0
  24. data/app/ReadMe.txt +82 -0
  25. data/app/SearchBarController.h +58 -0
  26. data/app/SearchBarController.m +105 -0
  27. data/app/SegmentViewController.h +54 -0
  28. data/app/SegmentViewController.m +195 -0
  29. data/app/TextFieldController.h +67 -0
  30. data/app/TextFieldController.m +342 -0
  31. data/app/TextViewController.h +57 -0
  32. data/app/TextViewController.m +164 -0
  33. data/app/ToolbarViewController.h +74 -0
  34. data/app/ToolbarViewController.m +303 -0
  35. data/app/TransitionViewController.h +64 -0
  36. data/app/TransitionViewController.m +178 -0
  37. data/app/UICatalog.xcodeproj/project.pbxproj +615 -0
  38. data/app/WebViewController.h +57 -0
  39. data/app/WebViewController.m +173 -0
  40. data/app/en.lproj/AlertsViewController.xib +144 -0
  41. data/app/en.lproj/ButtonsViewController.xib +147 -0
  42. data/app/en.lproj/ControlsViewController.xib +147 -0
  43. data/app/en.lproj/ImagesViewController.xib +264 -0
  44. data/app/en.lproj/Localizable.strings +41 -0
  45. data/app/en.lproj/MainWindow.xib +306 -0
  46. data/app/en.lproj/PickerViewController.xib +415 -0
  47. data/app/en.lproj/SearchBarController.xib +142 -0
  48. data/app/en.lproj/SegmentViewController.xib +143 -0
  49. data/app/en.lproj/TextFieldController.xib +167 -0
  50. data/app/en.lproj/TextViewController.xib +149 -0
  51. data/app/en.lproj/ToolbarViewController.xib +491 -0
  52. data/app/en.lproj/TransitionViewController.xib +255 -0
  53. data/app/en.lproj/WebViewController.xib +141 -0
  54. data/app/images/12-6AM.png +0 -0
  55. data/app/images/12-6PM.png +0 -0
  56. data/app/images/6-12AM.png +0 -0
  57. data/app/images/6-12PM.png +0 -0
  58. data/app/images/Default.png +0 -0
  59. data/app/images/Icon.png +0 -0
  60. data/app/images/UIButton_custom.png +0 -0
  61. data/app/images/blueButton.png +0 -0
  62. data/app/images/orangeslide.png +0 -0
  63. data/app/images/scene1.jpg +0 -0
  64. data/app/images/scene2.jpg +0 -0
  65. data/app/images/scene3.jpg +0 -0
  66. data/app/images/scene4.jpg +0 -0
  67. data/app/images/scene5.jpg +0 -0
  68. data/app/images/segment_check.png +0 -0
  69. data/app/images/segment_search.png +0 -0
  70. data/app/images/segment_tools.png +0 -0
  71. data/app/images/slider_ball.png +0 -0
  72. data/app/images/whiteButton.png +0 -0
  73. data/app/images/yellowslide.png +0 -0
  74. data/app/main.m +58 -0
  75. data/ext/iCuke/DefaultsResponse.m +0 -1
  76. data/ext/iCuke/EventResponse.m +9 -1
  77. data/ext/iCuke/Rakefile +1 -1
  78. data/ext/iCuke/Recorder.h +3 -1
  79. data/ext/iCuke/Recorder.m +10 -5
  80. data/ext/iCuke/RecorderResponse.h +1 -0
  81. data/ext/iCuke/RecorderResponse.m +10 -1
  82. data/ext/iCuke/Viewer.m +5 -6
  83. data/ext/iCuke/iCukeHTTPServer.m +1 -1
  84. data/ext/iCuke/iCukeServer.m +24 -7
  85. data/ext/iCuke/libicuke.dylib +0 -0
  86. data/features/uicatalog.feature +20 -0
  87. data/iCuke.gemspec +81 -24
  88. data/lib/icuke/com.apple.Accessibility.plist +0 -0
  89. data/lib/icuke/core_ext.rb +26 -0
  90. data/lib/icuke/cucumber.rb +20 -12
  91. data/lib/icuke/headless.rb +55 -0
  92. data/lib/icuke/simulator.rb +7 -129
  93. data/lib/icuke/xcode.rb +136 -0
  94. metadata +82 -25
  95. data/app/iCuke/Classes/FlipsideView.h +0 -13
  96. data/app/iCuke/Classes/FlipsideView.m +0 -32
  97. data/app/iCuke/Classes/FlipsideViewController.h +0 -25
  98. data/app/iCuke/Classes/FlipsideViewController.m +0 -54
  99. data/app/iCuke/Classes/MainView.h +0 -15
  100. data/app/iCuke/Classes/MainView.m +0 -32
  101. data/app/iCuke/Classes/MainViewController.h +0 -16
  102. data/app/iCuke/Classes/MainViewController.m +0 -86
  103. data/app/iCuke/Classes/iCukeAppDelegate.h +0 -20
  104. data/app/iCuke/Classes/iCukeAppDelegate.m +0 -33
  105. data/app/iCuke/FlipsideView.xib +0 -444
  106. data/app/iCuke/MainView.xib +0 -520
  107. data/app/iCuke/MainWindow.xib +0 -355
  108. data/app/iCuke/SniffingView.h +0 -20
  109. data/app/iCuke/SniffingView.m +0 -191
  110. data/app/iCuke/iCuke.xcodeproj/project.pbxproj +0 -313
  111. data/app/iCuke/iCuke_Prefix.pch +0 -14
  112. data/app/iCuke/main.m +0 -16
  113. data/features/icuke.feature +0 -17
  114. /data/app/{iCuke/.gitignore → .gitignore} +0 -0
@@ -1,355 +0,0 @@
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>
@@ -1,20 +0,0 @@
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
@@ -1,191 +0,0 @@
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