iCuke 0.5.5 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (201) hide show
  1. data/.gitignore +2 -0
  2. data/.gitmodules +3 -0
  3. data/README.rdoc +8 -7
  4. data/Rakefile +10 -30
  5. data/VERSION +1 -1
  6. data/app/.gitignore +3 -0
  7. data/app/LICENSE +20 -0
  8. data/app/Readme.markdown +3 -0
  9. data/app/Shared/AppDelegate_Shared.h +17 -0
  10. data/app/Shared/AppDelegate_Shared.m +25 -0
  11. data/app/{images/yellowslide.png → Shared/Icon.png} +0 -0
  12. data/app/Shared/ModalViewController.h +15 -0
  13. data/app/Shared/ModalViewController.m +96 -0
  14. data/app/Shared/TestViewController_Shared.h +15 -0
  15. data/app/Shared/TestViewController_Shared.m +43 -0
  16. data/app/{Info.plist → Shared/Universal-Info.plist} +17 -4
  17. data/app/Shared/Universal_Prefix.pch +8 -0
  18. data/app/Shared/main.m +14 -0
  19. data/app/Universal.xcodeproj/project.pbxproj +301 -0
  20. data/app/iPad/AppDelegate_Pad.h +15 -0
  21. data/app/iPad/AppDelegate_Pad.m +28 -0
  22. data/app/iPad/Default-Landscape.png +0 -0
  23. data/app/iPad/Default-Portrait.png +0 -0
  24. data/app/iPad/MainWindow_Pad.xib +343 -0
  25. data/app/iPad/TestViewController_Pad.h +15 -0
  26. data/app/iPad/TestViewController_Pad.m +52 -0
  27. data/app/iPhone/AppDelegate_Phone.h +15 -0
  28. data/app/iPhone/AppDelegate_Phone.m +28 -0
  29. data/app/{images/segment_search.png → iPhone/Default.png} +0 -0
  30. data/app/iPhone/MainWindow_Phone.xib +363 -0
  31. data/app/iPhone/TestViewController_Phone.h +15 -0
  32. data/app/iPhone/TestViewController_Phone.m +36 -0
  33. data/bin/.gitignore +1 -0
  34. data/bin/icuke +10 -0
  35. data/bin/icuke-module +17 -0
  36. data/ext/.gitignore +1 -0
  37. data/ext/Rakefile +6 -0
  38. data/ext/WaxSim/Simulator.h +31 -0
  39. data/ext/WaxSim/Simulator.m +131 -0
  40. data/ext/WaxSim/WaxSim.m +110 -0
  41. data/ext/WaxSim/WaxSim.xcodeproj/project.pbxproj +238 -0
  42. data/ext/WaxSim/WaxSim_Prefix.pch +7 -0
  43. data/ext/WaxSim/iPhoneSimulatorRemoteClient/iPhoneSimulatorRemoteClient.h +126 -0
  44. data/ext/iCuke/Rakefile +14 -17
  45. data/ext/iCuke/libicuke-sdk3.1.dylib +0 -0
  46. data/ext/iCuke/libicuke-sdk4.0.dylib +0 -0
  47. data/ext/iCuke/libicuke.dylib +0 -0
  48. data/ext/iCuke/{DefaultsResponse.h → sdk3.1/DefaultsResponse.h} +0 -0
  49. data/ext/iCuke/{DefaultsResponse.m → sdk3.1/DefaultsResponse.m} +0 -0
  50. data/ext/iCuke/{EventResponse.h → sdk3.1/EventResponse.h} +0 -0
  51. data/ext/iCuke/{EventResponse.m → sdk3.1/EventResponse.m} +0 -0
  52. data/ext/iCuke/sdk3.1/ModuleResponse.h +5 -0
  53. data/ext/iCuke/sdk3.1/ModuleResponse.m +76 -0
  54. data/ext/iCuke/sdk3.1/Rakefile +20 -0
  55. data/ext/iCuke/{Recorder.h → sdk3.1/Recorder.h} +0 -0
  56. data/ext/iCuke/{Recorder.m → sdk3.1/Recorder.m} +0 -0
  57. data/ext/iCuke/{RecorderResponse.h → sdk3.1/RecorderResponse.h} +0 -0
  58. data/ext/iCuke/{RecorderResponse.m → sdk3.1/RecorderResponse.m} +0 -0
  59. data/ext/iCuke/{SynthesizeSingleton.h → sdk3.1/SynthesizeSingleton.h} +0 -0
  60. data/ext/iCuke/{ViewResponse.h → sdk3.1/ViewResponse.h} +0 -0
  61. data/ext/iCuke/{ViewResponse.m → sdk3.1/ViewResponse.m} +0 -0
  62. data/ext/iCuke/{Viewer.h → sdk3.1/Viewer.h} +0 -0
  63. data/ext/iCuke/sdk3.1/Viewer.m +203 -0
  64. data/ext/iCuke/{iCukeHTTPResponseHandler.h → sdk3.1/iCukeHTTPResponseHandler.h} +0 -0
  65. data/ext/iCuke/{iCukeHTTPResponseHandler.m → sdk3.1/iCukeHTTPResponseHandler.m} +0 -0
  66. data/ext/iCuke/{iCukeHTTPServer.h → sdk3.1/iCukeHTTPServer.h} +0 -0
  67. data/ext/iCuke/{iCukeHTTPServer.m → sdk3.1/iCukeHTTPServer.m} +0 -0
  68. data/ext/iCuke/{iCukeServer.h → sdk3.1/iCukeServer.h} +0 -2
  69. data/ext/iCuke/{iCukeServer.m → sdk3.1/iCukeServer.m} +22 -20
  70. data/ext/iCuke/{json → sdk3.1/json}/JSON.h +0 -0
  71. data/ext/iCuke/{json → sdk3.1/json}/NSObject+SBJSON.h +0 -0
  72. data/ext/iCuke/{json → sdk3.1/json}/NSObject+SBJSON.m +0 -0
  73. data/ext/iCuke/{json → sdk3.1/json}/NSString+SBJSON.h +0 -0
  74. data/ext/iCuke/{json → sdk3.1/json}/NSString+SBJSON.m +0 -0
  75. data/ext/iCuke/{json → sdk3.1/json}/SBJSON.h +0 -0
  76. data/ext/iCuke/{json → sdk3.1/json}/SBJSON.m +0 -0
  77. data/ext/iCuke/{json → sdk3.1/json}/SBJsonBase.h +0 -0
  78. data/ext/iCuke/{json → sdk3.1/json}/SBJsonBase.m +0 -0
  79. data/ext/iCuke/{json → sdk3.1/json}/SBJsonParser.h +0 -0
  80. data/ext/iCuke/{json → sdk3.1/json}/SBJsonParser.m +0 -0
  81. data/ext/iCuke/{json → sdk3.1/json}/SBJsonWriter.h +0 -0
  82. data/ext/iCuke/{json → sdk3.1/json}/SBJsonWriter.m +0 -0
  83. data/ext/iCuke/sdk4.0/DefaultsResponse.h +5 -0
  84. data/ext/iCuke/sdk4.0/DefaultsResponse.m +66 -0
  85. data/ext/iCuke/sdk4.0/EventResponse.h +5 -0
  86. data/ext/iCuke/sdk4.0/EventResponse.m +130 -0
  87. data/ext/iCuke/sdk4.0/ModuleResponse.h +5 -0
  88. data/ext/iCuke/sdk4.0/ModuleResponse.m +76 -0
  89. data/ext/iCuke/sdk4.0/Rakefile +20 -0
  90. data/ext/iCuke/sdk4.0/Recorder.h +17 -0
  91. data/ext/iCuke/sdk4.0/Recorder.m +90 -0
  92. data/ext/iCuke/sdk4.0/RecorderResponse.h +6 -0
  93. data/ext/iCuke/sdk4.0/RecorderResponse.m +68 -0
  94. data/ext/iCuke/sdk4.0/SynthesizeSingleton.h +68 -0
  95. data/ext/iCuke/sdk4.0/ViewResponse.h +5 -0
  96. data/ext/iCuke/sdk4.0/ViewResponse.m +84 -0
  97. data/ext/iCuke/sdk4.0/Viewer.h +8 -0
  98. data/ext/iCuke/{Viewer.m → sdk4.0/Viewer.m} +14 -0
  99. data/ext/iCuke/sdk4.0/iCukeHTTPResponseHandler.h +50 -0
  100. data/ext/iCuke/sdk4.0/iCukeHTTPResponseHandler.m +381 -0
  101. data/ext/iCuke/sdk4.0/iCukeHTTPServer.h +53 -0
  102. data/ext/iCuke/sdk4.0/iCukeHTTPServer.m +365 -0
  103. data/ext/iCuke/sdk4.0/iCukeServer.h +14 -0
  104. data/ext/iCuke/sdk4.0/iCukeServer.m +65 -0
  105. data/ext/iCuke/sdk4.0/json/JSON.h +50 -0
  106. data/ext/iCuke/sdk4.0/json/NSObject+SBJSON.h +68 -0
  107. data/ext/iCuke/sdk4.0/json/NSObject+SBJSON.m +53 -0
  108. data/ext/iCuke/sdk4.0/json/NSString+SBJSON.h +58 -0
  109. data/ext/iCuke/sdk4.0/json/NSString+SBJSON.m +55 -0
  110. data/ext/iCuke/sdk4.0/json/SBJSON.h +75 -0
  111. data/ext/iCuke/sdk4.0/json/SBJSON.m +212 -0
  112. data/ext/iCuke/sdk4.0/json/SBJsonBase.h +86 -0
  113. data/ext/iCuke/sdk4.0/json/SBJsonBase.m +78 -0
  114. data/ext/iCuke/sdk4.0/json/SBJsonParser.h +87 -0
  115. data/ext/iCuke/sdk4.0/json/SBJsonParser.m +475 -0
  116. data/ext/iCuke/sdk4.0/json/SBJsonWriter.h +129 -0
  117. data/ext/iCuke/sdk4.0/json/SBJsonWriter.m +228 -0
  118. data/features/iphone.feature +15 -0
  119. data/features/support/env.rb +1 -1
  120. data/iCuke.gemspec +118 -114
  121. data/lib/icuke/cucumber.rb +93 -64
  122. data/lib/icuke/screen.rb +110 -0
  123. data/lib/icuke/sdk.rb +134 -0
  124. data/lib/icuke/simulate.rb +9 -5
  125. data/lib/icuke/simulator.rb +10 -11
  126. data/lib/icuke/waxsim.rb +36 -0
  127. data/lib/icuke.rb +2 -1
  128. metadata +124 -129
  129. data/app/AlertsViewController.h +0 -59
  130. data/app/AlertsViewController.m +0 -341
  131. data/app/AppDelegate.h +0 -60
  132. data/app/AppDelegate.m +0 -101
  133. data/app/ButtonsViewController.h +0 -80
  134. data/app/ButtonsViewController.m +0 -448
  135. data/app/Constants.h +0 -58
  136. data/app/ControlsViewController.h +0 -72
  137. data/app/ControlsViewController.m +0 -379
  138. data/app/ImagesViewController.h +0 -62
  139. data/app/ImagesViewController.m +0 -137
  140. data/app/MainViewController.h +0 -57
  141. data/app/MainViewController.m +0 -262
  142. data/app/Picker/CustomPickerDataSource.h +0 -55
  143. data/app/Picker/CustomPickerDataSource.m +0 -135
  144. data/app/Picker/CustomView.h +0 -62
  145. data/app/Picker/CustomView.m +0 -119
  146. data/app/PickerViewController.h +0 -88
  147. data/app/PickerViewController.m +0 -402
  148. data/app/Prefix.pch +0 -5
  149. data/app/ReadMe.txt +0 -82
  150. data/app/SearchBarController.h +0 -58
  151. data/app/SearchBarController.m +0 -105
  152. data/app/SegmentViewController.h +0 -54
  153. data/app/SegmentViewController.m +0 -195
  154. data/app/TextFieldController.h +0 -67
  155. data/app/TextFieldController.m +0 -342
  156. data/app/TextViewController.h +0 -57
  157. data/app/TextViewController.m +0 -164
  158. data/app/ToolbarViewController.h +0 -74
  159. data/app/ToolbarViewController.m +0 -303
  160. data/app/TransitionViewController.h +0 -64
  161. data/app/TransitionViewController.m +0 -178
  162. data/app/UICatalog.xcodeproj/project.pbxproj +0 -615
  163. data/app/WebViewController.h +0 -57
  164. data/app/WebViewController.m +0 -173
  165. data/app/en.lproj/AlertsViewController.xib +0 -144
  166. data/app/en.lproj/ButtonsViewController.xib +0 -147
  167. data/app/en.lproj/ControlsViewController.xib +0 -147
  168. data/app/en.lproj/ImagesViewController.xib +0 -264
  169. data/app/en.lproj/Localizable.strings +0 -41
  170. data/app/en.lproj/MainWindow.xib +0 -306
  171. data/app/en.lproj/PickerViewController.xib +0 -415
  172. data/app/en.lproj/SearchBarController.xib +0 -142
  173. data/app/en.lproj/SegmentViewController.xib +0 -143
  174. data/app/en.lproj/TextFieldController.xib +0 -167
  175. data/app/en.lproj/TextViewController.xib +0 -149
  176. data/app/en.lproj/ToolbarViewController.xib +0 -491
  177. data/app/en.lproj/TransitionViewController.xib +0 -255
  178. data/app/en.lproj/WebViewController.xib +0 -141
  179. data/app/images/12-6AM.png +0 -0
  180. data/app/images/12-6PM.png +0 -0
  181. data/app/images/6-12AM.png +0 -0
  182. data/app/images/6-12PM.png +0 -0
  183. data/app/images/Default.png +0 -0
  184. data/app/images/Icon.png +0 -0
  185. data/app/images/UIButton_custom.png +0 -0
  186. data/app/images/blueButton.png +0 -0
  187. data/app/images/orangeslide.png +0 -0
  188. data/app/images/scene1.jpg +0 -0
  189. data/app/images/scene2.jpg +0 -0
  190. data/app/images/scene3.jpg +0 -0
  191. data/app/images/scene4.jpg +0 -0
  192. data/app/images/scene5.jpg +0 -0
  193. data/app/images/segment_check.png +0 -0
  194. data/app/images/segment_tools.png +0 -0
  195. data/app/images/slider_ball.png +0 -0
  196. data/app/images/whiteButton.png +0 -0
  197. data/app/main.m +0 -58
  198. data/features/uicatalog.feature +0 -20
  199. data/lib/icuke/com.apple.Accessibility.plist +0 -0
  200. data/lib/icuke/headless.rb +0 -54
  201. data/lib/icuke/xcode.rb +0 -164
