Skip to content
Browse files

basic project

  • Loading branch information...
1 parent 7144101 commit 9f8835fe2754f991a947ad2983ecb8ff6a503f8f Jesse MacFadyen committed
View
22 Classes/CleavageAppDelegate.h
@@ -0,0 +1,22 @@
+//
+// CleavageAppDelegate.h
+// Cleavage
+//
+// Created by Jesse MacFadyen on 10-04-19.
+// Copyright Nitobi 2010. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@class MainViewController;
+
+@interface CleavageAppDelegate : NSObject <UIApplicationDelegate> {
+ UIWindow *window;
+ MainViewController *mainViewController;
+}
+
+@property (nonatomic, retain) IBOutlet UIWindow *window;
+@property (nonatomic, retain) MainViewController *mainViewController;
+
+@end
+
View
39 Classes/CleavageAppDelegate.m
@@ -0,0 +1,39 @@
+//
+// CleavageAppDelegate.m
+// Cleavage
+//
+// Created by Jesse MacFadyen on 10-04-19.
+// Copyright Nitobi 2010. All rights reserved.
+//
+
+#import "CleavageAppDelegate.h"
+#import "MainViewController.h"
+
+@implementation CleavageAppDelegate
+
+
+@synthesize window;
+@synthesize mainViewController;
+
+
+- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
+
+ MainViewController *aController = [[MainViewController alloc] initWithNibName:@"MainView" bundle:nil];
+ self.mainViewController = aController;
+ [aController release];
+
+ mainViewController.view.frame = [UIScreen mainScreen].applicationFrame;
+ [window addSubview:[mainViewController view]];
+ [window makeKeyAndVisible];
+
+ return YES;
+}
+
+
+- (void)dealloc {
+ [mainViewController release];
+ [window release];
+ [super dealloc];
+}
+
+@end
View
83 Classes/FlipsideViewController.h
@@ -0,0 +1,83 @@
+//
+// FlipsideViewController.h
+// Cleavage
+//
+// Created by Jesse MacFadyen on 10-04-19.
+// Copyright Nitobi 2010. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+#import <CoreLocation/CoreLocation.h>
+#import <UIKit/UINavigationController.h>
+#import "JSON/JSON.h"
+
+#import "Location.h"
+#import "Device.h"
+#import "Sound.h"
+#import "Contacts.h"
+#import "DebugConsole.h"
+#import "UIControls.h"
+
+#import "InvokedUrlCommand.h"
+
+@class InvokedUrlCommand;
+@class PhoneGapViewController;
+@class Sound;
+@class Contacts;
+@class Console;
+
+
+@protocol FlipsideViewControllerDelegate;
+
+
+@interface FlipsideViewController : UIViewController <UIApplicationDelegate,
+ UIWebViewDelegate,
+ UIAccelerometerDelegate,
+ UINavigationControllerDelegate
+
+ >
+{
+ id <FlipsideViewControllerDelegate> delegate;
+ BOOL autoRotate;
+ IBOutlet UIWebView *webView;
+ NSString *rotateOrientation;
+ NSMutableDictionary *commandObjects;
+ NSDictionary *settings;
+ UIInterfaceOrientation orientationType;
+ NSURL *invokedURL;
+}
+
+@property (nonatomic, retain) NSMutableDictionary *commandObjects;
+@property (nonatomic, retain) NSDictionary *settings;
+@property (nonatomic, retain) NSURL *invokedURL;
+
+@property (nonatomic, assign) id <FlipsideViewControllerDelegate> delegate;
+
+- (IBAction)done;
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation;
+- (void)willRotateToInterfaceOrientation: (UIInterfaceOrientation)toInterfaceOrientation duration: (NSTimeInterval)duration;
+- (void)setAutoRotate:(BOOL) shouldRotate;
+- (void)setRotateOrientation:(NSString*) orientation;
+
+// PhoneGap Stuff
+- (void)setWebView:(UIWebView*) theWebView;
+- (id) getCommandInstance:(NSString*)className;
+
+- (BOOL) execute:(InvokedUrlCommand*)command;
+- (NSString*) appURLScheme;
+
+// Static Methods
++ (NSDictionary*)getBundlePlist:(NSString *)plistName;
++ (NSString*) wwwFolderName;
++ (NSString*) pathForResource:(NSString*)resourcepath;
++ (NSString*) phoneGapVersion;
+
+@end
+
+
+
+
+@protocol FlipsideViewControllerDelegate
+- (void)flipsideViewControllerDidFinish:(FlipsideViewController *)controller;
+@end
+
View
498 Classes/FlipsideViewController.m
@@ -0,0 +1,498 @@
+//
+// FlipsideViewController.m
+// Cleavage
+//
+// Created by Jesse MacFadyen on 10-04-19.
+// Copyright Nitobi 2010. All rights reserved.
+//
+
+#import "FlipsideViewController.h"
+
+
+
+
+@implementation FlipsideViewController
+
+@synthesize delegate;
+@synthesize commandObjects;
+@synthesize settings;
+@synthesize invokedURL;
+
+-(void) awakeFromNib
+{
+ [super awakeFromNib];
+ commandObjects = [[NSMutableDictionary alloc] initWithCapacity:4];
+}
+
+- (void)viewDidLoad
+{
+ [super viewDidLoad];
+ self.view.backgroundColor = [UIColor viewFlipsideBackgroundColor];
+
+ commandObjects = [[NSMutableDictionary alloc] initWithCapacity:4];
+
+ CGRect screenBounds = [ [ UIScreen mainScreen ] bounds ];
+
+ //self.window = [ [ [ UIWindow alloc ] initWithFrame:screenBounds ] autorelease ];
+ //viewController = [ [ PhoneGapViewController alloc ] init ];
+
+ webView = [ [ UIWebView alloc ] initWithFrame:screenBounds ];
+ [webView setAutoresizingMask: (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight) ];
+ CGRect frame = webView.frame;
+ frame.origin.y += 20.0;
+ webView.frame = frame;
+ [ self setWebView:webView ];
+ [ self.view addSubview:webView ];
+
+ /*
+ * PhoneGap.plist
+ *
+ * This block of code navigates to the PhoneGap.plist in the Config Group and reads the XML into an Hash (Dictionary)
+ *
+ */
+ NSDictionary *temp = [FlipsideViewController getBundlePlist:@"PhoneGap"];
+ settings = [[NSDictionary alloc] initWithDictionary:temp];
+
+#if __IPHONE_OS_VERSION_MIN_REQUIRED < 30000
+ NSNumber *detectNumber = [settings objectForKey:@"DetectPhoneNumber"];
+#endif
+ NSNumber *useLocation = [settings objectForKey:@"UseLocation"];
+ NSNumber *_autoRotate = [settings objectForKey:@"AutoRotate"];
+ NSString *startOrientation = [settings objectForKey:@"StartOrientation"];
+ NSString *rotateOrientation = [settings objectForKey:@"RotateOrientation"];
+ //NSString *topActivityIndicator = [settings objectForKey:@"TopActivityIndicator"];
+
+ /*
+ * Fire up the GPS Service right away as it takes a moment for data to come back.
+ */
+ if ([useLocation boolValue]) {
+ [[self getCommandInstance:@"Location"] startLocation:nil withDict:nil];
+ }
+
+ webView.delegate = self;
+
+ //[window addSubview:viewController.view];
+
+ /*
+ * webView
+ * This is where we define the inital instance of the browser (WebKit) and give it a starting url/file.
+ */
+
+
+ NSURL *appURL = [NSURL fileURLWithPath:[FlipsideViewController pathForResource:@"index.html"]];
+ NSURLRequest *appReq = [NSURLRequest requestWithURL:appURL cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:20.0];
+ [webView loadRequest:appReq];
+
+#if __IPHONE_OS_VERSION_MIN_REQUIRED < 30000
+ webView.detectsPhoneNumbers = [detectNumber boolValue];
+#endif
+
+ /*
+ * imageView - is the Default loading screen, it stay up until the app and UIWebView (WebKit) has completly loaded.
+ * You can change this image by swapping out the Default.png file within the resource folder.
+ */
+ /*
+ UIImage* image = [[UIImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Default" ofType:@"png"]];
+ imageView = [[UIImageView alloc] initWithImage:image];
+ [image release];
+
+ imageView.tag = 1;
+ [window addSubview:imageView];
+ [imageView release];
+ */
+
+ /*
+ * autoRotate - If you want your phone to automatically rotate its display when the phone is rotated
+ * Value should be BOOL (YES|NO)
+ */
+ [self setAutoRotate:[_autoRotate boolValue]];
+
+ /*
+ * startOrientation - This option dictates what the starting orientation will be of the application
+ * Value should be one of: portrait, portraitUpsideDown, landscapeLeft, landscapeRight
+ */
+ orientationType = UIInterfaceOrientationPortrait;
+ if ([startOrientation isEqualToString:@"portrait"]) {
+ orientationType = UIInterfaceOrientationPortrait;
+ } else if ([startOrientation isEqualToString:@"portraitUpsideDown"]) {
+ orientationType = UIInterfaceOrientationPortraitUpsideDown;
+ } else if ([startOrientation isEqualToString:@"landscapeLeft"]) {
+ orientationType = UIInterfaceOrientationLandscapeLeft;
+ } else if ([startOrientation isEqualToString:@"landscapeRight"]) {
+ orientationType = UIInterfaceOrientationLandscapeRight;
+ }
+ [[UIApplication sharedApplication] setStatusBarOrientation:orientationType animated:NO];
+
+ /*
+ * rotateOrientation - This option is only enabled when AutoRotate is enabled. If the phone is still rotated
+ * when AutoRotate is disabled, this will control what orientations will be rotated to. If you wish your app to
+ * only use landscape or portrait orientations, change the value in PhoneGap.plist to indicate that.
+ * Value should be one of: any, portrait, landscape
+ */
+ [self setRotateOrientation:rotateOrientation];
+
+ /*
+ * The Activity View is the top spinning throbber in the status/battery bar. We init it with the default Grey Style.
+ *
+ * whiteLarge = UIActivityIndicatorViewStyleWhiteLarge
+ * white = UIActivityIndicatorViewStyleWhite
+ * gray = UIActivityIndicatorViewStyleGray
+ *
+ */
+
+ /*
+ UIActivityIndicatorViewStyle topActivityIndicatorStyle = UIActivityIndicatorViewStyleGray;
+ if ([topActivityIndicator isEqualToString:@"whiteLarge"]) {
+ topActivityIndicatorStyle = UIActivityIndicatorViewStyleWhiteLarge;
+ } else if ([topActivityIndicator isEqualToString:@"white"]) {
+ topActivityIndicatorStyle = UIActivityIndicatorViewStyleWhite;
+ } else if ([topActivityIndicator isEqualToString:@"gray"]) {
+ topActivityIndicatorStyle = UIActivityIndicatorViewStyleGray;
+ }
+ activityView = [[[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:topActivityIndicatorStyle] retain];
+ activityView.tag = 2;
+ [window addSubview:activityView];
+ [activityView startAnimating];
+
+ [window makeKeyAndVisible];
+
+ */
+
+
+}
+
+
+
+/**
+ Returns the current version of phoneGap as read from the VERSION file
+ This only touches the filesystem once and stores the result in the class variable gapVersion
+ */
+static NSString *gapVersion;
++ (NSString*) phoneGapVersion
+{
+ if (gapVersion == nil) {
+ NSBundle *mainBundle = [NSBundle mainBundle];
+ NSString *filename = [mainBundle pathForResource:@"VERSION" ofType:nil];
+ // read from the filesystem and save in the variable
+ gapVersion = [ [ NSString stringWithContentsOfFile:filename encoding:NSUTF8StringEncoding error:NULL ] retain ];
+ }
+ return gapVersion;
+}
+
+/**
+ Returns the contents of the named plist bundle, loaded as a dictionary object
+ */
++ (NSDictionary*)getBundlePlist:(NSString *)plistName
+{
+ NSString *errorDesc = nil;
+ NSPropertyListFormat format;
+ NSString *plistPath = [[NSBundle mainBundle] pathForResource:plistName ofType:@"plist"];
+ NSData *plistXML = [[NSFileManager defaultManager] contentsAtPath:plistPath];
+ NSDictionary *temp = (NSDictionary *)[NSPropertyListSerialization
+ propertyListFromData:plistXML
+ mutabilityOption:NSPropertyListMutableContainersAndLeaves
+ format:&format errorDescription:&errorDesc];
+ return temp;
+}
+
++ (NSString*) wwwFolderName
+{
+ return @"";
+}
+
++ (NSString*) pathForResource:(NSString*)resourcepath
+{
+ NSBundle * mainBundle = [NSBundle mainBundle];
+ NSMutableArray *directoryParts = [NSMutableArray arrayWithArray:[resourcepath componentsSeparatedByString:@"/"]];
+ NSString *filename = [directoryParts lastObject];
+ [directoryParts removeLastObject];
+
+ NSString *directoryStr = [NSString stringWithFormat:@"%@/%@", [self wwwFolderName], [directoryParts componentsJoinedByString:@"/"]];
+ return [mainBundle pathForResource:filename
+ ofType:@""
+ inDirectory:directoryStr];
+}
+
+/**
+ When web application loads Add stuff to the DOM, mainly the user-defined settings from the Settings.plist file, and
+ the device's data such as device ID, platform version, etc.
+ */
+- (void)webViewDidStartLoad:(UIWebView *)theWebView
+{
+
+
+ // Play any default movie
+ if(![[[UIDevice currentDevice] model] isEqualToString:@"iPhone Simulator"])
+ {
+ /*NSLog(@"Going to play default movie");
+ Movie* mov = (Movie*)[self getCommandInstance:@"Movie"];
+ NSMutableArray *args = [[[NSMutableArray alloc] init] autorelease];
+ [args addObject:@"default.mov"];
+ NSMutableDictionary* opts = [[[NSMutableDictionary alloc] init] autorelease];
+ [opts setObject:@"1" forKey:@"repeat"];
+ [mov play:args withDict:opts];*/
+ }
+
+ // Determine the URL used to invoke this application.
+ // Described in http://iphonedevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html
+
+ if ([[invokedURL scheme] isEqualToString:[self appURLScheme]]) {
+ InvokedUrlCommand* iuc = [[InvokedUrlCommand newFromUrl:invokedURL] autorelease];
+
+ NSLog(@"Arguments: %@", iuc.arguments);
+ NSString *optionsString = [[NSString alloc] initWithFormat:@"var Invoke_params=%@;", [iuc.options JSONFragment]];
+
+ [webView stringByEvaluatingJavaScriptFromString:optionsString];
+
+ [optionsString release];
+ }
+}
+
+- (NSString*) appURLScheme
+{
+ // The info.plist contains this structure:
+ //<key>CFBundleURLTypes</key>
+ // <array>
+ // <dict>
+ // <key>CFBundleURLSchemes</key>
+ // <array>
+ // <string>yourscheme</string>
+ // </array>
+ // <key>CFBundleURLName</key>
+ // <string>YourbundleURLName</string>
+ // </dict>
+ // </array>
+
+ NSString* URLScheme = nil;
+
+ NSArray *URLTypes = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleURLTypes"];
+ if(URLTypes != nil ) {
+ NSDictionary* dict = [URLTypes objectAtIndex:0];
+ if(dict != nil ) {
+ NSArray* URLSchemes = [dict objectForKey:@"CFBundleURLSchemes"];
+ if( URLSchemes != nil ) {
+ URLScheme = [URLSchemes objectAtIndex:0];
+ }
+ }
+ }
+
+ return URLScheme;
+}
+
+
+
+
+- (IBAction)done {
+ [self.delegate flipsideViewControllerDidFinish:self];
+}
+
+
+- (void)didReceiveMemoryWarning {
+ // Releases the view if it doesn't have a superview.
+ [super didReceiveMemoryWarning];
+
+ // Release any cached data, images, etc that aren't in use.
+}
+
+
+- (void)viewDidUnload {
+ // Release any retained subviews of the main view.
+ // e.g. self.myOutlet = nil;
+}
+
+/**
+ Returns an instance of a PhoneGapCommand object, based on its name. If one exists already, it is returned.
+ */
+-(id) getCommandInstance:(NSString*)className
+{
+ id obj = [commandObjects objectForKey:className];
+ if (!obj) {
+ // attempt to load the settings for this command class
+ NSDictionary* classSettings;
+ classSettings = [settings objectForKey:className];
+
+ if (classSettings)
+ obj = [[NSClassFromString(className) alloc] initWithWebView:webView settings:classSettings];
+ else
+ obj = [[NSClassFromString(className) alloc] initWithWebView:webView];
+
+ [commandObjects setObject:obj forKey:className];
+ [obj release];
+ }
+ return obj;
+}
+
+
+
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation
+{
+ if (autoRotate == YES) {
+ return YES;
+ } else {
+ if ([rotateOrientation isEqualToString:@"portrait"]) {
+ return (interfaceOrientation == UIInterfaceOrientationPortrait ||
+ interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown);
+ } else if ([rotateOrientation isEqualToString:@"landscape"]) {
+ return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
+ interfaceOrientation == UIInterfaceOrientationLandscapeRight);
+ } else {
+ return NO;
+ }
+ }
+}
+
+/**
+ Called by UIKit when the device starts to rotate to a new orientation. This fires the \c setOrientation
+ method on the Orientation object in JavaScript. Look at the JavaScript documentation for more information.
+ */
+- (void)willRotateToInterfaceOrientation: (UIInterfaceOrientation)toInterfaceOrientation duration: (NSTimeInterval)duration {
+ double i = 0;
+
+ switch (toInterfaceOrientation){
+ case UIInterfaceOrientationPortrait:
+ i = 0;
+ break;
+ case UIInterfaceOrientationPortraitUpsideDown:
+ i = 180;
+ break;
+ case UIInterfaceOrientationLandscapeLeft:
+ i = 90;
+ break;
+ case UIInterfaceOrientationLandscapeRight:
+ i = -90;
+ break;
+ }
+ [webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"navigator.orientation.setOrientation(%f);", i]];
+}
+
+- (void) setAutoRotate:(BOOL) shouldRotate {
+ autoRotate = shouldRotate;
+}
+
+- (void) setRotateOrientation:(NSString*) orientation {
+ rotateOrientation = orientation;
+}
+
+- (void) setWebView:(UIWebView*) theWebView {
+ webView = theWebView;
+}
+
+/**
+ Called when the webview finishes loading. This stops the activity view and closes the imageview
+ */
+- (void)webViewDidFinishLoad:(UIWebView *)theWebView {
+ /*
+ * Hide the Top Activity THROBER in the Battery Bar
+ */
+
+ Device* pDevice = [self getCommandInstance:@"Device"];
+ NSDictionary *deviceProperties = [pDevice deviceProperties];
+ NSMutableString *result = [[NSMutableString alloc] initWithFormat:@"DeviceInfo = %@;", [deviceProperties JSONFragment]];
+
+ /* Settings.plist
+ * Read the optional Settings.plist file and push these user-defined settings down into the web application.
+ * This can be useful for supplying build-time configuration variables down to the app to change its behaviour,
+ * such as specifying Full / Lite version, or localization (English vs German, for instance).
+ */
+
+ NSDictionary *temp = [FlipsideViewController getBundlePlist:@"Settings"];
+ if ([temp respondsToSelector:@selector(JSONFragment)]) {
+ [result appendFormat:@"\nwindow.Settings = %@;", [temp JSONFragment]];
+ }
+
+ NSLog(@"Device initialization: %@", result);
+ [theWebView stringByEvaluatingJavaScriptFromString:result];
+ [result release];
+
+ [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
+ //activityView.hidden = YES;
+
+
+ //imageView.hidden = YES;
+ //[window bringSubviewToFront:viewController.view];
+
+ webView = theWebView;
+}
+
+/**
+ * Start Loading Request
+ * This is where most of the magic happens... We take the request(s) and process the response.
+ * From here we can re direct links and other protocalls to different internal methods.
+ *
+ */
+- (BOOL)webView:(UIWebView *)theWebView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
+{
+ NSURL *url = [request URL];
+
+ NSLog(@"webView request to load :: %@",url);
+ /*
+ * Get Command and Options From URL
+ * We are looking for URLS that match gap://<Class>.<command>/[<arguments>][?<dictionary>]
+ * We have to strip off the leading slash for the options.
+ */
+ if ([[url scheme] isEqualToString:@"gap"]) {
+
+ InvokedUrlCommand* iuc = [[InvokedUrlCommand newFromUrl:url] autorelease];
+
+ // Tell the JS code that we've gotten this command, and we're ready for another
+ [theWebView stringByEvaluatingJavaScriptFromString:@"PhoneGap.queue.ready = true;"];
+
+ // Check to see if we are provided a class:method style command.
+ [self execute:iuc];
+
+ return NO;
+ }
+
+ /*
+ * If a URL is being loaded that's a local file URL, just load it internally
+ */
+ else if ([url isFileURL])
+ {
+ //NSLog(@"File URL %@", [url description]);
+ return YES;
+ }
+
+ /*
+ * We don't have a PhoneGap or local file request, load it in the main Safari browser.
+ */
+ else
+ {
+ //NSLog(@"Unknown URL %@", [url description]);
+ [[UIApplication sharedApplication] openURL:url];
+ return NO;
+ }
+
+ return YES;
+}
+
+- (BOOL) execute:(InvokedUrlCommand*)command
+{
+ if (command.className == nil || command.methodName == nil) {
+ return NO;
+ }
+
+ // Fetch an instance of this class
+ PhoneGapCommand* obj = [self getCommandInstance:command.className];
+
+ // construct the fill method name to ammend the second argument.
+ NSString* fullMethodName = [[NSString alloc] initWithFormat:@"%@:withDict:", command.methodName];
+ if ([obj respondsToSelector:NSSelectorFromString(fullMethodName)]) {
+ [obj performSelector:NSSelectorFromString(fullMethodName) withObject:command.arguments withObject:command.options];
+ }
+ else {
+ // There's no method to call, so throw an error.
+ NSLog(@"Class method '%@' not defined in class '%@'", fullMethodName, command.className);
+ [NSException raise:NSInternalInconsistencyException format:@"Class method '%@' not defined against class '%@'.", fullMethodName, command.className];
+ }
+ [fullMethodName release];
+
+ return YES;
+}
+
+
+- (void)dealloc {
+ [super dealloc];
+}
+
+
+@end
View
16 Classes/MainViewController.h
@@ -0,0 +1,16 @@
+//
+// MainViewController.h
+// Cleavage
+//
+// Created by Jesse MacFadyen on 10-04-19.
+// Copyright Nitobi 2010. All rights reserved.
+//
+
+#import "FlipsideViewController.h"
+
+@interface MainViewController : UIViewController <FlipsideViewControllerDelegate> {
+}
+
+- (IBAction)showInfo;
+
+@end
View
77 Classes/MainViewController.m
@@ -0,0 +1,77 @@
+//
+// MainViewController.m
+// Cleavage
+//
+// Created by Jesse MacFadyen on 10-04-19.
+// Copyright Nitobi 2010. All rights reserved.
+//
+
+#import "MainViewController.h"
+
+
+@implementation MainViewController
+
+
+- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
+ if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) {
+ // Custom initialization
+ }
+ return self;
+}
+
+
+/*
+// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
+- (void)viewDidLoad {
+ [super viewDidLoad];
+}
+*/
+
+
+- (void)flipsideViewControllerDidFinish:(FlipsideViewController *)controller {
+
+ [self dismissModalViewControllerAnimated:YES];
+}
+
+
+- (IBAction)showInfo {
+
+ FlipsideViewController *controller = [[FlipsideViewController alloc] initWithNibName:@"FlipsideView" bundle:nil];
+ controller.delegate = self;
+
+ controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
+ [self presentModalViewController:controller animated:YES];
+
+ [controller release];
+}
+
+
+- (void)didReceiveMemoryWarning {
+ // Releases the view if it doesn't have a superview.
+ [super didReceiveMemoryWarning];
+
+ // Release any cached data, images, etc. that aren't in use.
+}
+
+
+- (void)viewDidUnload {
+ // Release any retained subviews of the main view.
+ // e.g. self.myOutlet = nil;
+}
+
+
+/*
+// Override to allow orientations other than the default portrait orientation.
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
+ // Return YES for supported orientations.
+ return (interfaceOrientation == UIInterfaceOrientationPortrait);
+}
+*/
+
+
+- (void)dealloc {
+ [super dealloc];
+}
+
+
+@end
View
30 Cleavage-Info.plist
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleDisplayName</key>
+ <string>${PRODUCT_NAME}</string>
+ <key>CFBundleExecutable</key>
+ <string>${EXECUTABLE_NAME}</string>
+ <key>CFBundleIconFile</key>
+ <string></string>
+ <key>CFBundleIdentifier</key>
+ <string>com.yourcompany.${PRODUCT_NAME:rfc1034identifier}</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>${PRODUCT_NAME}</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>1.0</string>
+ <key>LSRequiresIPhoneOS</key>
+ <true/>
+ <key>NSMainNibFile</key>
+ <string>MainWindow</string>
+</dict>
+</plist>
View
1,418 Cleavage.xcodeproj/jesse.mode1v3
@@ -0,0 +1,1418 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ActivePerspectiveName</key>
+ <string>Project</string>
+ <key>AllowedModules</key>
+ <array>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Name</key>
+ <string>Groups and Files Outline View</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Name</key>
+ <string>Editor</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCTaskListModule</string>
+ <key>Name</key>
+ <string>Task List</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ <key>Name</key>
+ <string>File and Smart Group Detail Viewer</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXBuildResultsModule</string>
+ <key>Name</key>
+ <string>Detailed Build Results Viewer</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXProjectFindModule</string>
+ <key>Name</key>
+ <string>Project Batch Find Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCProjectFormatConflictsModule</string>
+ <key>Name</key>
+ <string>Project Format Conflicts List</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXBookmarksModule</string>
+ <key>Name</key>
+ <string>Bookmarks Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXClassBrowserModule</string>
+ <key>Name</key>
+ <string>Class Browser</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXCVSModule</string>
+ <key>Name</key>
+ <string>Source Code Control Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXDebugBreakpointsModule</string>
+ <key>Name</key>
+ <string>Debug Breakpoints Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCDockableInspector</string>
+ <key>Name</key>
+ <string>Inspector</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXOpenQuicklyModule</string>
+ <key>Name</key>
+ <string>Open Quickly Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXDebugSessionModule</string>
+ <key>Name</key>
+ <string>Debugger</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXDebugCLIModule</string>
+ <key>Name</key>
+ <string>Debug Console</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCSnapshotModule</string>
+ <key>Name</key>
+ <string>Snapshots Tool</string>
+ </dict>
+ </array>
+ <key>BundlePath</key>
+ <string>/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources</string>
+ <key>Description</key>
+ <string>DefaultDescriptionKey</string>
+ <key>DockingSystemVisible</key>
+ <false/>
+ <key>Extension</key>
+ <string>mode1v3</string>
+ <key>FavBarConfig</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>88D46CE0117D295D0012D3D7</string>
+ <key>XCBarModuleItemNames</key>
+ <dict/>
+ <key>XCBarModuleItems</key>
+ <array/>
+ </dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>com.apple.perspectives.project.mode1v3</string>
+ <key>MajorVersion</key>
+ <integer>33</integer>
+ <key>MinorVersion</key>
+ <integer>0</integer>
+ <key>Name</key>
+ <string>Default</string>
+ <key>Notifications</key>
+ <array/>
+ <key>OpenEditors</key>
+ <array/>
+ <key>PerspectiveWidths</key>
+ <array>
+ <integer>1389</integer>
+ <integer>1389</integer>
+ </array>
+ <key>Perspectives</key>
+ <array>
+ <dict>
+ <key>ChosenToolbarItems</key>
+ <array>
+ <string>active-combo-popup</string>
+ <string>action</string>
+ <string>NSToolbarFlexibleSpaceItem</string>
+ <string>debugger-enable-breakpoints</string>
+ <string>build-and-go</string>
+ <string>com.apple.ide.PBXToolbarStopButton</string>
+ <string>get-info</string>
+ <string>NSToolbarFlexibleSpaceItem</string>
+ <string>com.apple.pbx.toolbar.searchfield</string>
+ </array>
+ <key>ControllerClassBaseName</key>
+ <string></string>
+ <key>IconName</key>
+ <string>WindowOfProjectWithEditor</string>
+ <key>Identifier</key>
+ <string>perspective.project</string>
+ <key>IsVertical</key>
+ <false/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXBottomSmartGroupGIDs</key>
+ <array>
+ <string>1C37FBAC04509CD000000102</string>
+ <string>1C37FAAC04509CD000000102</string>
+ <string>1C37FABC05509CD000000102</string>
+ <string>1C37FABC05539CD112110102</string>
+ <string>E2644B35053B69B200211256</string>
+ <string>1C37FABC04509CD000100104</string>
+ <string>1CC0EA4004350EF90044410B</string>
+ <string>1CC0EA4004350EF90041110B</string>
+ </array>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Files</string>
+ <key>PBXProjectStructureProvided</key>
+ <string>yes</string>
+ <key>PBXSmartGroupTreeModuleColumnData</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+ <array>
+ <real>239</real>
+ </array>
+ <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+ <array>
+ <string>MainColumn</string>
+ </array>
+ </dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+ <array>
+ <string>29B97314FDCFA39411CA2CEA</string>
+ <string>88D46E01117D39270012D3D7</string>
+ <string>289233A00DB2D0730083E9F9</string>
+ <string>281C6CD70DB2D82200F60ACC</string>
+ <string>080E96DDFE201D6D7F000001</string>
+ <string>1C37FBAC04509CD000000102</string>
+ <string>88D4723B117E28AE0012D3D7</string>
+ <string>88D4735D117E36370012D3D7</string>
+ <string>1C37FABC05509CD000000102</string>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+ <array>
+ <array>
+ <integer>30</integer>
+ <integer>28</integer>
+ <integer>26</integer>
+ <integer>25</integer>
+ </array>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+ <string>{{0, 1}, {239, 764}}</string>
+ </dict>
+ <key>PBXTopSmartGroupGIDs</key>
+ <array/>
+ <key>XCIncludePerspectivesSwitch</key>
+ <true/>
+ <key>XCSharingToken</key>
+ <string>com.apple.Xcode.GFSharingToken</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {256, 782}}</string>
+ <key>GroupTreeTableConfiguration</key>
+ <array>
+ <string>MainColumn</string>
+ <real>239</real>
+ </array>
+ <key>RubberWindowFrame</key>
+ <string>57 55 1389 823 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Proportion</key>
+ <string>256pt</string>
+ </dict>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <true/>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B20306471E060097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>FlipsideViewController.m</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B20406471E060097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>FlipsideViewController.m</string>
+ <key>_historyCapacity</key>
+ <integer>0</integer>
+ <key>bookmark</key>
+ <string>88D47549117E5EA10012D3D7</string>
+ <key>history</key>
+ <array>
+ <string>88D46FE9117D92450012D3D7</string>
+ <string>88D46FEB117D92450012D3D7</string>
+ <string>88D47121117DA0810012D3D7</string>
+ <string>88D47289117E2BA30012D3D7</string>
+ <string>88D47294117E2C110012D3D7</string>
+ <string>88D47295117E2C110012D3D7</string>
+ <string>88D47369117E37000012D3D7</string>
+ <string>88D4736A117E37000012D3D7</string>
+ </array>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {1128, 717}}</string>
+ <key>RubberWindowFrame</key>
+ <string>57 55 1389 823 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>717pt</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B20506471E060097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Detail</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 722}, {1128, 60}}</string>
+ <key>RubberWindowFrame</key>
+ <string>57 55 1389 823 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ <key>Proportion</key>
+ <string>60pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>1128pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Project</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCModuleDock</string>
+ <string>PBXSmartGroupTreeModule</string>
+ <string>XCModuleDock</string>
+ <string>PBXNavigatorGroup</string>
+ <string>XCDetailModule</string>
+ </array>
+ <key>TableOfContents</key>
+ <array>
+ <string>88D4724F117E299B0012D3D7</string>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <string>88D47250117E299B0012D3D7</string>
+ <string>1CE0B20306471E060097A5F4</string>
+ <string>1CE0B20506471E060097A5F4</string>
+ </array>
+ <key>ToolbarConfigUserDefaultsMinorVersion</key>
+ <string>2</string>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.defaultV3</string>
+ </dict>
+ <dict>
+ <key>ChosenToolbarItems</key>
+ <array>
+ <string>active-combo-popup</string>
+ <string>debugger-enable-breakpoints</string>
+ <string>build-and-go</string>
+ <string>com.apple.ide.PBXToolbarStopButton</string>
+ <string>NSToolbarFlexibleSpaceItem</string>
+ <string>get-info</string>
+ </array>
+ <key>ControllerClassBaseName</key>
+ <string></string>
+ <key>IconName</key>
+ <string>WindowOfProject</string>
+ <key>Identifier</key>
+ <string>perspective.morph</string>
+ <key>IsVertical</key>
+ <false/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXBottomSmartGroupGIDs</key>
+ <array>
+ <string>1C37FBAC04509CD000000102</string>
+ <string>1C37FAAC04509CD000000102</string>
+ <string>1C37FABC05509CD000000102</string>
+ <string>1C37FABC05539CD112110102</string>
+ <string>E2644B35053B69B200211256</string>
+ <string>1C37FABC04509CD000100104</string>
+ <string>1CC0EA4004350EF90044410B</string>
+ <string>1CC0EA4004350EF90041110B</string>
+ </array>
+ <key>PBXProjectModuleGUID</key>
+ <string>11E0B1FE06471DED0097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Files</string>
+ <key>PBXProjectStructureProvided</key>
+ <string>yes</string>
+ <key>PBXSmartGroupTreeModuleColumnData</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+ <array>
+ <real>1000</real>
+ </array>
+ <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+ <array>
+ <string>MainColumn</string>
+ </array>
+ </dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+ <array>
+ <string>29B97314FDCFA39411CA2CEA</string>
+ <string>88D46EE1117D4BFE0012D3D7</string>
+ <string>080E96DDFE201D6D7F000001</string>
+ <string>29B97323FDCFA39411CA2CEA</string>
+ <string>1C37FBAC04509CD000000102</string>
+ <string>1C37FABC05509CD000000102</string>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+ <array>
+ <array>
+ <integer>19</integer>
+ <integer>11</integer>
+ <integer>0</integer>
+ </array>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+ <string>{{0, 0}, {1372, 764}}</string>
+ </dict>
+ <key>PBXTopSmartGroupGIDs</key>
+ <array/>
+ <key>XCIncludePerspectivesSwitch</key>
+ <true/>
+ <key>XCSharingToken</key>
+ <string>com.apple.Xcode.GFSharingToken</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {1389, 782}}</string>
+ <key>GroupTreeTableConfiguration</key>
+ <array>
+ <string>MainColumn</string>
+ <real>1000</real>
+ </array>
+ </dict>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Proportion</key>
+ <string>1389pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Morph</string>
+ <key>PreferredWidth</key>
+ <integer>300</integer>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCModuleDock</string>
+ <string>PBXSmartGroupTreeModule</string>
+ </array>
+ <key>TableOfContents</key>
+ <array>
+ <string>88D46FEF117D92450012D3D7</string>
+ <string>11E0B1FE06471DED0097A5F4</string>
+ </array>
+ <key>ToolbarConfigUserDefaultsMinorVersion</key>
+ <string>2</string>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.default.shortV3</string>
+ </dict>
+ </array>
+ <key>PerspectivesBarVisible</key>
+ <false/>
+ <key>ShelfIsVisible</key>
+ <false/>
+ <key>SourceDescription</key>
+ <string>file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec'</string>
+ <key>StatusbarIsVisible</key>
+ <true/>
+ <key>TimeStamp</key>
+ <real>0.0</real>
+ <key>ToolbarConfigUserDefaultsMinorVersion</key>
+ <string>2</string>
+ <key>ToolbarDisplayMode</key>
+ <integer>1</integer>
+ <key>ToolbarIsVisible</key>
+ <true/>
+ <key>ToolbarSizeMode</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Perspectives</string>
+ <key>UpdateMessage</key>
+ <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>
+ <key>WindowJustification</key>
+ <integer>5</integer>
+ <key>WindowOrderList</key>
+ <array>
+ <string>88D4728F117E2BA30012D3D7</string>
+ <string>88D4725A117E299B0012D3D7</string>
+ <string>1CD10A99069EF8BA00B06720</string>
+ <string>88D46CE1117D295D0012D3D7</string>
+ <string>1C78EAAD065D492600B07095</string>
+ </array>
+ <key>WindowString</key>
+ <string>57 55 1389 823 0 0 1440 878 </string>
+ <key>WindowToolsV3</key>
+ <array>
+ <dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>windowTool.build</string>
+ <key>IsVertical</key>
+ <true/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528F0623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Location.m</string>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {1388, 467}}</string>
+ <key>RubberWindowFrame</key>
+ <string>52 56 1388 822 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>467pt</string>
+ </dict>
+ <dict>
+ <key>BecomeActive</key>
+ <true/>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>XCMainBuildResultsModuleGUID</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Build Results</string>
+ <key>XCBuildResultsTrigger_Collapse</key>
+ <integer>1021</integer>
+ <key>XCBuildResultsTrigger_Open</key>
+ <integer>1011</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 472}, {1388, 309}}</string>
+ <key>RubberWindowFrame</key>
+ <string>52 56 1388 822 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXBuildResultsModule</string>
+ <key>Proportion</key>
+ <string>309pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>781pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Build Results</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXBuildResultsModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <true/>
+ <key>TableOfContents</key>
+ <array>
+ <string>88D46CE1117D295D0012D3D7</string>
+ <string>88D47251117E299B0012D3D7</string>
+ <string>1CD0528F0623707200166675</string>
+ <string>XCMainBuildResultsModuleGUID</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.buildV3</string>
+ <key>WindowContentMinSize</key>
+ <string>486 300</string>
+ <key>WindowString</key>
+ <string>52 56 1388 822 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>88D46CE1117D295D0012D3D7</string>
+ <key>WindowToolIsVisible</key>
+ <false/>
+ </dict>
+ <dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>windowTool.debugger</string>
+ <key>IsVertical</key>
+ <true/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>Debugger</key>
+ <dict>
+ <key>HorizontalSplitView</key>
+ <dict>
+ <key>_collapsingFrameDimension</key>
+ <real>0.0</real>
+ <key>_indexOfCollapsedView</key>
+ <integer>0</integer>
+ <key>_percentageOfCollapsedView</key>
+ <real>0.0</real>
+ <key>isCollapsed</key>
+ <string>yes</string>
+ <key>sizes</key>
+ <array>
+ <string>{{0, 0}, {438, 268}}</string>
+ <string>{{438, 0}, {523, 268}}</string>
+ </array>
+ </dict>
+ <key>VerticalSplitView</key>
+ <dict>
+ <key>_collapsingFrameDimension</key>
+ <real>0.0</real>
+ <key>_indexOfCollapsedView</key>
+ <integer>0</integer>
+ <key>_percentageOfCollapsedView</key>
+ <real>0.0</real>
+ <key>isCollapsed</key>
+ <string>yes</string>
+ <key>sizes</key>
+ <array>
+ <string>{{0, 0}, {961, 268}}</string>
+ <string>{{0, 268}, {961, 258}}</string>
+ </array>
+ </dict>
+ </dict>
+ <key>LauncherConfigVersion</key>
+ <string>8</string>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C162984064C10D400B95A72</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Debug - GLUTExamples (Underwater)</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>DebugConsoleVisible</key>
+ <string>None</string>
+ <key>DebugConsoleWindowFrame</key>
+ <string>{{200, 200}, {500, 300}}</string>
+ <key>DebugSTDIOWindowFrame</key>
+ <string>{{200, 200}, {500, 300}}</string>
+ <key>Frame</key>
+ <string>{{0, 0}, {961, 526}}</string>
+ <key>PBXDebugSessionStackFrameViewKey</key>
+ <dict>
+ <key>DebugVariablesTableConfiguration</key>
+ <array>
+ <string>Name</string>
+ <real>120</real>
+ <string>Value</string>
+ <real>85</real>
+ <string>Summary</string>
+ <real>293</real>
+ </array>
+ <key>Frame</key>
+ <string>{{438, 0}, {523, 268}}</string>
+ <key>RubberWindowFrame</key>
+ <string>1584 -102 961 567 1440 -180 1920 1080 </string>
+ </dict>
+ <key>RubberWindowFrame</key>
+ <string>1584 -102 961 567 1440 -180 1920 1080 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXDebugSessionModule</string>
+ <key>Proportion</key>
+ <string>526pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>526pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debugger</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXDebugSessionModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <true/>
+ <key>TableOfContents</key>
+ <array>
+ <string>1CD10A99069EF8BA00B06720</string>
+ <string>88D47252117E299B0012D3D7</string>
+ <string>1C162984064C10D400B95A72</string>
+ <string>88D47253117E299B0012D3D7</string>
+ <string>88D47254117E299B0012D3D7</string>
+ <string>88D47255117E299B0012D3D7</string>
+ <string>88D47256117E299B0012D3D7</string>
+ <string>88D47257117E299B0012D3D7</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.debugV3</string>
+ <key>WindowString</key>
+ <string>1584 -102 961 567 1440 -180 1920 1080 </string>
+ <key>WindowToolGUID</key>
+ <string>1CD10A99069EF8BA00B06720</string>
+ <key>WindowToolIsVisible</key>
+ <false/>
+ </dict>
+ <dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>windowTool.find</string>
+ <key>IsVertical</key>
+ <true/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CDD528C0622207200134675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string></string>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {781, 212}}</string>
+ <key>RubberWindowFrame</key>
+ <string>72 385 781 470 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>781pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>212pt</string>
+ </dict>
+ <dict>
+ <key>BecomeActive</key>
+ <true/>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528E0623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Project Find</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 217}, {781, 212}}</string>
+ <key>RubberWindowFrame</key>
+ <string>72 385 781 470 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXProjectFindModule</string>
+ <key>Proportion</key>
+ <string>212pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>429pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Project Find</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXProjectFindModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <true/>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C530D57069F1CE1000CFCEE</string>
+ <string>88D46EDF117D4BAC0012D3D7</string>
+ <string>88D46EE0117D4BAC0012D3D7</string>
+ <string>1CDD528C0622207200134675</string>
+ <string>1CD0528E0623707200166675</string>
+ </array>
+ <key>WindowString</key>
+ <string>72 385 781 470 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1C530D57069F1CE1000CFCEE</string>
+ <key>WindowToolIsVisible</key>
+ <false/>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>MENUSEPARATOR</string>
+ </dict>
+ <dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>windowTool.debuggerConsole</string>
+ <key>IsVertical</key>
+ <true/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <true/>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAAC065D492600B07095</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Debugger Console</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {723, 373}}</string>
+ <key>RubberWindowFrame</key>
+ <string>113 377 723 414 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXDebugCLIModule</string>
+ <key>Proportion</key>
+ <string>373pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>373pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debugger Console</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXDebugCLIModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <true/>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C78EAAD065D492600B07095</string>
+ <string>88D47258117E299B0012D3D7</string>
+ <string>1C78EAAC065D492600B07095</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.consoleV3</string>
+ <key>WindowString</key>
+ <string>113 377 723 414 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1C78EAAD065D492600B07095</string>
+ <key>WindowToolIsVisible</key>
+ <true/>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.snapshots</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>XCSnapshotModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Snapshots</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCSnapshotModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <string>Yes</string>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.snapshots</string>
+ <key>WindowString</key>
+ <string>315 824 300 550 0 0 1440 878 </string>
+ <key>WindowToolIsVisible</key>
+ <string>Yes</string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.scm</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAB2065D492600B07095</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>&lt;No Editor&gt;</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAB3065D492600B07095</string>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <integer>1</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {452, 0}}</string>
+ <key>RubberWindowFrame</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>0pt</string>
+ </dict>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD052920623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>SCM</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>ConsoleFrame</key>
+ <string>{{0, 259}, {452, 0}}</string>
+ <key>Frame</key>
+ <string>{{0, 7}, {452, 259}}</string>
+ <key>RubberWindowFrame</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ <key>TableConfiguration</key>
+ <array>
+ <string>Status</string>
+ <real>30</real>
+ <string>FileName</string>
+ <real>199</real>
+ <string>Path</string>
+ <real>197.0950012207031</real>
+ </array>
+ <key>TableFrame</key>
+ <string>{{0, 0}, {452, 250}}</string>
+ </dict>
+ <key>Module</key>
+ <string>PBXCVSModule</string>
+ <key>Proportion</key>
+ <string>262pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>266pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>SCM</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXCVSModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C78EAB4065D492600B07095</string>
+ <string>1C78EAB5065D492600B07095</string>
+ <string>1C78EAB2065D492600B07095</string>
+ <string>1CD052920623707200166675</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.scm</string>
+ <key>WindowString</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.breakpoints</string>
+ <key>IsVertical</key>
+ <integer>0</integer>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXBottomSmartGroupGIDs</key>
+ <array>
+ <string>1C77FABC04509CD000000102</string>
+ </array>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Files</string>
+ <key>PBXProjectStructureProvided</key>
+ <string>no</string>
+ <key>PBXSmartGroupTreeModuleColumnData</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+ <array>
+ <real>168</real>
+ </array>
+ <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+ <array>
+ <string>MainColumn</string>
+ </array>
+ </dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+ <array>
+ <string>1C77FABC04509CD000000102</string>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+ <array>
+ <array>
+ <integer>0</integer>
+ </array>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+ <string>{{0, 0}, {168, 350}}</string>
+ </dict>
+ <key>PBXTopSmartGroupGIDs</key>
+ <array/>
+ <key>XCIncludePerspectivesSwitch</key>
+ <integer>0</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {185, 368}}</string>
+ <key>GroupTreeTableConfiguration</key>
+ <array>
+ <string>MainColumn</string>
+ <real>168</real>
+ </array>
+ <key>RubberWindowFrame</key>
+ <string>315 424 744 409 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Proportion</key>
+ <string>185pt</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA1AED706398EBD00589147</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Detail</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{190, 0}, {554, 368}}</string>
+ <key>RubberWindowFrame</key>
+ <string>315 424 744 409 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ <key>Proportion</key>
+ <string>554pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>368pt</string>
+ </dict>
+ </array>
+ <key>MajorVersion</key>
+ <integer>3</integer>
+ <key>MinorVersion</key>
+ <integer>0</integer>
+ <key>Name</key>
+ <string>Breakpoints</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXSmartGroupTreeModule</string>
+ <string>XCDetailModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1CDDB66807F98D9800BB5817</string>
+ <string>1CDDB66907F98D9800BB5817</string>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <string>1CA1AED706398EBD00589147</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.breakpointsV3</string>
+ <key>WindowString</key>
+ <string>315 424 744 409 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1CDDB66807F98D9800BB5817</string>
+ <key>WindowToolIsVisible</key>
+ <integer>1</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.debugAnimator</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debug Visualizer</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXNavigatorGroup</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.debugAnimatorV3</string>
+ <key>WindowString</key>
+ <string>100 100 700 500 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.bookmarks</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>PBXBookmarksModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Bookmarks</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXBookmarksModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>0</integer>
+ <key>WindowString</key>
+ <string>538 42 401 187 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.projectFormatConflicts</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>XCProjectFormatConflictsModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Project Format Conflicts</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCProjectFormatConflictsModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>0</integer>
+ <key>WindowContentMinSize</key>
+ <string>450 300</string>
+ <key>WindowString</key>
+ <string>50 850 472 307 0 0 1440 877</string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.classBrowser</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>OptionsSetName</key>
+ <string>Hierarchy, all classes</string>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA6456E063B45B4001379D8</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Class Browser - NSObject</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>ClassesFrame</key>
+ <string>{{0, 0}, {374, 96}}</string>
+ <key>ClassesTreeTableConfiguration</key>
+ <array>
+ <string>PBXClassNameColumnIdentifier</string>
+ <real>208</real>
+ <string>PBXClassBookColumnIdentifier</string>
+ <real>22</real>
+ </array>
+ <key>Frame</key>
+ <string>{{0, 0}, {630, 331}}</string>
+ <key>MembersFrame</key>
+ <string>{{0, 105}, {374, 395}}</string>
+ <key>MembersTreeTableConfiguration</key>
+ <array>
+ <string>PBXMemberTypeIconColumnIdentifier</string>
+ <real>22</real>
+ <string>PBXMemberNameColumnIdentifier</string>
+ <real>216</real>
+ <string>PBXMemberTypeColumnIdentifier</string>
+ <real>97</real>
+ <string>PBXMemberBookColumnIdentifier</string>
+ <real>22</real>
+ </array>
+ <key>PBXModuleWindowStatusBarHidden2</key>
+ <integer>1</integer>
+ <key>RubberWindowFrame</key>
+ <string>385 179 630 352 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXClassBrowserModule</string>
+ <key>Proportion</key>
+ <string>332pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>332pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Class Browser</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXClassBrowserModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>0</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C0AD2AF069F1E9B00FABCE6</string>
+ <string>1C0AD2B0069F1E9B00FABCE6</string>
+ <string>1CA6456E063B45B4001379D8</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.classbrowser</string>
+ <key>WindowString</key>
+ <string>385 179 630 352 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1C0AD2AF069F1E9B00FABCE6</string>
+ <key>WindowToolIsVisible</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.refactoring</string>
+ <key>IncludeInToolsMenu</key>
+ <integer>0</integer>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{0, 0}, {500, 335}</string>
+ <key>RubberWindowFrame</key>
+ <string>{0, 0}, {500, 335}</string>
+ </dict>
+ <key>Module</key>
+ <string>XCRefactoringModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Refactoring</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCRefactoringModule</string>
+ </array>
+ <key>WindowString</key>
+ <string>200 200 500 356 0 0 1920 1200 </string>
+ </dict>
+ </array>
+</dict>
+</plist>
View
873 Cleavage.xcodeproj/jesse.pbxuser
@@ -0,0 +1,873 @@
+// !$*UTF8*$!
+{
+ 1D3623240D0F684500981E51 /* CleavageAppDelegate.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1067, 509}}";
+ sepNavSelRange = "{164, 0}";
+ sepNavVisRange = "{0, 465}";
+ sepNavWindowFrame = "{{130, 37}, {1206, 794}}";
+ };
+ };
+ 1D3623250D0F684500981E51 /* CleavageAppDelegate.m */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {810, 760}}";
+ sepNavSelRange = "{318, 13}";
+ sepNavVisRange = "{0, 0}";
+ };
+ };
+ 1D6058900D05DD3D006BFB54 /* Cleavage */ = {
+ activeExec = 0;
+ executables = (
+ 88D46CD8117D294B0012D3D7 /* Cleavage */,
+ );
+ };
+ 289233A90DB2D0DB0083E9F9 /* MainViewController.m */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1067, 1014}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRange = "{575, 1121}";
+ };
+ };
+ 289233AC0DB2D0DB0083E9F9 /* FlipsideViewController.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1120, 1144}}";
+ sepNavSelRange = "{547, 0}";
+ sepNavVisRange = "{168, 1010}";
+ };
+ };
+ 289233AD0DB2D0DB0083E9F9 /* FlipsideViewController.m */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1104, 6513}}";
+ sepNavSelRange = "{244, 0}";
+ sepNavVisRange = "{0, 1310}";
+ };
+ };
+ 29B97313FDCFA39411CA2CEA /* Project object */ = {
+ activeBuildConfigurationName = Debug;
+ activeExecutable = 88D46CD8117D294B0012D3D7 /* Cleavage */;
+ activeSDKPreference = iphonesimulator3.1.3;
+ activeTarget = 1D6058900D05DD3D006BFB54 /* Cleavage */;
+ addToTargets = (
+ 1D6058900D05DD3D006BFB54 /* Cleavage */,
+ );
+ breakpoints = (
+ 88D46DED117D386E0012D3D7 /* FlipsideViewController.m:53 */,
+ 88D46E33117D39300012D3D7 /* FlipsideViewController.m:82 */,
+ 88D46E75117D3ACD0012D3D7 /* FlipsideViewController.m:205 */,
+ 88D47282117E2B670012D3D7 /* Location.m:193 */,
+ 88D47298117E2C320012D3D7 /* FlipsideViewController.m:470 */,
+ 88D472A9117E2CDA0012D3D7 /* FlipsideViewController.m:308 */,
+ 88D472B4117E2D570012D3D7 /* FlipsideViewController.m:388 */,
+ 88D472E3117E30290012D3D7 /* FlipsideViewController.m:23 */,
+ 88D4733C117E33DD0012D3D7 /* FlipsideViewController.m:425 */,
+ );
+ codeSenseManager = 88D46CEB117D295D0012D3D7 /* Code sense */;
+ executables = (
+ 88D46CD8117D294B0012D3D7 /* Cleavage */,
+ );
+ perUserDictionary = {
+ PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
+ PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+ PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
+ PBXFileTableDataSourceColumnWidthsKey = (
+ 20,
+ 889,
+ 20,
+ 48,
+ 43,
+ 43,
+ 20,
+ );
+ PBXFileTableDataSourceColumnsKey = (
+ PBXFileDataSource_FiletypeID,
+ PBXFileDataSource_Filename_ColumnID,
+ PBXFileDataSource_Built_ColumnID,
+ PBXFileDataSource_ObjectSize_ColumnID,
+ PBXFileDataSource_Errors_ColumnID,
+ PBXFileDataSource_Warnings_ColumnID,
+ PBXFileDataSource_Target_ColumnID,
+ );
+ };
+ PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
+ PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+ PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
+ PBXFileTableDataSourceColumnWidthsKey = (
+ 20,
+ 849,
+ 60,
+ 20,
+ 48,
+ 43,
+ 43,
+ );
+ PBXFileTableDataSourceColumnsKey = (
+ PBXFileDataSource_FiletypeID,
+ PBXFileDataSource_Filename_ColumnID,
+ PBXTargetDataSource_PrimaryAttribute,
+ PBXFileDataSource_Built_ColumnID,
+ PBXFileDataSource_ObjectSize_ColumnID,
+ PBXFileDataSource_Errors_ColumnID,
+ PBXFileDataSource_Warnings_ColumnID,
+ );
+ };
+ PBXPerProjectTemplateStateSaveDate = 293480622;
+ PBXWorkspaceStateSaveDate = 293480622;
+ };
+ perUserProjectItems = {
+ 88D46FE9117D92450012D3D7 = 88D46FE9117D92450012D3D7 /* PBXTextBookmark */;
+ 88D46FEB117D92450012D3D7 = 88D46FEB117D92450012D3D7 /* PBXTextBookmark */;
+ 88D46FEC117D92450012D3D7 = 88D46FEC117D92450012D3D7 /* PBXTextBookmark */;
+ 88D47121117DA0810012D3D7 = 88D47121117DA0810012D3D7 /* PBXTextBookmark */;
+ 88D47122117DA0810012D3D7 = 88D47122117DA0810012D3D7 /* PBXTextBookmark */;
+ 88D47123117DA0810012D3D7 = 88D47123117DA0810012D3D7 /* PBXTextBookmark */;
+ 88D4724E117E299B0012D3D7 /* PBXTextBookmark */ = 88D4724E117E299B0012D3D7 /* PBXTextBookmark */;
+ 88D47264117E29EC0012D3D7 /* PBXTextBookmark */ = 88D47264117E29EC0012D3D7 /* PBXTextBookmark */;
+ 88D47289117E2BA30012D3D7 /* PBXTextBookmark */ = 88D47289117E2BA30012D3D7 /* PBXTextBookmark */;
+ 88D4728A117E2BA30012D3D7 /* PBXTextBookmark */ = 88D4728A117E2BA30012D3D7 /* PBXTextBookmark */;
+ 88D4728B117E2BA30012D3D7 /* PBXTextBookmark */ = 88D4728B117E2BA30012D3D7 /* PBXTextBookmark */;
+ 88D4728D117E2BA30012D3D7 /* PBXTextBookmark */ = 88D4728D117E2BA30012D3D7 /* PBXTextBookmark */;
+ 88D47294117E2C110012D3D7 /* PBXTextBookmark */ = 88D47294117E2C110012D3D7 /* PBXTextBookmark */;
+ 88D47295117E2C110012D3D7 /* PBXTextBookmark */ = 88D47295117E2C110012D3D7 /* PBXTextBookmark */;
+ 88D47296117E2C110012D3D7 /* PBXTextBookmark */ = 88D47296117E2C110012D3D7 /* PBXTextBookmark */;
+ 88D4729A117E2C340012D3D7 /* PBXTextBookmark */ = 88D4729A117E2C340012D3D7 /* PBXTextBookmark */;
+ 88D4729B117E2C340012D3D7 /* PBXTextBookmark */ = 88D4729B117E2C340012D3D7 /* PBXTextBookmark */;
+ 88D472A2117E2CB30012D3D7 /* PBXTextBookmark */ = 88D472A2117E2CB30012D3D7 /* PBXTextBookmark */;
+ 88D472A6117E2CBA0012D3D7 /* PBXTextBookmark */ = 88D472A6117E2CBA0012D3D7 /* PBXTextBookmark */;
+ 88D472A7117E2CBA0012D3D7 /* PBXTextBookmark */ = 88D472A7117E2CBA0012D3D7 /* PBXTextBookmark */;
+ 88D472AD117E2CDE0012D3D7 /* PBXTextBookmark */ = 88D472AD117E2CDE0012D3D7 /* PBXTextBookmark */;
+ 88D472AE117E2CDE0012D3D7 /* PBXTextBookmark */ = 88D472AE117E2CDE0012D3D7 /* PBXTextBookmark */;
+ 88D472B8117E2D5B0012D3D7 /* PBXTextBookmark */ = 88D472B8117E2D5B0012D3D7 /* PBXTextBookmark */;
+ 88D472B9117E2D5B0012D3D7 /* PBXTextBookmark */ = 88D472B9117E2D5B0012D3D7 /* PBXTextBookmark */;
+ 88D472E9117E30340012D3D7 /* PBXTextBookmark */ = 88D472E9117E30340012D3D7 /* PBXTextBookmark */;
+ 88D472EB117E30340012D3D7 /* PBXTextBookmark */ = 88D472EB117E30340012D3D7 /* PBXTextBookmark */;
+ 88D472EC117E30340012D3D7 /* PBXTextBookmark */ = 88D472EC117E30340012D3D7 /* PBXTextBookmark */;
+ 88D472FF117E31310012D3D7 /* PBXTextBookmark */ = 88D472FF117E31310012D3D7 /* PBXTextBookmark */;
+ 88D47312117E32390012D3D7 /* PBXTextBookmark */ = 88D47312117E32390012D3D7 /* PBXTextBookmark */;
+ 88D47320117E32770012D3D7 /* PBXTextBookmark */ = 88D47320117E32770012D3D7 /* PBXTextBookmark */;
+ 88D47332117E32BA0012D3D7 /* PBXTextBookmark */ = 88D47332117E32BA0012D3D7 /* PBXTextBookmark */;
+ 88D47340117E33E50012D3D7 /* PBXTextBookmark */ = 88D47340117E33E50012D3D7 /* PBXTextBookmark */;
+ 88D47341117E33E50012D3D7 /* PBXTextBookmark */ = 88D47341117E33E50012D3D7 /* PBXTextBookmark */;
+ 88D47345117E34A60012D3D7 /* PBXTextBookmark */ = 88D47345117E34A60012D3D7 /* PBXTextBookmark */;
+ 88D47356117E35D90012D3D7 /* PBXTextBookmark */ = 88D47356117E35D90012D3D7 /* PBXTextBookmark */;
+ 88D4735E117E36370012D3D7 /* PBXTextBookmark */ = 88D4735E117E36370012D3D7 /* PBXTextBookmark */;
+ 88D4735F117E36370012D3D7 /* PBXBookmark */ = 88D4735F117E36370012D3D7 /* PBXBookmark */;
+ 88D47360117E36370012D3D7 /* PBXTextBookmark */ = 88D47360117E36370012D3D7 /* PBXTextBookmark */;
+ 88D47364117E36F70012D3D7 /* PBXTextBookmark */ = 88D47364117E36F70012D3D7 /* PBXTextBookmark */;
+ 88D47365117E36F70012D3D7 /* XCBuildMessageTextBookmark */ = 88D47365117E36F70012D3D7 /* XCBuildMessageTextBookmark */;
+ 88D47366117E36F70012D3D7 /* PBXTextBookmark */ = 88D47366117E36F70012D3D7 /* PBXTextBookmark */;
+ 88D47369117E37000012D3D7 /* PBXTextBookmark */ = 88D47369117E37000012D3D7 /* PBXTextBookmark */;
+ 88D4736A117E37000012D3D7 /* PBXTextBookmark */ = 88D4736A117E37000012D3D7 /* PBXTextBookmark */;
+ 88D4736B117E37000012D3D7 /* PBXTextBookmark */ = 88D4736B117E37000012D3D7 /* PBXTextBookmark */;
+ 88D47373117E46940012D3D7 /* PBXTextBookmark */ = 88D47373117E46940012D3D7 /* PBXTextBookmark */;
+ 88D47533117E5DD80012D3D7 /* PBXTextBookmark */ = 88D47533117E5DD80012D3D7 /* PBXTextBookmark */;
+ 88D47549117E5EA10012D3D7 /* PBXTextBookmark */ = 88D47549117E5EA10012D3D7 /* PBXTextBookmark */;
+ };
+ sourceControlManager = 88D46CEA117D295D0012D3D7 /* Source Control */;
+ userBuildSettings = {
+ };
+ };
+ 88D46CD8117D294B0012D3D7 /* Cleavage */ = {
+ isa = PBXExecutable;
+ activeArgIndices = (
+ );
+ argumentStrings = (
+ );
+ autoAttachOnCrash = 1;
+ breakpointsEnabled = 0;
+ configStateDict = {
+ };
+ customDataFormattersEnabled = 1;
+ dataTipCustomDataFormattersEnabled = 1;
+ dataTipShowTypeColumn = 1;
+ dataTipSortType = 0;
+ debuggerPlugin = GDBDebugging;
+ disassemblyDisplayState = 0;
+ dylibVariantSuffix = "";
+ enableDebugStr = 1;
+ environmentEntries = (
+ );
+ executableSystemSymbolLevel = 0;
+ executableUserSymbolLevel = 0;
+ libgmallocEnabled = 0;
+ name = Cleavage;
+ savedGlobals = {
+ };
+ showTypeColumn = 0;
+ sourceDirectories = (
+ );
+ variableFormatDictionary = {
+ };
+ };
+ 88D46CEA117D295D0012D3D7 /* Source Control */ = {
+ isa = PBXSourceControlManager;
+ fallbackIsa = XCSourceControlManager;
+ isSCMEnabled = 0;
+ scmConfiguration = {
+ repositoryNamesForRoots = {
+ "" = "";
+ };
+ };
+ };
+ 88D46CEB117D295D0012D3D7 /* Code sense */ = {
+ isa = PBXCodeSenseManager;
+ indexTemplatePath = "";
+ };
+ 88D46DED117D386E0012D3D7 /* FlipsideViewController.m:53 */ = {
+ isa = PBXFileBreakpoint;
+ actions = (
+ );
+ breakpointStyle = 0;
+ continueAfterActions = 0;
+ countType = 0;
+ delayBeforeContinue = 0;
+ fileReference = 289233AD0DB2D0DB0083E9F9 /* FlipsideViewController.m */;
+ functionName = "-viewDidLoad";
+ hitCount = 0;
+ ignoreCount = 0;
+ lineNumber = 53;
+ modificationTime = 293494431.824761;
+ originalNumberOfMultipleMatches = 1;
+ state = 1;
+ };
+ 88D46E33117D39300012D3D7 /* FlipsideViewController.m:82 */ = {
+ isa = PBXFileBreakpoint;
+ actions = (
+ );
+ breakpointStyle = 0;
+ continueAfterActions = 0;
+ countType = 0;
+ delayBeforeContinue = 0;
+ fileReference = 289233AD0DB2D0DB0083E9F9 /* FlipsideViewController.m */;
+ functionName = "-viewDidLoad";
+ hitCount = 0;
+ ignoreCount = 0;
+ lineNumber = 82;
+ modificationTime = 293494431.824711;
+ originalNumberOfMultipleMatches = 1;
+ state = 1;
+ };
+ 88D46E75117D3ACD0012D3D7 /* FlipsideViewController.m:205 */ = {
+ isa = PBXFileBreakpoint;
+ actions = (
+ );
+ breakpointStyle = 0;
+ continueAfterActions = 0;
+ countType = 0;
+ delayBeforeContinue = 0;
+ fileReference = 289233AD0DB2D0DB0083E9F9 /* FlipsideViewController.m */;
+ functionName = "+pathForResource:";
+ hitCount = 0;
+ ignoreCount = 0;
+ lineNumber = 205;
+ modificationTime = 293494431.824245;
+ originalNumberOfMultipleMatches = 1;
+ state = 1;
+ };
+ 88D46FE9117D92450012D3D7 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 88D46FEA117D92450012D3D7 /* InvokedUrlCommand.h */;
+ name = "InvokedUrlCommand.h: 10";
+ rLen = 0;
+ rLoc = 178;
+ rType = 0;
+ vrLen = 625;
+ vrLoc = 0;
+ };
+ 88D46FEA117D92450012D3D7 /* InvokedUrlCommand.h */ = {
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ name = InvokedUrlCommand.h;
+ path = /SVN_Repos/PCGitPhoneGapiPhone/PhoneGapLib/Classes/InvokedUrlCommand.h;
+ sourceTree = "<absolute>";
+ };
+ 88D46FEB117D92450012D3D7 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 289233AC0DB2D0DB0083E9F9 /* FlipsideViewController.h */;
+ name = "FlipsideViewController.h: 30";
+ rLen = 0;
+ rLoc = 547;
+ rType = 0;
+ vrLen = 1010;
+ vrLoc = 168;
+ };
+ 88D46FEC117D92450012D3D7 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 289233AD0DB2D0DB0083E9F9 /* FlipsideViewController.m */;
+ name = "FlipsideViewController.m: 10";
+ rLen = 0;
+ rLoc = 179;
+ rType = 0;
+ vrLen = 0;
+ vrLoc = 0;
+ };
+ 88D47121117DA0810012D3D7 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 1D3623250D0F684500981E51 /* CleavageAppDelegate.m */;
+ name = "CleavageAppDelegate.m: 19";
+ rLen = 13;
+ rLoc = 318;
+ rType = 0;
+ vrLen = 0;
+ vrLoc = 0;
+ };
+ 88D47122117DA0810012D3D7 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 1D3623240D0F684500981E51 /* CleavageAppDelegate.h */;
+ name = "CleavageAppDelegate.h: 1";
+ rLen = 0;
+ rLoc = 0;
+ rType = 0;
+ vrLen = 465;
+ vrLoc = 0;
+ };
+ 88D47123117DA0810012D3D7 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 1D3623240D0F684500981E51 /* CleavageAppDelegate.h */;
+ name = "CleavageAppDelegate.h: 14";
+ rLen = 0;
+ rLoc = 283;
+ rType = 0;
+ vrLen = 465;
+ vrLoc = 0;
+ };
+ 88D4724E117E299B0012D3D7 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 1D3623240D0F684500981E51 /* CleavageAppDelegate.h */;
+ name = "CleavageAppDelegate.h: 18";
+ rLen = 0;
+ rLoc = 372;
+ rType = 0;
+ vrLen = 465;
+ vrLoc = 0;
+ };
+ 88D47264117E29EC0012D3D7 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 1D3623240D0F684500981E51 /* CleavageAppDelegate.h */;
+ name = "CleavageAppDelegate.h: 9";
+ rLen = 0;
+ rLoc = 164;
+ rType = 0;
+ vrLen = 465;
+ vrLoc = 0;
+ };
+ 88D47282117E2B670012D3D7 /* Location.m:193 */ = {
+ isa = PBXFileBreakpoint;
+ actions = (
+ );
+ breakpointStyle = 0;
+ continueAfterActions = 0;
+ countType = 0;
+ delayBeforeContinue = 0;
+ fileReference = 88D47283117E2B670012D3D7 /* Location.m */;
+ functionName = "-execute:";
+ hitCount = 0;
+ ignoreCount = 0;
+ lineNumber = 193;
+ location = Cleavage;
+ modificationTime = 293494387.621916;
+ originalNumberOfMultipleMatches = 1;
+ state = 1;
+ };
+ 88D47283117E2B670012D3D7 /* Location.m */ = {
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.objc;
+ name = Location.m;
+ path = /Users/jesse/Documents/PhoneGapLib/Classes/Location.m;
+ sourceTree = "<absolute>";
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1067, 3094}}";
+ sepNavSelRange = "{163, 0}";
+ sepNavVisRange = "{3, 1381}";
+ };
+ };
+ 88D47289117E2BA30012D3D7 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 1D3623240D0F684500981E51 /* CleavageAppDelegate.h */;
+ name = "CleavageAppDelegate.h: 9";
+ rLen = 0;
+ rLoc = 164;
+ rType = 0;
+ vrLen = 465;
+ vrLoc = 0;
+ };
+ 88D4728A117E2BA30012D3D7 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 289233AD0DB2D0DB0083E9F9 /* FlipsideViewController.m */;
+ name = "FlipsideViewController.m: 186";
+ rLen = 0;
+ rLoc = 7303;
+ rType = 0;
+ vrLen = 1813;
+ vrLoc = 9900;
+ };
+ 88D4728B117E2BA30012D3D7 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 88D4728C117E2BA30012D3D7 /* Location.m */;
+ name = "Location.m: 217";
+ rLen = 0;
+ rLoc = 5927;
+ rType = 0;
+ vrLen = 1592;
+ vrLoc = 5357;
+ };
+ 88D4728C117E2BA30012D3D7 /* Location.m */ = {
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.objc;
+ name = Location.m;
+ path = /Users/jesse/Documents/PhoneGapLib/Classes/Location.m;
+ sourceTree = "<absolute>";
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1327, 2756}}";
+ sepNavSelRange = "{5927, 0}";
+ sepNavVisRange = "{5302, 702}";
+ };
+ };
+ 88D4728D117E2BA30012D3D7 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 88D47283117E2B670012D3D7 /* Location.m */;
+ name = "Location.m: 11";
+ rLen = 0;
+ rLoc = 132;
+ rType = 0;
+ vrLen = 1381;
+ vrLoc = 3;
+ };
+ 88D47294117E2C110012D3D7 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 88D4728C117E2BA30012D3D7 /* Location.m */;
+ name = "Location.m: 193";
+ rLen = 0;
+ rLoc = 5927;
+ rType = 0;
+ vrLen = 1326;
+ vrLoc = 4683;
+ };
+ 88D47295117E2C110012D3D7 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 289233A90DB2D0DB0083E9F9 /* MainViewController.m */;
+ name = "MainViewController.m: 1";
+ rLen = 0;
+ rLoc = 0;
+ rType = 0;
+ vrLen = 1121;
+ vrLoc = 575;
+ };
+ 88D47296117E2C110012D3D7 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 289233AD0DB2D0DB0083E9F9 /* FlipsideViewController.m */;
+ name = "FlipsideViewController.m: 390";
+ rLen = 0;
+ rLoc = 16717;
+ rType = 0;
+ vrLen = 1382;
+ vrLoc = 12142;
+ };
+ 88D47298117E2C320012D3D7 /* FlipsideViewController.m:470 */ = {
+ isa = PBXFileBreakpoint;
+ actions = (
+ );
+ breakpointStyle = 0;
+ continueAfterActions = 0;
+ countType = 0;
+ delayBeforeContinue = 0;
+ fileReference = 289233AD0DB2D0DB0083E9F9 /* FlipsideViewController.m */;
+ functionName = "-execute:";
+ hitCount = 0;
+ ignoreCount = 0;
+ lineNumber = 470;
+ modificationTime = 293494431.824586;
+ originalNumberOfMultipleMatches = 1;
+ state = 1;
+ };
+ 88D4729A117E2C340012D3D7 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;