Index: trunk/tools/Snap-to-Commons/main.m |
— | — | @@ -0,0 +1,15 @@ |
| 2 | +// |
| 3 | +// main.m |
| 4 | +// |
| 5 | +// Copyright yourcompanyname 2009. All rights reserved. |
| 6 | +// |
| 7 | + |
| 8 | +#import <UIKit/UIKit.h> |
| 9 | + |
| 10 | +int main(int argc, char *argv[]) { |
| 11 | + |
| 12 | + NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; |
| 13 | + int retVal = UIApplicationMain(argc, argv, nil, nil); |
| 14 | + [pool release]; |
| 15 | + return retVal; |
| 16 | +} |
Index: trunk/tools/Snap-to-Commons/readme.html |
— | — | @@ -0,0 +1,61 @@ |
| 2 | +<html> |
| 3 | + <head> |
| 4 | + <title>Customizing PhotoPicker for your own iPhone-based web app</title> |
| 5 | + </head> |
| 6 | + <h1>Customizing PhotoPicker for your own iPhone-based web app</h1> |
| 7 | + <h2>XCode Project</h2> |
| 8 | + <h3>Images</h3> |
| 9 | + <ul> |
| 10 | + <li>icon.png - replace with an iPhone app icon (57x57 pixels)</li> |
| 11 | + <li>logo.png - replace with your logo (280x88 pixels max -- will center automatically)</li> |
| 12 | + </ul> |
| 13 | + <h3>XIBs</h3> |
| 14 | + <ul> |
| 15 | + <li>PhotoPickerViewController.xib - can be customized with fancier graphics or button labels</li> |
| 16 | + </ul> |
| 17 | + <h3>Plist</h3> |
| 18 | + <ul> |
| 19 | + <li>photopicker-Info.plist - replace "yourcompany" with the name of your company. See "Bundle identifier", "URL types":"URL identifier", and "URL types":"URL Schemes". Also replace "${PRODUCT_NAME}" with the name of your product or company.</li> |
| 20 | + </ul> |
| 21 | + <h3>Source Code</h3> |
| 22 | + <ul> |
| 23 | + <li>PhotoPickerAppDelegate.m - replace "yourcompanyname" with the name of your company (or update the URL appropriately otherwise -- see comment).</li> |
| 24 | + </ul> |
| 25 | + <h2>From the Web App</h2> |
| 26 | + <ul> |
| 27 | + <li> |
| 28 | + <p>Add the following Javascript section to your web application, replacing the URLs as appropriate.</p> |
| 29 | + <code><pre> |
| 30 | + <script type="text/javascript"> |
| 31 | + window.launchNativeApp = function() { |
| 32 | + setTimeout(function() { |
| 33 | + window.location = 'http://www.yourcompanyname.com/instruction-to-install-app.html' |
| 34 | + }, 500); |
| 35 | + |
| 36 | + window.location = 'yourcompany://photopicker?action=http://www.yourcompanyname.com/path-to-upload-to/?continue=http://www.yourcompanyname.com&maxsize=300&source=camera'; |
| 37 | + }; |
| 38 | + </script> |
| 39 | + </pre></code> |
| 40 | + </li> |
| 41 | + <li> |
| 42 | + <p>GET params for launching the application include:</p> |
| 43 | + <ul> |
| 44 | + <li>action - (required) the URL to upload to.</li> |
| 45 | + <li>continue - (required) the URL to open in Safari after the POST operation is complete, or the user cancels. The GET parameter "success=1" is automatically added on success.</li> |
| 46 | + <li>context - (optional) a string value to pass as a POST parameter to the upload URL. This can be used to help maintain state information.</li> |
| 47 | + <li>source - (optional) the preferred source type, to start out with, if it's available. Options are: "camera" and "library". If left off, a menu of choices may be presented in the application.</li> |
| 48 | + <li>maxsize - (optional) the maximum width or height of the image to upload. Images are scaled with their aspects maintained.</li> |
| 49 | + </ul> |
| 50 | + </li> |
| 51 | + </ul> |
| 52 | + <h2>On Your Web Server</h2> |
| 53 | + <ul> |
| 54 | + <li> |
| 55 | + <p>You will need to write code to accept uploaded images. Images are uploaded using standard http multipart/form-data encoding. The following POST parameters are passed:</p> |
| 56 | + <ul> |
| 57 | + <li>context - the string value passed when launching the application.</li> |
| 58 | + <li>image_file - the uploaded file. This will always be given the filename "photopicker.jpg".</li> |
| 59 | + </ul> |
| 60 | + </li> |
| 61 | + </ul> |
| 62 | +</html> |
Index: trunk/tools/Snap-to-Commons/cancel-button.png |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes on: trunk/tools/Snap-to-Commons/cancel-button.png |
___________________________________________________________________ |
Added: svn:mime-type |
1 | 63 | + application/octet-stream |
Index: trunk/tools/Snap-to-Commons/photopicker.xcodeproj/westphal.mode1v3 |
— | — | @@ -0,0 +1,1400 @@ |
| 2 | +<?xml version="1.0" encoding="UTF-8"?> |
| 3 | +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> |
| 4 | +<plist version="1.0"> |
| 5 | +<dict> |
| 6 | + <key>ActivePerspectiveName</key> |
| 7 | + <string>Project</string> |
| 8 | + <key>AllowedModules</key> |
| 9 | + <array> |
| 10 | + <dict> |
| 11 | + <key>BundleLoadPath</key> |
| 12 | + <string></string> |
| 13 | + <key>MaxInstances</key> |
| 14 | + <string>n</string> |
| 15 | + <key>Module</key> |
| 16 | + <string>PBXSmartGroupTreeModule</string> |
| 17 | + <key>Name</key> |
| 18 | + <string>Groups and Files Outline View</string> |
| 19 | + </dict> |
| 20 | + <dict> |
| 21 | + <key>BundleLoadPath</key> |
| 22 | + <string></string> |
| 23 | + <key>MaxInstances</key> |
| 24 | + <string>n</string> |
| 25 | + <key>Module</key> |
| 26 | + <string>PBXNavigatorGroup</string> |
| 27 | + <key>Name</key> |
| 28 | + <string>Editor</string> |
| 29 | + </dict> |
| 30 | + <dict> |
| 31 | + <key>BundleLoadPath</key> |
| 32 | + <string></string> |
| 33 | + <key>MaxInstances</key> |
| 34 | + <string>n</string> |
| 35 | + <key>Module</key> |
| 36 | + <string>XCTaskListModule</string> |
| 37 | + <key>Name</key> |
| 38 | + <string>Task List</string> |
| 39 | + </dict> |
| 40 | + <dict> |
| 41 | + <key>BundleLoadPath</key> |
| 42 | + <string></string> |
| 43 | + <key>MaxInstances</key> |
| 44 | + <string>n</string> |
| 45 | + <key>Module</key> |
| 46 | + <string>XCDetailModule</string> |
| 47 | + <key>Name</key> |
| 48 | + <string>File and Smart Group Detail Viewer</string> |
| 49 | + </dict> |
| 50 | + <dict> |
| 51 | + <key>BundleLoadPath</key> |
| 52 | + <string></string> |
| 53 | + <key>MaxInstances</key> |
| 54 | + <string>1</string> |
| 55 | + <key>Module</key> |
| 56 | + <string>PBXBuildResultsModule</string> |
| 57 | + <key>Name</key> |
| 58 | + <string>Detailed Build Results Viewer</string> |
| 59 | + </dict> |
| 60 | + <dict> |
| 61 | + <key>BundleLoadPath</key> |
| 62 | + <string></string> |
| 63 | + <key>MaxInstances</key> |
| 64 | + <string>1</string> |
| 65 | + <key>Module</key> |
| 66 | + <string>PBXProjectFindModule</string> |
| 67 | + <key>Name</key> |
| 68 | + <string>Project Batch Find Tool</string> |
| 69 | + </dict> |
| 70 | + <dict> |
| 71 | + <key>BundleLoadPath</key> |
| 72 | + <string></string> |
| 73 | + <key>MaxInstances</key> |
| 74 | + <string>n</string> |
| 75 | + <key>Module</key> |
| 76 | + <string>XCProjectFormatConflictsModule</string> |
| 77 | + <key>Name</key> |
| 78 | + <string>Project Format Conflicts List</string> |
| 79 | + </dict> |
| 80 | + <dict> |
| 81 | + <key>BundleLoadPath</key> |
| 82 | + <string></string> |
| 83 | + <key>MaxInstances</key> |
| 84 | + <string>n</string> |
| 85 | + <key>Module</key> |
| 86 | + <string>PBXBookmarksModule</string> |
| 87 | + <key>Name</key> |
| 88 | + <string>Bookmarks Tool</string> |
| 89 | + </dict> |
| 90 | + <dict> |
| 91 | + <key>BundleLoadPath</key> |
| 92 | + <string></string> |
| 93 | + <key>MaxInstances</key> |
| 94 | + <string>n</string> |
| 95 | + <key>Module</key> |
| 96 | + <string>PBXClassBrowserModule</string> |
| 97 | + <key>Name</key> |
| 98 | + <string>Class Browser</string> |
| 99 | + </dict> |
| 100 | + <dict> |
| 101 | + <key>BundleLoadPath</key> |
| 102 | + <string></string> |
| 103 | + <key>MaxInstances</key> |
| 104 | + <string>n</string> |
| 105 | + <key>Module</key> |
| 106 | + <string>PBXCVSModule</string> |
| 107 | + <key>Name</key> |
| 108 | + <string>Source Code Control Tool</string> |
| 109 | + </dict> |
| 110 | + <dict> |
| 111 | + <key>BundleLoadPath</key> |
| 112 | + <string></string> |
| 113 | + <key>MaxInstances</key> |
| 114 | + <string>n</string> |
| 115 | + <key>Module</key> |
| 116 | + <string>PBXDebugBreakpointsModule</string> |
| 117 | + <key>Name</key> |
| 118 | + <string>Debug Breakpoints Tool</string> |
| 119 | + </dict> |
| 120 | + <dict> |
| 121 | + <key>BundleLoadPath</key> |
| 122 | + <string></string> |
| 123 | + <key>MaxInstances</key> |
| 124 | + <string>n</string> |
| 125 | + <key>Module</key> |
| 126 | + <string>XCDockableInspector</string> |
| 127 | + <key>Name</key> |
| 128 | + <string>Inspector</string> |
| 129 | + </dict> |
| 130 | + <dict> |
| 131 | + <key>BundleLoadPath</key> |
| 132 | + <string></string> |
| 133 | + <key>MaxInstances</key> |
| 134 | + <string>n</string> |
| 135 | + <key>Module</key> |
| 136 | + <string>PBXOpenQuicklyModule</string> |
| 137 | + <key>Name</key> |
| 138 | + <string>Open Quickly Tool</string> |
| 139 | + </dict> |
| 140 | + <dict> |
| 141 | + <key>BundleLoadPath</key> |
| 142 | + <string></string> |
| 143 | + <key>MaxInstances</key> |
| 144 | + <string>1</string> |
| 145 | + <key>Module</key> |
| 146 | + <string>PBXDebugSessionModule</string> |
| 147 | + <key>Name</key> |
| 148 | + <string>Debugger</string> |
| 149 | + </dict> |
| 150 | + <dict> |
| 151 | + <key>BundleLoadPath</key> |
| 152 | + <string></string> |
| 153 | + <key>MaxInstances</key> |
| 154 | + <string>1</string> |
| 155 | + <key>Module</key> |
| 156 | + <string>PBXDebugCLIModule</string> |
| 157 | + <key>Name</key> |
| 158 | + <string>Debug Console</string> |
| 159 | + </dict> |
| 160 | + <dict> |
| 161 | + <key>BundleLoadPath</key> |
| 162 | + <string></string> |
| 163 | + <key>MaxInstances</key> |
| 164 | + <string>n</string> |
| 165 | + <key>Module</key> |
| 166 | + <string>XCSnapshotModule</string> |
| 167 | + <key>Name</key> |
| 168 | + <string>Snapshots Tool</string> |
| 169 | + </dict> |
| 170 | + </array> |
| 171 | + <key>BundlePath</key> |
| 172 | + <string>/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources</string> |
| 173 | + <key>Description</key> |
| 174 | + <string>DefaultDescriptionKey</string> |
| 175 | + <key>DockingSystemVisible</key> |
| 176 | + <false/> |
| 177 | + <key>Extension</key> |
| 178 | + <string>mode1v3</string> |
| 179 | + <key>FavBarConfig</key> |
| 180 | + <dict> |
| 181 | + <key>PBXProjectModuleGUID</key> |
| 182 | + <string>F1A2674710C9C22E0044762E</string> |
| 183 | + <key>XCBarModuleItemNames</key> |
| 184 | + <dict/> |
| 185 | + <key>XCBarModuleItems</key> |
| 186 | + <array/> |
| 187 | + </dict> |
| 188 | + <key>FirstTimeWindowDisplayed</key> |
| 189 | + <false/> |
| 190 | + <key>Identifier</key> |
| 191 | + <string>com.apple.perspectives.project.mode1v3</string> |
| 192 | + <key>MajorVersion</key> |
| 193 | + <integer>33</integer> |
| 194 | + <key>MinorVersion</key> |
| 195 | + <integer>0</integer> |
| 196 | + <key>Name</key> |
| 197 | + <string>Default</string> |
| 198 | + <key>Notifications</key> |
| 199 | + <array/> |
| 200 | + <key>OpenEditors</key> |
| 201 | + <array/> |
| 202 | + <key>PerspectiveWidths</key> |
| 203 | + <array> |
| 204 | + <integer>-1</integer> |
| 205 | + <integer>-1</integer> |
| 206 | + </array> |
| 207 | + <key>Perspectives</key> |
| 208 | + <array> |
| 209 | + <dict> |
| 210 | + <key>ChosenToolbarItems</key> |
| 211 | + <array> |
| 212 | + <string>active-combo-popup</string> |
| 213 | + <string>action</string> |
| 214 | + <string>NSToolbarFlexibleSpaceItem</string> |
| 215 | + <string>debugger-enable-breakpoints</string> |
| 216 | + <string>build-and-go</string> |
| 217 | + <string>com.apple.ide.PBXToolbarStopButton</string> |
| 218 | + <string>get-info</string> |
| 219 | + <string>NSToolbarFlexibleSpaceItem</string> |
| 220 | + <string>com.apple.pbx.toolbar.searchfield</string> |
| 221 | + </array> |
| 222 | + <key>ControllerClassBaseName</key> |
| 223 | + <string></string> |
| 224 | + <key>IconName</key> |
| 225 | + <string>WindowOfProjectWithEditor</string> |
| 226 | + <key>Identifier</key> |
| 227 | + <string>perspective.project</string> |
| 228 | + <key>IsVertical</key> |
| 229 | + <false/> |
| 230 | + <key>Layout</key> |
| 231 | + <array> |
| 232 | + <dict> |
| 233 | + <key>BecomeActive</key> |
| 234 | + <true/> |
| 235 | + <key>ContentConfiguration</key> |
| 236 | + <dict> |
| 237 | + <key>PBXBottomSmartGroupGIDs</key> |
| 238 | + <array> |
| 239 | + <string>1C37FBAC04509CD000000102</string> |
| 240 | + <string>1C37FAAC04509CD000000102</string> |
| 241 | + <string>1C37FABC05509CD000000102</string> |
| 242 | + <string>1C37FABC05539CD112110102</string> |
| 243 | + <string>E2644B35053B69B200211256</string> |
| 244 | + <string>1C37FABC04509CD000100104</string> |
| 245 | + <string>1CC0EA4004350EF90044410B</string> |
| 246 | + <string>1CC0EA4004350EF90041110B</string> |
| 247 | + </array> |
| 248 | + <key>PBXProjectModuleGUID</key> |
| 249 | + <string>1CE0B1FE06471DED0097A5F4</string> |
| 250 | + <key>PBXProjectModuleLabel</key> |
| 251 | + <string>Files</string> |
| 252 | + <key>PBXProjectStructureProvided</key> |
| 253 | + <string>yes</string> |
| 254 | + <key>PBXSmartGroupTreeModuleColumnData</key> |
| 255 | + <dict> |
| 256 | + <key>PBXSmartGroupTreeModuleColumnWidthsKey</key> |
| 257 | + <array> |
| 258 | + <real>250</real> |
| 259 | + </array> |
| 260 | + <key>PBXSmartGroupTreeModuleColumnsKey_v4</key> |
| 261 | + <array> |
| 262 | + <string>MainColumn</string> |
| 263 | + </array> |
| 264 | + </dict> |
| 265 | + <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key> |
| 266 | + <dict> |
| 267 | + <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key> |
| 268 | + <array> |
| 269 | + <string>29B97314FDCFA39411CA2CEA</string> |
| 270 | + <string>080E96DDFE201D6D7F000001</string> |
| 271 | + <string>29B97315FDCFA39411CA2CEA</string> |
| 272 | + <string>29B97317FDCFA39411CA2CEA</string> |
| 273 | + <string>1C37FABC05509CD000000102</string> |
| 274 | + </array> |
| 275 | + <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key> |
| 276 | + <array> |
| 277 | + <array> |
| 278 | + <integer>0</integer> |
| 279 | + </array> |
| 280 | + </array> |
| 281 | + <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key> |
| 282 | + <string>{{0, 0}, {250, 760}}</string> |
| 283 | + </dict> |
| 284 | + <key>PBXTopSmartGroupGIDs</key> |
| 285 | + <array/> |
| 286 | + <key>XCIncludePerspectivesSwitch</key> |
| 287 | + <true/> |
| 288 | + <key>XCSharingToken</key> |
| 289 | + <string>com.apple.Xcode.GFSharingToken</string> |
| 290 | + </dict> |
| 291 | + <key>GeometryConfiguration</key> |
| 292 | + <dict> |
| 293 | + <key>Frame</key> |
| 294 | + <string>{{0, 0}, {267, 778}}</string> |
| 295 | + <key>GroupTreeTableConfiguration</key> |
| 296 | + <array> |
| 297 | + <string>MainColumn</string> |
| 298 | + <real>250</real> |
| 299 | + </array> |
| 300 | + <key>RubberWindowFrame</key> |
| 301 | + <string>0 59 1440 819 0 0 1440 878 </string> |
| 302 | + </dict> |
| 303 | + <key>Module</key> |
| 304 | + <string>PBXSmartGroupTreeModule</string> |
| 305 | + <key>Proportion</key> |
| 306 | + <string>267pt</string> |
| 307 | + </dict> |
| 308 | + <dict> |
| 309 | + <key>Dock</key> |
| 310 | + <array> |
| 311 | + <dict> |
| 312 | + <key>ContentConfiguration</key> |
| 313 | + <dict> |
| 314 | + <key>PBXProjectModuleGUID</key> |
| 315 | + <string>1CE0B20306471E060097A5F4</string> |
| 316 | + <key>PBXProjectModuleLabel</key> |
| 317 | + <string>Configuration.h</string> |
| 318 | + <key>PBXSplitModuleInNavigatorKey</key> |
| 319 | + <dict> |
| 320 | + <key>Split0</key> |
| 321 | + <dict> |
| 322 | + <key>PBXProjectModuleGUID</key> |
| 323 | + <string>1CE0B20406471E060097A5F4</string> |
| 324 | + <key>PBXProjectModuleLabel</key> |
| 325 | + <string>Configuration.h</string> |
| 326 | + <key>_historyCapacity</key> |
| 327 | + <integer>10</integer> |
| 328 | + <key>bookmark</key> |
| 329 | + <string>F18FF49610D72E5F005D648A</string> |
| 330 | + <key>history</key> |
| 331 | + <array> |
| 332 | + <string>F18FF2F110D727B3005D648A</string> |
| 333 | + <string>F18FF2F210D727B3005D648A</string> |
| 334 | + <string>F18FF2F310D727B3005D648A</string> |
| 335 | + <string>F18FF2F410D727B3005D648A</string> |
| 336 | + <string>F18FF47910D72BDE005D648A</string> |
| 337 | + <string>F18FF47A10D72BDE005D648A</string> |
| 338 | + <string>F18FF47B10D72BDE005D648A</string> |
| 339 | + <string>F18FF48410D72C0C005D648A</string> |
| 340 | + <string>F18FF48510D72C0C005D648A</string> |
| 341 | + <string>F18FF47C10D72BDE005D648A</string> |
| 342 | + </array> |
| 343 | + </dict> |
| 344 | + <key>SplitCount</key> |
| 345 | + <string>1</string> |
| 346 | + </dict> |
| 347 | + <key>StatusBarVisibility</key> |
| 348 | + <true/> |
| 349 | + </dict> |
| 350 | + <key>GeometryConfiguration</key> |
| 351 | + <dict> |
| 352 | + <key>Frame</key> |
| 353 | + <string>{{0, 0}, {1168, 773}}</string> |
| 354 | + <key>RubberWindowFrame</key> |
| 355 | + <string>0 59 1440 819 0 0 1440 878 </string> |
| 356 | + </dict> |
| 357 | + <key>Module</key> |
| 358 | + <string>PBXNavigatorGroup</string> |
| 359 | + <key>Proportion</key> |
| 360 | + <string>773pt</string> |
| 361 | + </dict> |
| 362 | + <dict> |
| 363 | + <key>ContentConfiguration</key> |
| 364 | + <dict> |
| 365 | + <key>PBXProjectModuleGUID</key> |
| 366 | + <string>1CE0B20506471E060097A5F4</string> |
| 367 | + <key>PBXProjectModuleLabel</key> |
| 368 | + <string>Detail</string> |
| 369 | + </dict> |
| 370 | + <key>GeometryConfiguration</key> |
| 371 | + <dict> |
| 372 | + <key>Frame</key> |
| 373 | + <string>{{0, 778}, {1168, 0}}</string> |
| 374 | + <key>RubberWindowFrame</key> |
| 375 | + <string>0 59 1440 819 0 0 1440 878 </string> |
| 376 | + </dict> |
| 377 | + <key>Module</key> |
| 378 | + <string>XCDetailModule</string> |
| 379 | + <key>Proportion</key> |
| 380 | + <string>0pt</string> |
| 381 | + </dict> |
| 382 | + </array> |
| 383 | + <key>Proportion</key> |
| 384 | + <string>1168pt</string> |
| 385 | + </dict> |
| 386 | + </array> |
| 387 | + <key>Name</key> |
| 388 | + <string>Project</string> |
| 389 | + <key>ServiceClasses</key> |
| 390 | + <array> |
| 391 | + <string>XCModuleDock</string> |
| 392 | + <string>PBXSmartGroupTreeModule</string> |
| 393 | + <string>XCModuleDock</string> |
| 394 | + <string>PBXNavigatorGroup</string> |
| 395 | + <string>XCDetailModule</string> |
| 396 | + </array> |
| 397 | + <key>TableOfContents</key> |
| 398 | + <array> |
| 399 | + <string>F18FF2F910D727B3005D648A</string> |
| 400 | + <string>1CE0B1FE06471DED0097A5F4</string> |
| 401 | + <string>F18FF2FA10D727B3005D648A</string> |
| 402 | + <string>1CE0B20306471E060097A5F4</string> |
| 403 | + <string>1CE0B20506471E060097A5F4</string> |
| 404 | + </array> |
| 405 | + <key>ToolbarConfigUserDefaultsMinorVersion</key> |
| 406 | + <string>2</string> |
| 407 | + <key>ToolbarConfiguration</key> |
| 408 | + <string>xcode.toolbar.config.defaultV3</string> |
| 409 | + </dict> |
| 410 | + <dict> |
| 411 | + <key>ControllerClassBaseName</key> |
| 412 | + <string></string> |
| 413 | + <key>IconName</key> |
| 414 | + <string>WindowOfProject</string> |
| 415 | + <key>Identifier</key> |
| 416 | + <string>perspective.morph</string> |
| 417 | + <key>IsVertical</key> |
| 418 | + <integer>0</integer> |
| 419 | + <key>Layout</key> |
| 420 | + <array> |
| 421 | + <dict> |
| 422 | + <key>BecomeActive</key> |
| 423 | + <integer>1</integer> |
| 424 | + <key>ContentConfiguration</key> |
| 425 | + <dict> |
| 426 | + <key>PBXBottomSmartGroupGIDs</key> |
| 427 | + <array> |
| 428 | + <string>1C37FBAC04509CD000000102</string> |
| 429 | + <string>1C37FAAC04509CD000000102</string> |
| 430 | + <string>1C08E77C0454961000C914BD</string> |
| 431 | + <string>1C37FABC05509CD000000102</string> |
| 432 | + <string>1C37FABC05539CD112110102</string> |
| 433 | + <string>E2644B35053B69B200211256</string> |
| 434 | + <string>1C37FABC04509CD000100104</string> |
| 435 | + <string>1CC0EA4004350EF90044410B</string> |
| 436 | + <string>1CC0EA4004350EF90041110B</string> |
| 437 | + </array> |
| 438 | + <key>PBXProjectModuleGUID</key> |
| 439 | + <string>11E0B1FE06471DED0097A5F4</string> |
| 440 | + <key>PBXProjectModuleLabel</key> |
| 441 | + <string>Files</string> |
| 442 | + <key>PBXProjectStructureProvided</key> |
| 443 | + <string>yes</string> |
| 444 | + <key>PBXSmartGroupTreeModuleColumnData</key> |
| 445 | + <dict> |
| 446 | + <key>PBXSmartGroupTreeModuleColumnWidthsKey</key> |
| 447 | + <array> |
| 448 | + <real>186</real> |
| 449 | + </array> |
| 450 | + <key>PBXSmartGroupTreeModuleColumnsKey_v4</key> |
| 451 | + <array> |
| 452 | + <string>MainColumn</string> |
| 453 | + </array> |
| 454 | + </dict> |
| 455 | + <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key> |
| 456 | + <dict> |
| 457 | + <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key> |
| 458 | + <array> |
| 459 | + <string>29B97314FDCFA39411CA2CEA</string> |
| 460 | + <string>1C37FABC05509CD000000102</string> |
| 461 | + </array> |
| 462 | + <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key> |
| 463 | + <array> |
| 464 | + <array> |
| 465 | + <integer>0</integer> |
| 466 | + </array> |
| 467 | + </array> |
| 468 | + <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key> |
| 469 | + <string>{{0, 0}, {186, 337}}</string> |
| 470 | + </dict> |
| 471 | + <key>PBXTopSmartGroupGIDs</key> |
| 472 | + <array/> |
| 473 | + <key>XCIncludePerspectivesSwitch</key> |
| 474 | + <integer>1</integer> |
| 475 | + <key>XCSharingToken</key> |
| 476 | + <string>com.apple.Xcode.GFSharingToken</string> |
| 477 | + </dict> |
| 478 | + <key>GeometryConfiguration</key> |
| 479 | + <dict> |
| 480 | + <key>Frame</key> |
| 481 | + <string>{{0, 0}, {203, 355}}</string> |
| 482 | + <key>GroupTreeTableConfiguration</key> |
| 483 | + <array> |
| 484 | + <string>MainColumn</string> |
| 485 | + <real>186</real> |
| 486 | + </array> |
| 487 | + <key>RubberWindowFrame</key> |
| 488 | + <string>373 269 690 397 0 0 1440 878 </string> |
| 489 | + </dict> |
| 490 | + <key>Module</key> |
| 491 | + <string>PBXSmartGroupTreeModule</string> |
| 492 | + <key>Proportion</key> |
| 493 | + <string>100%</string> |
| 494 | + </dict> |
| 495 | + </array> |
| 496 | + <key>Name</key> |
| 497 | + <string>Morph</string> |
| 498 | + <key>PreferredWidth</key> |
| 499 | + <integer>300</integer> |
| 500 | + <key>ServiceClasses</key> |
| 501 | + <array> |
| 502 | + <string>XCModuleDock</string> |
| 503 | + <string>PBXSmartGroupTreeModule</string> |
| 504 | + </array> |
| 505 | + <key>TableOfContents</key> |
| 506 | + <array> |
| 507 | + <string>11E0B1FE06471DED0097A5F4</string> |
| 508 | + </array> |
| 509 | + <key>ToolbarConfiguration</key> |
| 510 | + <string>xcode.toolbar.config.default.shortV3</string> |
| 511 | + </dict> |
| 512 | + </array> |
| 513 | + <key>PerspectivesBarVisible</key> |
| 514 | + <false/> |
| 515 | + <key>ShelfIsVisible</key> |
| 516 | + <false/> |
| 517 | + <key>SourceDescription</key> |
| 518 | + <string>file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec'</string> |
| 519 | + <key>StatusbarIsVisible</key> |
| 520 | + <true/> |
| 521 | + <key>TimeStamp</key> |
| 522 | + <real>0.0</real> |
| 523 | + <key>ToolbarConfigUserDefaultsMinorVersion</key> |
| 524 | + <string>2</string> |
| 525 | + <key>ToolbarDisplayMode</key> |
| 526 | + <integer>1</integer> |
| 527 | + <key>ToolbarIsVisible</key> |
| 528 | + <true/> |
| 529 | + <key>ToolbarSizeMode</key> |
| 530 | + <integer>1</integer> |
| 531 | + <key>Type</key> |
| 532 | + <string>Perspectives</string> |
| 533 | + <key>UpdateMessage</key> |
| 534 | + <string>The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'?</string> |
| 535 | + <key>WindowJustification</key> |
| 536 | + <integer>5</integer> |
| 537 | + <key>WindowOrderList</key> |
| 538 | + <array> |
| 539 | + <string>F18FF31510D7283F005D648A</string> |
| 540 | + <string>F18FF30310D727B3005D648A</string> |
| 541 | + <string>1C78EAAD065D492600B07095</string> |
| 542 | + <string>1CD10A99069EF8BA00B06720</string> |
| 543 | + <string>1C530D57069F1CE1000CFCEE</string> |
| 544 | + <string>F1A2674810C9C22E0044762E</string> |
| 545 | + <string>/Users/westphal/Projects/nextstop/branches/release-mobile-rc/iphonedev/photopicker/photopicker.xcodeproj</string> |
| 546 | + </array> |
| 547 | + <key>WindowString</key> |
| 548 | + <string>0 59 1440 819 0 0 1440 878 </string> |
| 549 | + <key>WindowToolsV3</key> |
| 550 | + <array> |
| 551 | + <dict> |
| 552 | + <key>FirstTimeWindowDisplayed</key> |
| 553 | + <false/> |
| 554 | + <key>Identifier</key> |
| 555 | + <string>windowTool.build</string> |
| 556 | + <key>IsVertical</key> |
| 557 | + <true/> |
| 558 | + <key>Layout</key> |
| 559 | + <array> |
| 560 | + <dict> |
| 561 | + <key>Dock</key> |
| 562 | + <array> |
| 563 | + <dict> |
| 564 | + <key>BecomeActive</key> |
| 565 | + <true/> |
| 566 | + <key>ContentConfiguration</key> |
| 567 | + <dict> |
| 568 | + <key>PBXProjectModuleGUID</key> |
| 569 | + <string>1CD0528F0623707200166675</string> |
| 570 | + <key>PBXProjectModuleLabel</key> |
| 571 | + <string>PhotoPickerViewController.m</string> |
| 572 | + <key>StatusBarVisibility</key> |
| 573 | + <true/> |
| 574 | + </dict> |
| 575 | + <key>GeometryConfiguration</key> |
| 576 | + <dict> |
| 577 | + <key>Frame</key> |
| 578 | + <string>{{0, 0}, {925, 309}}</string> |
| 579 | + <key>RubberWindowFrame</key> |
| 580 | + <string>347 185 925 591 0 0 1440 878 </string> |
| 581 | + </dict> |
| 582 | + <key>Module</key> |
| 583 | + <string>PBXNavigatorGroup</string> |
| 584 | + <key>Proportion</key> |
| 585 | + <string>309pt</string> |
| 586 | + </dict> |
| 587 | + <dict> |
| 588 | + <key>ContentConfiguration</key> |
| 589 | + <dict> |
| 590 | + <key>PBXProjectModuleGUID</key> |
| 591 | + <string>XCMainBuildResultsModuleGUID</string> |
| 592 | + <key>PBXProjectModuleLabel</key> |
| 593 | + <string>Build Results</string> |
| 594 | + <key>XCBuildResultsTrigger_Collapse</key> |
| 595 | + <integer>1021</integer> |
| 596 | + <key>XCBuildResultsTrigger_Open</key> |
| 597 | + <integer>1011</integer> |
| 598 | + </dict> |
| 599 | + <key>GeometryConfiguration</key> |
| 600 | + <dict> |
| 601 | + <key>Frame</key> |
| 602 | + <string>{{0, 314}, {925, 236}}</string> |
| 603 | + <key>RubberWindowFrame</key> |
| 604 | + <string>347 185 925 591 0 0 1440 878 </string> |
| 605 | + </dict> |
| 606 | + <key>Module</key> |
| 607 | + <string>PBXBuildResultsModule</string> |
| 608 | + <key>Proportion</key> |
| 609 | + <string>236pt</string> |
| 610 | + </dict> |
| 611 | + </array> |
| 612 | + <key>Proportion</key> |
| 613 | + <string>550pt</string> |
| 614 | + </dict> |
| 615 | + </array> |
| 616 | + <key>Name</key> |
| 617 | + <string>Build Results</string> |
| 618 | + <key>ServiceClasses</key> |
| 619 | + <array> |
| 620 | + <string>PBXBuildResultsModule</string> |
| 621 | + </array> |
| 622 | + <key>StatusbarIsVisible</key> |
| 623 | + <true/> |
| 624 | + <key>TableOfContents</key> |
| 625 | + <array> |
| 626 | + <string>F1A2674810C9C22E0044762E</string> |
| 627 | + <string>F18FF2D910D723BF005D648A</string> |
| 628 | + <string>1CD0528F0623707200166675</string> |
| 629 | + <string>XCMainBuildResultsModuleGUID</string> |
| 630 | + </array> |
| 631 | + <key>ToolbarConfiguration</key> |
| 632 | + <string>xcode.toolbar.config.buildV3</string> |
| 633 | + <key>WindowContentMinSize</key> |
| 634 | + <string>486 300</string> |
| 635 | + <key>WindowString</key> |
| 636 | + <string>347 185 925 591 0 0 1440 878 </string> |
| 637 | + <key>WindowToolGUID</key> |
| 638 | + <string>F1A2674810C9C22E0044762E</string> |
| 639 | + <key>WindowToolIsVisible</key> |
| 640 | + <false/> |
| 641 | + </dict> |
| 642 | + <dict> |
| 643 | + <key>FirstTimeWindowDisplayed</key> |
| 644 | + <false/> |
| 645 | + <key>Identifier</key> |
| 646 | + <string>windowTool.debugger</string> |
| 647 | + <key>IsVertical</key> |
| 648 | + <true/> |
| 649 | + <key>Layout</key> |
| 650 | + <array> |
| 651 | + <dict> |
| 652 | + <key>Dock</key> |
| 653 | + <array> |
| 654 | + <dict> |
| 655 | + <key>ContentConfiguration</key> |
| 656 | + <dict> |
| 657 | + <key>Debugger</key> |
| 658 | + <dict> |
| 659 | + <key>HorizontalSplitView</key> |
| 660 | + <dict> |
| 661 | + <key>_collapsingFrameDimension</key> |
| 662 | + <real>0.0</real> |
| 663 | + <key>_indexOfCollapsedView</key> |
| 664 | + <integer>0</integer> |
| 665 | + <key>_percentageOfCollapsedView</key> |
| 666 | + <real>0.0</real> |
| 667 | + <key>isCollapsed</key> |
| 668 | + <string>yes</string> |
| 669 | + <key>sizes</key> |
| 670 | + <array> |
| 671 | + <string>{{0, 0}, {316, 203}}</string> |
| 672 | + <string>{{316, 0}, {378, 203}}</string> |
| 673 | + </array> |
| 674 | + </dict> |
| 675 | + <key>VerticalSplitView</key> |
| 676 | + <dict> |
| 677 | + <key>_collapsingFrameDimension</key> |
| 678 | + <real>0.0</real> |
| 679 | + <key>_indexOfCollapsedView</key> |
| 680 | + <integer>0</integer> |
| 681 | + <key>_percentageOfCollapsedView</key> |
| 682 | + <real>0.0</real> |
| 683 | + <key>isCollapsed</key> |
| 684 | + <string>yes</string> |
| 685 | + <key>sizes</key> |
| 686 | + <array> |
| 687 | + <string>{{0, 0}, {694, 203}}</string> |
| 688 | + <string>{{0, 203}, {694, 178}}</string> |
| 689 | + </array> |
| 690 | + </dict> |
| 691 | + </dict> |
| 692 | + <key>LauncherConfigVersion</key> |
| 693 | + <string>8</string> |
| 694 | + <key>PBXProjectModuleGUID</key> |
| 695 | + <string>1C162984064C10D400B95A72</string> |
| 696 | + <key>PBXProjectModuleLabel</key> |
| 697 | + <string>Debug - GLUTExamples (Underwater)</string> |
| 698 | + </dict> |
| 699 | + <key>GeometryConfiguration</key> |
| 700 | + <dict> |
| 701 | + <key>DebugConsoleVisible</key> |
| 702 | + <string>None</string> |
| 703 | + <key>DebugConsoleWindowFrame</key> |
| 704 | + <string>{{200, 200}, {500, 300}}</string> |
| 705 | + <key>DebugSTDIOWindowFrame</key> |
| 706 | + <string>{{200, 200}, {500, 300}}</string> |
| 707 | + <key>Frame</key> |
| 708 | + <string>{{0, 0}, {694, 381}}</string> |
| 709 | + <key>PBXDebugSessionStackFrameViewKey</key> |
| 710 | + <dict> |
| 711 | + <key>DebugVariablesTableConfiguration</key> |
| 712 | + <array> |
| 713 | + <string>Name</string> |
| 714 | + <real>120</real> |
| 715 | + <string>Value</string> |
| 716 | + <real>85</real> |
| 717 | + <string>Summary</string> |
| 718 | + <real>148</real> |
| 719 | + </array> |
| 720 | + <key>Frame</key> |
| 721 | + <string>{{316, 0}, {378, 203}}</string> |
| 722 | + <key>RubberWindowFrame</key> |
| 723 | + <string>176 433 694 422 0 0 1440 878 </string> |
| 724 | + </dict> |
| 725 | + <key>RubberWindowFrame</key> |
| 726 | + <string>176 433 694 422 0 0 1440 878 </string> |
| 727 | + </dict> |
| 728 | + <key>Module</key> |
| 729 | + <string>PBXDebugSessionModule</string> |
| 730 | + <key>Proportion</key> |
| 731 | + <string>381pt</string> |
| 732 | + </dict> |
| 733 | + </array> |
| 734 | + <key>Proportion</key> |
| 735 | + <string>381pt</string> |
| 736 | + </dict> |
| 737 | + </array> |
| 738 | + <key>Name</key> |
| 739 | + <string>Debugger</string> |
| 740 | + <key>ServiceClasses</key> |
| 741 | + <array> |
| 742 | + <string>PBXDebugSessionModule</string> |
| 743 | + </array> |
| 744 | + <key>StatusbarIsVisible</key> |
| 745 | + <true/> |
| 746 | + <key>TableOfContents</key> |
| 747 | + <array> |
| 748 | + <string>1CD10A99069EF8BA00B06720</string> |
| 749 | + <string>F18FF2FB10D727B3005D648A</string> |
| 750 | + <string>1C162984064C10D400B95A72</string> |
| 751 | + <string>F18FF2FC10D727B3005D648A</string> |
| 752 | + <string>F18FF2FD10D727B3005D648A</string> |
| 753 | + <string>F18FF2FE10D727B3005D648A</string> |
| 754 | + <string>F18FF2FF10D727B3005D648A</string> |
| 755 | + <string>F18FF30010D727B3005D648A</string> |
| 756 | + </array> |
| 757 | + <key>ToolbarConfiguration</key> |
| 758 | + <string>xcode.toolbar.config.debugV3</string> |
| 759 | + <key>WindowString</key> |
| 760 | + <string>176 433 694 422 0 0 1440 878 </string> |
| 761 | + <key>WindowToolGUID</key> |
| 762 | + <string>1CD10A99069EF8BA00B06720</string> |
| 763 | + <key>WindowToolIsVisible</key> |
| 764 | + <false/> |
| 765 | + </dict> |
| 766 | + <dict> |
| 767 | + <key>FirstTimeWindowDisplayed</key> |
| 768 | + <false/> |
| 769 | + <key>Identifier</key> |
| 770 | + <string>windowTool.find</string> |
| 771 | + <key>IsVertical</key> |
| 772 | + <true/> |
| 773 | + <key>Layout</key> |
| 774 | + <array> |
| 775 | + <dict> |
| 776 | + <key>Dock</key> |
| 777 | + <array> |
| 778 | + <dict> |
| 779 | + <key>Dock</key> |
| 780 | + <array> |
| 781 | + <dict> |
| 782 | + <key>BecomeActive</key> |
| 783 | + <true/> |
| 784 | + <key>ContentConfiguration</key> |
| 785 | + <dict> |
| 786 | + <key>PBXProjectModuleGUID</key> |
| 787 | + <string>1CDD528C0622207200134675</string> |
| 788 | + <key>PBXProjectModuleLabel</key> |
| 789 | + <string>Configuration.h</string> |
| 790 | + <key>StatusBarVisibility</key> |
| 791 | + <true/> |
| 792 | + </dict> |
| 793 | + <key>GeometryConfiguration</key> |
| 794 | + <dict> |
| 795 | + <key>Frame</key> |
| 796 | + <string>{{0, 0}, {1221, 311}}</string> |
| 797 | + <key>RubberWindowFrame</key> |
| 798 | + <string>78 91 1221 736 0 0 1440 878 </string> |
| 799 | + </dict> |
| 800 | + <key>Module</key> |
| 801 | + <string>PBXNavigatorGroup</string> |
| 802 | + <key>Proportion</key> |
| 803 | + <string>1221pt</string> |
| 804 | + </dict> |
| 805 | + </array> |
| 806 | + <key>Proportion</key> |
| 807 | + <string>311pt</string> |
| 808 | + </dict> |
| 809 | + <dict> |
| 810 | + <key>ContentConfiguration</key> |
| 811 | + <dict> |
| 812 | + <key>PBXProjectModuleGUID</key> |
| 813 | + <string>1CD0528E0623707200166675</string> |
| 814 | + <key>PBXProjectModuleLabel</key> |
| 815 | + <string>Project Find</string> |
| 816 | + </dict> |
| 817 | + <key>GeometryConfiguration</key> |
| 818 | + <dict> |
| 819 | + <key>Frame</key> |
| 820 | + <string>{{0, 316}, {1221, 379}}</string> |
| 821 | + <key>RubberWindowFrame</key> |
| 822 | + <string>78 91 1221 736 0 0 1440 878 </string> |
| 823 | + </dict> |
| 824 | + <key>Module</key> |
| 825 | + <string>PBXProjectFindModule</string> |
| 826 | + <key>Proportion</key> |
| 827 | + <string>379pt</string> |
| 828 | + </dict> |
| 829 | + </array> |
| 830 | + <key>Proportion</key> |
| 831 | + <string>695pt</string> |
| 832 | + </dict> |
| 833 | + </array> |
| 834 | + <key>Name</key> |
| 835 | + <string>Project Find</string> |
| 836 | + <key>ServiceClasses</key> |
| 837 | + <array> |
| 838 | + <string>PBXProjectFindModule</string> |
| 839 | + </array> |
| 840 | + <key>StatusbarIsVisible</key> |
| 841 | + <true/> |
| 842 | + <key>TableOfContents</key> |
| 843 | + <array> |
| 844 | + <string>1C530D57069F1CE1000CFCEE</string> |
| 845 | + <string>F18FF2DE10D723BF005D648A</string> |
| 846 | + <string>F18FF2DF10D723BF005D648A</string> |
| 847 | + <string>1CDD528C0622207200134675</string> |
| 848 | + <string>1CD0528E0623707200166675</string> |
| 849 | + </array> |
| 850 | + <key>WindowString</key> |
| 851 | + <string>78 91 1221 736 0 0 1440 878 </string> |
| 852 | + <key>WindowToolGUID</key> |
| 853 | + <string>1C530D57069F1CE1000CFCEE</string> |
| 854 | + <key>WindowToolIsVisible</key> |
| 855 | + <false/> |
| 856 | + </dict> |
| 857 | + <dict> |
| 858 | + <key>Identifier</key> |
| 859 | + <string>MENUSEPARATOR</string> |
| 860 | + </dict> |
| 861 | + <dict> |
| 862 | + <key>FirstTimeWindowDisplayed</key> |
| 863 | + <false/> |
| 864 | + <key>Identifier</key> |
| 865 | + <string>windowTool.debuggerConsole</string> |
| 866 | + <key>IsVertical</key> |
| 867 | + <true/> |
| 868 | + <key>Layout</key> |
| 869 | + <array> |
| 870 | + <dict> |
| 871 | + <key>Dock</key> |
| 872 | + <array> |
| 873 | + <dict> |
| 874 | + <key>ContentConfiguration</key> |
| 875 | + <dict> |
| 876 | + <key>PBXProjectModuleGUID</key> |
| 877 | + <string>1C78EAAC065D492600B07095</string> |
| 878 | + <key>PBXProjectModuleLabel</key> |
| 879 | + <string>Debugger Console</string> |
| 880 | + </dict> |
| 881 | + <key>GeometryConfiguration</key> |
| 882 | + <dict> |
| 883 | + <key>Frame</key> |
| 884 | + <string>{{0, 0}, {808, 359}}</string> |
| 885 | + <key>RubberWindowFrame</key> |
| 886 | + <string>176 455 808 400 0 0 1440 878 </string> |
| 887 | + </dict> |
| 888 | + <key>Module</key> |
| 889 | + <string>PBXDebugCLIModule</string> |
| 890 | + <key>Proportion</key> |
| 891 | + <string>359pt</string> |
| 892 | + </dict> |
| 893 | + </array> |
| 894 | + <key>Proportion</key> |
| 895 | + <string>359pt</string> |
| 896 | + </dict> |
| 897 | + </array> |
| 898 | + <key>Name</key> |
| 899 | + <string>Debugger Console</string> |
| 900 | + <key>ServiceClasses</key> |
| 901 | + <array> |
| 902 | + <string>PBXDebugCLIModule</string> |
| 903 | + </array> |
| 904 | + <key>StatusbarIsVisible</key> |
| 905 | + <true/> |
| 906 | + <key>TableOfContents</key> |
| 907 | + <array> |
| 908 | + <string>1C78EAAD065D492600B07095</string> |
| 909 | + <string>F18FF30110D727B3005D648A</string> |
| 910 | + <string>1C78EAAC065D492600B07095</string> |
| 911 | + </array> |
| 912 | + <key>ToolbarConfiguration</key> |
| 913 | + <string>xcode.toolbar.config.consoleV3</string> |
| 914 | + <key>WindowString</key> |
| 915 | + <string>176 455 808 400 0 0 1440 878 </string> |
| 916 | + <key>WindowToolGUID</key> |
| 917 | + <string>1C78EAAD065D492600B07095</string> |
| 918 | + <key>WindowToolIsVisible</key> |
| 919 | + <false/> |
| 920 | + </dict> |
| 921 | + <dict> |
| 922 | + <key>Identifier</key> |
| 923 | + <string>windowTool.snapshots</string> |
| 924 | + <key>Layout</key> |
| 925 | + <array> |
| 926 | + <dict> |
| 927 | + <key>Dock</key> |
| 928 | + <array> |
| 929 | + <dict> |
| 930 | + <key>Module</key> |
| 931 | + <string>XCSnapshotModule</string> |
| 932 | + <key>Proportion</key> |
| 933 | + <string>100%</string> |
| 934 | + </dict> |
| 935 | + </array> |
| 936 | + <key>Proportion</key> |
| 937 | + <string>100%</string> |
| 938 | + </dict> |
| 939 | + </array> |
| 940 | + <key>Name</key> |
| 941 | + <string>Snapshots</string> |
| 942 | + <key>ServiceClasses</key> |
| 943 | + <array> |
| 944 | + <string>XCSnapshotModule</string> |
| 945 | + </array> |
| 946 | + <key>StatusbarIsVisible</key> |
| 947 | + <string>Yes</string> |
| 948 | + <key>ToolbarConfiguration</key> |
| 949 | + <string>xcode.toolbar.config.snapshots</string> |
| 950 | + <key>WindowString</key> |
| 951 | + <string>315 824 300 550 0 0 1440 878 </string> |
| 952 | + <key>WindowToolIsVisible</key> |
| 953 | + <string>Yes</string> |
| 954 | + </dict> |
| 955 | + <dict> |
| 956 | + <key>Identifier</key> |
| 957 | + <string>windowTool.scm</string> |
| 958 | + <key>Layout</key> |
| 959 | + <array> |
| 960 | + <dict> |
| 961 | + <key>Dock</key> |
| 962 | + <array> |
| 963 | + <dict> |
| 964 | + <key>ContentConfiguration</key> |
| 965 | + <dict> |
| 966 | + <key>PBXProjectModuleGUID</key> |
| 967 | + <string>1C78EAB2065D492600B07095</string> |
| 968 | + <key>PBXProjectModuleLabel</key> |
| 969 | + <string><No Editor></string> |
| 970 | + <key>PBXSplitModuleInNavigatorKey</key> |
| 971 | + <dict> |
| 972 | + <key>Split0</key> |
| 973 | + <dict> |
| 974 | + <key>PBXProjectModuleGUID</key> |
| 975 | + <string>1C78EAB3065D492600B07095</string> |
| 976 | + </dict> |
| 977 | + <key>SplitCount</key> |
| 978 | + <string>1</string> |
| 979 | + </dict> |
| 980 | + <key>StatusBarVisibility</key> |
| 981 | + <integer>1</integer> |
| 982 | + </dict> |
| 983 | + <key>GeometryConfiguration</key> |
| 984 | + <dict> |
| 985 | + <key>Frame</key> |
| 986 | + <string>{{0, 0}, {452, 0}}</string> |
| 987 | + <key>RubberWindowFrame</key> |
| 988 | + <string>743 379 452 308 0 0 1280 1002 </string> |
| 989 | + </dict> |
| 990 | + <key>Module</key> |
| 991 | + <string>PBXNavigatorGroup</string> |
| 992 | + <key>Proportion</key> |
| 993 | + <string>0pt</string> |
| 994 | + </dict> |
| 995 | + <dict> |
| 996 | + <key>BecomeActive</key> |
| 997 | + <integer>1</integer> |
| 998 | + <key>ContentConfiguration</key> |
| 999 | + <dict> |
| 1000 | + <key>PBXProjectModuleGUID</key> |
| 1001 | + <string>1CD052920623707200166675</string> |
| 1002 | + <key>PBXProjectModuleLabel</key> |
| 1003 | + <string>SCM</string> |
| 1004 | + </dict> |
| 1005 | + <key>GeometryConfiguration</key> |
| 1006 | + <dict> |
| 1007 | + <key>ConsoleFrame</key> |
| 1008 | + <string>{{0, 259}, {452, 0}}</string> |
| 1009 | + <key>Frame</key> |
| 1010 | + <string>{{0, 7}, {452, 259}}</string> |
| 1011 | + <key>RubberWindowFrame</key> |
| 1012 | + <string>743 379 452 308 0 0 1280 1002 </string> |
| 1013 | + <key>TableConfiguration</key> |
| 1014 | + <array> |
| 1015 | + <string>Status</string> |
| 1016 | + <real>30</real> |
| 1017 | + <string>FileName</string> |
| 1018 | + <real>199</real> |
| 1019 | + <string>Path</string> |
| 1020 | + <real>197.0950012207031</real> |
| 1021 | + </array> |
| 1022 | + <key>TableFrame</key> |
| 1023 | + <string>{{0, 0}, {452, 250}}</string> |
| 1024 | + </dict> |
| 1025 | + <key>Module</key> |
| 1026 | + <string>PBXCVSModule</string> |
| 1027 | + <key>Proportion</key> |
| 1028 | + <string>262pt</string> |
| 1029 | + </dict> |
| 1030 | + </array> |
| 1031 | + <key>Proportion</key> |
| 1032 | + <string>266pt</string> |
| 1033 | + </dict> |
| 1034 | + </array> |
| 1035 | + <key>Name</key> |
| 1036 | + <string>SCM</string> |
| 1037 | + <key>ServiceClasses</key> |
| 1038 | + <array> |
| 1039 | + <string>PBXCVSModule</string> |
| 1040 | + </array> |
| 1041 | + <key>StatusbarIsVisible</key> |
| 1042 | + <integer>1</integer> |
| 1043 | + <key>TableOfContents</key> |
| 1044 | + <array> |
| 1045 | + <string>1C78EAB4065D492600B07095</string> |
| 1046 | + <string>1C78EAB5065D492600B07095</string> |
| 1047 | + <string>1C78EAB2065D492600B07095</string> |
| 1048 | + <string>1CD052920623707200166675</string> |
| 1049 | + </array> |
| 1050 | + <key>ToolbarConfiguration</key> |
| 1051 | + <string>xcode.toolbar.config.scm</string> |
| 1052 | + <key>WindowString</key> |
| 1053 | + <string>743 379 452 308 0 0 1280 1002 </string> |
| 1054 | + </dict> |
| 1055 | + <dict> |
| 1056 | + <key>Identifier</key> |
| 1057 | + <string>windowTool.breakpoints</string> |
| 1058 | + <key>IsVertical</key> |
| 1059 | + <integer>0</integer> |
| 1060 | + <key>Layout</key> |
| 1061 | + <array> |
| 1062 | + <dict> |
| 1063 | + <key>Dock</key> |
| 1064 | + <array> |
| 1065 | + <dict> |
| 1066 | + <key>BecomeActive</key> |
| 1067 | + <integer>1</integer> |
| 1068 | + <key>ContentConfiguration</key> |
| 1069 | + <dict> |
| 1070 | + <key>PBXBottomSmartGroupGIDs</key> |
| 1071 | + <array> |
| 1072 | + <string>1C77FABC04509CD000000102</string> |
| 1073 | + </array> |
| 1074 | + <key>PBXProjectModuleGUID</key> |
| 1075 | + <string>1CE0B1FE06471DED0097A5F4</string> |
| 1076 | + <key>PBXProjectModuleLabel</key> |
| 1077 | + <string>Files</string> |
| 1078 | + <key>PBXProjectStructureProvided</key> |
| 1079 | + <string>no</string> |
| 1080 | + <key>PBXSmartGroupTreeModuleColumnData</key> |
| 1081 | + <dict> |
| 1082 | + <key>PBXSmartGroupTreeModuleColumnWidthsKey</key> |
| 1083 | + <array> |
| 1084 | + <real>168</real> |
| 1085 | + </array> |
| 1086 | + <key>PBXSmartGroupTreeModuleColumnsKey_v4</key> |
| 1087 | + <array> |
| 1088 | + <string>MainColumn</string> |
| 1089 | + </array> |
| 1090 | + </dict> |
| 1091 | + <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key> |
| 1092 | + <dict> |
| 1093 | + <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key> |
| 1094 | + <array> |
| 1095 | + <string>1C77FABC04509CD000000102</string> |
| 1096 | + </array> |
| 1097 | + <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key> |
| 1098 | + <array> |
| 1099 | + <array> |
| 1100 | + <integer>0</integer> |
| 1101 | + </array> |
| 1102 | + </array> |
| 1103 | + <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key> |
| 1104 | + <string>{{0, 0}, {168, 350}}</string> |
| 1105 | + </dict> |
| 1106 | + <key>PBXTopSmartGroupGIDs</key> |
| 1107 | + <array/> |
| 1108 | + <key>XCIncludePerspectivesSwitch</key> |
| 1109 | + <integer>0</integer> |
| 1110 | + </dict> |
| 1111 | + <key>GeometryConfiguration</key> |
| 1112 | + <dict> |
| 1113 | + <key>Frame</key> |
| 1114 | + <string>{{0, 0}, {185, 368}}</string> |
| 1115 | + <key>GroupTreeTableConfiguration</key> |
| 1116 | + <array> |
| 1117 | + <string>MainColumn</string> |
| 1118 | + <real>168</real> |
| 1119 | + </array> |
| 1120 | + <key>RubberWindowFrame</key> |
| 1121 | + <string>315 424 744 409 0 0 1440 878 </string> |
| 1122 | + </dict> |
| 1123 | + <key>Module</key> |
| 1124 | + <string>PBXSmartGroupTreeModule</string> |
| 1125 | + <key>Proportion</key> |
| 1126 | + <string>185pt</string> |
| 1127 | + </dict> |
| 1128 | + <dict> |
| 1129 | + <key>ContentConfiguration</key> |
| 1130 | + <dict> |
| 1131 | + <key>PBXProjectModuleGUID</key> |
| 1132 | + <string>1CA1AED706398EBD00589147</string> |
| 1133 | + <key>PBXProjectModuleLabel</key> |
| 1134 | + <string>Detail</string> |
| 1135 | + </dict> |
| 1136 | + <key>GeometryConfiguration</key> |
| 1137 | + <dict> |
| 1138 | + <key>Frame</key> |
| 1139 | + <string>{{190, 0}, {554, 368}}</string> |
| 1140 | + <key>RubberWindowFrame</key> |
| 1141 | + <string>315 424 744 409 0 0 1440 878 </string> |
| 1142 | + </dict> |
| 1143 | + <key>Module</key> |
| 1144 | + <string>XCDetailModule</string> |
| 1145 | + <key>Proportion</key> |
| 1146 | + <string>554pt</string> |
| 1147 | + </dict> |
| 1148 | + </array> |
| 1149 | + <key>Proportion</key> |
| 1150 | + <string>368pt</string> |
| 1151 | + </dict> |
| 1152 | + </array> |
| 1153 | + <key>MajorVersion</key> |
| 1154 | + <integer>3</integer> |
| 1155 | + <key>MinorVersion</key> |
| 1156 | + <integer>0</integer> |
| 1157 | + <key>Name</key> |
| 1158 | + <string>Breakpoints</string> |
| 1159 | + <key>ServiceClasses</key> |
| 1160 | + <array> |
| 1161 | + <string>PBXSmartGroupTreeModule</string> |
| 1162 | + <string>XCDetailModule</string> |
| 1163 | + </array> |
| 1164 | + <key>StatusbarIsVisible</key> |
| 1165 | + <integer>1</integer> |
| 1166 | + <key>TableOfContents</key> |
| 1167 | + <array> |
| 1168 | + <string>1CDDB66807F98D9800BB5817</string> |
| 1169 | + <string>1CDDB66907F98D9800BB5817</string> |
| 1170 | + <string>1CE0B1FE06471DED0097A5F4</string> |
| 1171 | + <string>1CA1AED706398EBD00589147</string> |
| 1172 | + </array> |
| 1173 | + <key>ToolbarConfiguration</key> |
| 1174 | + <string>xcode.toolbar.config.breakpointsV3</string> |
| 1175 | + <key>WindowString</key> |
| 1176 | + <string>315 424 744 409 0 0 1440 878 </string> |
| 1177 | + <key>WindowToolGUID</key> |
| 1178 | + <string>1CDDB66807F98D9800BB5817</string> |
| 1179 | + <key>WindowToolIsVisible</key> |
| 1180 | + <integer>1</integer> |
| 1181 | + </dict> |
| 1182 | + <dict> |
| 1183 | + <key>Identifier</key> |
| 1184 | + <string>windowTool.debugAnimator</string> |
| 1185 | + <key>Layout</key> |
| 1186 | + <array> |
| 1187 | + <dict> |
| 1188 | + <key>Dock</key> |
| 1189 | + <array> |
| 1190 | + <dict> |
| 1191 | + <key>Module</key> |
| 1192 | + <string>PBXNavigatorGroup</string> |
| 1193 | + <key>Proportion</key> |
| 1194 | + <string>100%</string> |
| 1195 | + </dict> |
| 1196 | + </array> |
| 1197 | + <key>Proportion</key> |
| 1198 | + <string>100%</string> |
| 1199 | + </dict> |
| 1200 | + </array> |
| 1201 | + <key>Name</key> |
| 1202 | + <string>Debug Visualizer</string> |
| 1203 | + <key>ServiceClasses</key> |
| 1204 | + <array> |
| 1205 | + <string>PBXNavigatorGroup</string> |
| 1206 | + </array> |
| 1207 | + <key>StatusbarIsVisible</key> |
| 1208 | + <integer>1</integer> |
| 1209 | + <key>ToolbarConfiguration</key> |
| 1210 | + <string>xcode.toolbar.config.debugAnimatorV3</string> |
| 1211 | + <key>WindowString</key> |
| 1212 | + <string>100 100 700 500 0 0 1280 1002 </string> |
| 1213 | + </dict> |
| 1214 | + <dict> |
| 1215 | + <key>Identifier</key> |
| 1216 | + <string>windowTool.bookmarks</string> |
| 1217 | + <key>Layout</key> |
| 1218 | + <array> |
| 1219 | + <dict> |
| 1220 | + <key>Dock</key> |
| 1221 | + <array> |
| 1222 | + <dict> |
| 1223 | + <key>Module</key> |
| 1224 | + <string>PBXBookmarksModule</string> |
| 1225 | + <key>Proportion</key> |
| 1226 | + <string>100%</string> |
| 1227 | + </dict> |
| 1228 | + </array> |
| 1229 | + <key>Proportion</key> |
| 1230 | + <string>100%</string> |
| 1231 | + </dict> |
| 1232 | + </array> |
| 1233 | + <key>Name</key> |
| 1234 | + <string>Bookmarks</string> |
| 1235 | + <key>ServiceClasses</key> |
| 1236 | + <array> |
| 1237 | + <string>PBXBookmarksModule</string> |
| 1238 | + </array> |
| 1239 | + <key>StatusbarIsVisible</key> |
| 1240 | + <integer>0</integer> |
| 1241 | + <key>WindowString</key> |
| 1242 | + <string>538 42 401 187 0 0 1280 1002 </string> |
| 1243 | + </dict> |
| 1244 | + <dict> |
| 1245 | + <key>Identifier</key> |
| 1246 | + <string>windowTool.projectFormatConflicts</string> |
| 1247 | + <key>Layout</key> |
| 1248 | + <array> |
| 1249 | + <dict> |
| 1250 | + <key>Dock</key> |
| 1251 | + <array> |
| 1252 | + <dict> |
| 1253 | + <key>Module</key> |
| 1254 | + <string>XCProjectFormatConflictsModule</string> |
| 1255 | + <key>Proportion</key> |
| 1256 | + <string>100%</string> |
| 1257 | + </dict> |
| 1258 | + </array> |
| 1259 | + <key>Proportion</key> |
| 1260 | + <string>100%</string> |
| 1261 | + </dict> |
| 1262 | + </array> |
| 1263 | + <key>Name</key> |
| 1264 | + <string>Project Format Conflicts</string> |
| 1265 | + <key>ServiceClasses</key> |
| 1266 | + <array> |
| 1267 | + <string>XCProjectFormatConflictsModule</string> |
| 1268 | + </array> |
| 1269 | + <key>StatusbarIsVisible</key> |
| 1270 | + <integer>0</integer> |
| 1271 | + <key>WindowContentMinSize</key> |
| 1272 | + <string>450 300</string> |
| 1273 | + <key>WindowString</key> |
| 1274 | + <string>50 850 472 307 0 0 1440 877</string> |
| 1275 | + </dict> |
| 1276 | + <dict> |
| 1277 | + <key>Identifier</key> |
| 1278 | + <string>windowTool.classBrowser</string> |
| 1279 | + <key>Layout</key> |
| 1280 | + <array> |
| 1281 | + <dict> |
| 1282 | + <key>Dock</key> |
| 1283 | + <array> |
| 1284 | + <dict> |
| 1285 | + <key>BecomeActive</key> |
| 1286 | + <integer>1</integer> |
| 1287 | + <key>ContentConfiguration</key> |
| 1288 | + <dict> |
| 1289 | + <key>OptionsSetName</key> |
| 1290 | + <string>Hierarchy, all classes</string> |
| 1291 | + <key>PBXProjectModuleGUID</key> |
| 1292 | + <string>1CA6456E063B45B4001379D8</string> |
| 1293 | + <key>PBXProjectModuleLabel</key> |
| 1294 | + <string>Class Browser - NSObject</string> |
| 1295 | + </dict> |
| 1296 | + <key>GeometryConfiguration</key> |
| 1297 | + <dict> |
| 1298 | + <key>ClassesFrame</key> |
| 1299 | + <string>{{0, 0}, {374, 96}}</string> |
| 1300 | + <key>ClassesTreeTableConfiguration</key> |
| 1301 | + <array> |
| 1302 | + <string>PBXClassNameColumnIdentifier</string> |
| 1303 | + <real>208</real> |
| 1304 | + <string>PBXClassBookColumnIdentifier</string> |
| 1305 | + <real>22</real> |
| 1306 | + </array> |
| 1307 | + <key>Frame</key> |
| 1308 | + <string>{{0, 0}, {630, 331}}</string> |
| 1309 | + <key>MembersFrame</key> |
| 1310 | + <string>{{0, 105}, {374, 395}}</string> |
| 1311 | + <key>MembersTreeTableConfiguration</key> |
| 1312 | + <array> |
| 1313 | + <string>PBXMemberTypeIconColumnIdentifier</string> |
| 1314 | + <real>22</real> |
| 1315 | + <string>PBXMemberNameColumnIdentifier</string> |
| 1316 | + <real>216</real> |
| 1317 | + <string>PBXMemberTypeColumnIdentifier</string> |
| 1318 | + <real>97</real> |
| 1319 | + <string>PBXMemberBookColumnIdentifier</string> |
| 1320 | + <real>22</real> |
| 1321 | + </array> |
| 1322 | + <key>PBXModuleWindowStatusBarHidden2</key> |
| 1323 | + <integer>1</integer> |
| 1324 | + <key>RubberWindowFrame</key> |
| 1325 | + <string>385 179 630 352 0 0 1440 878 </string> |
| 1326 | + </dict> |
| 1327 | + <key>Module</key> |
| 1328 | + <string>PBXClassBrowserModule</string> |
| 1329 | + <key>Proportion</key> |
| 1330 | + <string>332pt</string> |
| 1331 | + </dict> |
| 1332 | + </array> |
| 1333 | + <key>Proportion</key> |
| 1334 | + <string>332pt</string> |
| 1335 | + </dict> |
| 1336 | + </array> |
| 1337 | + <key>Name</key> |
| 1338 | + <string>Class Browser</string> |
| 1339 | + <key>ServiceClasses</key> |
| 1340 | + <array> |
| 1341 | + <string>PBXClassBrowserModule</string> |
| 1342 | + </array> |
| 1343 | + <key>StatusbarIsVisible</key> |
| 1344 | + <integer>0</integer> |
| 1345 | + <key>TableOfContents</key> |
| 1346 | + <array> |
| 1347 | + <string>1C0AD2AF069F1E9B00FABCE6</string> |
| 1348 | + <string>1C0AD2B0069F1E9B00FABCE6</string> |
| 1349 | + <string>1CA6456E063B45B4001379D8</string> |
| 1350 | + </array> |
| 1351 | + <key>ToolbarConfiguration</key> |
| 1352 | + <string>xcode.toolbar.config.classbrowser</string> |
| 1353 | + <key>WindowString</key> |
| 1354 | + <string>385 179 630 352 0 0 1440 878 </string> |
| 1355 | + <key>WindowToolGUID</key> |
| 1356 | + <string>1C0AD2AF069F1E9B00FABCE6</string> |
| 1357 | + <key>WindowToolIsVisible</key> |
| 1358 | + <integer>0</integer> |
| 1359 | + </dict> |
| 1360 | + <dict> |
| 1361 | + <key>Identifier</key> |
| 1362 | + <string>windowTool.refactoring</string> |
| 1363 | + <key>IncludeInToolsMenu</key> |
| 1364 | + <integer>0</integer> |
| 1365 | + <key>Layout</key> |
| 1366 | + <array> |
| 1367 | + <dict> |
| 1368 | + <key>Dock</key> |
| 1369 | + <array> |
| 1370 | + <dict> |
| 1371 | + <key>BecomeActive</key> |
| 1372 | + <integer>1</integer> |
| 1373 | + <key>GeometryConfiguration</key> |
| 1374 | + <dict> |
| 1375 | + <key>Frame</key> |
| 1376 | + <string>{0, 0}, {500, 335}</string> |
| 1377 | + <key>RubberWindowFrame</key> |
| 1378 | + <string>{0, 0}, {500, 335}</string> |
| 1379 | + </dict> |
| 1380 | + <key>Module</key> |
| 1381 | + <string>XCRefactoringModule</string> |
| 1382 | + <key>Proportion</key> |
| 1383 | + <string>100%</string> |
| 1384 | + </dict> |
| 1385 | + </array> |
| 1386 | + <key>Proportion</key> |
| 1387 | + <string>100%</string> |
| 1388 | + </dict> |
| 1389 | + </array> |
| 1390 | + <key>Name</key> |
| 1391 | + <string>Refactoring</string> |
| 1392 | + <key>ServiceClasses</key> |
| 1393 | + <array> |
| 1394 | + <string>XCRefactoringModule</string> |
| 1395 | + </array> |
| 1396 | + <key>WindowString</key> |
| 1397 | + <string>200 200 500 356 0 0 1920 1200 </string> |
| 1398 | + </dict> |
| 1399 | + </array> |
| 1400 | +</dict> |
| 1401 | +</plist> |
Index: trunk/tools/Snap-to-Commons/photopicker.xcodeproj/project.pbxproj |
— | — | @@ -0,0 +1,268 @@ |
| 2 | +// !$*UTF8*$! |
| 3 | +{ |
| 4 | + archiveVersion = 1; |
| 5 | + classes = { |
| 6 | + }; |
| 7 | + objectVersion = 45; |
| 8 | + objects = { |
| 9 | + |
| 10 | +/* Begin PBXBuildFile section */ |
| 11 | + 1D3623260D0F684500981E51 /* PhotoPickerAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D3623250D0F684500981E51 /* PhotoPickerAppDelegate.m */; }; |
| 12 | + 1D60589B0D05DD56006BFB54 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; }; |
| 13 | + 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; }; |
| 14 | + 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */; }; |
| 15 | + 288765A50DF7441C002DB57D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 288765A40DF7441C002DB57D /* CoreGraphics.framework */; }; |
| 16 | + 2899E5220DE3E06400AC0155 /* PhotoPickerViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2899E5210DE3E06400AC0155 /* PhotoPickerViewController.xib */; }; |
| 17 | + 28AD733F0D9D9553002E5188 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28AD733E0D9D9553002E5188 /* MainWindow.xib */; }; |
| 18 | + 28D7ACF80DDB3853001CB0EB /* PhotoPickerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 28D7ACF70DDB3853001CB0EB /* PhotoPickerViewController.m */; }; |
| 19 | + 3A113EC910CF3C5500C9DDCF /* Entitlements.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3A113EC810CF3C5500C9DDCF /* Entitlements.plist */; }; |
| 20 | + F130561C10CEDA5C00271CD6 /* home-background.png in Resources */ = {isa = PBXBuildFile; fileRef = F130561B10CEDA5C00271CD6 /* home-background.png */; }; |
| 21 | + F130561F10CEDBAC00271CD6 /* Configuration.m in Sources */ = {isa = PBXBuildFile; fileRef = F130561E10CEDBAC00271CD6 /* Configuration.m */; }; |
| 22 | + F13056EF10CEEB3100271CD6 /* cancel-button-pressed.png in Resources */ = {isa = PBXBuildFile; fileRef = F13056ED10CEEB3100271CD6 /* cancel-button-pressed.png */; }; |
| 23 | + F13056F010CEEB3100271CD6 /* cancel-button.png in Resources */ = {isa = PBXBuildFile; fileRef = F13056EE10CEEB3100271CD6 /* cancel-button.png */; }; |
| 24 | + F1A2673110C9C04A0044762E /* icon.png in Resources */ = {isa = PBXBuildFile; fileRef = F1A2672F10C9C04A0044762E /* icon.png */; }; |
| 25 | + F1A2691210C9D8EE0044762E /* NSData+PhotoPicker.m in Sources */ = {isa = PBXBuildFile; fileRef = F1A2691110C9D8EE0044762E /* NSData+PhotoPicker.m */; }; |
| 26 | + F1A269B110C9EA8A0044762E /* UIImage+PhotoPicker.m in Sources */ = {isa = PBXBuildFile; fileRef = F1A269B010C9EA8A0044762E /* UIImage+PhotoPicker.m */; }; |
| 27 | +/* End PBXBuildFile section */ |
| 28 | + |
| 29 | +/* Begin PBXFileReference section */ |
| 30 | + 1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; |
| 31 | + 1D3623240D0F684500981E51 /* PhotoPickerAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PhotoPickerAppDelegate.h; sourceTree = "<group>"; }; |
| 32 | + 1D3623250D0F684500981E51 /* PhotoPickerAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PhotoPickerAppDelegate.m; sourceTree = "<group>"; }; |
| 33 | + 1D6058910D05DD3D006BFB54 /* PhotoPicker.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PhotoPicker.app; sourceTree = BUILT_PRODUCTS_DIR; }; |
| 34 | + 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; |
| 35 | + 288765A40DF7441C002DB57D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; |
| 36 | + 2899E5210DE3E06400AC0155 /* PhotoPickerViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PhotoPickerViewController.xib; sourceTree = "<group>"; }; |
| 37 | + 28AD733E0D9D9553002E5188 /* MainWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MainWindow.xib; sourceTree = "<group>"; }; |
| 38 | + 28D7ACF60DDB3853001CB0EB /* PhotoPickerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PhotoPickerViewController.h; sourceTree = "<group>"; }; |
| 39 | + 28D7ACF70DDB3853001CB0EB /* PhotoPickerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PhotoPickerViewController.m; sourceTree = "<group>"; }; |
| 40 | + 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; }; |
| 41 | + 32CA4F630368D1EE00C91783 /* photopicker_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = photopicker_Prefix.pch; sourceTree = "<group>"; }; |
| 42 | + 3A113EC810CF3C5500C9DDCF /* Entitlements.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Entitlements.plist; sourceTree = "<group>"; }; |
| 43 | + 8D1107310486CEB800E47090 /* photopicker-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "photopicker-Info.plist"; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = "<group>"; }; |
| 44 | + F130561B10CEDA5C00271CD6 /* home-background.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "home-background.png"; sourceTree = "<group>"; }; |
| 45 | + F130561D10CEDBAC00271CD6 /* Configuration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Configuration.h; sourceTree = "<group>"; }; |
| 46 | + F130561E10CEDBAC00271CD6 /* Configuration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Configuration.m; sourceTree = "<group>"; }; |
| 47 | + F13056ED10CEEB3100271CD6 /* cancel-button-pressed.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "cancel-button-pressed.png"; sourceTree = "<group>"; }; |
| 48 | + F13056EE10CEEB3100271CD6 /* cancel-button.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "cancel-button.png"; sourceTree = "<group>"; }; |
| 49 | + F1A2672F10C9C04A0044762E /* icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon.png; sourceTree = "<group>"; }; |
| 50 | + F1A2691010C9D8EE0044762E /* NSData+PhotoPicker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSData+PhotoPicker.h"; sourceTree = "<group>"; }; |
| 51 | + F1A2691110C9D8EE0044762E /* NSData+PhotoPicker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSData+PhotoPicker.m"; sourceTree = "<group>"; }; |
| 52 | + F1A269AF10C9EA8A0044762E /* UIImage+PhotoPicker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImage+PhotoPicker.h"; sourceTree = "<group>"; }; |
| 53 | + F1A269B010C9EA8A0044762E /* UIImage+PhotoPicker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIImage+PhotoPicker.m"; sourceTree = "<group>"; }; |
| 54 | + F1A269C010C9EFDC0044762E /* readme.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = readme.html; sourceTree = "<group>"; }; |
| 55 | +/* End PBXFileReference section */ |
| 56 | + |
| 57 | +/* Begin PBXFrameworksBuildPhase section */ |
| 58 | + 1D60588F0D05DD3D006BFB54 /* Frameworks */ = { |
| 59 | + isa = PBXFrameworksBuildPhase; |
| 60 | + buildActionMask = 2147483647; |
| 61 | + files = ( |
| 62 | + 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */, |
| 63 | + 1DF5F4E00D08C38300B7A737 /* UIKit.framework in Frameworks */, |
| 64 | + 288765A50DF7441C002DB57D /* CoreGraphics.framework in Frameworks */, |
| 65 | + ); |
| 66 | + runOnlyForDeploymentPostprocessing = 0; |
| 67 | + }; |
| 68 | +/* End PBXFrameworksBuildPhase section */ |
| 69 | + |
| 70 | +/* Begin PBXGroup section */ |
| 71 | + 080E96DDFE201D6D7F000001 /* Classes */ = { |
| 72 | + isa = PBXGroup; |
| 73 | + children = ( |
| 74 | + F130561D10CEDBAC00271CD6 /* Configuration.h */, |
| 75 | + F130561E10CEDBAC00271CD6 /* Configuration.m */, |
| 76 | + F1A2691010C9D8EE0044762E /* NSData+PhotoPicker.h */, |
| 77 | + F1A2691110C9D8EE0044762E /* NSData+PhotoPicker.m */, |
| 78 | + 1D3623240D0F684500981E51 /* PhotoPickerAppDelegate.h */, |
| 79 | + 1D3623250D0F684500981E51 /* PhotoPickerAppDelegate.m */, |
| 80 | + 28D7ACF60DDB3853001CB0EB /* PhotoPickerViewController.h */, |
| 81 | + 28D7ACF70DDB3853001CB0EB /* PhotoPickerViewController.m */, |
| 82 | + F1A269AF10C9EA8A0044762E /* UIImage+PhotoPicker.h */, |
| 83 | + F1A269B010C9EA8A0044762E /* UIImage+PhotoPicker.m */, |
| 84 | + ); |
| 85 | + path = Classes; |
| 86 | + sourceTree = "<group>"; |
| 87 | + }; |
| 88 | + 19C28FACFE9D520D11CA2CBB /* Products */ = { |
| 89 | + isa = PBXGroup; |
| 90 | + children = ( |
| 91 | + 1D6058910D05DD3D006BFB54 /* PhotoPicker.app */, |
| 92 | + ); |
| 93 | + name = Products; |
| 94 | + sourceTree = "<group>"; |
| 95 | + }; |
| 96 | + 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = { |
| 97 | + isa = PBXGroup; |
| 98 | + children = ( |
| 99 | + 080E96DDFE201D6D7F000001 /* Classes */, |
| 100 | + 29B97315FDCFA39411CA2CEA /* Other Sources */, |
| 101 | + 29B97317FDCFA39411CA2CEA /* Resources */, |
| 102 | + 29B97323FDCFA39411CA2CEA /* Frameworks */, |
| 103 | + 19C28FACFE9D520D11CA2CBB /* Products */, |
| 104 | + F1A269C010C9EFDC0044762E /* readme.html */, |
| 105 | + 3A113EC810CF3C5500C9DDCF /* Entitlements.plist */, |
| 106 | + ); |
| 107 | + name = CustomTemplate; |
| 108 | + sourceTree = "<group>"; |
| 109 | + }; |
| 110 | + 29B97315FDCFA39411CA2CEA /* Other Sources */ = { |
| 111 | + isa = PBXGroup; |
| 112 | + children = ( |
| 113 | + 32CA4F630368D1EE00C91783 /* photopicker_Prefix.pch */, |
| 114 | + 29B97316FDCFA39411CA2CEA /* main.m */, |
| 115 | + ); |
| 116 | + name = "Other Sources"; |
| 117 | + sourceTree = "<group>"; |
| 118 | + }; |
| 119 | + 29B97317FDCFA39411CA2CEA /* Resources */ = { |
| 120 | + isa = PBXGroup; |
| 121 | + children = ( |
| 122 | + F1A2672F10C9C04A0044762E /* icon.png */, |
| 123 | + F13056ED10CEEB3100271CD6 /* cancel-button-pressed.png */, |
| 124 | + F13056EE10CEEB3100271CD6 /* cancel-button.png */, |
| 125 | + F130561B10CEDA5C00271CD6 /* home-background.png */, |
| 126 | + 28AD733E0D9D9553002E5188 /* MainWindow.xib */, |
| 127 | + 8D1107310486CEB800E47090 /* photopicker-Info.plist */, |
| 128 | + 2899E5210DE3E06400AC0155 /* PhotoPickerViewController.xib */, |
| 129 | + ); |
| 130 | + name = Resources; |
| 131 | + sourceTree = "<group>"; |
| 132 | + }; |
| 133 | + 29B97323FDCFA39411CA2CEA /* Frameworks */ = { |
| 134 | + isa = PBXGroup; |
| 135 | + children = ( |
| 136 | + 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */, |
| 137 | + 1D30AB110D05D00D00671497 /* Foundation.framework */, |
| 138 | + 288765A40DF7441C002DB57D /* CoreGraphics.framework */, |
| 139 | + ); |
| 140 | + name = Frameworks; |
| 141 | + sourceTree = "<group>"; |
| 142 | + }; |
| 143 | +/* End PBXGroup section */ |
| 144 | + |
| 145 | +/* Begin PBXNativeTarget section */ |
| 146 | + 1D6058900D05DD3D006BFB54 /* PhotoPicker */ = { |
| 147 | + isa = PBXNativeTarget; |
| 148 | + buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "PhotoPicker" */; |
| 149 | + buildPhases = ( |
| 150 | + 1D60588D0D05DD3D006BFB54 /* Resources */, |
| 151 | + 1D60588E0D05DD3D006BFB54 /* Sources */, |
| 152 | + 1D60588F0D05DD3D006BFB54 /* Frameworks */, |
| 153 | + ); |
| 154 | + buildRules = ( |
| 155 | + ); |
| 156 | + dependencies = ( |
| 157 | + ); |
| 158 | + name = PhotoPicker; |
| 159 | + productName = PhotoPicker; |
| 160 | + productReference = 1D6058910D05DD3D006BFB54 /* PhotoPicker.app */; |
| 161 | + productType = "com.apple.product-type.application"; |
| 162 | + }; |
| 163 | +/* End PBXNativeTarget section */ |
| 164 | + |
| 165 | +/* Begin PBXProject section */ |
| 166 | + 29B97313FDCFA39411CA2CEA /* Project object */ = { |
| 167 | + isa = PBXProject; |
| 168 | + attributes = { |
| 169 | + ORGANIZATIONNAME = yourcompanyname; |
| 170 | + }; |
| 171 | + buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "photopicker" */; |
| 172 | + compatibilityVersion = "Xcode 3.1"; |
| 173 | + hasScannedForEncodings = 1; |
| 174 | + mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */; |
| 175 | + projectDirPath = ""; |
| 176 | + projectRoot = ""; |
| 177 | + targets = ( |
| 178 | + 1D6058900D05DD3D006BFB54 /* PhotoPicker */, |
| 179 | + ); |
| 180 | + }; |
| 181 | +/* End PBXProject section */ |
| 182 | + |
| 183 | +/* Begin PBXResourcesBuildPhase section */ |
| 184 | + 1D60588D0D05DD3D006BFB54 /* Resources */ = { |
| 185 | + isa = PBXResourcesBuildPhase; |
| 186 | + buildActionMask = 2147483647; |
| 187 | + files = ( |
| 188 | + 28AD733F0D9D9553002E5188 /* MainWindow.xib in Resources */, |
| 189 | + 2899E5220DE3E06400AC0155 /* PhotoPickerViewController.xib in Resources */, |
| 190 | + F1A2673110C9C04A0044762E /* icon.png in Resources */, |
| 191 | + F130561C10CEDA5C00271CD6 /* home-background.png in Resources */, |
| 192 | + F13056EF10CEEB3100271CD6 /* cancel-button-pressed.png in Resources */, |
| 193 | + F13056F010CEEB3100271CD6 /* cancel-button.png in Resources */, |
| 194 | + 3A113EC910CF3C5500C9DDCF /* Entitlements.plist in Resources */, |
| 195 | + ); |
| 196 | + runOnlyForDeploymentPostprocessing = 0; |
| 197 | + }; |
| 198 | +/* End PBXResourcesBuildPhase section */ |
| 199 | + |
| 200 | +/* Begin PBXSourcesBuildPhase section */ |
| 201 | + 1D60588E0D05DD3D006BFB54 /* Sources */ = { |
| 202 | + isa = PBXSourcesBuildPhase; |
| 203 | + buildActionMask = 2147483647; |
| 204 | + files = ( |
| 205 | + 1D60589B0D05DD56006BFB54 /* main.m in Sources */, |
| 206 | + 1D3623260D0F684500981E51 /* PhotoPickerAppDelegate.m in Sources */, |
| 207 | + 28D7ACF80DDB3853001CB0EB /* PhotoPickerViewController.m in Sources */, |
| 208 | + F1A2691210C9D8EE0044762E /* NSData+PhotoPicker.m in Sources */, |
| 209 | + F1A269B110C9EA8A0044762E /* UIImage+PhotoPicker.m in Sources */, |
| 210 | + F130561F10CEDBAC00271CD6 /* Configuration.m in Sources */, |
| 211 | + ); |
| 212 | + runOnlyForDeploymentPostprocessing = 0; |
| 213 | + }; |
| 214 | +/* End PBXSourcesBuildPhase section */ |
| 215 | + |
| 216 | +/* Begin XCBuildConfiguration section */ |
| 217 | + 1D6058940D05DD3E006BFB54 /* Debug */ = { |
| 218 | + isa = XCBuildConfiguration; |
| 219 | + buildSettings = { |
| 220 | + ALWAYS_SEARCH_USER_PATHS = NO; |
| 221 | + COPY_PHASE_STRIP = NO; |
| 222 | + GCC_DYNAMIC_NO_PIC = NO; |
| 223 | + GCC_OPTIMIZATION_LEVEL = 0; |
| 224 | + GCC_PRECOMPILE_PREFIX_HEADER = YES; |
| 225 | + GCC_PREFIX_HEADER = photopicker_Prefix.pch; |
| 226 | + INFOPLIST_FILE = "photopicker-Info.plist"; |
| 227 | + PRODUCT_NAME = PhotoPicker; |
| 228 | + }; |
| 229 | + name = Debug; |
| 230 | + }; |
| 231 | + C01FCF4F08A954540054247B /* Debug */ = { |
| 232 | + isa = XCBuildConfiguration; |
| 233 | + buildSettings = { |
| 234 | + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; |
| 235 | + CODE_SIGN_IDENTITY = "Don't Code Sign"; |
| 236 | + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "Don't Code Sign"; |
| 237 | + GCC_C_LANGUAGE_STANDARD = c99; |
| 238 | + GCC_WARN_ABOUT_RETURN_TYPE = YES; |
| 239 | + GCC_WARN_UNUSED_VARIABLE = YES; |
| 240 | + PREBINDING = NO; |
| 241 | + PROVISIONING_PROFILE = ""; |
| 242 | + "PROVISIONING_PROFILE[sdk=iphoneos*]" = ""; |
| 243 | + SDKROOT = iphoneos3.0; |
| 244 | + }; |
| 245 | + name = Debug; |
| 246 | + }; |
| 247 | +/* End XCBuildConfiguration section */ |
| 248 | + |
| 249 | +/* Begin XCConfigurationList section */ |
| 250 | + 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "PhotoPicker" */ = { |
| 251 | + isa = XCConfigurationList; |
| 252 | + buildConfigurations = ( |
| 253 | + 1D6058940D05DD3E006BFB54 /* Debug */, |
| 254 | + ); |
| 255 | + defaultConfigurationIsVisible = 0; |
| 256 | + defaultConfigurationName = Debug; |
| 257 | + }; |
| 258 | + C01FCF4E08A954540054247B /* Build configuration list for PBXProject "photopicker" */ = { |
| 259 | + isa = XCConfigurationList; |
| 260 | + buildConfigurations = ( |
| 261 | + C01FCF4F08A954540054247B /* Debug */, |
| 262 | + ); |
| 263 | + defaultConfigurationIsVisible = 0; |
| 264 | + defaultConfigurationName = Debug; |
| 265 | + }; |
| 266 | +/* End XCConfigurationList section */ |
| 267 | + }; |
| 268 | + rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; |
| 269 | +} |
Property changes on: trunk/tools/Snap-to-Commons/photopicker.xcodeproj/project.pbxproj |
___________________________________________________________________ |
Added: svn:executable |
1 | 270 | + * |
Index: trunk/tools/Snap-to-Commons/photopicker.xcodeproj/westphal.pbxuser |
— | — | @@ -0,0 +1,292 @@ |
| 2 | +// !$*UTF8*$! |
| 3 | +{ |
| 4 | + 1D3623240D0F684500981E51 /* PhotoPickerAppDelegate.h */ = { |
| 5 | + uiCtxt = { |
| 6 | + sepNavIntBoundsRect = "{{0, 0}, {1119, 741}}"; |
| 7 | + sepNavSelRange = "{594, 0}"; |
| 8 | + sepNavVisRange = "{0, 934}"; |
| 9 | + }; |
| 10 | + }; |
| 11 | + 1D3623250D0F684500981E51 /* PhotoPickerAppDelegate.m */ = { |
| 12 | + uiCtxt = { |
| 13 | + sepNavIntBoundsRect = "{{0, 0}, {876, 1751}}"; |
| 14 | + sepNavSelRange = "{871, 0}"; |
| 15 | + sepNavVisRange = "{871, 261}"; |
| 16 | + }; |
| 17 | + }; |
| 18 | + 1D6058900D05DD3D006BFB54 /* PhotoPicker */ = { |
| 19 | + activeExec = 0; |
| 20 | + executables = ( |
| 21 | + F1A2671010C9BE530044762E /* photopicker */, |
| 22 | + ); |
| 23 | + }; |
| 24 | + 28D7ACF60DDB3853001CB0EB /* PhotoPickerViewController.h */ = { |
| 25 | + uiCtxt = { |
| 26 | + sepNavIntBoundsRect = "{{0, 0}, {1119, 741}}"; |
| 27 | + sepNavSelRange = "{656, 0}"; |
| 28 | + sepNavVisRange = "{0, 982}"; |
| 29 | + }; |
| 30 | + }; |
| 31 | + 28D7ACF70DDB3853001CB0EB /* PhotoPickerViewController.m */ = { |
| 32 | + uiCtxt = { |
| 33 | + sepNavIntBoundsRect = "{{0, 0}, {876, 6715}}"; |
| 34 | + sepNavSelRange = "{2603, 129}"; |
| 35 | + sepNavVisRange = "{2400, 536}"; |
| 36 | + }; |
| 37 | + }; |
| 38 | + 29B97313FDCFA39411CA2CEA /* Project object */ = { |
| 39 | + activeBuildConfigurationName = Debug; |
| 40 | + activeExecutable = F1A2671010C9BE530044762E /* photopicker */; |
| 41 | + activeTarget = 1D6058900D05DD3D006BFB54 /* PhotoPicker */; |
| 42 | + addToTargets = ( |
| 43 | + 1D6058900D05DD3D006BFB54 /* PhotoPicker */, |
| 44 | + ); |
| 45 | + breakpoints = ( |
| 46 | + ); |
| 47 | + codeSenseManager = F1A2672110C9BE720044762E /* Code sense */; |
| 48 | + executables = ( |
| 49 | + F1A2671010C9BE530044762E /* photopicker */, |
| 50 | + ); |
| 51 | + perUserDictionary = { |
| 52 | + PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { |
| 53 | + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; |
| 54 | + PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; |
| 55 | + PBXFileTableDataSourceColumnWidthsKey = ( |
| 56 | + 20, |
| 57 | + 929, |
| 58 | + 20, |
| 59 | + 48, |
| 60 | + 43, |
| 61 | + 43, |
| 62 | + 20, |
| 63 | + ); |
| 64 | + PBXFileTableDataSourceColumnsKey = ( |
| 65 | + PBXFileDataSource_FiletypeID, |
| 66 | + PBXFileDataSource_Filename_ColumnID, |
| 67 | + PBXFileDataSource_Built_ColumnID, |
| 68 | + PBXFileDataSource_ObjectSize_ColumnID, |
| 69 | + PBXFileDataSource_Errors_ColumnID, |
| 70 | + PBXFileDataSource_Warnings_ColumnID, |
| 71 | + PBXFileDataSource_Target_ColumnID, |
| 72 | + ); |
| 73 | + }; |
| 74 | + PBXPerProjectTemplateStateSaveDate = 282534597; |
| 75 | + PBXWorkspaceStateSaveDate = 282534597; |
| 76 | + }; |
| 77 | + perUserProjectItems = { |
| 78 | + F18FF2F110D727B3005D648A /* PBXTextBookmark */ = F18FF2F110D727B3005D648A /* PBXTextBookmark */; |
| 79 | + F18FF2F210D727B3005D648A /* PBXTextBookmark */ = F18FF2F210D727B3005D648A /* PBXTextBookmark */; |
| 80 | + F18FF2F310D727B3005D648A /* PBXTextBookmark */ = F18FF2F310D727B3005D648A /* PBXTextBookmark */; |
| 81 | + F18FF2F410D727B3005D648A /* PBXTextBookmark */ = F18FF2F410D727B3005D648A /* PBXTextBookmark */; |
| 82 | + F18FF47910D72BDE005D648A /* PBXBookmark */ = F18FF47910D72BDE005D648A /* PBXBookmark */; |
| 83 | + F18FF47A10D72BDE005D648A /* PBXTextBookmark */ = F18FF47A10D72BDE005D648A /* PBXTextBookmark */; |
| 84 | + F18FF47B10D72BDE005D648A /* PBXTextBookmark */ = F18FF47B10D72BDE005D648A /* PBXTextBookmark */; |
| 85 | + F18FF47C10D72BDE005D648A /* PBXTextBookmark */ = F18FF47C10D72BDE005D648A /* PBXTextBookmark */; |
| 86 | + F18FF48410D72C0C005D648A /* PBXTextBookmark */ = F18FF48410D72C0C005D648A /* PBXTextBookmark */; |
| 87 | + F18FF48510D72C0C005D648A /* PBXTextBookmark */ = F18FF48510D72C0C005D648A /* PBXTextBookmark */; |
| 88 | + F18FF49610D72E5F005D648A /* PBXTextBookmark */ = F18FF49610D72E5F005D648A /* PBXTextBookmark */; |
| 89 | + }; |
| 90 | + sourceControlManager = F1A2672010C9BE720044762E /* Source Control */; |
| 91 | + userBuildSettings = { |
| 92 | + }; |
| 93 | + }; |
| 94 | + F130561D10CEDBAC00271CD6 /* Configuration.h */ = { |
| 95 | + uiCtxt = { |
| 96 | + sepNavIntBoundsRect = "{{0, 0}, {1172, 279}}"; |
| 97 | + sepNavSelRange = "{117, 0}"; |
| 98 | + sepNavVisRange = "{0, 289}"; |
| 99 | + }; |
| 100 | + }; |
| 101 | + F130561E10CEDBAC00271CD6 /* Configuration.m */ = { |
| 102 | + uiCtxt = { |
| 103 | + sepNavIntBoundsRect = "{{0, 0}, {1119, 741}}"; |
| 104 | + sepNavSelRange = "{113, 0}"; |
| 105 | + sepNavVisRange = "{0, 113}"; |
| 106 | + }; |
| 107 | + }; |
| 108 | + F18FF2F110D727B3005D648A /* PBXTextBookmark */ = { |
| 109 | + isa = PBXTextBookmark; |
| 110 | + fRef = F1A2691110C9D8EE0044762E /* NSData+PhotoPicker.m */; |
| 111 | + name = "NSData+PhotoPicker.m: 14"; |
| 112 | + rLen = 281; |
| 113 | + rLoc = 221; |
| 114 | + rType = 0; |
| 115 | + vrLen = 511; |
| 116 | + vrLoc = 0; |
| 117 | + }; |
| 118 | + F18FF2F210D727B3005D648A /* PBXTextBookmark */ = { |
| 119 | + isa = PBXTextBookmark; |
| 120 | + fRef = 28D7ACF60DDB3853001CB0EB /* PhotoPickerViewController.h */; |
| 121 | + name = "PhotoPickerViewController.h: 23"; |
| 122 | + rLen = 0; |
| 123 | + rLoc = 656; |
| 124 | + rType = 0; |
| 125 | + vrLen = 982; |
| 126 | + vrLoc = 0; |
| 127 | + }; |
| 128 | + F18FF2F310D727B3005D648A /* PBXTextBookmark */ = { |
| 129 | + isa = PBXTextBookmark; |
| 130 | + fRef = F1A269B010C9EA8A0044762E /* UIImage+PhotoPicker.m */; |
| 131 | + name = "UIImage+PhotoPicker.m: 104"; |
| 132 | + rLen = 0; |
| 133 | + rLoc = 3453; |
| 134 | + rType = 0; |
| 135 | + vrLen = 1377; |
| 136 | + vrLoc = 2082; |
| 137 | + }; |
| 138 | + F18FF2F410D727B3005D648A /* PBXTextBookmark */ = { |
| 139 | + isa = PBXTextBookmark; |
| 140 | + fRef = F1A269AF10C9EA8A0044762E /* UIImage+PhotoPicker.h */; |
| 141 | + name = "UIImage+PhotoPicker.h: 13"; |
| 142 | + rLen = 0; |
| 143 | + rLoc = 203; |
| 144 | + rType = 0; |
| 145 | + vrLen = 209; |
| 146 | + vrLoc = 0; |
| 147 | + }; |
| 148 | + F18FF47910D72BDE005D648A /* PBXBookmark */ = { |
| 149 | + isa = PBXBookmark; |
| 150 | + fRef = F1A2672F10C9C04A0044762E /* icon.png */; |
| 151 | + }; |
| 152 | + F18FF47A10D72BDE005D648A /* PBXTextBookmark */ = { |
| 153 | + isa = PBXTextBookmark; |
| 154 | + fRef = 1D3623240D0F684500981E51 /* PhotoPickerAppDelegate.h */; |
| 155 | + name = "PhotoPickerAppDelegate.h: 27"; |
| 156 | + rLen = 0; |
| 157 | + rLoc = 594; |
| 158 | + rType = 0; |
| 159 | + vrLen = 934; |
| 160 | + vrLoc = 0; |
| 161 | + }; |
| 162 | + F18FF47B10D72BDE005D648A /* PBXTextBookmark */ = { |
| 163 | + isa = PBXTextBookmark; |
| 164 | + fRef = 1D3623250D0F684500981E51 /* PhotoPickerAppDelegate.m */; |
| 165 | + name = "PhotoPickerAppDelegate.m: 69"; |
| 166 | + rLen = 0; |
| 167 | + rLoc = 1476; |
| 168 | + rType = 0; |
| 169 | + vrLen = 1276; |
| 170 | + vrLoc = 1110; |
| 171 | + }; |
| 172 | + F18FF47C10D72BDE005D648A /* PBXTextBookmark */ = { |
| 173 | + isa = PBXTextBookmark; |
| 174 | + fRef = F130561D10CEDBAC00271CD6 /* Configuration.h */; |
| 175 | + name = "Configuration.h: 8"; |
| 176 | + rLen = 0; |
| 177 | + rLoc = 117; |
| 178 | + rType = 0; |
| 179 | + vrLen = 289; |
| 180 | + vrLoc = 0; |
| 181 | + }; |
| 182 | + F18FF48410D72C0C005D648A /* PBXTextBookmark */ = { |
| 183 | + isa = PBXTextBookmark; |
| 184 | + fRef = 28D7ACF70DDB3853001CB0EB /* PhotoPickerViewController.m */; |
| 185 | + name = "PhotoPickerViewController.m: 94"; |
| 186 | + rLen = 0; |
| 187 | + rLoc = 2733; |
| 188 | + rType = 0; |
| 189 | + vrLen = 1193; |
| 190 | + vrLoc = 1961; |
| 191 | + }; |
| 192 | + F18FF48510D72C0C005D648A /* PBXTextBookmark */ = { |
| 193 | + isa = PBXTextBookmark; |
| 194 | + fRef = F130561E10CEDBAC00271CD6 /* Configuration.m */; |
| 195 | + name = "Configuration.m: 8"; |
| 196 | + rLen = 0; |
| 197 | + rLoc = 113; |
| 198 | + rType = 0; |
| 199 | + vrLen = 113; |
| 200 | + vrLoc = 0; |
| 201 | + }; |
| 202 | + F18FF49610D72E5F005D648A /* PBXTextBookmark */ = { |
| 203 | + isa = PBXTextBookmark; |
| 204 | + fRef = F130561D10CEDBAC00271CD6 /* Configuration.h */; |
| 205 | + name = "Configuration.h: 7"; |
| 206 | + rLen = 0; |
| 207 | + rLoc = 87; |
| 208 | + rType = 0; |
| 209 | + vrLen = 289; |
| 210 | + vrLoc = 0; |
| 211 | + }; |
| 212 | + F1A2671010C9BE530044762E /* photopicker */ = { |
| 213 | + isa = PBXExecutable; |
| 214 | + activeArgIndices = ( |
| 215 | + ); |
| 216 | + argumentStrings = ( |
| 217 | + ); |
| 218 | + autoAttachOnCrash = 1; |
| 219 | + breakpointsEnabled = 1; |
| 220 | + configStateDict = { |
| 221 | + }; |
| 222 | + customDataFormattersEnabled = 1; |
| 223 | + dataTipCustomDataFormattersEnabled = 1; |
| 224 | + dataTipShowTypeColumn = 1; |
| 225 | + dataTipSortType = 0; |
| 226 | + debuggerPlugin = GDBDebugging; |
| 227 | + disassemblyDisplayState = 0; |
| 228 | + dylibVariantSuffix = ""; |
| 229 | + enableDebugStr = 1; |
| 230 | + environmentEntries = ( |
| 231 | + ); |
| 232 | + executableSystemSymbolLevel = 0; |
| 233 | + executableUserSymbolLevel = 0; |
| 234 | + libgmallocEnabled = 0; |
| 235 | + name = photopicker; |
| 236 | + savedGlobals = { |
| 237 | + }; |
| 238 | + showTypeColumn = 0; |
| 239 | + sourceDirectories = ( |
| 240 | + ); |
| 241 | + variableFormatDictionary = { |
| 242 | + }; |
| 243 | + }; |
| 244 | + F1A2672010C9BE720044762E /* Source Control */ = { |
| 245 | + isa = PBXSourceControlManager; |
| 246 | + fallbackIsa = XCSourceControlManager; |
| 247 | + isSCMEnabled = 0; |
| 248 | + scmConfiguration = { |
| 249 | + repositoryNamesForRoots = { |
| 250 | + "" = ""; |
| 251 | + }; |
| 252 | + }; |
| 253 | + }; |
| 254 | + F1A2672110C9BE720044762E /* Code sense */ = { |
| 255 | + isa = PBXCodeSenseManager; |
| 256 | + indexTemplatePath = ""; |
| 257 | + }; |
| 258 | + F1A2691010C9D8EE0044762E /* NSData+PhotoPicker.h */ = { |
| 259 | + uiCtxt = { |
| 260 | + sepNavIntBoundsRect = "{{0, 0}, {1119, 741}}"; |
| 261 | + sepNavSelRange = "{213, 0}"; |
| 262 | + sepNavVisRange = "{0, 213}"; |
| 263 | + }; |
| 264 | + }; |
| 265 | + F1A2691110C9D8EE0044762E /* NSData+PhotoPicker.m */ = { |
| 266 | + uiCtxt = { |
| 267 | + sepNavIntBoundsRect = "{{0, 0}, {1119, 741}}"; |
| 268 | + sepNavSelRange = "{221, 281}"; |
| 269 | + sepNavVisRange = "{0, 511}"; |
| 270 | + }; |
| 271 | + }; |
| 272 | + F1A269AF10C9EA8A0044762E /* UIImage+PhotoPicker.h */ = { |
| 273 | + uiCtxt = { |
| 274 | + sepNavIntBoundsRect = "{{0, 0}, {1119, 741}}"; |
| 275 | + sepNavSelRange = "{203, 0}"; |
| 276 | + sepNavVisRange = "{0, 209}"; |
| 277 | + }; |
| 278 | + }; |
| 279 | + F1A269B010C9EA8A0044762E /* UIImage+PhotoPicker.m */ = { |
| 280 | + uiCtxt = { |
| 281 | + sepNavIntBoundsRect = "{{0, 0}, {1119, 1802}}"; |
| 282 | + sepNavSelRange = "{3453, 0}"; |
| 283 | + sepNavVisRange = "{2082, 1377}"; |
| 284 | + }; |
| 285 | + }; |
| 286 | + F1A269C010C9EFDC0044762E /* readme.html */ = { |
| 287 | + uiCtxt = { |
| 288 | + sepNavIntBoundsRect = "{{0, 0}, {2020, 1020}}"; |
| 289 | + sepNavSelRange = "{0, 0}"; |
| 290 | + sepNavVisRange = "{389, 2218}"; |
| 291 | + }; |
| 292 | + }; |
| 293 | +} |
Index: trunk/tools/Snap-to-Commons/cancel-button-pressed.png |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes on: trunk/tools/Snap-to-Commons/cancel-button-pressed.png |
___________________________________________________________________ |
Added: svn:mime-type |
1 | 294 | + application/octet-stream |
Index: trunk/tools/Snap-to-Commons/Entitlements.plist |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +<?xml version="1.0" encoding="UTF-8"?> |
| 3 | +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> |
| 4 | +<plist version="1.0"> |
| 5 | +<dict> |
| 6 | + <key>get-task-allow</key> |
| 7 | + <false/> |
| 8 | +</dict> |
| 9 | +</plist> |
Index: trunk/tools/Snap-to-Commons/PhotoPickerViewController.xib |
— | — | @@ -0,0 +1,666 @@ |
| 2 | +<?xml version="1.0" encoding="UTF-8"?> |
| 3 | +<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10"> |
| 4 | + <data> |
| 5 | + <int key="IBDocument.SystemTarget">768</int> |
| 6 | + <string key="IBDocument.SystemVersion">10C540</string> |
| 7 | + <string key="IBDocument.InterfaceBuilderVersion">740</string> |
| 8 | + <string key="IBDocument.AppKitVersion">1038.25</string> |
| 9 | + <string key="IBDocument.HIToolboxVersion">458.00</string> |
| 10 | + <object class="NSMutableDictionary" key="IBDocument.PluginVersions"> |
| 11 | + <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
| 12 | + <string key="NS.object.0">62</string> |
| 13 | + </object> |
| 14 | + <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> |
| 15 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 16 | + <integer value="6"/> |
| 17 | + <integer value="13"/> |
| 18 | + </object> |
| 19 | + <object class="NSArray" key="IBDocument.PluginDependencies"> |
| 20 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 21 | + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
| 22 | + </object> |
| 23 | + <object class="NSMutableDictionary" key="IBDocument.Metadata"> |
| 24 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 25 | + <object class="NSArray" key="dict.sortedKeys" id="0"> |
| 26 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 27 | + </object> |
| 28 | + <object class="NSMutableArray" key="dict.values"> |
| 29 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 30 | + </object> |
| 31 | + </object> |
| 32 | + <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000"> |
| 33 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 34 | + <object class="IBProxyObject" id="372490531"> |
| 35 | + <string key="IBProxiedObjectIdentifier">IBFilesOwner</string> |
| 36 | + </object> |
| 37 | + <object class="IBProxyObject" id="843779117"> |
| 38 | + <string key="IBProxiedObjectIdentifier">IBFirstResponder</string> |
| 39 | + </object> |
| 40 | + <object class="IBUIView" id="774585933"> |
| 41 | + <reference key="NSNextResponder"/> |
| 42 | + <int key="NSvFlags">274</int> |
| 43 | + <string key="NSFrameSize">{320, 460}</string> |
| 44 | + <reference key="NSSuperview"/> |
| 45 | + <object class="NSColor" key="IBUIBackgroundColor"> |
| 46 | + <int key="NSColorSpace">5</int> |
| 47 | + <bytes key="NSCMYK">MCAwIDAgMAA</bytes> |
| 48 | + <object class="NSColorSpace" key="NSCustomColorSpace"> |
| 49 | + <int key="NSID">3</int> |
| 50 | + </object> |
| 51 | + <characters key="NSComponents">0 0 0 0 1</characters> |
| 52 | + </object> |
| 53 | + <bool key="IBUIClearsContextBeforeDrawing">NO</bool> |
| 54 | + <object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/> |
| 55 | + </object> |
| 56 | + <object class="IBUIView" id="79809793"> |
| 57 | + <reference key="NSNextResponder"/> |
| 58 | + <int key="NSvFlags">292</int> |
| 59 | + <object class="NSMutableArray" key="NSSubviews"> |
| 60 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 61 | + <object class="IBUINavigationBar" id="923235693"> |
| 62 | + <reference key="NSNextResponder" ref="79809793"/> |
| 63 | + <int key="NSvFlags">290</int> |
| 64 | + <string key="NSFrameSize">{320, 44}</string> |
| 65 | + <reference key="NSSuperview" ref="79809793"/> |
| 66 | + <bool key="IBUIOpaque">NO</bool> |
| 67 | + <bool key="IBUIClearsContextBeforeDrawing">NO</bool> |
| 68 | + <int key="IBUIBarStyle">1</int> |
| 69 | + <object class="NSArray" key="IBUIItems"> |
| 70 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 71 | + <object class="IBUINavigationItem" id="766765125"> |
| 72 | + <reference key="IBUINavigationBar" ref="923235693"/> |
| 73 | + <string key="IBUITitle"/> |
| 74 | + </object> |
| 75 | + </object> |
| 76 | + </object> |
| 77 | + <object class="IBUIImageView" id="398436398"> |
| 78 | + <reference key="NSNextResponder" ref="79809793"/> |
| 79 | + <int key="NSvFlags">292</int> |
| 80 | + <string key="NSFrame">{{20, 64}, {279, 310}}</string> |
| 81 | + <reference key="NSSuperview" ref="79809793"/> |
| 82 | + <bool key="IBUIOpaque">NO</bool> |
| 83 | + <bool key="IBUIClearsContextBeforeDrawing">NO</bool> |
| 84 | + <int key="IBUIContentMode">1</int> |
| 85 | + <bool key="IBUIUserInteractionEnabled">NO</bool> |
| 86 | + </object> |
| 87 | + <object class="IBUIButton" id="106179972"> |
| 88 | + <reference key="NSNextResponder" ref="79809793"/> |
| 89 | + <int key="NSvFlags">292</int> |
| 90 | + <string key="NSFrame">{{21, 394}, {278, 46}}</string> |
| 91 | + <reference key="NSSuperview" ref="79809793"/> |
| 92 | + <bool key="IBUIOpaque">NO</bool> |
| 93 | + <bool key="IBUIClearsContextBeforeDrawing">NO</bool> |
| 94 | + <int key="IBUIContentHorizontalAlignment">0</int> |
| 95 | + <int key="IBUIContentVerticalAlignment">0</int> |
| 96 | + <object class="NSFont" key="IBUIFont"> |
| 97 | + <string key="NSName">Helvetica-Bold</string> |
| 98 | + <double key="NSSize">15</double> |
| 99 | + <int key="NSfFlags">16</int> |
| 100 | + </object> |
| 101 | + <object class="NSColor" key="IBUIHighlightedTitleColor"> |
| 102 | + <int key="NSColorSpace">3</int> |
| 103 | + <bytes key="NSWhite">MQA</bytes> |
| 104 | + </object> |
| 105 | + <object class="NSColor" key="IBUINormalTitleColor"> |
| 106 | + <int key="NSColorSpace">1</int> |
| 107 | + <bytes key="NSRGB">MC4xOTYwNzg0MyAwLjMwOTgwMzkzIDAuNTIxNTY4NjYAA</bytes> |
| 108 | + </object> |
| 109 | + <object class="NSColor" key="IBUINormalTitleShadowColor"> |
| 110 | + <int key="NSColorSpace">3</int> |
| 111 | + <bytes key="NSWhite">MC41AA</bytes> |
| 112 | + </object> |
| 113 | + <object class="NSCustomResource" key="IBUIHighlightedBackgroundImage"> |
| 114 | + <string key="NSClassName">NSImage</string> |
| 115 | + <string key="NSResourceName">cancel-button-pressed.png</string> |
| 116 | + </object> |
| 117 | + <object class="NSCustomResource" key="IBUINormalBackgroundImage"> |
| 118 | + <string key="NSClassName">NSImage</string> |
| 119 | + <string key="NSResourceName">cancel-button.png</string> |
| 120 | + </object> |
| 121 | + </object> |
| 122 | + <object class="IBUIProgressView" id="680833711"> |
| 123 | + <reference key="NSNextResponder" ref="79809793"/> |
| 124 | + <int key="NSvFlags">292</int> |
| 125 | + <string key="NSFrame">{{78, 26}, {164, 11}}</string> |
| 126 | + <reference key="NSSuperview" ref="79809793"/> |
| 127 | + <bool key="IBUIOpaque">NO</bool> |
| 128 | + <bool key="IBUIClipsSubviews">YES</bool> |
| 129 | + <bool key="IBUIMultipleTouchEnabled">YES</bool> |
| 130 | + <float key="IBUIProgress">0.5</float> |
| 131 | + <int key="IBUIProgressViewStyle">1</int> |
| 132 | + </object> |
| 133 | + <object class="IBUILabel" id="27668303"> |
| 134 | + <reference key="NSNextResponder" ref="79809793"/> |
| 135 | + <int key="NSvFlags">292</int> |
| 136 | + <string key="NSFrameSize">{320, 23}</string> |
| 137 | + <reference key="NSSuperview" ref="79809793"/> |
| 138 | + <bool key="IBUIOpaque">NO</bool> |
| 139 | + <bool key="IBUIClipsSubviews">YES</bool> |
| 140 | + <bool key="IBUIUserInteractionEnabled">NO</bool> |
| 141 | + <string key="IBUIText">uploading</string> |
| 142 | + <object class="NSFont" key="IBUIFont"> |
| 143 | + <string key="NSName">Helvetica</string> |
| 144 | + <double key="NSSize">14</double> |
| 145 | + <int key="NSfFlags">16</int> |
| 146 | + </object> |
| 147 | + <object class="NSColor" key="IBUITextColor"> |
| 148 | + <int key="NSColorSpace">3</int> |
| 149 | + <bytes key="NSWhite">MQA</bytes> |
| 150 | + <object class="NSColorSpace" key="NSCustomColorSpace" id="234927620"> |
| 151 | + <int key="NSID">2</int> |
| 152 | + </object> |
| 153 | + </object> |
| 154 | + <nil key="IBUIHighlightedColor"/> |
| 155 | + <object class="NSColor" key="IBUIShadowColor"> |
| 156 | + <int key="NSColorSpace">3</int> |
| 157 | + <bytes key="NSWhite">MAA</bytes> |
| 158 | + <reference key="NSCustomColorSpace" ref="234927620"/> |
| 159 | + </object> |
| 160 | + <int key="IBUIBaselineAdjustment">1</int> |
| 161 | + <bool key="IBUIAdjustsFontSizeToFit">NO</bool> |
| 162 | + <float key="IBUIMinimumFontSize">10</float> |
| 163 | + <int key="IBUITextAlignment">1</int> |
| 164 | + </object> |
| 165 | + </object> |
| 166 | + <string key="NSFrameSize">{320, 460}</string> |
| 167 | + <reference key="NSSuperview"/> |
| 168 | + <object class="NSColor" key="IBUIBackgroundColor"> |
| 169 | + <int key="NSColorSpace">3</int> |
| 170 | + <bytes key="NSWhite">MC4xMzMwNjQ1MTYxAA</bytes> |
| 171 | + </object> |
| 172 | + <bool key="IBUIClearsContextBeforeDrawing">NO</bool> |
| 173 | + </object> |
| 174 | + </object> |
| 175 | + <object class="IBObjectContainer" key="IBDocument.Objects"> |
| 176 | + <object class="NSMutableArray" key="connectionRecords"> |
| 177 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 178 | + <object class="IBConnectionRecord"> |
| 179 | + <object class="IBCocoaTouchOutletConnection" key="connection"> |
| 180 | + <string key="label">view</string> |
| 181 | + <reference key="source" ref="372490531"/> |
| 182 | + <reference key="destination" ref="774585933"/> |
| 183 | + </object> |
| 184 | + <int key="connectionID">7</int> |
| 185 | + </object> |
| 186 | + <object class="IBConnectionRecord"> |
| 187 | + <object class="IBCocoaTouchOutletConnection" key="connection"> |
| 188 | + <string key="label">uploadPhotoOverlay</string> |
| 189 | + <reference key="source" ref="372490531"/> |
| 190 | + <reference key="destination" ref="79809793"/> |
| 191 | + </object> |
| 192 | + <int key="connectionID">18</int> |
| 193 | + </object> |
| 194 | + <object class="IBConnectionRecord"> |
| 195 | + <object class="IBCocoaTouchOutletConnection" key="connection"> |
| 196 | + <string key="label">uploadProgress</string> |
| 197 | + <reference key="source" ref="372490531"/> |
| 198 | + <reference key="destination" ref="680833711"/> |
| 199 | + </object> |
| 200 | + <int key="connectionID">19</int> |
| 201 | + </object> |
| 202 | + <object class="IBConnectionRecord"> |
| 203 | + <object class="IBCocoaTouchOutletConnection" key="connection"> |
| 204 | + <string key="label">uploadOverlayImage</string> |
| 205 | + <reference key="source" ref="372490531"/> |
| 206 | + <reference key="destination" ref="398436398"/> |
| 207 | + </object> |
| 208 | + <int key="connectionID">21</int> |
| 209 | + </object> |
| 210 | + <object class="IBConnectionRecord"> |
| 211 | + <object class="IBCocoaTouchEventConnection" key="connection"> |
| 212 | + <string key="label">onCancelUploadClicked</string> |
| 213 | + <reference key="source" ref="106179972"/> |
| 214 | + <reference key="destination" ref="372490531"/> |
| 215 | + <int key="IBEventType">7</int> |
| 216 | + </object> |
| 217 | + <int key="connectionID">22</int> |
| 218 | + </object> |
| 219 | + <object class="IBConnectionRecord"> |
| 220 | + <object class="IBCocoaTouchOutletConnection" key="connection"> |
| 221 | + <string key="label">uploadProgressMessage</string> |
| 222 | + <reference key="source" ref="372490531"/> |
| 223 | + <reference key="destination" ref="27668303"/> |
| 224 | + </object> |
| 225 | + <int key="connectionID">32</int> |
| 226 | + </object> |
| 227 | + </object> |
| 228 | + <object class="IBMutableOrderedSet" key="objectRecords"> |
| 229 | + <object class="NSArray" key="orderedObjects"> |
| 230 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 231 | + <object class="IBObjectRecord"> |
| 232 | + <int key="objectID">0</int> |
| 233 | + <reference key="object" ref="0"/> |
| 234 | + <reference key="children" ref="1000"/> |
| 235 | + <nil key="parent"/> |
| 236 | + </object> |
| 237 | + <object class="IBObjectRecord"> |
| 238 | + <int key="objectID">-1</int> |
| 239 | + <reference key="object" ref="372490531"/> |
| 240 | + <reference key="parent" ref="0"/> |
| 241 | + <string key="objectName">File's Owner</string> |
| 242 | + </object> |
| 243 | + <object class="IBObjectRecord"> |
| 244 | + <int key="objectID">-2</int> |
| 245 | + <reference key="object" ref="843779117"/> |
| 246 | + <reference key="parent" ref="0"/> |
| 247 | + </object> |
| 248 | + <object class="IBObjectRecord"> |
| 249 | + <int key="objectID">6</int> |
| 250 | + <reference key="object" ref="774585933"/> |
| 251 | + <object class="NSMutableArray" key="children"> |
| 252 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 253 | + </object> |
| 254 | + <reference key="parent" ref="0"/> |
| 255 | + </object> |
| 256 | + <object class="IBObjectRecord"> |
| 257 | + <int key="objectID">13</int> |
| 258 | + <reference key="object" ref="79809793"/> |
| 259 | + <object class="NSMutableArray" key="children"> |
| 260 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 261 | + <reference ref="680833711"/> |
| 262 | + <reference ref="106179972"/> |
| 263 | + <reference ref="923235693"/> |
| 264 | + <reference ref="27668303"/> |
| 265 | + <reference ref="398436398"/> |
| 266 | + </object> |
| 267 | + <reference key="parent" ref="0"/> |
| 268 | + <string key="objectName">Upload Photo Overlay</string> |
| 269 | + </object> |
| 270 | + <object class="IBObjectRecord"> |
| 271 | + <int key="objectID">14</int> |
| 272 | + <reference key="object" ref="398436398"/> |
| 273 | + <reference key="parent" ref="79809793"/> |
| 274 | + </object> |
| 275 | + <object class="IBObjectRecord"> |
| 276 | + <int key="objectID">15</int> |
| 277 | + <reference key="object" ref="106179972"/> |
| 278 | + <reference key="parent" ref="79809793"/> |
| 279 | + </object> |
| 280 | + <object class="IBObjectRecord"> |
| 281 | + <int key="objectID">16</int> |
| 282 | + <reference key="object" ref="680833711"/> |
| 283 | + <reference key="parent" ref="79809793"/> |
| 284 | + </object> |
| 285 | + <object class="IBObjectRecord"> |
| 286 | + <int key="objectID">28</int> |
| 287 | + <reference key="object" ref="923235693"/> |
| 288 | + <object class="NSMutableArray" key="children"> |
| 289 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 290 | + <reference ref="766765125"/> |
| 291 | + </object> |
| 292 | + <reference key="parent" ref="79809793"/> |
| 293 | + </object> |
| 294 | + <object class="IBObjectRecord"> |
| 295 | + <int key="objectID">29</int> |
| 296 | + <reference key="object" ref="766765125"/> |
| 297 | + <reference key="parent" ref="923235693"/> |
| 298 | + </object> |
| 299 | + <object class="IBObjectRecord"> |
| 300 | + <int key="objectID">30</int> |
| 301 | + <reference key="object" ref="27668303"/> |
| 302 | + <reference key="parent" ref="79809793"/> |
| 303 | + </object> |
| 304 | + </object> |
| 305 | + </object> |
| 306 | + <object class="NSMutableDictionary" key="flattenedProperties"> |
| 307 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 308 | + <object class="NSArray" key="dict.sortedKeys"> |
| 309 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 310 | + <string>-1.CustomClassName</string> |
| 311 | + <string>-2.CustomClassName</string> |
| 312 | + <string>13.IBEditorWindowLastContentRect</string> |
| 313 | + <string>13.IBPluginDependency</string> |
| 314 | + <string>14.IBPluginDependency</string> |
| 315 | + <string>15.IBPluginDependency</string> |
| 316 | + <string>16.IBPluginDependency</string> |
| 317 | + <string>28.IBPluginDependency</string> |
| 318 | + <string>29.IBPluginDependency</string> |
| 319 | + <string>30.IBPluginDependency</string> |
| 320 | + <string>6.IBEditorWindowLastContentRect</string> |
| 321 | + <string>6.IBPluginDependency</string> |
| 322 | + </object> |
| 323 | + <object class="NSMutableArray" key="dict.values"> |
| 324 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 325 | + <string>PhotoPickerViewController</string> |
| 326 | + <string>UIResponder</string> |
| 327 | + <string>{{793, 359}, {320, 460}}</string> |
| 328 | + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
| 329 | + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
| 330 | + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
| 331 | + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
| 332 | + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
| 333 | + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
| 334 | + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
| 335 | + <string>{{150, 209}, {320, 480}}</string> |
| 336 | + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
| 337 | + </object> |
| 338 | + </object> |
| 339 | + <object class="NSMutableDictionary" key="unlocalizedProperties"> |
| 340 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 341 | + <reference key="dict.sortedKeys" ref="0"/> |
| 342 | + <object class="NSMutableArray" key="dict.values"> |
| 343 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 344 | + </object> |
| 345 | + </object> |
| 346 | + <nil key="activeLocalization"/> |
| 347 | + <object class="NSMutableDictionary" key="localizations"> |
| 348 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 349 | + <reference key="dict.sortedKeys" ref="0"/> |
| 350 | + <object class="NSMutableArray" key="dict.values"> |
| 351 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 352 | + </object> |
| 353 | + </object> |
| 354 | + <nil key="sourceID"/> |
| 355 | + <int key="maxID">40</int> |
| 356 | + </object> |
| 357 | + <object class="IBClassDescriber" key="IBDocument.Classes"> |
| 358 | + <object class="NSMutableArray" key="referencedPartialClassDescriptions"> |
| 359 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 360 | + <object class="IBPartialClassDescription"> |
| 361 | + <string key="className">PhotoPickerViewController</string> |
| 362 | + <string key="superclassName">UIViewController</string> |
| 363 | + <object class="NSMutableDictionary" key="actions"> |
| 364 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 365 | + <object class="NSArray" key="dict.sortedKeys"> |
| 366 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 367 | + <string>onCameraClicked</string> |
| 368 | + <string>onCancelUploadClicked</string> |
| 369 | + <string>onPhotoLibraryClicked</string> |
| 370 | + </object> |
| 371 | + <object class="NSMutableArray" key="dict.values"> |
| 372 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 373 | + <string>id</string> |
| 374 | + <string>id</string> |
| 375 | + <string>id</string> |
| 376 | + </object> |
| 377 | + </object> |
| 378 | + <object class="NSMutableDictionary" key="outlets"> |
| 379 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 380 | + <object class="NSArray" key="dict.sortedKeys"> |
| 381 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 382 | + <string>takePhotoButton</string> |
| 383 | + <string>uploadOverlayImage</string> |
| 384 | + <string>uploadPhotoOverlay</string> |
| 385 | + <string>uploadProgress</string> |
| 386 | + <string>uploadProgressMessage</string> |
| 387 | + </object> |
| 388 | + <object class="NSMutableArray" key="dict.values"> |
| 389 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 390 | + <string>UIButton</string> |
| 391 | + <string>UIImageView</string> |
| 392 | + <string>UIView</string> |
| 393 | + <string>UIProgressView</string> |
| 394 | + <string>UILabel</string> |
| 395 | + </object> |
| 396 | + </object> |
| 397 | + <object class="IBClassDescriptionSource" key="sourceIdentifier"> |
| 398 | + <string key="majorKey">IBProjectSource</string> |
| 399 | + <string key="minorKey">Classes/PhotoPickerViewController.h</string> |
| 400 | + </object> |
| 401 | + </object> |
| 402 | + </object> |
| 403 | + <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+"> |
| 404 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 405 | + <object class="IBPartialClassDescription"> |
| 406 | + <string key="className">NSObject</string> |
| 407 | + <object class="IBClassDescriptionSource" key="sourceIdentifier"> |
| 408 | + <string key="majorKey">IBFrameworkSource</string> |
| 409 | + <string key="minorKey">Foundation.framework/Headers/NSError.h</string> |
| 410 | + </object> |
| 411 | + </object> |
| 412 | + <object class="IBPartialClassDescription"> |
| 413 | + <string key="className">NSObject</string> |
| 414 | + <object class="IBClassDescriptionSource" key="sourceIdentifier"> |
| 415 | + <string key="majorKey">IBFrameworkSource</string> |
| 416 | + <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string> |
| 417 | + </object> |
| 418 | + </object> |
| 419 | + <object class="IBPartialClassDescription"> |
| 420 | + <string key="className">NSObject</string> |
| 421 | + <object class="IBClassDescriptionSource" key="sourceIdentifier"> |
| 422 | + <string key="majorKey">IBFrameworkSource</string> |
| 423 | + <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string> |
| 424 | + </object> |
| 425 | + </object> |
| 426 | + <object class="IBPartialClassDescription"> |
| 427 | + <string key="className">NSObject</string> |
| 428 | + <object class="IBClassDescriptionSource" key="sourceIdentifier"> |
| 429 | + <string key="majorKey">IBFrameworkSource</string> |
| 430 | + <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string> |
| 431 | + </object> |
| 432 | + </object> |
| 433 | + <object class="IBPartialClassDescription"> |
| 434 | + <string key="className">NSObject</string> |
| 435 | + <object class="IBClassDescriptionSource" key="sourceIdentifier"> |
| 436 | + <string key="majorKey">IBFrameworkSource</string> |
| 437 | + <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string> |
| 438 | + </object> |
| 439 | + </object> |
| 440 | + <object class="IBPartialClassDescription"> |
| 441 | + <string key="className">NSObject</string> |
| 442 | + <object class="IBClassDescriptionSource" key="sourceIdentifier"> |
| 443 | + <string key="majorKey">IBFrameworkSource</string> |
| 444 | + <string key="minorKey">Foundation.framework/Headers/NSNetServices.h</string> |
| 445 | + </object> |
| 446 | + </object> |
| 447 | + <object class="IBPartialClassDescription"> |
| 448 | + <string key="className">NSObject</string> |
| 449 | + <object class="IBClassDescriptionSource" key="sourceIdentifier"> |
| 450 | + <string key="majorKey">IBFrameworkSource</string> |
| 451 | + <string key="minorKey">Foundation.framework/Headers/NSObject.h</string> |
| 452 | + </object> |
| 453 | + </object> |
| 454 | + <object class="IBPartialClassDescription"> |
| 455 | + <string key="className">NSObject</string> |
| 456 | + <object class="IBClassDescriptionSource" key="sourceIdentifier"> |
| 457 | + <string key="majorKey">IBFrameworkSource</string> |
| 458 | + <string key="minorKey">Foundation.framework/Headers/NSPort.h</string> |
| 459 | + </object> |
| 460 | + </object> |
| 461 | + <object class="IBPartialClassDescription"> |
| 462 | + <string key="className">NSObject</string> |
| 463 | + <object class="IBClassDescriptionSource" key="sourceIdentifier"> |
| 464 | + <string key="majorKey">IBFrameworkSource</string> |
| 465 | + <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string> |
| 466 | + </object> |
| 467 | + </object> |
| 468 | + <object class="IBPartialClassDescription"> |
| 469 | + <string key="className">NSObject</string> |
| 470 | + <object class="IBClassDescriptionSource" key="sourceIdentifier"> |
| 471 | + <string key="majorKey">IBFrameworkSource</string> |
| 472 | + <string key="minorKey">Foundation.framework/Headers/NSStream.h</string> |
| 473 | + </object> |
| 474 | + </object> |
| 475 | + <object class="IBPartialClassDescription"> |
| 476 | + <string key="className">NSObject</string> |
| 477 | + <object class="IBClassDescriptionSource" key="sourceIdentifier"> |
| 478 | + <string key="majorKey">IBFrameworkSource</string> |
| 479 | + <string key="minorKey">Foundation.framework/Headers/NSThread.h</string> |
| 480 | + </object> |
| 481 | + </object> |
| 482 | + <object class="IBPartialClassDescription"> |
| 483 | + <string key="className">NSObject</string> |
| 484 | + <object class="IBClassDescriptionSource" key="sourceIdentifier"> |
| 485 | + <string key="majorKey">IBFrameworkSource</string> |
| 486 | + <string key="minorKey">Foundation.framework/Headers/NSURL.h</string> |
| 487 | + </object> |
| 488 | + </object> |
| 489 | + <object class="IBPartialClassDescription"> |
| 490 | + <string key="className">NSObject</string> |
| 491 | + <object class="IBClassDescriptionSource" key="sourceIdentifier"> |
| 492 | + <string key="majorKey">IBFrameworkSource</string> |
| 493 | + <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string> |
| 494 | + </object> |
| 495 | + </object> |
| 496 | + <object class="IBPartialClassDescription"> |
| 497 | + <string key="className">NSObject</string> |
| 498 | + <object class="IBClassDescriptionSource" key="sourceIdentifier"> |
| 499 | + <string key="majorKey">IBFrameworkSource</string> |
| 500 | + <string key="minorKey">Foundation.framework/Headers/NSXMLParser.h</string> |
| 501 | + </object> |
| 502 | + </object> |
| 503 | + <object class="IBPartialClassDescription"> |
| 504 | + <string key="className">NSObject</string> |
| 505 | + <object class="IBClassDescriptionSource" key="sourceIdentifier"> |
| 506 | + <string key="majorKey">IBFrameworkSource</string> |
| 507 | + <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string> |
| 508 | + </object> |
| 509 | + </object> |
| 510 | + <object class="IBPartialClassDescription"> |
| 511 | + <string key="className">NSObject</string> |
| 512 | + <object class="IBClassDescriptionSource" key="sourceIdentifier"> |
| 513 | + <string key="majorKey">IBFrameworkSource</string> |
| 514 | + <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string> |
| 515 | + </object> |
| 516 | + </object> |
| 517 | + <object class="IBPartialClassDescription"> |
| 518 | + <string key="className">NSObject</string> |
| 519 | + <object class="IBClassDescriptionSource" key="sourceIdentifier" id="47070934"> |
| 520 | + <string key="majorKey">IBFrameworkSource</string> |
| 521 | + <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string> |
| 522 | + </object> |
| 523 | + </object> |
| 524 | + <object class="IBPartialClassDescription"> |
| 525 | + <string key="className">UIBarButtonItem</string> |
| 526 | + <string key="superclassName">UIBarItem</string> |
| 527 | + <object class="IBClassDescriptionSource" key="sourceIdentifier"> |
| 528 | + <string key="majorKey">IBFrameworkSource</string> |
| 529 | + <string key="minorKey">UIKit.framework/Headers/UIBarButtonItem.h</string> |
| 530 | + </object> |
| 531 | + </object> |
| 532 | + <object class="IBPartialClassDescription"> |
| 533 | + <string key="className">UIBarItem</string> |
| 534 | + <string key="superclassName">NSObject</string> |
| 535 | + <object class="IBClassDescriptionSource" key="sourceIdentifier"> |
| 536 | + <string key="majorKey">IBFrameworkSource</string> |
| 537 | + <string key="minorKey">UIKit.framework/Headers/UIBarItem.h</string> |
| 538 | + </object> |
| 539 | + </object> |
| 540 | + <object class="IBPartialClassDescription"> |
| 541 | + <string key="className">UIButton</string> |
| 542 | + <string key="superclassName">UIControl</string> |
| 543 | + <object class="IBClassDescriptionSource" key="sourceIdentifier"> |
| 544 | + <string key="majorKey">IBFrameworkSource</string> |
| 545 | + <string key="minorKey">UIKit.framework/Headers/UIButton.h</string> |
| 546 | + </object> |
| 547 | + </object> |
| 548 | + <object class="IBPartialClassDescription"> |
| 549 | + <string key="className">UIControl</string> |
| 550 | + <string key="superclassName">UIView</string> |
| 551 | + <object class="IBClassDescriptionSource" key="sourceIdentifier"> |
| 552 | + <string key="majorKey">IBFrameworkSource</string> |
| 553 | + <string key="minorKey">UIKit.framework/Headers/UIControl.h</string> |
| 554 | + </object> |
| 555 | + </object> |
| 556 | + <object class="IBPartialClassDescription"> |
| 557 | + <string key="className">UIImageView</string> |
| 558 | + <string key="superclassName">UIView</string> |
| 559 | + <object class="IBClassDescriptionSource" key="sourceIdentifier"> |
| 560 | + <string key="majorKey">IBFrameworkSource</string> |
| 561 | + <string key="minorKey">UIKit.framework/Headers/UIImageView.h</string> |
| 562 | + </object> |
| 563 | + </object> |
| 564 | + <object class="IBPartialClassDescription"> |
| 565 | + <string key="className">UILabel</string> |
| 566 | + <string key="superclassName">UIView</string> |
| 567 | + <object class="IBClassDescriptionSource" key="sourceIdentifier"> |
| 568 | + <string key="majorKey">IBFrameworkSource</string> |
| 569 | + <string key="minorKey">UIKit.framework/Headers/UILabel.h</string> |
| 570 | + </object> |
| 571 | + </object> |
| 572 | + <object class="IBPartialClassDescription"> |
| 573 | + <string key="className">UINavigationBar</string> |
| 574 | + <string key="superclassName">UIView</string> |
| 575 | + <object class="IBClassDescriptionSource" key="sourceIdentifier" id="307069690"> |
| 576 | + <string key="majorKey">IBFrameworkSource</string> |
| 577 | + <string key="minorKey">UIKit.framework/Headers/UINavigationBar.h</string> |
| 578 | + </object> |
| 579 | + </object> |
| 580 | + <object class="IBPartialClassDescription"> |
| 581 | + <string key="className">UINavigationItem</string> |
| 582 | + <string key="superclassName">NSObject</string> |
| 583 | + <reference key="sourceIdentifier" ref="307069690"/> |
| 584 | + </object> |
| 585 | + <object class="IBPartialClassDescription"> |
| 586 | + <string key="className">UIProgressView</string> |
| 587 | + <string key="superclassName">UIView</string> |
| 588 | + <object class="IBClassDescriptionSource" key="sourceIdentifier"> |
| 589 | + <string key="majorKey">IBFrameworkSource</string> |
| 590 | + <string key="minorKey">UIKit.framework/Headers/UIProgressView.h</string> |
| 591 | + </object> |
| 592 | + </object> |
| 593 | + <object class="IBPartialClassDescription"> |
| 594 | + <string key="className">UIResponder</string> |
| 595 | + <string key="superclassName">NSObject</string> |
| 596 | + <reference key="sourceIdentifier" ref="47070934"/> |
| 597 | + </object> |
| 598 | + <object class="IBPartialClassDescription"> |
| 599 | + <string key="className">UISearchBar</string> |
| 600 | + <string key="superclassName">UIView</string> |
| 601 | + <object class="IBClassDescriptionSource" key="sourceIdentifier"> |
| 602 | + <string key="majorKey">IBFrameworkSource</string> |
| 603 | + <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string> |
| 604 | + </object> |
| 605 | + </object> |
| 606 | + <object class="IBPartialClassDescription"> |
| 607 | + <string key="className">UISearchDisplayController</string> |
| 608 | + <string key="superclassName">NSObject</string> |
| 609 | + <object class="IBClassDescriptionSource" key="sourceIdentifier"> |
| 610 | + <string key="majorKey">IBFrameworkSource</string> |
| 611 | + <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string> |
| 612 | + </object> |
| 613 | + </object> |
| 614 | + <object class="IBPartialClassDescription"> |
| 615 | + <string key="className">UIView</string> |
| 616 | + <object class="IBClassDescriptionSource" key="sourceIdentifier"> |
| 617 | + <string key="majorKey">IBFrameworkSource</string> |
| 618 | + <string key="minorKey">UIKit.framework/Headers/UITextField.h</string> |
| 619 | + </object> |
| 620 | + </object> |
| 621 | + <object class="IBPartialClassDescription"> |
| 622 | + <string key="className">UIView</string> |
| 623 | + <string key="superclassName">UIResponder</string> |
| 624 | + <object class="IBClassDescriptionSource" key="sourceIdentifier"> |
| 625 | + <string key="majorKey">IBFrameworkSource</string> |
| 626 | + <string key="minorKey">UIKit.framework/Headers/UIView.h</string> |
| 627 | + </object> |
| 628 | + </object> |
| 629 | + <object class="IBPartialClassDescription"> |
| 630 | + <string key="className">UIViewController</string> |
| 631 | + <object class="IBClassDescriptionSource" key="sourceIdentifier"> |
| 632 | + <string key="majorKey">IBFrameworkSource</string> |
| 633 | + <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string> |
| 634 | + </object> |
| 635 | + </object> |
| 636 | + <object class="IBPartialClassDescription"> |
| 637 | + <string key="className">UIViewController</string> |
| 638 | + <object class="IBClassDescriptionSource" key="sourceIdentifier"> |
| 639 | + <string key="majorKey">IBFrameworkSource</string> |
| 640 | + <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string> |
| 641 | + </object> |
| 642 | + </object> |
| 643 | + <object class="IBPartialClassDescription"> |
| 644 | + <string key="className">UIViewController</string> |
| 645 | + <string key="superclassName">UIResponder</string> |
| 646 | + <object class="IBClassDescriptionSource" key="sourceIdentifier"> |
| 647 | + <string key="majorKey">IBFrameworkSource</string> |
| 648 | + <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string> |
| 649 | + </object> |
| 650 | + </object> |
| 651 | + </object> |
| 652 | + </object> |
| 653 | + <int key="IBDocument.localizationMode">0</int> |
| 654 | + <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults"> |
| 655 | + <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string> |
| 656 | + <integer value="768" key="NS.object.0"/> |
| 657 | + </object> |
| 658 | + <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies"> |
| 659 | + <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string> |
| 660 | + <integer value="3100" key="NS.object.0"/> |
| 661 | + </object> |
| 662 | + <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool> |
| 663 | + <string key="IBDocument.LastKnownRelativeProjectPath">photopicker.xcodeproj</string> |
| 664 | + <int key="IBDocument.defaultPropertyAccessControl">3</int> |
| 665 | + <string key="IBCocoaTouchPluginVersion">3.1</string> |
| 666 | + </data> |
| 667 | +</archive> |
Index: trunk/tools/Snap-to-Commons/home-background.png |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes on: trunk/tools/Snap-to-Commons/home-background.png |
___________________________________________________________________ |
Added: svn:mime-type |
1 | 668 | + application/octet-stream |
Index: trunk/tools/Snap-to-Commons/photopicker-Info.plist |
— | — | @@ -0,0 +1,47 @@ |
| 2 | +<?xml version="1.0" encoding="UTF-8"?> |
| 3 | +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> |
| 4 | +<plist version="1.0"> |
| 5 | +<dict> |
| 6 | + <key>UIPrerenderedIcon</key> |
| 7 | + <true/> |
| 8 | + <key>CFBundleDevelopmentRegion</key> |
| 9 | + <string>English</string> |
| 10 | + <key>CFBundleDisplayName</key> |
| 11 | + <string>yourappname</string> |
| 12 | + <key>CFBundleExecutable</key> |
| 13 | + <string>${EXECUTABLE_NAME}</string> |
| 14 | + <key>CFBundleIconFile</key> |
| 15 | + <string>icon.png</string> |
| 16 | + <key>CFBundleIdentifier</key> |
| 17 | + <string>com.yourcompanyname.${PRODUCT_NAME:rfc1034identifier}</string> |
| 18 | + <key>CFBundleInfoDictionaryVersion</key> |
| 19 | + <string>6.0</string> |
| 20 | + <key>CFBundleName</key> |
| 21 | + <string>${PRODUCT_NAME}</string> |
| 22 | + <key>CFBundlePackageType</key> |
| 23 | + <string>APPL</string> |
| 24 | + <key>CFBundleSignature</key> |
| 25 | + <string>????</string> |
| 26 | + <key>CFBundleVersion</key> |
| 27 | + <string>1.0</string> |
| 28 | + <key>LSRequiresIPhoneOS</key> |
| 29 | + <true/> |
| 30 | + <key>NSMainNibFile</key> |
| 31 | + <string>MainWindow</string> |
| 32 | + <key>CFBundleURLTypes</key> |
| 33 | + <array> |
| 34 | + <dict> |
| 35 | + <key>CFBundleURLName</key> |
| 36 | + <string>com.yourcompanyname.photopicker</string> |
| 37 | + <key>CFBundleTypeRole</key> |
| 38 | + <string>Editor</string> |
| 39 | + <key>CFBundleURLIconFile</key> |
| 40 | + <string>icon</string> |
| 41 | + <key>CFBundleURLSchemes</key> |
| 42 | + <array> |
| 43 | + <string>photopicker</string> |
| 44 | + </array> |
| 45 | + </dict> |
| 46 | + </array> |
| 47 | +</dict> |
| 48 | +</plist> |
Index: trunk/tools/Snap-to-Commons/icon.png |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes on: trunk/tools/Snap-to-Commons/icon.png |
___________________________________________________________________ |
Added: svn:mime-type |
1 | 49 | + application/octet-stream |
Index: trunk/tools/Snap-to-Commons/Classes/PhotoPickerViewController.m |
— | — | @@ -0,0 +1,388 @@ |
| 2 | +// |
| 3 | +// PhotoPickerViewController.m |
| 4 | +// |
| 5 | +// Copyright yourcompanyname 2009. All rights reserved. |
| 6 | +// |
| 7 | + |
| 8 | +#import "PhotoPickerViewController.h" |
| 9 | + |
| 10 | +#import "NSData+PhotoPicker.h" |
| 11 | +#import "PhotoPickerAppDelegate.h" |
| 12 | +#import "UIImage+PhotoPicker.h" |
| 13 | + |
| 14 | + |
| 15 | +static int kPhotoPickerViewControllerSourceIndexCamera = 0; |
| 16 | +static int kPhotoPickerViewControllerSourceIndexPhotoLibrary = 1; |
| 17 | + |
| 18 | + |
| 19 | +@interface PhotoPickerViewController () |
| 20 | + @property (nonatomic, retain) NSURLConnection *connection; |
| 21 | + @property (nonatomic, retain) NSData *imageData; |
| 22 | + @property (nonatomic, retain) NSHTTPURLResponse *response; |
| 23 | + @property (nonatomic, retain) NSMutableData *responseData; |
| 24 | + - (void)cancelApp; |
| 25 | + - (void)pickPhoto:(UIImagePickerControllerSourceType)sourceType; |
| 26 | + - (void)showPhotoSourceMenu; |
| 27 | + - (void)showPhotoSourceMenuOrPhotoSourceDirectly; |
| 28 | + - (void)uploadImage; |
| 29 | +@end |
| 30 | + |
| 31 | + |
| 32 | +@implementation PhotoPickerViewController |
| 33 | + |
| 34 | + |
| 35 | +@synthesize connection; |
| 36 | +@synthesize imageData; |
| 37 | +@synthesize response; |
| 38 | +@synthesize responseData; |
| 39 | + |
| 40 | + |
| 41 | +#pragma mark UIActionSheetDelegate Methods |
| 42 | + |
| 43 | + |
| 44 | +- (void)actionSheet:(UIActionSheet *)anActionSheet clickedButtonAtIndex:(NSInteger)buttonIndex { |
| 45 | + [anActionSheet dismissWithClickedButtonIndex:buttonIndex animated:NO]; |
| 46 | + |
| 47 | + if (buttonIndex == [anActionSheet cancelButtonIndex]) { |
| 48 | + [self cancelApp]; |
| 49 | + } |
| 50 | + |
| 51 | + if (buttonIndex == kPhotoPickerViewControllerSourceIndexCamera) { |
| 52 | + [self onCameraClicked]; |
| 53 | + } else if (buttonIndex == kPhotoPickerViewControllerSourceIndexPhotoLibrary) { |
| 54 | + [self onPhotoLibraryClicked]; |
| 55 | + } |
| 56 | +} |
| 57 | + |
| 58 | + |
| 59 | +- (void)actionSheetCancel:(UIActionSheet *)actionSheet { |
| 60 | + // Do nothing. Overriding default of simulating clicking cancel, when user hits home button. |
| 61 | +} |
| 62 | + |
| 63 | + |
| 64 | +#pragma mark UIImagePickerControllerDelegate Methods |
| 65 | + |
| 66 | + |
| 67 | +- (void)imagePickerController:(UIImagePickerController *)picker |
| 68 | + didFinishPickingMediaWithInfo:(NSDictionary *)info { |
| 69 | + UIImage *image = [info valueForKey:UIImagePickerControllerOriginalImage]; |
| 70 | + |
| 71 | + image = [image correctOrientation:image]; |
| 72 | + |
| 73 | + self.imageData = UIImageJPEGRepresentation(image, 0.85f); |
| 74 | + |
| 75 | + uploadOverlayImage.image = image; |
| 76 | + uploadProgressMessage.text = @"uploading"; |
| 77 | + uploadProgress.progress = 0.0f; |
| 78 | + |
| 79 | + uploadPhotoOverlay.frame = CGRectMake(0, 20, 320, 460); |
| 80 | + [[UIApplication sharedApplication].keyWindow addSubview:uploadPhotoOverlay]; |
| 81 | + |
| 82 | + [self uploadImage]; |
| 83 | + |
| 84 | + [picker.view removeFromSuperview]; |
| 85 | + [picker release]; |
| 86 | +} |
| 87 | + |
| 88 | + |
| 89 | +- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker { |
| 90 | + BOOL shouldCancelApp = !cameraAvailable; |
| 91 | + #ifndef SHOW_SOURCE_MENU_IF_DEFAULT_SOURCE_CANCELLED |
| 92 | + PhotoPickerAppDelegate *appDelegate = |
| 93 | + (PhotoPickerAppDelegate *) [UIApplication sharedApplication].delegate; |
| 94 | + |
| 95 | + shouldCancelApp = shouldCancelApp || appDelegate.defaultImageSource >= 0; |
| 96 | + #endif |
| 97 | + |
| 98 | + if (shouldCancelApp) { |
| 99 | + [self cancelApp]; |
| 100 | + } else { |
| 101 | + [picker.view removeFromSuperview]; |
| 102 | + [picker release]; |
| 103 | + |
| 104 | + [self showPhotoSourceMenuOrPhotoSourceDirectly]; |
| 105 | + } |
| 106 | +} |
| 107 | + |
| 108 | + |
| 109 | +#pragma mark UIViewController Methods |
| 110 | + |
| 111 | + |
| 112 | +- (void)viewDidLoad { |
| 113 | + #ifdef FORCE_ENABLE_CAMERA |
| 114 | + cameraAvailable = YES; |
| 115 | + fakeCameraAvailable = ![UIImagePickerController |
| 116 | + isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]; |
| 117 | + #else |
| 118 | + cameraAvailable = |
| 119 | + [UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]; |
| 120 | + #endif |
| 121 | + takePhotoButton.enabled = cameraAvailable; |
| 122 | +} |
| 123 | + |
| 124 | + |
| 125 | +- (void)viewDidAppear:(BOOL)animated { |
| 126 | + [self showPhotoSourceMenuOrPhotoSourceDirectly]; |
| 127 | + |
| 128 | + #ifdef SHOW_SOURCE_MENU_IF_DEFAULT_SOURCE_CANCELLED |
| 129 | + PhotoPickerAppDelegate *appDelegate = |
| 130 | + (PhotoPickerAppDelegate *) [UIApplication sharedApplication].delegate; |
| 131 | + |
| 132 | + // Clearing the default image source in case the user goes back to the menu. |
| 133 | + appDelegate.defaultImageSource = -1; |
| 134 | + #endif |
| 135 | +} |
| 136 | + |
| 137 | + |
| 138 | +#pragma mark URL Connection Event Handlers |
| 139 | + |
| 140 | + |
| 141 | +// Final event, memory is cleaned up at the end of this. |
| 142 | +- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { |
| 143 | + self.connection = nil; |
| 144 | + self.response = nil; |
| 145 | + |
| 146 | + uploadProgress.progress = 0.0f; |
| 147 | + uploadProgressMessage.text = @"An error occurred, retrying in 10 seconds..."; |
| 148 | + |
| 149 | + retryCounter = 10; |
| 150 | + [self performSelector:@selector(retry) withObject:nil afterDelay:1.0f]; |
| 151 | +} |
| 152 | + |
| 153 | + |
| 154 | +// Final event, memory is cleaned up at the end of this. |
| 155 | +- (void)connectionDidFinishLoading:(NSURLConnection *)connection { |
| 156 | + self.connection = nil; |
| 157 | + |
| 158 | + if ([self.response statusCode] == 200) { |
| 159 | + uploadProgress.progress = 1.0f; |
| 160 | + |
| 161 | + NSString *responseString = [[[NSString alloc] initWithBytes:[self.responseData bytes] |
| 162 | + length:[self.responseData length] |
| 163 | + encoding:NSUTF8StringEncoding] autorelease]; |
| 164 | + responseString = |
| 165 | + [responseString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; |
| 166 | + |
| 167 | + NSString *successContinueUrl = CONTINUE_URL; |
| 168 | + |
| 169 | + successContinueUrl = |
| 170 | + [successContinueUrl stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; |
| 171 | + |
| 172 | + BOOL hasQuestionMark = [successContinueUrl rangeOfString:@"?"].location != NSNotFound; |
| 173 | + |
| 174 | + successContinueUrl = |
| 175 | + [successContinueUrl stringByAppendingString:hasQuestionMark ? @"&" : @"?"]; |
| 176 | + successContinueUrl = [successContinueUrl stringByAppendingFormat:@"success=1&response=%@", |
| 177 | + responseString]; |
| 178 | + |
| 179 | + [[UIApplication sharedApplication] openURL:[NSURL URLWithString:successContinueUrl]]; |
| 180 | + } else { |
| 181 | + uploadProgress.progress = 0.0f; |
| 182 | + uploadProgressMessage.text = @"An error occurred, retrying in 10 seconds..."; |
| 183 | + |
| 184 | + retryCounter = 10; |
| 185 | + [self performSelector:@selector(retry) withObject:nil afterDelay:1.0f]; |
| 186 | + } |
| 187 | + |
| 188 | + self.response = nil; |
| 189 | +} |
| 190 | + |
| 191 | + |
| 192 | +- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)newData { |
| 193 | + [responseData appendData:newData]; |
| 194 | +} |
| 195 | + |
| 196 | + |
| 197 | +- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)newResponse { |
| 198 | + self.response = (NSHTTPURLResponse *) newResponse; |
| 199 | +} |
| 200 | + |
| 201 | + |
| 202 | +- (void)connection:(NSURLConnection *)connection |
| 203 | + didSendBodyData:(NSInteger)bytesWritten |
| 204 | + totalBytesWritten:(NSInteger)totalBytesWritten |
| 205 | + totalBytesExpectedToWrite:(NSInteger)totalBytesExpectedToWrite { |
| 206 | + uploadProgress.progress = (float) totalBytesWritten / totalBytesExpectedToWrite; |
| 207 | +} |
| 208 | + |
| 209 | + |
| 210 | +#pragma mark Public |
| 211 | + |
| 212 | + |
| 213 | +- (IBAction)onCameraClicked { |
| 214 | + [self pickPhoto:UIImagePickerControllerSourceTypeCamera]; |
| 215 | +} |
| 216 | + |
| 217 | + |
| 218 | +- (IBAction)onCancelUploadClicked { |
| 219 | + [self.connection cancel]; |
| 220 | + self.connection = nil; |
| 221 | + |
| 222 | + [NSObject cancelPreviousPerformRequestsWithTarget:self |
| 223 | + selector:@selector(retry) |
| 224 | + object:nil]; |
| 225 | + [NSObject cancelPreviousPerformRequestsWithTarget:self |
| 226 | + selector:@selector(uploadImage) |
| 227 | + object:nil]; |
| 228 | + |
| 229 | + [uploadPhotoOverlay removeFromSuperview]; |
| 230 | + |
| 231 | + [self showPhotoSourceMenuOrPhotoSourceDirectly]; |
| 232 | +} |
| 233 | + |
| 234 | + |
| 235 | +- (IBAction)onContinueRecommendationClicked { |
| 236 | + [self showPhotoSourceMenu]; |
| 237 | +} |
| 238 | + |
| 239 | + |
| 240 | +- (IBAction)onPhotoLibraryClicked { |
| 241 | + [self pickPhoto:UIImagePickerControllerSourceTypePhotoLibrary]; |
| 242 | +} |
| 243 | + |
| 244 | + |
| 245 | +#pragma mark Private |
| 246 | + |
| 247 | + |
| 248 | +- (void)cancelApp { |
| 249 | + NSString *cancelContinueUrl = CONTINUE_URL; |
| 250 | + |
| 251 | + cancelContinueUrl = |
| 252 | + [cancelContinueUrl stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; |
| 253 | + |
| 254 | + BOOL hasQuestionMark = [cancelContinueUrl rangeOfString:@"?"].location != NSNotFound; |
| 255 | + |
| 256 | + cancelContinueUrl = |
| 257 | + [cancelContinueUrl stringByAppendingString:hasQuestionMark ? @"&" : @"?"]; |
| 258 | + cancelContinueUrl = [cancelContinueUrl stringByAppendingString:@"success=0"]; |
| 259 | + |
| 260 | + [[UIApplication sharedApplication] openURL:[NSURL URLWithString:cancelContinueUrl]]; |
| 261 | +} |
| 262 | + |
| 263 | + |
| 264 | +- (void)pickPhoto:(UIImagePickerControllerSourceType)sourceType { |
| 265 | + PhotoPickerAppDelegate *appDelegate = |
| 266 | + (PhotoPickerAppDelegate *) [UIApplication sharedApplication].delegate; |
| 267 | + |
| 268 | + UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init]; |
| 269 | + imagePickerController.delegate = self; |
| 270 | + |
| 271 | + // If the camera is force enabled, show the library instead. |
| 272 | + #ifdef FORCE_ENABLE_CAMERA |
| 273 | + if (fakeCameraAvailable && sourceType == UIImagePickerControllerSourceTypeCamera) { |
| 274 | + sourceType = UIImagePickerControllerSourceTypePhotoLibrary; |
| 275 | + } |
| 276 | + #endif |
| 277 | + |
| 278 | + imagePickerController.sourceType = sourceType; |
| 279 | + |
| 280 | + [appDelegate.window addSubview:imagePickerController.view]; |
| 281 | +} |
| 282 | + |
| 283 | + |
| 284 | +- (void)retry { |
| 285 | + retryCounter--; |
| 286 | + |
| 287 | + if (retryCounter <= 0) { |
| 288 | + [self uploadImage]; |
| 289 | + } else { |
| 290 | + uploadProgressMessage.text = |
| 291 | + [NSString stringWithFormat:@"An error occurred, retrying in %d second%@...", |
| 292 | + retryCounter, |
| 293 | + retryCounter != 1 ? @"s" : @""]; |
| 294 | + |
| 295 | + [self performSelector:@selector(retry) withObject:nil afterDelay:1.0f]; |
| 296 | + } |
| 297 | +} |
| 298 | + |
| 299 | + |
| 300 | +- (void)showPhotoSourceMenu { |
| 301 | + if (cameraAvailable) { |
| 302 | + photoSourceActionSheet = [[UIActionSheet alloc] |
| 303 | + initWithTitle:nil |
| 304 | + delegate:self |
| 305 | + cancelButtonTitle:@"Cancel" |
| 306 | + destructiveButtonTitle:nil |
| 307 | + otherButtonTitles:@"Camera", @"Photo Library", nil]; |
| 308 | + kPhotoPickerViewControllerSourceIndexCamera = 0; |
| 309 | + kPhotoPickerViewControllerSourceIndexPhotoLibrary = 1; |
| 310 | + } else { |
| 311 | + photoSourceActionSheet = [[UIActionSheet alloc] |
| 312 | + initWithTitle:nil |
| 313 | + delegate:self |
| 314 | + cancelButtonTitle:@"Cancel" |
| 315 | + destructiveButtonTitle:nil |
| 316 | + otherButtonTitles:@"Choose Photo", nil]; |
| 317 | + kPhotoPickerViewControllerSourceIndexCamera = -99; |
| 318 | + kPhotoPickerViewControllerSourceIndexPhotoLibrary = 0; |
| 319 | + } |
| 320 | + photoSourceActionSheet.actionSheetStyle = UIBarStyleDefault; |
| 321 | + |
| 322 | + UIImage *backgroundImage = [UIImage imageNamed:@"home-background.png"]; |
| 323 | + UIView *background = [[UIImageView alloc] initWithImage:backgroundImage]; |
| 324 | + background.frame = CGRectMake(0, cameraAvailable ? -253 : -320, 320, 460); |
| 325 | + [photoSourceActionSheet insertSubview:background atIndex:0]; |
| 326 | + |
| 327 | + [photoSourceActionSheet showInView:self.view]; |
| 328 | +} |
| 329 | + |
| 330 | + |
| 331 | +- (void)showPhotoSourceMenuOrPhotoSourceDirectly { |
| 332 | + PhotoPickerAppDelegate *appDelegate = |
| 333 | + (PhotoPickerAppDelegate *) [UIApplication sharedApplication].delegate; |
| 334 | + |
| 335 | + if (!cameraAvailable || |
| 336 | + appDelegate.defaultImageSource == UIImagePickerControllerSourceTypePhotoLibrary) { |
| 337 | + [self onPhotoLibraryClicked]; |
| 338 | + } else if (appDelegate.defaultImageSource == UIImagePickerControllerSourceTypeCamera && |
| 339 | + cameraAvailable) { |
| 340 | + [self onCameraClicked]; |
| 341 | + } else { |
| 342 | + [self showPhotoSourceMenu]; |
| 343 | + } |
| 344 | +} |
| 345 | + |
| 346 | + |
| 347 | +- (void)uploadImage { |
| 348 | + uploadProgress.progress = 0.0f; |
| 349 | + uploadProgressMessage.text = @"uploading"; |
| 350 | + |
| 351 | + PhotoPickerAppDelegate *appDelegate = |
| 352 | + (PhotoPickerAppDelegate *) [UIApplication sharedApplication].delegate; |
| 353 | + |
| 354 | + NSMutableURLRequest *request = |
| 355 | + [NSMutableURLRequest requestWithURL:[NSURL URLWithString:UPLOAD_URL]]; |
| 356 | + |
| 357 | + [request setHTTPMethod:@"POST"]; |
| 358 | + |
| 359 | + NSString *boundary = @"---------------------------PhOTopiCkER-mUlTiPaRtFoRm"; |
| 360 | + NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", |
| 361 | + boundary]; |
| 362 | + [request addValue:contentType forHTTPHeaderField:@"Content-Type"]; |
| 363 | + |
| 364 | + NSMutableData *body = [NSMutableData data]; |
| 365 | + |
| 366 | + [body appendData:[NSData utf8DataWithFormat: |
| 367 | + @"--%@\r\nContent-Disposition: form-data; name=\"%@\"\r\n\r\n%@\r\n", |
| 368 | + boundary, |
| 369 | + @"context", |
| 370 | + appDelegate.postContext]]; |
| 371 | + |
| 372 | + [body appendData:[NSData utf8DataWithFormat:@"--%@\r\n", boundary]]; |
| 373 | + [body appendData:[NSData utf8DataWithFormat: |
| 374 | + @"Content-Disposition: form-data; name=\"%@\"; filename=\"%@\"\r\nContent-Type: image/jpeg\r\n\r\n", |
| 375 | + @"image_file", |
| 376 | + @"photopicker.jpg"]]; |
| 377 | + [body appendData:self.imageData]; |
| 378 | + [body appendData:[NSData utf8DataWithFormat:@"\r\n"]]; |
| 379 | + |
| 380 | + [body appendData:[NSData utf8DataWithFormat:@"--%@--\r\n", boundary]]; |
| 381 | + |
| 382 | + [request setHTTPBody:body]; |
| 383 | + |
| 384 | + self.responseData = [NSMutableData data]; |
| 385 | + self.connection = [NSURLConnection connectionWithRequest:request delegate:self]; |
| 386 | +} |
| 387 | + |
| 388 | + |
| 389 | +@end |
Index: trunk/tools/Snap-to-Commons/Classes/Configuration.m |
— | — | @@ -0,0 +1,7 @@ |
| 2 | +// |
| 3 | +// Configuration.m |
| 4 | +// |
| 5 | +// Copyright 2009 yourcompanyname. All rights reserved. |
| 6 | +// |
| 7 | + |
| 8 | +#import "Configuration.h" |
Index: trunk/tools/Snap-to-Commons/Classes/NSData+PhotoPicker.h |
— | — | @@ -0,0 +1,14 @@ |
| 2 | +// |
| 3 | +// NSData+PhotoPicker.h |
| 4 | +// |
| 5 | +// Copyright 2009 yourcompanyname. All rights reserved. |
| 6 | +// |
| 7 | + |
| 8 | +#import <UIKit/UIKit.h> |
| 9 | + |
| 10 | + |
| 11 | +@interface NSData (PhotoPicker) |
| 12 | + |
| 13 | ++ (NSData *)utf8DataWithFormat:(NSString *)format, ...; |
| 14 | + |
| 15 | +@end |
Index: trunk/tools/Snap-to-Commons/Classes/NSData+PhotoPicker.m |
— | — | @@ -0,0 +1,24 @@ |
| 2 | +// |
| 3 | +// NSData+PhotoPicker.m |
| 4 | +// |
| 5 | +// Copyright 2009 yourcompanyname. All rights reserved. |
| 6 | +// |
| 7 | + |
| 8 | +#import "NSData+PhotoPicker.h" |
| 9 | + |
| 10 | + |
| 11 | +@implementation NSData (PhotoPicker) |
| 12 | + |
| 13 | + |
| 14 | ++ (NSData *)utf8DataWithFormat:(NSString *)format, ... { |
| 15 | + va_list arguments; |
| 16 | + va_start(arguments, format); |
| 17 | + NSString *output = [[[NSString alloc] initWithFormat:format |
| 18 | + arguments:arguments] autorelease]; |
| 19 | + va_end(arguments); |
| 20 | + |
| 21 | + return [output dataUsingEncoding:NSUTF8StringEncoding]; |
| 22 | +} |
| 23 | + |
| 24 | + |
| 25 | +@end |
Index: trunk/tools/Snap-to-Commons/Classes/PhotoPickerAppDelegate.h |
— | — | @@ -0,0 +1,36 @@ |
| 2 | +// |
| 3 | +// PhotoPickerAppDelegate.h |
| 4 | +// |
| 5 | +// Copyright yourcompanyname 2009. All rights reserved. |
| 6 | +// |
| 7 | + |
| 8 | +#import <UIKit/UIKit.h> |
| 9 | + |
| 10 | +#import "Configuration.h" |
| 11 | + |
| 12 | + |
| 13 | +@class PhotoPickerViewController; |
| 14 | + |
| 15 | + |
| 16 | +@interface PhotoPickerAppDelegate : NSObject <UIApplicationDelegate> { |
| 17 | + int defaultImageSource; |
| 18 | + BOOL justInstalled; |
| 19 | + BOOL launchedAsUrlHandler; |
| 20 | + NSString *postContext; |
| 21 | + UIWindow *window; |
| 22 | + PhotoPickerViewController *viewController; |
| 23 | +} |
| 24 | + |
| 25 | +@property (nonatomic, assign) int defaultImageSource; |
| 26 | + |
| 27 | +// Checking the justInstalled property could be useful if you want to point the somewhere special |
| 28 | +// the first time they run the app. |
| 29 | +@property (nonatomic, assign) BOOL justInstalled; |
| 30 | + |
| 31 | +@property (nonatomic, assign) BOOL launchedAsUrlHandler; |
| 32 | +@property (nonatomic, retain) NSString *postContext; |
| 33 | +@property (nonatomic, retain) IBOutlet PhotoPickerViewController *viewController; |
| 34 | +@property (nonatomic, retain) IBOutlet UIWindow *window; |
| 35 | + |
| 36 | +@end |
| 37 | + |
Index: trunk/tools/Snap-to-Commons/Classes/UIImage+PhotoPicker.h |
— | — | @@ -0,0 +1,14 @@ |
| 2 | +// |
| 3 | +// UIImage+PhotoPicker.h |
| 4 | +// |
| 5 | +// Copyright 2009 yourcompanyname. All rights reserved. |
| 6 | +// |
| 7 | + |
| 8 | +#import <UIKit/UIKit.h> |
| 9 | + |
| 10 | + |
| 11 | +@interface UIImage (PhotoPicker) |
| 12 | + |
| 13 | +- (UIImage *)correctOrientation:(UIImage *)image; |
| 14 | + |
| 15 | +@end |
Index: trunk/tools/Snap-to-Commons/Classes/PhotoPickerViewController.h |
— | — | @@ -0,0 +1,35 @@ |
| 2 | +// |
| 3 | +// PhotoPickerViewController.h |
| 4 | +// |
| 5 | +// Copyright yourcompanyname 2009. All rights reserved. |
| 6 | +// |
| 7 | + |
| 8 | +#import <UIKit/UIKit.h> |
| 9 | + |
| 10 | +#import "Configuration.h" |
| 11 | + |
| 12 | + |
| 13 | +@interface PhotoPickerViewController : UIViewController <UIActionSheetDelegate, |
| 14 | + UIImagePickerControllerDelegate, |
| 15 | + UINavigationControllerDelegate> { |
| 16 | + BOOL cameraAvailable; |
| 17 | + NSURLConnection *connection; |
| 18 | + BOOL fakeCameraAvailable; |
| 19 | + NSData *imageData; |
| 20 | + UIActionSheet *photoSourceActionSheet; |
| 21 | + NSHTTPURLResponse *response; |
| 22 | + NSMutableData *responseData; |
| 23 | + int retryCounter; |
| 24 | + IBOutlet UIButton *takePhotoButton; |
| 25 | + IBOutlet UIView *uploadPhotoOverlay; |
| 26 | + IBOutlet UIImageView *uploadOverlayImage; |
| 27 | + IBOutlet UIProgressView *uploadProgress; |
| 28 | + IBOutlet UILabel *uploadProgressMessage; |
| 29 | +} |
| 30 | + |
| 31 | +- (IBAction)onCameraClicked; |
| 32 | +- (IBAction)onCancelUploadClicked; |
| 33 | +- (IBAction)onPhotoLibraryClicked; |
| 34 | + |
| 35 | +@end |
| 36 | + |
Index: trunk/tools/Snap-to-Commons/Classes/Configuration.h |
— | — | @@ -0,0 +1,11 @@ |
| 2 | +// |
| 3 | +// Configuration.h |
| 4 | +// |
| 5 | +// Copyright 2009 yourcompanyname. All rights reserved. |
| 6 | +// |
| 7 | + |
| 8 | +#define FORCE_ENABLE_CAMERA |
| 9 | +//#define SHOW_SOURCE_MENU_IF_DEFAULT_SOURCE_CANCELLED |
| 10 | + |
| 11 | +#define UPLOAD_URL @"http://www.yourcompany.com/upload/" |
| 12 | +#define CONTINUE_URL @"http://www.yourcompany.com/continue/" |
Index: trunk/tools/Snap-to-Commons/Classes/PhotoPickerAppDelegate.m |
— | — | @@ -0,0 +1,95 @@ |
| 2 | +// |
| 3 | +// PhotoPickerAppDelegate.m |
| 4 | +// |
| 5 | +// Copyright yourcompanyname 2009. All rights reserved. |
| 6 | +// |
| 7 | + |
| 8 | +#import "PhotoPickerAppDelegate.h" |
| 9 | + |
| 10 | +#import "PhotoPickerViewController.h" |
| 11 | + |
| 12 | + |
| 13 | +@interface PhotoPickerAppDelegate () |
| 14 | + - (void)checkIfJustInstalled; |
| 15 | + - (void)setupForUrl:(NSURL *)url; |
| 16 | +@end |
| 17 | + |
| 18 | + |
| 19 | +@implementation PhotoPickerAppDelegate |
| 20 | + |
| 21 | +@synthesize defaultImageSource; |
| 22 | +@synthesize justInstalled; |
| 23 | +@synthesize launchedAsUrlHandler; |
| 24 | +@synthesize postContext; |
| 25 | +@synthesize viewController; |
| 26 | +@synthesize window; |
| 27 | + |
| 28 | + |
| 29 | +- (BOOL)application:(UIApplication *)application |
| 30 | + didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { |
| 31 | + self.launchedAsUrlHandler = !!launchOptions; |
| 32 | + |
| 33 | + self.defaultImageSource = -1; |
| 34 | + self.postContext = @""; |
| 35 | + |
| 36 | + if (launchOptions) { |
| 37 | + NSURL *url = [launchOptions valueForKey:@"UIApplicationLaunchOptionsURLKey"]; |
| 38 | + [self setupForUrl:url]; |
| 39 | + } |
| 40 | + |
| 41 | + [self checkIfJustInstalled]; |
| 42 | + |
| 43 | + [window addSubview:viewController.view]; |
| 44 | + [window makeKeyAndVisible]; |
| 45 | + |
| 46 | + return YES; |
| 47 | +} |
| 48 | + |
| 49 | + |
| 50 | +- (void)dealloc { |
| 51 | + self.postContext = nil; |
| 52 | + self.viewController = nil; |
| 53 | + self.window = nil; |
| 54 | + |
| 55 | + [super dealloc]; |
| 56 | +} |
| 57 | + |
| 58 | + |
| 59 | +#pragma mark Private |
| 60 | + |
| 61 | + |
| 62 | +- (void)checkIfJustInstalled { |
| 63 | + self.justInstalled = NO; |
| 64 | + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; |
| 65 | + id testForInstallKey = [defaults valueForKey:@"installed"]; |
| 66 | + if (!testForInstallKey) { |
| 67 | + self.justInstalled = YES; |
| 68 | + [defaults setBool:YES forKey:@"installed"]; |
| 69 | + } |
| 70 | +} |
| 71 | + |
| 72 | + |
| 73 | +- (void)setupForUrl:(NSURL *)url { |
| 74 | + NSString *query = [url query]; |
| 75 | + if ([query length]) { |
| 76 | + NSArray *queryParts = [query componentsSeparatedByString:@"&"]; |
| 77 | + for (NSString *queryPart in queryParts) { |
| 78 | + NSArray *kvp = [queryPart componentsSeparatedByString:@"="]; |
| 79 | + NSString *key = [kvp objectAtIndex:0]; |
| 80 | + NSString *value = [kvp objectAtIndex:1]; |
| 81 | + |
| 82 | + if ([key isEqualToString:@"context"]) { |
| 83 | + self.postContext = value; |
| 84 | + } else if ([key isEqualToString:@"source"]) { |
| 85 | + if ([value isEqualToString:@"camera"]) { |
| 86 | + self.defaultImageSource = UIImagePickerControllerSourceTypeCamera; |
| 87 | + } else if ([value isEqualToString:@"library"]) { |
| 88 | + self.defaultImageSource = UIImagePickerControllerSourceTypePhotoLibrary; |
| 89 | + } |
| 90 | + } |
| 91 | + } |
| 92 | + } |
| 93 | +} |
| 94 | + |
| 95 | + |
| 96 | +@end |
Index: trunk/tools/Snap-to-Commons/Classes/UIImage+PhotoPicker.m |
— | — | @@ -0,0 +1,105 @@ |
| 2 | +// |
| 3 | +// UIImage+PhotoPicker.m |
| 4 | +// |
| 5 | +// Copyright 2009 yourcompanyname. All rights reserved. |
| 6 | +// |
| 7 | + |
| 8 | +#import "UIImage+PhotoPicker.h" |
| 9 | + |
| 10 | + |
| 11 | +@implementation UIImage (PhotoPicker) |
| 12 | + |
| 13 | + |
| 14 | +// Based on http://discussions.apple.com/thread.jspa?messageID=7936896&tstart=0 |
| 15 | +- (UIImage *)correctOrientation:(UIImage *)image { |
| 16 | + CGImageRef imgRef = image.CGImage; |
| 17 | + |
| 18 | + CGFloat width = CGImageGetWidth(imgRef); |
| 19 | + CGFloat height = CGImageGetHeight(imgRef); |
| 20 | + |
| 21 | + CGAffineTransform transform = CGAffineTransformIdentity; |
| 22 | + CGRect bounds = CGRectMake(0, 0, width, height); |
| 23 | + |
| 24 | + CGFloat boundHeight; |
| 25 | + UIImageOrientation orient = image.imageOrientation; |
| 26 | + switch(orient) { |
| 27 | + case UIImageOrientationUp: //EXIF = 1 |
| 28 | + transform = CGAffineTransformIdentity; |
| 29 | + break; |
| 30 | + |
| 31 | + case UIImageOrientationUpMirrored: //EXIF = 2 |
| 32 | + transform = CGAffineTransformMakeTranslation(width, 0.0); |
| 33 | + transform = CGAffineTransformScale(transform, -1.0, 1.0); |
| 34 | + break; |
| 35 | + |
| 36 | + case UIImageOrientationDown: //EXIF = 3 |
| 37 | + transform = CGAffineTransformMakeTranslation(width, height); |
| 38 | + transform = CGAffineTransformRotate(transform, M_PI); |
| 39 | + break; |
| 40 | + |
| 41 | + case UIImageOrientationDownMirrored: //EXIF = 4 |
| 42 | + transform = CGAffineTransformMakeTranslation(0.0, height); |
| 43 | + transform = CGAffineTransformScale(transform, 1.0, -1.0); |
| 44 | + break; |
| 45 | + |
| 46 | + case UIImageOrientationLeftMirrored: //EXIF = 5 |
| 47 | + boundHeight = bounds.size.height; |
| 48 | + bounds.size.height = bounds.size.width; |
| 49 | + bounds.size.width = boundHeight; |
| 50 | + transform = CGAffineTransformMakeTranslation(height, width); |
| 51 | + transform = CGAffineTransformScale(transform, -1.0, 1.0); |
| 52 | + transform = CGAffineTransformRotate(transform, 3.0 * M_PI / 2.0); |
| 53 | + break; |
| 54 | + |
| 55 | + case UIImageOrientationLeft: //EXIF = 6 |
| 56 | + boundHeight = bounds.size.height; |
| 57 | + bounds.size.height = bounds.size.width; |
| 58 | + bounds.size.width = boundHeight; |
| 59 | + transform = CGAffineTransformMakeTranslation(0.0, width); |
| 60 | + transform = CGAffineTransformRotate(transform, 3.0 * M_PI / 2.0); |
| 61 | + break; |
| 62 | + |
| 63 | + case UIImageOrientationRightMirrored: //EXIF = 7 |
| 64 | + boundHeight = bounds.size.height; |
| 65 | + bounds.size.height = bounds.size.width; |
| 66 | + bounds.size.width = boundHeight; |
| 67 | + transform = CGAffineTransformMakeScale(-1.0, 1.0); |
| 68 | + transform = CGAffineTransformRotate(transform, M_PI / 2.0); |
| 69 | + break; |
| 70 | + |
| 71 | + case UIImageOrientationRight: //EXIF = 8 |
| 72 | + boundHeight = bounds.size.height; |
| 73 | + bounds.size.height = bounds.size.width; |
| 74 | + bounds.size.width = boundHeight; |
| 75 | + transform = CGAffineTransformMakeTranslation(height, 0.0); |
| 76 | + transform = CGAffineTransformRotate(transform, M_PI / 2.0); |
| 77 | + break; |
| 78 | + |
| 79 | + default: |
| 80 | + [NSException raise:NSInternalInconsistencyException |
| 81 | + format:@"Invalid image orientation"]; |
| 82 | + } |
| 83 | + |
| 84 | + UIGraphicsBeginImageContext(bounds.size); |
| 85 | + |
| 86 | + CGContextRef context = UIGraphicsGetCurrentContext(); |
| 87 | + |
| 88 | + if (orient == UIImageOrientationRight || orient == UIImageOrientationLeft) { |
| 89 | + CGContextScaleCTM(context, -1.0f, 1.0f); |
| 90 | + CGContextTranslateCTM(context, -height, 0); |
| 91 | + } else { |
| 92 | + CGContextScaleCTM(context, 1.0f, -1.0f); |
| 93 | + CGContextTranslateCTM(context, 0, -height); |
| 94 | + } |
| 95 | + |
| 96 | + CGContextConcatCTM(context, transform); |
| 97 | + |
| 98 | + CGContextDrawImage(UIGraphicsGetCurrentContext(), CGRectMake(0, 0, width, height), imgRef); |
| 99 | + UIImage *imageCopy = UIGraphicsGetImageFromCurrentImageContext(); |
| 100 | + UIGraphicsEndImageContext(); |
| 101 | + |
| 102 | + return imageCopy; |
| 103 | +} |
| 104 | + |
| 105 | + |
| 106 | +@end |
Index: trunk/tools/Snap-to-Commons/MainWindow.xib |
— | — | @@ -0,0 +1,219 @@ |
| 2 | +<?xml version="1.0" encoding="UTF-8"?> |
| 3 | +<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10"> |
| 4 | + <data> |
| 5 | + <int key="IBDocument.SystemTarget">784</int> |
| 6 | + <string key="IBDocument.SystemVersion">10A394</string> |
| 7 | + <string key="IBDocument.InterfaceBuilderVersion">732</string> |
| 8 | + <string key="IBDocument.AppKitVersion">1027.1</string> |
| 9 | + <string key="IBDocument.HIToolboxVersion">430.00</string> |
| 10 | + <object class="NSMutableDictionary" key="IBDocument.PluginVersions"> |
| 11 | + <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
| 12 | + <string key="NS.object.0">60</string> |
| 13 | + </object> |
| 14 | + <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> |
| 15 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 16 | + <integer value="10"/> |
| 17 | + </object> |
| 18 | + <object class="NSArray" key="IBDocument.PluginDependencies"> |
| 19 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 20 | + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
| 21 | + </object> |
| 22 | + <object class="NSMutableDictionary" key="IBDocument.Metadata"> |
| 23 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 24 | + <object class="NSArray" key="dict.sortedKeys" id="0"> |
| 25 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 26 | + </object> |
| 27 | + <object class="NSMutableArray" key="dict.values"> |
| 28 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 29 | + </object> |
| 30 | + </object> |
| 31 | + <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000"> |
| 32 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 33 | + <object class="IBProxyObject" id="841351856"> |
| 34 | + <string key="IBProxiedObjectIdentifier">IBFilesOwner</string> |
| 35 | + </object> |
| 36 | + <object class="IBProxyObject" id="427554174"> |
| 37 | + <string key="IBProxiedObjectIdentifier">IBFirstResponder</string> |
| 38 | + </object> |
| 39 | + <object class="IBUICustomObject" id="664661524"/> |
| 40 | + <object class="IBUIViewController" id="943309135"> |
| 41 | + <string key="IBUINibName">PhotoPickerViewController</string> |
| 42 | + <object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/> |
| 43 | + </object> |
| 44 | + <object class="IBUIWindow" id="117978783"> |
| 45 | + <nil key="NSNextResponder"/> |
| 46 | + <int key="NSvFlags">292</int> |
| 47 | + <string key="NSFrameSize">{320, 480}</string> |
| 48 | + <object class="NSColor" key="IBUIBackgroundColor"> |
| 49 | + <int key="NSColorSpace">1</int> |
| 50 | + <bytes key="NSRGB">MSAxIDEAA</bytes> |
| 51 | + </object> |
| 52 | + <bool key="IBUIOpaque">NO</bool> |
| 53 | + <bool key="IBUIClearsContextBeforeDrawing">NO</bool> |
| 54 | + <object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/> |
| 55 | + </object> |
| 56 | + </object> |
| 57 | + <object class="IBObjectContainer" key="IBDocument.Objects"> |
| 58 | + <object class="NSMutableArray" key="connectionRecords"> |
| 59 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 60 | + <object class="IBConnectionRecord"> |
| 61 | + <object class="IBCocoaTouchOutletConnection" key="connection"> |
| 62 | + <string key="label">delegate</string> |
| 63 | + <reference key="source" ref="841351856"/> |
| 64 | + <reference key="destination" ref="664661524"/> |
| 65 | + </object> |
| 66 | + <int key="connectionID">4</int> |
| 67 | + </object> |
| 68 | + <object class="IBConnectionRecord"> |
| 69 | + <object class="IBCocoaTouchOutletConnection" key="connection"> |
| 70 | + <string key="label">viewController</string> |
| 71 | + <reference key="source" ref="664661524"/> |
| 72 | + <reference key="destination" ref="943309135"/> |
| 73 | + </object> |
| 74 | + <int key="connectionID">11</int> |
| 75 | + </object> |
| 76 | + <object class="IBConnectionRecord"> |
| 77 | + <object class="IBCocoaTouchOutletConnection" key="connection"> |
| 78 | + <string key="label">window</string> |
| 79 | + <reference key="source" ref="664661524"/> |
| 80 | + <reference key="destination" ref="117978783"/> |
| 81 | + </object> |
| 82 | + <int key="connectionID">14</int> |
| 83 | + </object> |
| 84 | + </object> |
| 85 | + <object class="IBMutableOrderedSet" key="objectRecords"> |
| 86 | + <object class="NSArray" key="orderedObjects"> |
| 87 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 88 | + <object class="IBObjectRecord"> |
| 89 | + <int key="objectID">0</int> |
| 90 | + <reference key="object" ref="0"/> |
| 91 | + <reference key="children" ref="1000"/> |
| 92 | + <nil key="parent"/> |
| 93 | + </object> |
| 94 | + <object class="IBObjectRecord"> |
| 95 | + <int key="objectID">-1</int> |
| 96 | + <reference key="object" ref="841351856"/> |
| 97 | + <reference key="parent" ref="0"/> |
| 98 | + <string key="objectName">File's Owner</string> |
| 99 | + </object> |
| 100 | + <object class="IBObjectRecord"> |
| 101 | + <int key="objectID">3</int> |
| 102 | + <reference key="object" ref="664661524"/> |
| 103 | + <reference key="parent" ref="0"/> |
| 104 | + <string key="objectName">PhotoPicker App Delegate</string> |
| 105 | + </object> |
| 106 | + <object class="IBObjectRecord"> |
| 107 | + <int key="objectID">-2</int> |
| 108 | + <reference key="object" ref="427554174"/> |
| 109 | + <reference key="parent" ref="0"/> |
| 110 | + </object> |
| 111 | + <object class="IBObjectRecord"> |
| 112 | + <int key="objectID">10</int> |
| 113 | + <reference key="object" ref="943309135"/> |
| 114 | + <reference key="parent" ref="0"/> |
| 115 | + </object> |
| 116 | + <object class="IBObjectRecord"> |
| 117 | + <int key="objectID">12</int> |
| 118 | + <reference key="object" ref="117978783"/> |
| 119 | + <reference key="parent" ref="0"/> |
| 120 | + </object> |
| 121 | + </object> |
| 122 | + </object> |
| 123 | + <object class="NSMutableDictionary" key="flattenedProperties"> |
| 124 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 125 | + <object class="NSArray" key="dict.sortedKeys"> |
| 126 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 127 | + <string>-1.CustomClassName</string> |
| 128 | + <string>-2.CustomClassName</string> |
| 129 | + <string>10.CustomClassName</string> |
| 130 | + <string>10.IBEditorWindowLastContentRect</string> |
| 131 | + <string>10.IBPluginDependency</string> |
| 132 | + <string>12.IBEditorWindowLastContentRect</string> |
| 133 | + <string>12.IBPluginDependency</string> |
| 134 | + <string>3.CustomClassName</string> |
| 135 | + <string>3.IBPluginDependency</string> |
| 136 | + </object> |
| 137 | + <object class="NSMutableArray" key="dict.values"> |
| 138 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 139 | + <string>UIApplication</string> |
| 140 | + <string>UIResponder</string> |
| 141 | + <string>PhotoPickerViewController</string> |
| 142 | + <string>{{512, 351}, {320, 480}}</string> |
| 143 | + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
| 144 | + <string>{{525, 346}, {320, 480}}</string> |
| 145 | + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
| 146 | + <string>PhotoPickerAppDelegate</string> |
| 147 | + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> |
| 148 | + </object> |
| 149 | + </object> |
| 150 | + <object class="NSMutableDictionary" key="unlocalizedProperties"> |
| 151 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 152 | + <reference key="dict.sortedKeys" ref="0"/> |
| 153 | + <object class="NSMutableArray" key="dict.values"> |
| 154 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 155 | + </object> |
| 156 | + </object> |
| 157 | + <nil key="activeLocalization"/> |
| 158 | + <object class="NSMutableDictionary" key="localizations"> |
| 159 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 160 | + <reference key="dict.sortedKeys" ref="0"/> |
| 161 | + <object class="NSMutableArray" key="dict.values"> |
| 162 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 163 | + </object> |
| 164 | + </object> |
| 165 | + <nil key="sourceID"/> |
| 166 | + <int key="maxID">14</int> |
| 167 | + </object> |
| 168 | + <object class="IBClassDescriber" key="IBDocument.Classes"> |
| 169 | + <object class="NSMutableArray" key="referencedPartialClassDescriptions"> |
| 170 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 171 | + <object class="IBPartialClassDescription"> |
| 172 | + <string key="className">PhotoPickerAppDelegate</string> |
| 173 | + <string key="superclassName">NSObject</string> |
| 174 | + <object class="NSMutableDictionary" key="outlets"> |
| 175 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 176 | + <object class="NSArray" key="dict.sortedKeys"> |
| 177 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 178 | + <string>viewController</string> |
| 179 | + <string>window</string> |
| 180 | + </object> |
| 181 | + <object class="NSMutableArray" key="dict.values"> |
| 182 | + <bool key="EncodedWithXMLCoder">YES</bool> |
| 183 | + <string>PhotoPickerViewController</string> |
| 184 | + <string>UIWindow</string> |
| 185 | + </object> |
| 186 | + </object> |
| 187 | + <object class="IBClassDescriptionSource" key="sourceIdentifier"> |
| 188 | + <string key="majorKey">IBProjectSource</string> |
| 189 | + <string key="minorKey">Classes/PhotoPickerAppDelegate.h</string> |
| 190 | + </object> |
| 191 | + </object> |
| 192 | + <object class="IBPartialClassDescription"> |
| 193 | + <string key="className">PhotoPickerAppDelegate</string> |
| 194 | + <string key="superclassName">NSObject</string> |
| 195 | + <object class="IBClassDescriptionSource" key="sourceIdentifier"> |
| 196 | + <string key="majorKey">IBUserSource</string> |
| 197 | + <string key="minorKey"/> |
| 198 | + </object> |
| 199 | + </object> |
| 200 | + <object class="IBPartialClassDescription"> |
| 201 | + <string key="className">PhotoPickerViewController</string> |
| 202 | + <string key="superclassName">UIViewController</string> |
| 203 | + <object class="IBClassDescriptionSource" key="sourceIdentifier"> |
| 204 | + <string key="majorKey">IBProjectSource</string> |
| 205 | + <string key="minorKey">Classes/PhotoPickerViewController.h</string> |
| 206 | + </object> |
| 207 | + </object> |
| 208 | + </object> |
| 209 | + </object> |
| 210 | + <int key="IBDocument.localizationMode">0</int> |
| 211 | + <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies"> |
| 212 | + <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string> |
| 213 | + <integer value="3100" key="NS.object.0"/> |
| 214 | + </object> |
| 215 | + <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool> |
| 216 | + <string key="IBDocument.LastKnownRelativeProjectPath">PhotoPicker.xcodeproj</string> |
| 217 | + <int key="IBDocument.defaultPropertyAccessControl">3</int> |
| 218 | + <string key="IBCocoaTouchPluginVersion">3.1</string> |
| 219 | + </data> |
| 220 | +</archive> |
Index: trunk/tools/Snap-to-Commons/photopicker_Prefix.pch |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +// |
| 3 | +// Prefix header for all source files of the 'photopicker' target in the 'photopicker' project |
| 4 | +// |
| 5 | + |
| 6 | +#ifdef __OBJC__ |
| 7 | + #import <Foundation/Foundation.h> |
| 8 | + #import <UIKit/UIKit.h> |
| 9 | +#endif |