@@ -1,262 +0,0 @@
1
- /*
2
- File: MainViewController.m
3
- Abstract: The application's main view controller (front page).
4
- Version: 2.6
5
-
6
- Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple
7
- Inc. ("Apple") in consideration of your agreement to the following
8
- terms, and your use, installation, modification or redistribution of
9
- this Apple software constitutes acceptance of these terms. If you do
10
- not agree with these terms, please do not use, install, modify or
11
- redistribute this Apple software.
12
-
13
- In consideration of your agreement to abide by the following terms, and
14
- subject to these terms, Apple grants you a personal, non-exclusive
15
- license, under Apple's copyrights in this original Apple software (the
16
- "Apple Software"), to use, reproduce, modify and redistribute the Apple
17
- Software, with or without modifications, in source and/or binary forms;
18
- provided that if you redistribute the Apple Software in its entirety and
19
- without modifications, you must retain this notice and the following
20
- text and disclaimers in all such redistributions of the Apple Software.
21
- Neither the name, trademarks, service marks or logos of Apple Inc. may
22
- be used to endorse or promote products derived from the Apple Software
23
- without specific prior written permission from Apple. Except as
24
- expressly stated in this notice, no other rights or licenses, express or
25
- implied, are granted by Apple herein, including but not limited to any
26
- patent rights that may be infringed by your derivative works or by other
27
- works in which the Apple Software may be incorporated.
28
-
29
- The Apple Software is provided by Apple on an "AS IS" basis. APPLE
30
- MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION
31
- THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS
32
- FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND
33
- OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.
34
-
35
- IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL
36
- OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
37
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
38
- INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,
39
- MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED
40
- AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),
41
- STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE
42
- POSSIBILITY OF SUCH DAMAGE.
43
-
44
- Copyright (C) 2009 Apple Inc. All Rights Reserved.
45
-
46
- */
47
-
48
- #import "MainViewController.h"
49
-
50
- #import "ButtonsViewController.h"
51
- #import "ControlsViewController.h"
52
- #import "TextFieldController.h"
53
- #import "SearchBarController.h"
54
- #import "TextViewController.h"
55
- #import "SegmentViewController.h"
56
- #import "ToolbarViewController.h"
57
- #import "PickerViewController.h"
58
- #import "ImagesViewController.h"
59
- #import "WebViewController.h"
60
- #import "AlertsViewController.h"
61
- #import "TransitionViewController.h"
62
-
63
- #import "Constants.h"
64
-
65
- static NSString *kCellIdentifier = @"MyIdentifier";
66
- static NSString *kTitleKey = @"title";
67
- static NSString *kViewControllerKey = @"viewController";
68
-
69
- @implementation MainViewController
70
-
71
- @synthesize menuList;
72
-
73
- - (void)viewDidLoad
74
- {
75
- [super viewDidLoad];
76
-
77
- // construct the array of page descriptions we will use (each description is a dictionary)
78
- //
79
- self.menuList = [NSMutableArray array];
80
-
81
- // for showing various UIButtons:
82
- ButtonsViewController *buttonsViewController = [[ButtonsViewController alloc]
83
- initWithNibName:@"ButtonsViewController" bundle:nil];
84
- [self.menuList addObject:[NSDictionary dictionaryWithObjectsAndKeys:
85
- NSLocalizedString(@"ButtonsTitle", @""), kTitleKey,
86
- buttonsViewController, kViewControllerKey,
87
- nil]];
88
- [buttonsViewController release];
89
-
90
- // for showing various UIControls:
91
- ControlsViewController *controlsViewController = [[ControlsViewController alloc]
92
- initWithNibName:@"ControlsViewController" bundle:nil];
93
- [self.menuList addObject:[NSDictionary dictionaryWithObjectsAndKeys:
94
- NSLocalizedString(@"ControlsTitle", @""), kTitleKey,
95
- controlsViewController, kViewControllerKey,
96
- nil]];
97
- [controlsViewController release];
98
-
99
- // for showing various UITextFields:
100
- TextFieldController *textFieldViewController = [[TextFieldController alloc]
101
- initWithNibName:@"TextFieldController" bundle:nil];
102
- [self.menuList addObject:[NSDictionary dictionaryWithObjectsAndKeys:
103
- NSLocalizedString(@"TextFieldTitle", @""), kTitleKey,
104
- textFieldViewController, kViewControllerKey,
105
- nil]];
106
- [textFieldViewController release];
107
-
108
- // for UISearchBar:
109
- SearchBarController *searchBarController = [[SearchBarController alloc]
110
- initWithNibName:@"SearchBarController" bundle:nil];
111
- [self.menuList addObject:[NSDictionary dictionaryWithObjectsAndKeys:
112
- NSLocalizedString(@"SearchBarTitle", @""), kTitleKey,
113
- searchBarController, kViewControllerKey,
114
- nil]];
115
- [searchBarController release];
116
-
117
- // for showing UITextView:
118
- TextViewController *textViewController = [[TextViewController alloc]
119
- initWithNibName:@"TextViewController" bundle:nil];
120
- [self.menuList addObject:[NSDictionary dictionaryWithObjectsAndKeys:
121
- NSLocalizedString(@"TextViewTitle", @""), kTitleKey,
122
- textViewController, kViewControllerKey,
123
- nil]];
124
- [textViewController release];
125
-
126
- // for showing various UIPickers:
127
- PickerViewController *pickerViewController = [[PickerViewController alloc]
128
- initWithNibName:@"PickerViewController" bundle:nil];
129
- [self.menuList addObject:[NSDictionary dictionaryWithObjectsAndKeys:
130
- NSLocalizedString(@"PickerTitle", @""), kTitleKey,
131
- pickerViewController, kViewControllerKey,
132
- nil]];
133
- [pickerViewController release];
134
-
135
- // for showing UIImageView:
136
- ImagesViewController *imagesViewController = [[ImagesViewController alloc]
137
- initWithNibName:@"ImagesViewController" bundle:nil];
138
- [self.menuList addObject:[NSDictionary dictionaryWithObjectsAndKeys:
139
- NSLocalizedString(@"ImagesTitle", @""), kTitleKey,
140
- imagesViewController, kViewControllerKey,
141
- nil]];
142
- [imagesViewController release];
143
-
144
- // for showing UIWebView:
145
- WebViewController *webViewController = [[WebViewController alloc]
146
- initWithNibName:@"WebViewController" bundle:nil];
147
- [self.menuList addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:
148
- NSLocalizedString(@"WebTitle", @""), kTitleKey,
149
- webViewController, kViewControllerKey,
150
- nil]];
151
- [webViewController release];
152
-
153
- // for showing various UISegmentedControls:
154
- SegmentViewController *segmentViewController = [[SegmentViewController alloc]
155
- initWithNibName:@"SegmentViewController" bundle:nil];
156
- [self.menuList addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:
157
- NSLocalizedString(@"SegmentTitle", @""), kTitleKey,
158
- segmentViewController, kViewControllerKey,
159
- nil]];
160
- [segmentViewController release];
161
-
162
- // for showing various UIBarButtonItem items inside a UIToolbar:
163
- ToolbarViewController *toolbarViewController = [[ToolbarViewController alloc]
164
- initWithNibName:@"ToolbarViewController" bundle:nil];
165
- [self.menuList addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:
166
- NSLocalizedString(@"ToolbarTitle", @""), kTitleKey,
167
- toolbarViewController, kViewControllerKey,
168
- nil]];
169
- [toolbarViewController release];
170
-
171
- // for showing various UIActionSheets and UIAlertViews:
172
- AlertsViewController *alertsViewController = [[AlertsViewController alloc]
173
- initWithNibName:@"AlertsViewController" bundle:nil];
174
- [self.menuList addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:
175
- NSLocalizedString(@"AlertTitle", @""), kTitleKey,
176
- alertsViewController, kViewControllerKey,
177
- nil]];
178
- [alertsViewController release];
179
-
180
- // for showing how to a use flip animation transition between two UIViews:
181
- TransitionsViewController *transitionsViewController = [[TransitionsViewController alloc]
182
- initWithNibName:@"TransitionViewController" bundle:nil];
183
- [self.menuList addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:
184
- NSLocalizedString(@"TransitionsTitle", @""), kTitleKey,
185
- transitionsViewController, kViewControllerKey,
186
- nil]];
187
- [transitionsViewController release];
188
-
189
- // create a custom navigation bar button and set it to always say "Back"
190
- UIBarButtonItem *temporaryBarButtonItem = [[UIBarButtonItem alloc] init];
191
- temporaryBarButtonItem.title = @"Back";
192
- self.navigationItem.backBarButtonItem = temporaryBarButtonItem;
193
- [temporaryBarButtonItem release];
194
- }
195
-
196
- // called after the view controller's view is released and set to nil.
197
- // For example, a memory warning which causes the view to be purged. Not invoked as a result of -dealloc.
198
- // So release any properties that are loaded in viewDidLoad or can be recreated lazily.
199
- //
200
- - (void)viewDidUnload
201
- {
202
- [super viewDidUnload];
203
-
204
- self.menuList = nil;
205
- }
206
-
207
- - (void)dealloc
208
- {
209
- [menuList release];
210
- [super dealloc];
211
- }
212
-
213
-
214
- #pragma mark -
215
- #pragma mark UIViewController delegate
216
-
217
- - (void)viewWillAppear:(BOOL)animated
218
- {
219
- // this UIViewController is about to re-appear, make sure we remove the current selection in our table view
220
- NSIndexPath *tableSelection = [self.tableView indexPathForSelectedRow];
221
- [self.tableView deselectRowAtIndexPath:tableSelection animated:NO];
222
- }
223
-
224
-
225
- #pragma mark -
226
- #pragma mark UITableViewDelegate
227
-
228
- // the table's selection has changed, switch to that item's UIViewController
229
- - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
230
- {
231
- UIViewController *targetViewController = [[self.menuList objectAtIndex: indexPath.row] objectForKey:kViewControllerKey];
232
- [[self navigationController] pushViewController:targetViewController animated:YES];
233
- }
234
-
235
-
236
- #pragma mark -
237
- #pragma mark UITableViewDataSource
238
-
239
- // tell our table how many rows it will have, in our case the size of our menuList
240
- - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
241
- {
242
- return [self.menuList count];
243
- }
244
-
245
- // tell our table what kind of cell to use and its title for the given row
246
- - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
247
- {
248
- UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellIdentifier];
249
- if (cell == nil)
250
- {
251
- cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:kCellIdentifier] autorelease];
252
- cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
253
- }
254
-
255
- cell.textLabel.text = [[self.menuList objectAtIndex:indexPath.row] objectForKey:kTitleKey];
256
-
257
- return cell;
258
- }
259
-
260
- @end
261
-
262
-
@@ -1,55 +0,0 @@
1
- /*
2
- File: CustomPickerDataSource.h
3
- Abstract: The data source for the Custom Picker that displays text and images.
4
- Version: 2.6
5
-
6
- Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple
7
- Inc. ("Apple") in consideration of your agreement to the following
8
- terms, and your use, installation, modification or redistribution of
9
- this Apple software constitutes acceptance of these terms. If you do
10
- not agree with these terms, please do not use, install, modify or
11
- redistribute this Apple software.
12
-
13
- In consideration of your agreement to abide by the following terms, and
14
- subject to these terms, Apple grants you a personal, non-exclusive
15
- license, under Apple's copyrights in this original Apple software (the
16
- "Apple Software"), to use, reproduce, modify and redistribute the Apple
17
- Software, with or without modifications, in source and/or binary forms;
18
- provided that if you redistribute the Apple Software in its entirety and
19
- without modifications, you must retain this notice and the following
20
- text and disclaimers in all such redistributions of the Apple Software.
21
- Neither the name, trademarks, service marks or logos of Apple Inc. may
22
- be used to endorse or promote products derived from the Apple Software
23
- without specific prior written permission from Apple. Except as
24
- expressly stated in this notice, no other rights or licenses, express or
25
- implied, are granted by Apple herein, including but not limited to any
26
- patent rights that may be infringed by your derivative works or by other
27
- works in which the Apple Software may be incorporated.
28
-
29
- The Apple Software is provided by Apple on an "AS IS" basis. APPLE
30
- MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION
31
- THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS
32
- FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND
33
- OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.
34
-
35
- IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL
36
- OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
37
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
38
- INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,
39
- MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED
40
- AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),
41
- STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE
42
- POSSIBILITY OF SUCH DAMAGE.
43
-
44
- Copyright (C) 2009 Apple Inc. All Rights Reserved.
45
-
46
- */
47
-
48
- @interface CustomPickerDataSource : NSObject <UIPickerViewDataSource, UIPickerViewDelegate>
49
- {
50
- NSArray *customPickerArray;
51
- }
52
-
53
- @property (nonatomic, retain) NSArray *customPickerArray;
54
-
55
- @end
@@ -1,135 +0,0 @@
1
- /*
2
- File: CustomPickerDataSource.m
3
- Abstract: The data source for the Custom Picker that displays text and images.
4
- Version: 2.6
5
-
6
- Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple
7
- Inc. ("Apple") in consideration of your agreement to the following
8
- terms, and your use, installation, modification or redistribution of
9
- this Apple software constitutes acceptance of these terms. If you do
10
- not agree with these terms, please do not use, install, modify or
11
- redistribute this Apple software.
12
-
13
- In consideration of your agreement to abide by the following terms, and
14
- subject to these terms, Apple grants you a personal, non-exclusive
15
- license, under Apple's copyrights in this original Apple software (the
16
- "Apple Software"), to use, reproduce, modify and redistribute the Apple
17
- Software, with or without modifications, in source and/or binary forms;
18
- provided that if you redistribute the Apple Software in its entirety and
19
- without modifications, you must retain this notice and the following
20
- text and disclaimers in all such redistributions of the Apple Software.
21
- Neither the name, trademarks, service marks or logos of Apple Inc. may
22
- be used to endorse or promote products derived from the Apple Software
23
- without specific prior written permission from Apple. Except as
24
- expressly stated in this notice, no other rights or licenses, express or
25
- implied, are granted by Apple herein, including but not limited to any
26
- patent rights that may be infringed by your derivative works or by other
27
- works in which the Apple Software may be incorporated.
28
-
29
- The Apple Software is provided by Apple on an "AS IS" basis. APPLE
30
- MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION
31
- THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS
32
- FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND
33
- OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.
34
-
35
- IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL
36
- OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
37
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
38
- INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,
39
- MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED
40
- AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),
41
- STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE
42
- POSSIBILITY OF SUCH DAMAGE.
43
-
44
- Copyright (C) 2009 Apple Inc. All Rights Reserved.
45
-
46
- */
47
-
48
- #import "CustomPickerDataSource.h"
49
- #import "CustomView.h"
50
-
51
- @implementation CustomPickerDataSource
52
-
53
- @synthesize customPickerArray;
54
-
55
- - (id)init
56
- {
57
- // use predetermined frame size
58
- self = [super init];
59
- if (self)
60
- {
61
- // create the data source for this custom picker
62
- NSMutableArray *viewArray = [[NSMutableArray alloc] init];
63
-
64
- CustomView *earlyMorningView = [[CustomView alloc] initWithFrame:CGRectZero];
65
- earlyMorningView.title = @"Early Morning";
66
- earlyMorningView.image = [UIImage imageNamed:@"12-6AM.png"];
67
- [viewArray addObject:earlyMorningView];
68
- [earlyMorningView release];
69
-
70
- CustomView *lateMorningView = [[CustomView alloc] initWithFrame:CGRectZero];
71
- lateMorningView.title = @"Late Morning";
72
- lateMorningView.image = [UIImage imageNamed:@"6-12AM.png"];
73
- [viewArray addObject:lateMorningView];
74
- [lateMorningView release];
75
-
76
- CustomView *afternoonView = [[CustomView alloc] initWithFrame:CGRectZero];
77
- afternoonView.title = @"Afternoon";
78
- afternoonView.image = [UIImage imageNamed:@"12-6PM.png"];
79
- [viewArray addObject:afternoonView];
80
- [afternoonView release];
81
-
82
- CustomView *eveningView = [[CustomView alloc] initWithFrame:CGRectZero];
83
- eveningView.title = @"Evening";
84
- eveningView.image = [UIImage imageNamed:@"6-12PM.png"];
85
- [viewArray addObject:eveningView];
86
- [eveningView release];
87
-
88
- self.customPickerArray = viewArray;
89
- [viewArray release];
90
- }
91
- return self;
92
- }
93
-
94
- - (void)dealloc
95
- {
96
- [customPickerArray release];
97
- [super dealloc];
98
- }
99
-
100
-
101
- #pragma mark -
102
- #pragma mark UIPickerViewDataSource
103
-
104
- - (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component
105
- {
106
- return [CustomView viewWidth];
107
- }
108
-
109
- - (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component
110
- {
111
- return [CustomView viewHeight];
112
- }
113
-
114
- - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
115
- {
116
- return [customPickerArray count];
117
- }
118
-
119
- - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
120
- {
121
- return 1;
122
- }
123
-
124
-
125
- #pragma mark -
126
- #pragma mark UIPickerViewDelegate
127
-
128
- // tell the picker which view to use for a given component and row, we have an array of views to show
129
- - (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row
130
- forComponent:(NSInteger)component reusingView:(UIView *)view
131
- {
132
- return [customPickerArray objectAtIndex:row];
133
- }
134
-
135
- @end
@@ -1,62 +0,0 @@
1
- /*
2
- File: CustomView.h
3
- Abstract: The custom view holding the image and title for the custom picker.
4
- Version: 2.6
5
-
6
- Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple
7
- Inc. ("Apple") in consideration of your agreement to the following
8
- terms, and your use, installation, modification or redistribution of
9
- this Apple software constitutes acceptance of these terms. If you do
10
- not agree with these terms, please do not use, install, modify or
11
- redistribute this Apple software.
12
-
13
- In consideration of your agreement to abide by the following terms, and
14
- subject to these terms, Apple grants you a personal, non-exclusive
15
- license, under Apple's copyrights in this original Apple software (the
16
- "Apple Software"), to use, reproduce, modify and redistribute the Apple
17
- Software, with or without modifications, in source and/or binary forms;
18
- provided that if you redistribute the Apple Software in its entirety and
19
- without modifications, you must retain this notice and the following
20
- text and disclaimers in all such redistributions of the Apple Software.
21
- Neither the name, trademarks, service marks or logos of Apple Inc. may
22
- be used to endorse or promote products derived from the Apple Software
23
- without specific prior written permission from Apple. Except as
24
- expressly stated in this notice, no other rights or licenses, express or
25
- implied, are granted by Apple herein, including but not limited to any
26
- patent rights that may be infringed by your derivative works or by other
27
- works in which the Apple Software may be incorporated.
28
-
29
- The Apple Software is provided by Apple on an "AS IS" basis. APPLE
30
- MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION
31
- THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS
32
- FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND
33
- OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.
34
-
35
- IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL
36
- OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
37
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
38
- INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,
39
- MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED
40
- AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),
41
- STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE
42
- POSSIBILITY OF SUCH DAMAGE.
43
-
44
- Copyright (C) 2009 Apple Inc. All Rights Reserved.
45
-
46
- */
47
-
48
- #import <UIKit/UIKit.h>
49
-
50
- @interface CustomView : UIView
51
- {
52
- NSString *title;
53
- UIImage *image;
54
- }
55
-
56
- @property (nonatomic, retain) NSString *title;
57
- @property (nonatomic, retain) UIImage *image;
58
-
59
- + (CGFloat)viewWidth;
60
- + (CGFloat)viewHeight;
61
-
62
- @end
@@ -1,119 +0,0 @@
1
- /*
2
- File: CustomView.m
3
- Abstract: The custom view holding the image and title for the custom picker.
4
- Version: 2.6
5
-
6
- Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple
7
- Inc. ("Apple") in consideration of your agreement to the following
8
- terms, and your use, installation, modification or redistribution of
9
- this Apple software constitutes acceptance of these terms. If you do
10
- not agree with these terms, please do not use, install, modify or
11
- redistribute this Apple software.
12
-
13
- In consideration of your agreement to abide by the following terms, and
14
- subject to these terms, Apple grants you a personal, non-exclusive
15
- license, under Apple's copyrights in this original Apple software (the
16
- "Apple Software"), to use, reproduce, modify and redistribute the Apple
17
- Software, with or without modifications, in source and/or binary forms;
18
- provided that if you redistribute the Apple Software in its entirety and
19
- without modifications, you must retain this notice and the following
20
- text and disclaimers in all such redistributions of the Apple Software.
21
- Neither the name, trademarks, service marks or logos of Apple Inc. may
22
- be used to endorse or promote products derived from the Apple Software
23
- without specific prior written permission from Apple. Except as
24
- expressly stated in this notice, no other rights or licenses, express or
25
- implied, are granted by Apple herein, including but not limited to any
26
- patent rights that may be infringed by your derivative works or by other
27
- works in which the Apple Software may be incorporated.
28
-
29
- The Apple Software is provided by Apple on an "AS IS" basis. APPLE
30
- MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION
31
- THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS
32
- FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND
33
- OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.
34
-
35
- IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL
36
- OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
37
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
38
- INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,
39
- MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED
40
- AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),
41
- STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE
42
- POSSIBILITY OF SUCH DAMAGE.
43
-
44
- Copyright (C) 2009 Apple Inc. All Rights Reserved.
45
-
46
- */
47
-
48
- #import "CustomView.h"
49
-
50
- #define MAIN_FONT_SIZE 18
51
- #define MIN_MAIN_FONT_SIZE 16
52
-
53
- @implementation CustomView
54
-
55
- @synthesize title, image;
56
-
57
- const CGFloat kViewWidth = 200;
58
- const CGFloat kViewHeight = 44;
59
-
60
- + (CGFloat)viewWidth
61
- {
62
- return kViewWidth;
63
- }
64
-
65
- + (CGFloat)viewHeight
66
- {
67
- return kViewHeight;
68
- }
69
-
70
- - (id)initWithFrame:(CGRect)frame
71
- {
72
- // use predetermined frame size
73
- if (self = [super initWithFrame:CGRectMake(0.0, 0.0, kViewWidth, kViewHeight)])
74
- {
75
- self.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
76
- self.backgroundColor = [UIColor clearColor]; // make the background transparent
77
- }
78
- return self;
79
- }
80
-
81
- - (void)drawRect:(CGRect)rect
82
- {
83
- // draw the image and title using their draw methods
84
- CGFloat yCoord = (self.bounds.size.height - self.image.size.height) / 2;
85
- CGPoint point = CGPointMake(10.0, yCoord);
86
- [self.image drawAtPoint:point];
87
-
88
- yCoord = (self.bounds.size.height - MAIN_FONT_SIZE) / 2;
89
- point = CGPointMake(10.0 + self.image.size.width + 10.0, yCoord);
90
- [self.title drawAtPoint:point
91
- forWidth:self.bounds.size.width
92
- withFont:[UIFont systemFontOfSize:MAIN_FONT_SIZE]
93
- minFontSize:MIN_MAIN_FONT_SIZE
94
- actualFontSize:NULL
95
- lineBreakMode:UILineBreakModeTailTruncation
96
- baselineAdjustment:UIBaselineAdjustmentAlignBaselines];
97
- }
98
-
99
- // Enable accessibility for this view.
100
- - (BOOL)isAccessibilityElement
101
- {
102
- return YES;
103
- }
104
-
105
- // Return a string that describes this view.
106
- - (NSString *)accessibilityLabel
107
- {
108
- return self.title;
109
- }
110
-
111
- - (void)dealloc
112
- {
113
- [title release];
114
- [image release];
115
-
116
- [super dealloc];
117
- }
118
-
119
- @end