diff --git a/AppController.h b/AppController.h new file mode 100644 index 0000000..1cc92f7 --- /dev/null +++ b/AppController.h @@ -0,0 +1,64 @@ +#import +//#import +//#import +#import + +int thisVersionMajor = 1; +int thisVersionMinor = 5; + +typedef enum _BPStatus { + InRange, + OutOfRange +} BPStatus; + +@interface AppController : NSObject +{ + IOBluetoothDevice *device; + NSTimer *timer; + BPStatus priorStatus; + NSStatusItem *statusItem; + + NSImage *outOfRangeImage; + NSImage *outOfRangeAltImage; + NSImage *inRangeImage; + NSImage *inRangeAltImage; + + IBOutlet id checkUpdatesOnStartup; + IBOutlet id deviceName; + IBOutlet id inRangeScriptPath; + IBOutlet id monitoringEnabled; + IBOutlet id outOfRangeScriptPath; + IBOutlet id prefsWindow; + IBOutlet id progressIndicator; + IBOutlet id runScriptsOnStartup; + IBOutlet id timerInterval; +} + +// AppController methods +- (void)createMenuBar; +- (void)userDefaultsLoad; +- (void)userDefaultsSave; +- (BOOL)isInRange; +- (void)menuIconInRange; +- (void)menuIconOutOfRange; +- (void)runInRangeScript; +- (void)runOutOfRangeScript; +- (void)startMonitoring; +- (void)stopMonitoring; + + +// UI methods +- (IBAction)changeDevice:(id)sender; +- (IBAction)checkConnectivity:(id)sender; +- (IBAction)checkForUpdates:(id)sender; +- (IBAction)donate:(id)sender; +- (IBAction)enableMonitoring:(id)sender; +- (IBAction)inRangeScriptChange:(id)sender; +- (IBAction)inRangeScriptClear:(id)sender; +- (IBAction)inRangeScriptTest:(id)sender; +- (IBAction)outOfRangeScriptChange:(id)sender; +- (IBAction)outOfRangeScriptClear:(id)sender; +- (IBAction)outOfRangeScriptTest:(id)sender; +- (IBAction)showWindow:(id)sender; + +@end diff --git a/AppController.m b/AppController.m new file mode 100644 index 0000000..d38e533 --- /dev/null +++ b/AppController.m @@ -0,0 +1,402 @@ +#import "AppController.h" + + +@implementation AppController + + +#pragma mark - +#pragma mark Delegate Methods + +- (void)applicationWillTerminate:(NSNotification *)aNotification +{ + [self stopMonitoring]; +} + +- (void)awakeFromNib +{ + NSBundle *bundle = [NSBundle mainBundle]; + inRangeImage = [[NSImage alloc] initWithContentsOfFile: [bundle pathForResource: @"inRange" ofType: @"png"]]; + inRangeAltImage = [[NSImage alloc] initWithContentsOfFile: [bundle pathForResource: @"inRangeAlt" ofType: @"png"]]; + outOfRangeImage = [[NSImage alloc] initWithContentsOfFile: [bundle pathForResource: @"outRange" ofType: @"png"]]; + outOfRangeAltImage = [[NSImage alloc] initWithContentsOfFile: [bundle pathForResource: @"outOfRange" ofType: @"png"]]; + + priorStatus = OutOfRange; + + [self createMenuBar]; + [self userDefaultsLoad]; +} + +- (void)windowWillClose:(NSNotification *)aNotification +{ + [self userDefaultsSave]; + [self stopMonitoring]; + [self startMonitoring]; +} + + +#pragma mark - +#pragma mark AppController Methods + +- (void)createMenuBar +{ + NSMenu *myMenu; + NSMenuItem *menuItem; + + // Menu for status bar item + myMenu = [[NSMenu alloc] init]; + + // Prefences menu item + menuItem = [myMenu addItemWithTitle:@"Preferences" action:@selector(showWindow:) keyEquivalent:@""]; + [menuItem setTarget:self]; + + // Quit menu item + [myMenu addItemWithTitle:@"Quit" action:@selector(terminate:) keyEquivalent:@""]; + + // Space on status bar + statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength]; + [statusItem retain]; + + // Attributes of space on status bar + [statusItem setHighlightMode:YES]; + [statusItem setMenu:myMenu]; + + [self menuIconOutOfRange]; +} + +- (void)handleTimer:(NSTimer *)theTimer +{ + if( [self isInRange] ) + { + if( priorStatus == OutOfRange ) + { + priorStatus = InRange; + + [self menuIconInRange]; + [self runInRangeScript]; + } + } + else + { + if( priorStatus == InRange ) + { + priorStatus = OutOfRange; + + [self menuIconOutOfRange]; + [self runOutOfRangeScript]; + } + } + + [self startMonitoring]; +} + +- (BOOL)isInRange +{ + if( device && [device remoteNameRequest:nil] == kIOReturnSuccess ) + return true; + + return false; +} + +- (void)menuIconInRange +{ + [statusItem setImage:inRangeImage]; + [statusItem setAlternateImage:inRangeAltImage]; + + //[statusItem setTitle:@"O"]; +} + +- (void)menuIconOutOfRange +{ + [statusItem setImage:outOfRangeImage]; + [statusItem setAlternateImage:outOfRangeAltImage]; + +// [statusItem setTitle:@"X"]; +} + +- (BOOL)newVersionAvailable +{ + NSURL *url = [NSURL URLWithString:@"http://reduxcomputing.com/download/Proximity.plist"]; + NSDictionary *dict = [NSDictionary dictionaryWithContentsOfURL:url]; + NSArray *version = [[dict valueForKey:@"version"] componentsSeparatedByString:@"."]; + + int newVersionMajor = [[version objectAtIndex:0] intValue]; + int newVersionMinor = [[version objectAtIndex:1] intValue]; + + if( thisVersionMajor < newVersionMajor || thisVersionMinor < newVersionMinor ) + return YES; + + return NO; +} + +- (void)runInRangeScript +{ + NSAppleScript *script; + NSDictionary *errDict; + NSAppleEventDescriptor *ae; + + script = [[NSAppleScript alloc] + initWithContentsOfURL:[NSURL fileURLWithPath:[inRangeScriptPath stringValue]] + error:&errDict]; + ae = [script executeAndReturnError:&errDict]; +} + +- (void)runOutOfRangeScript +{ + NSAppleScript *script; + NSDictionary *errDict; + NSAppleEventDescriptor *ae; + + script = [[NSAppleScript alloc] + initWithContentsOfURL:[NSURL fileURLWithPath:[outOfRangeScriptPath stringValue]] + error:&errDict]; + ae = [script executeAndReturnError:&errDict]; +} + +- (void)startMonitoring +{ + if( [monitoringEnabled state] == NSOnState ) + { + timer = [NSTimer scheduledTimerWithTimeInterval:[timerInterval intValue] + target:self + selector:@selector(handleTimer:) + userInfo:nil + repeats:NO]; + [timer retain]; + } +} + +- (void)stopMonitoring +{ + [timer invalidate]; +} + +- (void)userDefaultsLoad +{ + NSUserDefaults *defaults; + NSData *deviceAsData; + + defaults = [NSUserDefaults standardUserDefaults]; + + // Device + deviceAsData = [defaults objectForKey:@"device"]; + if( [deviceAsData length] > 0 ) + { + device = [NSKeyedUnarchiver unarchiveObjectWithData:deviceAsData]; + [device retain]; + [deviceName setStringValue:[NSString stringWithFormat:@"%@ (%@)", + [device getName], [device getAddressString]]]; + + if( [self isInRange] ) + { + priorStatus = InRange; + [self menuIconInRange]; + } + else + { + priorStatus = OutOfRange; + [self menuIconOutOfRange]; + } + } + + //Timer interval + if( [[defaults stringForKey:@"timerInterval"] length] > 0 ) + [timerInterval setStringValue:[defaults stringForKey:@"timerInterval"]]; + + // Out of range script path + if( [[defaults stringForKey:@"outOfRangeScriptPath"] length] > 0 ) + [outOfRangeScriptPath setStringValue:[defaults stringForKey:@"outOfRangeScriptPath"]]; + + // In range script path + if( [[defaults stringForKey:@"inRangeScriptPath"] length] > 0 ) + [inRangeScriptPath setStringValue:[defaults stringForKey:@"inRangeScriptPath"]]; + + // Check for updates on startup + BOOL updating = [defaults boolForKey:@"updating"]; + if( updating ) { + [checkUpdatesOnStartup setState:NSOnState]; + if( [self newVersionAvailable] ) + { + if( NSRunAlertPanel( @"Proximity", @"A new version of Proximity is available for download.", + @"Close", @"Download", nil, nil ) == NSAlertAlternateReturn ) + { + [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"http://reduxcomputing.com/proximity/"]]; + } + } + } + + // Monitoring enabled + BOOL monitoring = [defaults boolForKey:@"enabled"]; + if( monitoring ) { + [monitoringEnabled setState:NSOnState]; + [self startMonitoring]; + } + + // Run scripts on startup + BOOL startup = [defaults boolForKey:@"executeOnStartup"]; + if( startup ) + { + [runScriptsOnStartup setState:NSOnState]; + + if( monitoring ) + { + if( [self isInRange] ) { + [self runInRangeScript]; + } else { + [self runOutOfRangeScript]; + } + } + } + +} + +- (void)userDefaultsSave +{ + NSUserDefaults *defaults; + NSData *deviceAsData; + + defaults = [NSUserDefaults standardUserDefaults]; + + // Monitoring enabled + BOOL monitoring = ( [monitoringEnabled state] == NSOnState ? TRUE : FALSE ); + [defaults setBool:monitoring forKey:@"enabled"]; + + // Update checking + BOOL updating = ( [checkUpdatesOnStartup state] == NSOnState ? TRUE : FALSE ); + [defaults setBool:updating forKey:@"updating"]; + + // Execute scripts on startup + BOOL startup = ( [runScriptsOnStartup state] == NSOnState ? TRUE : FALSE ); + [defaults setBool:startup forKey:@"executeOnStartup"]; + + // Timer interval + [defaults setObject:[timerInterval stringValue] forKey:@"timerInterval"]; + + // In range script + [defaults setObject:[inRangeScriptPath stringValue] forKey:@"inRangeScriptPath"]; + + // Out of range script + [defaults setObject:[outOfRangeScriptPath stringValue] forKey:@"outOfRangeScriptPath"]; + + // Device + if( device ) { + deviceAsData = [NSKeyedArchiver archivedDataWithRootObject:device]; + [defaults setObject:deviceAsData forKey:@"device"]; + } + + [defaults synchronize]; +} + + +#pragma mark - +#pragma mark Interface Methods + +- (IBAction)changeDevice:(id)sender +{ + IOBluetoothDeviceSelectorController *deviceSelector; + deviceSelector = [IOBluetoothDeviceSelectorController deviceSelector]; + [deviceSelector runModal]; + + NSArray *results; + results = [deviceSelector getResults]; + + if( !results ) + return; + + device = [results objectAtIndex:0]; + [device retain]; + + [deviceName setStringValue:[NSString stringWithFormat:@"%@ (%@)", + [device getName], + [device getAddressString]]]; +} + +- (IBAction)checkConnectivity:(id)sender +{ + [progressIndicator startAnimation:nil]; + + if( [self isInRange] ) + { + [progressIndicator stopAnimation:nil]; + NSRunAlertPanel( @"Found", @"Device is powered on and in range", nil, nil, nil, nil ); + } + else + { + [progressIndicator stopAnimation:nil]; + NSRunAlertPanel( @"Not Found", @"Device is powered off or out of range", nil, nil, nil, nil ); + } +} + +- (IBAction)checkForUpdates:(id)sender +{ + if( [self newVersionAvailable] ) + { + if( NSRunAlertPanel( @"Proximity", @"A new version of Proximity is available for download.", + @"Close", @"Download", nil, nil ) == NSAlertAlternateReturn ) + { + [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"http://reduxcomputing.com/proximity/"]]; + } + } + else + { + NSRunAlertPanel( @"Proximity", @"You have the latest version.", @"Close", nil, nil, nil ); + } +} + +- (IBAction)donate:(id)sender +{ + [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"http://reduxcomputing.com/donate.php"]]; +} + +- (IBAction)enableMonitoring:(id)sender +{ + // See windowWillClose: method +} + +- (IBAction)inRangeScriptChange:(id)sender +{ + NSOpenPanel *op = [NSOpenPanel openPanel]; + [op runModalForDirectory:@"~" file:nil types:[NSArray arrayWithObject:@"scpt"]]; + + NSArray *filenames = [op filenames]; + [inRangeScriptPath setStringValue:[filenames objectAtIndex:0]]; +} + +- (IBAction)inRangeScriptClear:(id)sender +{ + [inRangeScriptPath setStringValue:@""]; +} + +- (IBAction)inRangeScriptTest:(id)sender +{ + [self runInRangeScript]; +} + +- (IBAction)outOfRangeScriptChange:(id)sender +{ + NSOpenPanel *op = [NSOpenPanel openPanel]; + [op runModalForDirectory:@"~" file:nil types:[NSArray arrayWithObject:@"scpt"]]; + + NSArray *filenames = [op filenames]; + [outOfRangeScriptPath setStringValue:[filenames objectAtIndex:0]]; +} + +- (IBAction)outOfRangeScriptClear:(id)sender +{ + [outOfRangeScriptPath setStringValue:@""]; +} + +- (IBAction)outOfRangeScriptTest:(id)sender +{ + [self runOutOfRangeScript]; +} + +- (void)showWindow:(id)sender +{ + [prefsWindow makeKeyAndOrderFront:self]; + [prefsWindow center]; + + [self stopMonitoring]; +} + + +@end diff --git a/AppIcon.icns b/AppIcon.icns new file mode 100644 index 0000000..7a7ed14 Binary files /dev/null and b/AppIcon.icns differ diff --git a/English.lproj/InfoPlist.strings b/English.lproj/InfoPlist.strings new file mode 100644 index 0000000..5e45963 Binary files /dev/null and b/English.lproj/InfoPlist.strings differ diff --git a/English.lproj/MainMenu.xib b/English.lproj/MainMenu.xib new file mode 100644 index 0000000..c539edd --- /dev/null +++ b/English.lproj/MainMenu.xib @@ -0,0 +1,1855 @@ + + + + 1040 + 9G55 + 677 + 949.43 + 353.00 + + YES + + + + + YES + com.apple.InterfaceBuilderKit + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + YES + + + YES + + + + YES + + NSApplication + + + FirstResponder + + + NSApplication + + + AMainMenu + + YES + + + Proximity + + 1048576 + 2147483647 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + submenuAction: + + Proximity + + YES + + + About Proximity + + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + UHJlZmVyZW5jZXPigKY + , + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Services + + 1048576 + 2147483647 + + + submenuAction: + + Services + + YES + + _NSServicesMenu + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Hide Proximity + h + 1048576 + 2147483647 + + + + + + Hide Others + h + 1572864 + 2147483647 + + + + + + Show All + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Quit Proximity + q + 1048576 + 2147483647 + + + + + _NSAppleMenu + + + + _NSMainMenu + + + 3 + 2 + {{335, 320}, {480, 430}} + 1946157056 + Proximity Preferences + NSWindow + + {3.40282e+38, 3.40282e+38} + + + 256 + + YES + + + 12 + + YES + + + 256 + + YES + + + 12 + + YES + + + 256 + + YES + + + 268 + {{15, 14}, {382, 17}} + + YES + + 68288064 + 272630784 + A Bluetooth-enabled device has not been selected + + LucidaGrande + 1.300000e+01 + 1044 + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2OQA + + + + 6 + System + controlTextColor + + 3 + MAA + + + + + + {{1, 1}, {412, 42}} + + + + {{15, 35}, {414, 44}} + + {0, 0} + + 67239424 + 0 + Box + + LucidaGrande + 1.100000e+01 + 3100 + + + 6 + System + textBackgroundColor + + 3 + MQA + + + + 3 + MCAwLjgwMDAwMDAxAA + + + + 1 + 0 + 0 + NO + + + + 268 + {{18, 12}, {126, 19}} + + YES + + 67239424 + 134217728 + Check Connectivity + + LucidaGrande + 1.200000e+01 + 16 + + + -2038152961 + 164 + + + 400 + 75 + + + + + 268 + {{326, 12}, {100, 19}} + + YES + + 67239424 + 134217728 + Change Device + + + -2038152961 + 164 + + + 400 + 75 + + + + + 1292 + + {{152, 14}, {16, 16}} + + 20746 + 1.600000e+01 + 1.000000e+02 + + + {{1, 1}, {444, 87}} + + + + {{17, 207}, {446, 103}} + + {0, 0} + + 67239424 + 0 + Bluetooth Device + + + + 3 + MCAwLjgwMDAwMDAxAA + + + + 1 + 0 + 2 + NO + + + + 12 + + YES + + + 256 + + YES + + + 268 + {{16, 54}, {287, 18}} + + YES + + -2080244224 + 0 + Enable device monitoring and check every + + + 1211912703 + 130 + + NSImage + NSSwitch + + + NSSwitch + + + + 200 + 25 + + + + + 268 + {{306, 53}, {51, 22}} + + YES + + -1804468671 + -1874852864 + 60 + + + YES + + + 6 + System + textColor + + + + + + + 268 + {{359, 55}, {56, 17}} + + YES + + 68288064 + 272630784 + seconds + + + + + + + + + 268 + {{16, 14}, {207, 18}} + + YES + + -2080244224 + 0 + Check for updates on startup + + + 1211912703 + 130 + + + + + 200 + 25 + + + + + 268 + {{229, 12}, {122, 19}} + + YES + + -2080244224 + 134217728 + Check for Updates + + + -2038152961 + 164 + + + 400 + 75 + + + + + 268 + {{16, 34}, {412, 18}} + + YES + + -2080244224 + 0 + Immediately run scripts on startup (if enabled and in-range) + + + 1211912703 + 130 + + + + + 200 + 25 + + + + {{1, 1}, {444, 80}} + + + + {{17, 314}, {446, 96}} + + {0, 0} + + 67239424 + 0 + Preferences + + + + 3 + MCAwLjgwMDAwMDAxAA + + + + 1 + 0 + 2 + NO + + + + 12 + + YES + + + 256 + + YES + + + 268 + {{15, 108}, {127, 17}} + + YES + + 68288064 + 272630784 + Out of Range Script + + + + + + + + + 268 + {{18, 78}, {404, 22}} + + YES + + -1804468671 + 272630784 + + + + YES + + + + + + + 268 + {{265, 105}, {44, 19}} + + YES + + -2080244224 + 134217728 + Clear + + + -2038152961 + 164 + + + 400 + 75 + + + + + 268 + {{317, 105}, {39, 19}} + + YES + + -2080244224 + 134217728 + Test + + + -2038152961 + 164 + + + 400 + 75 + + + + + 268 + {{364, 105}, {58, 19}} + + YES + + -2080244224 + 134217728 + Change + + + -2038152961 + 164 + + + 400 + 75 + + + + + 268 + {{15, 53}, {99, 17}} + + YES + + 68288064 + 272630784 + In Range Script + + + + + + + + + 268 + {{18, 23}, {404, 22}} + + YES + + -1804468671 + 272630784 + + + + YES + + + + + + + 268 + {{265, 50}, {44, 19}} + + YES + + -2080244224 + 134217728 + Clear + + + -2038152961 + 164 + + + 400 + 75 + + + + + 268 + {{317, 50}, {39, 19}} + + YES + + -2080244224 + 134217728 + Test + + + -2038152961 + 164 + + + 400 + 75 + + + + + 268 + {{364, 50}, {58, 19}} + + YES + + -2080244224 + 134217728 + Change + + + -2038152961 + 164 + + + 400 + 75 + + + + {{1, 1}, {444, 135}} + + + + {{17, 52}, {446, 151}} + + {0, 0} + + 67239424 + 0 + AppleScripts + + + + 3 + MCAwLjgwMDAwMDAxAA + + + + 1 + 0 + 2 + NO + + + + 268 + {{17, 20}, {261, 28}} + + YES + + 67239424 + 4194304 + Proximity is donation-ware. If you find this application useful, please consider a donation. + + LucidaGrande + 1.100000e+01 + 16 + + + + + + + + + 268 + {{306, 23}, {154, 19}} + + YES + + -2080244224 + 134217728 + Donate + + + -2038152961 + 164 + + + 400 + 75 + + + + {480, 430} + + + {{0, 0}, {1440, 878}} + {3.40282e+38, 3.40282e+38} + + + NSFontManager + + + AppController + + + + + YES + + + orderFrontStandardAboutPanel: + + + + 142 + + + + hide: + + + + 367 + + + + hideOtherApplications: + + + + 368 + + + + unhideAllApplications: + + + + 370 + + + + terminate: + + + + 449 + + + + checkUpdatesOnStartup + + + + 577 + + + + deviceName + + + + 578 + + + + inRangeScriptPath + + + + 579 + + + + monitoringEnabled + + + + 580 + + + + progressIndicator + + + + 582 + + + + runScriptsOnStartup + + + + 583 + + + + timerInterval + + + + 584 + + + + prefsWindow + + + + 585 + + + + changeDevice: + + + + 586 + + + + checkConnectivity: + + + + 587 + + + + checkForUpdates: + + + + 588 + + + + donate: + + + + 589 + + + + inRangeScriptChange: + + + + 590 + + + + inRangeScriptClear: + + + + 591 + + + + inRangeScriptTest: + + + + 592 + + + + delegate + + + + 596 + + + + enableMonitoring: + + + + 597 + + + + outOfRangeScriptPath + + + + 598 + + + + outOfRangeScriptChange: + + + + 599 + + + + outOfRangeScriptClear: + + + + 600 + + + + outOfRangeScriptTest: + + + + 601 + + + + showWindow: + + + + 604 + + + + + YES + + 0 + + YES + + + + + + -2 + + + RmlsZSdzIE93bmVyA + + + -1 + + + First Responder + + + -3 + + + Application + + + 29 + + + YES + + + + MainMenu + + + 56 + + + YES + + + + + + 57 + + + YES + + + + + + + + + + + + + + + + 58 + + + + + 134 + + + + + 150 + + + + + 136 + + + 1111 + + + 144 + + + + + 129 + + + 121 + + + 143 + + + + + 236 + + + + + 131 + + + YES + + + + + + 149 + + + + + 145 + + + + + 130 + + + + + 371 + + + YES + + + + + + 372 + + + YES + + + + + + + + + + 420 + + + + + 450 + + + AppController + + + 518 + + + YES + + + + + + + + + 519 + + + YES + + + + + + + + + + + 520 + + + YES + + + + + + 521 + + + YES + + + + + + 522 + + + YES + + + + + + 523 + + + YES + + + + + + 524 + + + YES + + + + + + 525 + + + + + 526 + + + YES + + + + + 527 + + + + + 528 + + + + + 529 + + + + + 530 + + + YES + + + + + + 531 + + + YES + + + + + + 532 + + + YES + + + + + + 533 + + + + + 534 + + + + + 535 + + + + + 536 + + + YES + + + + + + 537 + + + + + 549 + + + YES + + + + + + 550 + + + + + 551 + + + YES + + + + + + + + + + + + + + + 552 + + + YES + + + + + + 553 + + + + + 554 + + + YES + + + + + + 555 + + + + + 556 + + + YES + + + + + + 557 + + + + + 558 + + + YES + + + + + + 559 + + + + + 560 + + + YES + + + + + + 561 + + + + + 562 + + + YES + + + + + + 563 + + + YES + + + + + + 564 + + + YES + + + + + + 565 + + + YES + + + + + + 566 + + + YES + + + + + + 567 + + + + + 568 + + + + + 569 + + + + + 570 + + + + + 571 + + + + + 573 + + + YES + + + + + + 574 + + + + + 575 + + + YES + + + + + + 576 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + 129.IBPluginDependency + 129.ImportedFromIB2 + 130.IBPluginDependency + 130.ImportedFromIB2 + 130.editorWindowContentRectSynchronizationRect + 131.IBPluginDependency + 131.ImportedFromIB2 + 134.IBPluginDependency + 134.ImportedFromIB2 + 136.IBPluginDependency + 136.ImportedFromIB2 + 143.IBPluginDependency + 143.ImportedFromIB2 + 144.IBPluginDependency + 144.ImportedFromIB2 + 145.IBPluginDependency + 145.ImportedFromIB2 + 149.IBPluginDependency + 149.ImportedFromIB2 + 150.IBPluginDependency + 150.ImportedFromIB2 + 236.IBPluginDependency + 236.ImportedFromIB2 + 29.IBEditorWindowLastContentRect + 29.IBPluginDependency + 29.ImportedFromIB2 + 29.WindowOrigin + 29.editorWindowContentRectSynchronizationRect + 371.IBEditorWindowLastContentRect + 371.IBWindowTemplateEditedContentRect + 371.NSWindowTemplate.visibleAtLaunch + 371.editorWindowContentRectSynchronizationRect + 371.windowTemplate.maxSize + 372.IBPluginDependency + 420.IBPluginDependency + 450.IBPluginDependency + 518.IBPluginDependency + 519.IBPluginDependency + 520.IBPluginDependency + 521.IBPluginDependency + 522.IBPluginDependency + 523.IBPluginDependency + 524.IBPluginDependency + 525.IBPluginDependency + 526.IBPluginDependency + 527.IBPluginDependency + 528.IBPluginDependency + 529.IBPluginDependency + 530.IBPluginDependency + 531.IBPluginDependency + 532.IBPluginDependency + 533.IBPluginDependency + 534.IBPluginDependency + 535.IBPluginDependency + 536.IBPluginDependency + 537.IBPluginDependency + 549.IBPluginDependency + 550.IBPluginDependency + 551.IBPluginDependency + 552.IBPluginDependency + 553.IBPluginDependency + 554.IBPluginDependency + 555.IBPluginDependency + 556.IBPluginDependency + 557.IBPluginDependency + 558.IBPluginDependency + 559.IBPluginDependency + 56.IBPluginDependency + 56.ImportedFromIB2 + 560.IBPluginDependency + 561.IBPluginDependency + 562.IBPluginDependency + 563.IBPluginDependency + 564.IBPluginDependency + 565.IBPluginDependency + 566.IBPluginDependency + 567.IBPluginDependency + 568.IBPluginDependency + 569.IBPluginDependency + 57.IBEditorWindowLastContentRect + 57.IBPluginDependency + 57.ImportedFromIB2 + 57.editorWindowContentRectSynchronizationRect + 570.IBPluginDependency + 571.IBPluginDependency + 573.IBPluginDependency + 574.IBPluginDependency + 575.IBPluginDependency + 576.IBPluginDependency + 58.IBPluginDependency + 58.ImportedFromIB2 + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilderKit + com.apple.InterfaceBuilderKit + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{436, 809}, {64, 6}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{220, 348}, {111, 20}} + com.apple.InterfaceBuilder.CocoaPlugin + + {74, 862} + {{6, 978}, {478, 20}} + {{312, 419}, {480, 430}} + {{312, 419}, {480, 430}} + + {{33, 99}, {480, 360}} + {3.40282e+38, 3.40282e+38} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{232, 165}, {203, 183}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{23, 794}, {245, 183}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + + YES + + YES + + + YES + + + + + YES + + YES + + + YES + + + + 604 + + + + YES + + AppController + NSObject + + YES + + YES + changeDevice: + checkConnectivity: + checkForUpdates: + donate: + enableMonitoring: + inRangeScriptChange: + inRangeScriptClear: + inRangeScriptTest: + outOfRangeScriptChange: + outOfRangeScriptClear: + outOfRangeScriptTest: + showWindow: + + + YES + id + id + id + id + id + id + id + id + id + id + id + id + + + + YES + + YES + checkUpdatesOnStartup + deviceName + inRangeScriptPath + monitoringEnabled + outOfRangeScriptPath + prefsWindow + progressIndicator + runScriptsOnStartup + timerInterval + + + YES + id + id + id + id + id + id + id + id + id + + + + IBProjectSource + AppController.h + + + + AppController + NSObject + + IBUserSource + + + + + + 0 + ../Proximity.xcodeproj + 3 + + diff --git a/Info.plist b/Info.plist new file mode 100644 index 0000000..d9c1ff8 --- /dev/null +++ b/Info.plist @@ -0,0 +1,34 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + AppIcon + CFBundleIdentifier + com.reduxcomputing.${PRODUCT_NAME:identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleSignature + ???? + CFBundleVersion + 1.5 + NSMainNibFile + MainMenu + NSPrincipalClass + NSApplication + LSUIElement + + CFBundleShortVersionString + 1.5 + CFBundleGetInfoString + 1.5 + + diff --git a/Proximity.xcodeproj/TemplateIcon.icns b/Proximity.xcodeproj/TemplateIcon.icns new file mode 100644 index 0000000..62cb701 Binary files /dev/null and b/Proximity.xcodeproj/TemplateIcon.icns differ diff --git a/Proximity.xcodeproj/dlt.mode1v3 b/Proximity.xcodeproj/dlt.mode1v3 new file mode 100644 index 0000000..68bfa8f --- /dev/null +++ b/Proximity.xcodeproj/dlt.mode1v3 @@ -0,0 +1,1397 @@ + + + + + ActivePerspectiveName + Project + AllowedModules + + + BundleLoadPath + + MaxInstances + n + Module + PBXSmartGroupTreeModule + Name + Groups and Files Outline View + + + BundleLoadPath + + MaxInstances + n + Module + PBXNavigatorGroup + Name + Editor + + + BundleLoadPath + + MaxInstances + n + Module + XCTaskListModule + Name + Task List + + + BundleLoadPath + + MaxInstances + n + Module + XCDetailModule + Name + File and Smart Group Detail Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXBuildResultsModule + Name + Detailed Build Results Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXProjectFindModule + Name + Project Batch Find Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCProjectFormatConflictsModule + Name + Project Format Conflicts List + + + BundleLoadPath + + MaxInstances + n + Module + PBXBookmarksModule + Name + Bookmarks Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXClassBrowserModule + Name + Class Browser + + + BundleLoadPath + + MaxInstances + n + Module + PBXCVSModule + Name + Source Code Control Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXDebugBreakpointsModule + Name + Debug Breakpoints Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCDockableInspector + Name + Inspector + + + BundleLoadPath + + MaxInstances + n + Module + PBXOpenQuicklyModule + Name + Open Quickly Tool + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugSessionModule + Name + Debugger + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugCLIModule + Name + Debug Console + + + BundleLoadPath + + MaxInstances + n + Module + XCSnapshotModule + Name + Snapshots Tool + + + BundlePath + /Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources + Description + DefaultDescriptionKey + DockingSystemVisible + + Extension + mode1v3 + FavBarConfig + + PBXProjectModuleGUID + 2E67EC110FC03B7C0025D101 + XCBarModuleItemNames + + XCBarModuleItems + + + FirstTimeWindowDisplayed + + Identifier + com.apple.perspectives.project.mode1v3 + MajorVersion + 33 + MinorVersion + 0 + Name + Default + Notifications + + OpenEditors + + PerspectiveWidths + + -1 + -1 + + Perspectives + + + ChosenToolbarItems + + active-target-popup + active-buildstyle-popup + action + NSToolbarFlexibleSpaceItem + buildOrClean + build-and-goOrGo + go-debug + com.apple.ide.PBXToolbarStopButton + get-info + toggle-editor + NSToolbarFlexibleSpaceItem + com.apple.pbx.toolbar.searchfield + + ControllerClassBaseName + + IconName + WindowOfProjectWithEditor + Identifier + perspective.project + IsVertical + + Layout + + + BecomeActive + + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C08E77C0454961000C914BD + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 186 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 29B97314FDCFA39411CA2CEA + 080E96DDFE201D6D7F000001 + 29B97315FDCFA39411CA2CEA + 29B97317FDCFA39411CA2CEA + 29B97323FDCFA39411CA2CEA + 19C28FACFE9D520D11CA2CBB + 1C37FABC05509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 13 + 7 + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {186, 753}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {203, 771}} + GroupTreeTableConfiguration + + MainColumn + 186 + + RubberWindowFrame + 108 66 1098 812 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 203pt + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20306471E060097A5F4 + PBXProjectModuleLabel + Info.plist + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CE0B20406471E060097A5F4 + PBXProjectModuleLabel + Info.plist + _historyCapacity + 0 + bookmark + 2EB6A6AB0FD9FE850045261B + history + + 2E9A79250FC486CB0054A42B + 2E9A79660FC4D24A0054A42B + 2EB6A6A90FD9FE850045261B + 2E9A77B70FC31F100054A42B + + prevStack + + 2E7C72E40FC05A6000A9CF0D + 2E7C72E50FC05A6000A9CF0D + 2E9A778E0FC31C940054A42B + 2EB6A6AA0FD9FE850045261B + + + SplitCount + 1 + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {890, 766}} + RubberWindowFrame + 108 66 1098 812 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 766pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20506471E060097A5F4 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{0, 771}, {890, 0}} + RubberWindowFrame + 108 66 1098 812 0 0 1440 878 + + Module + XCDetailModule + Proportion + 0pt + + + Proportion + 890pt + + + Name + Project + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + XCModuleDock + PBXNavigatorGroup + XCDetailModule + + TableOfContents + + 2EB6A6AC0FD9FE850045261B + 1CE0B1FE06471DED0097A5F4 + 2EB6A6AD0FD9FE850045261B + 1CE0B20306471E060097A5F4 + 1CE0B20506471E060097A5F4 + + ToolbarConfiguration + xcode.toolbar.config.defaultV3 + + + ControllerClassBaseName + + IconName + WindowOfProject + Identifier + perspective.morph + IsVertical + 0 + Layout + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C08E77C0454961000C914BD + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + + PBXProjectModuleGUID + 11E0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 186 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 29B97314FDCFA39411CA2CEA + 1C37FABC05509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {186, 337}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 1 + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {203, 355}} + GroupTreeTableConfiguration + + MainColumn + 186 + + RubberWindowFrame + 373 269 690 397 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 100% + + + Name + Morph + PreferredWidth + 300 + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + + TableOfContents + + 11E0B1FE06471DED0097A5F4 + + ToolbarConfiguration + xcode.toolbar.config.default.shortV3 + + + PerspectivesBarVisible + + ShelfIsVisible + + SourceDescription + file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec' + StatusbarIsVisible + + TimeStamp + 0.0 + ToolbarDisplayMode + 1 + ToolbarIsVisible + + ToolbarSizeMode + 2 + Type + Perspectives + UpdateMessage + 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 '%@'? + WindowJustification + 5 + WindowOrderList + + /Users/dlt/Desktop/proximity-working/Proximity.xcodeproj + + WindowString + 108 66 1098 812 0 0 1440 878 + WindowToolsV3 + + + FirstTimeWindowDisplayed + + Identifier + windowTool.build + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528F0623707200166675 + PBXProjectModuleLabel + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {735, 226}} + RubberWindowFrame + 70 163 735 692 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 226pt + + + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build + XCBuildResultsTrigger_Collapse + 1021 + XCBuildResultsTrigger_Open + 1011 + + GeometryConfiguration + + Frame + {{0, 231}, {735, 420}} + RubberWindowFrame + 70 163 735 692 0 0 1440 878 + + Module + PBXBuildResultsModule + Proportion + 420pt + + + Proportion + 651pt + + + Name + Build Results + ServiceClasses + + PBXBuildResultsModule + + StatusbarIsVisible + + TableOfContents + + 2E67EC1D0FC03BAC0025D101 + 2EB6A69C0FD9FE790045261B + 1CD0528F0623707200166675 + XCMainBuildResultsModuleGUID + + ToolbarConfiguration + xcode.toolbar.config.buildV3 + WindowString + 70 163 735 692 0 0 1440 878 + WindowToolGUID + 2E67EC1D0FC03BAC0025D101 + WindowToolIsVisible + + + + FirstTimeWindowDisplayed + + Identifier + windowTool.debugger + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {582, 316}} + {{582, 0}, {695, 316}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {1277, 316}} + {{0, 316}, {1277, 276}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1C162984064C10D400B95A72 + PBXProjectModuleLabel + Debug - GLUTExamples (Underwater) + + GeometryConfiguration + + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 0}, {1277, 592}} + PBXDebugSessionStackFrameViewKey + + DebugVariablesTableConfiguration + + Name + 237 + Value + 85 + Summary + 348 + + Frame + {{582, 0}, {695, 316}} + RubberWindowFrame + 72 167 1277 633 0 0 1440 878 + + RubberWindowFrame + 72 167 1277 633 0 0 1440 878 + + Module + PBXDebugSessionModule + Proportion + 592pt + + + Proportion + 592pt + + + Name + Debugger + ServiceClasses + + PBXDebugSessionModule + + StatusbarIsVisible + + TableOfContents + + 1CD10A99069EF8BA00B06720 + 2EB6A69D0FD9FE790045261B + 1C162984064C10D400B95A72 + 2EB6A69E0FD9FE790045261B + 2EB6A69F0FD9FE790045261B + 2EB6A6A00FD9FE790045261B + 2EB6A6A10FD9FE790045261B + 2EB6A6A20FD9FE790045261B + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + WindowString + 72 167 1277 633 0 0 1440 878 + WindowToolGUID + 1CD10A99069EF8BA00B06720 + WindowToolIsVisible + + + + FirstTimeWindowDisplayed + + Identifier + windowTool.find + IsVertical + + Layout + + + Dock + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CDD528C0622207200134675 + PBXProjectModuleLabel + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {781, 212}} + RubberWindowFrame + 639 408 781 470 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 781pt + + + Proportion + 212pt + + + BecomeActive + + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528E0623707200166675 + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{0, 217}, {781, 212}} + RubberWindowFrame + 639 408 781 470 0 0 1440 878 + + Module + PBXProjectFindModule + Proportion + 212pt + + + Proportion + 429pt + + + Name + Project Find + ServiceClasses + + PBXProjectFindModule + + StatusbarIsVisible + + TableOfContents + + 1C530D57069F1CE1000CFCEE + 2E7C72DB0FC059CB00A9CF0D + 2E7C72DC0FC059CB00A9CF0D + 1CDD528C0622207200134675 + 1CD0528E0623707200166675 + + WindowString + 639 408 781 470 0 0 1440 878 + WindowToolGUID + 1C530D57069F1CE1000CFCEE + WindowToolIsVisible + + + + Identifier + MENUSEPARATOR + + + FirstTimeWindowDisplayed + + Identifier + windowTool.debuggerConsole + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAAC065D492600B07095 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {650, 209}} + RubberWindowFrame + 9 383 650 250 0 0 1440 878 + + Module + PBXDebugCLIModule + Proportion + 209pt + + + Proportion + 209pt + + + Name + Debugger Console + ServiceClasses + + PBXDebugCLIModule + + StatusbarIsVisible + + TableOfContents + + 1C78EAAD065D492600B07095 + 2EB6A6A30FD9FE790045261B + 1C78EAAC065D492600B07095 + + ToolbarConfiguration + xcode.toolbar.config.consoleV3 + WindowString + 9 383 650 250 0 0 1440 878 + WindowToolGUID + 1C78EAAD065D492600B07095 + WindowToolIsVisible + + + + Identifier + windowTool.snapshots + Layout + + + Dock + + + Module + XCSnapshotModule + Proportion + 100% + + + Proportion + 100% + + + Name + Snapshots + ServiceClasses + + XCSnapshotModule + + StatusbarIsVisible + Yes + ToolbarConfiguration + xcode.toolbar.config.snapshots + WindowString + 315 824 300 550 0 0 1440 878 + WindowToolIsVisible + Yes + + + Identifier + windowTool.scm + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAB2065D492600B07095 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1C78EAB3065D492600B07095 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {452, 0}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD052920623707200166675 + PBXProjectModuleLabel + SCM + + GeometryConfiguration + + ConsoleFrame + {{0, 259}, {452, 0}} + Frame + {{0, 7}, {452, 259}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + TableConfiguration + + Status + 30 + FileName + 199 + Path + 197.0950012207031 + + TableFrame + {{0, 0}, {452, 250}} + + Module + PBXCVSModule + Proportion + 262pt + + + Proportion + 266pt + + + Name + SCM + ServiceClasses + + PBXCVSModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAB4065D492600B07095 + 1C78EAB5065D492600B07095 + 1C78EAB2065D492600B07095 + 1CD052920623707200166675 + + ToolbarConfiguration + xcode.toolbar.config.scm + WindowString + 743 379 452 308 0 0 1280 1002 + + + FirstTimeWindowDisplayed + + Identifier + windowTool.breakpoints + IsVertical + + Layout + + + Dock + + + BecomeActive + + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + no + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 168 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 1C77FABC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {168, 350}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + + GeometryConfiguration + + Frame + {{0, 0}, {185, 368}} + GroupTreeTableConfiguration + + MainColumn + 168 + + RubberWindowFrame + 141 446 744 409 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 185pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA1AED706398EBD00589147 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{190, 0}, {554, 368}} + RubberWindowFrame + 141 446 744 409 0 0 1440 878 + + Module + XCDetailModule + Proportion + 554pt + + + Proportion + 368pt + + + MajorVersion + 3 + MinorVersion + 0 + Name + Breakpoints + ServiceClasses + + PBXSmartGroupTreeModule + XCDetailModule + + StatusbarIsVisible + + TableOfContents + + 2E9A77EA0FC32BF80054A42B + 2E9A77EB0FC32BF80054A42B + 1CE0B1FE06471DED0097A5F4 + 1CA1AED706398EBD00589147 + + ToolbarConfiguration + xcode.toolbar.config.breakpointsV3 + WindowString + 141 446 744 409 0 0 1440 878 + WindowToolGUID + 2E9A77EA0FC32BF80054A42B + WindowToolIsVisible + + + + Identifier + windowTool.debugAnimator + Layout + + + Dock + + + Module + PBXNavigatorGroup + Proportion + 100% + + + Proportion + 100% + + + Name + Debug Visualizer + ServiceClasses + + PBXNavigatorGroup + + StatusbarIsVisible + 1 + ToolbarConfiguration + xcode.toolbar.config.debugAnimatorV3 + WindowString + 100 100 700 500 0 0 1280 1002 + + + Identifier + windowTool.bookmarks + Layout + + + Dock + + + Module + PBXBookmarksModule + Proportion + 100% + + + Proportion + 100% + + + Name + Bookmarks + ServiceClasses + + PBXBookmarksModule + + StatusbarIsVisible + 0 + WindowString + 538 42 401 187 0 0 1280 1002 + + + Identifier + windowTool.projectFormatConflicts + Layout + + + Dock + + + Module + XCProjectFormatConflictsModule + Proportion + 100% + + + Proportion + 100% + + + Name + Project Format Conflicts + ServiceClasses + + XCProjectFormatConflictsModule + + StatusbarIsVisible + 0 + WindowContentMinSize + 450 300 + WindowString + 50 850 472 307 0 0 1440 877 + + + Identifier + windowTool.classBrowser + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + OptionsSetName + Hierarchy, all classes + PBXProjectModuleGUID + 1CA6456E063B45B4001379D8 + PBXProjectModuleLabel + Class Browser - NSObject + + GeometryConfiguration + + ClassesFrame + {{0, 0}, {374, 96}} + ClassesTreeTableConfiguration + + PBXClassNameColumnIdentifier + 208 + PBXClassBookColumnIdentifier + 22 + + Frame + {{0, 0}, {630, 331}} + MembersFrame + {{0, 105}, {374, 395}} + MembersTreeTableConfiguration + + PBXMemberTypeIconColumnIdentifier + 22 + PBXMemberNameColumnIdentifier + 216 + PBXMemberTypeColumnIdentifier + 97 + PBXMemberBookColumnIdentifier + 22 + + PBXModuleWindowStatusBarHidden2 + 1 + RubberWindowFrame + 385 179 630 352 0 0 1440 878 + + Module + PBXClassBrowserModule + Proportion + 332pt + + + Proportion + 332pt + + + Name + Class Browser + ServiceClasses + + PBXClassBrowserModule + + StatusbarIsVisible + 0 + TableOfContents + + 1C0AD2AF069F1E9B00FABCE6 + 1C0AD2B0069F1E9B00FABCE6 + 1CA6456E063B45B4001379D8 + + ToolbarConfiguration + xcode.toolbar.config.classbrowser + WindowString + 385 179 630 352 0 0 1440 878 + WindowToolGUID + 1C0AD2AF069F1E9B00FABCE6 + WindowToolIsVisible + 0 + + + Identifier + windowTool.refactoring + IncludeInToolsMenu + 0 + Layout + + + Dock + + + BecomeActive + 1 + GeometryConfiguration + + Frame + {0, 0}, {500, 335} + RubberWindowFrame + {0, 0}, {500, 335} + + Module + XCRefactoringModule + Proportion + 100% + + + Proportion + 100% + + + Name + Refactoring + ServiceClasses + + XCRefactoringModule + + WindowString + 200 200 500 356 0 0 1920 1200 + + + + diff --git a/Proximity.xcodeproj/dlt.pbxuser b/Proximity.xcodeproj/dlt.pbxuser new file mode 100644 index 0000000..1a66803 --- /dev/null +++ b/Proximity.xcodeproj/dlt.pbxuser @@ -0,0 +1,317 @@ +// !$*UTF8*$! +{ + 29B97313FDCFA39411CA2CEA /* Project object */ = { + activeBuildConfigurationName = Release; + activeExecutable = 2E67EC080FC03B430025D101 /* Proximity */; + activeSDKPreference = macosx10.4; + activeTarget = 8D1107260486CEB800E47090 /* Proximity */; + breakpoints = ( + ); + codeSenseManager = 2E67EC0C0FC03B740025D101 /* Code sense */; + executables = ( + 2E67EC080FC03B430025D101 /* Proximity */, + ); + perUserDictionary = { + "PBXConfiguration.PBXBreakpointsDataSource.v1:1CA1AED706398EBD00589147" = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXBreakpointsDataSource_BreakpointID; + PBXFileTableDataSourceColumnWidthsKey = ( + 20, + 20, + 198, + 20, + 99, + 99, + 29, + 20, + ); + PBXFileTableDataSourceColumnsKey = ( + PBXBreakpointsDataSource_ActionID, + PBXBreakpointsDataSource_TypeID, + PBXBreakpointsDataSource_BreakpointID, + PBXBreakpointsDataSource_UseID, + PBXBreakpointsDataSource_LocationID, + PBXBreakpointsDataSource_ConditionID, + PBXBreakpointsDataSource_IgnoreCountID, + PBXBreakpointsDataSource_ContinueID, + ); + }; + PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; + PBXFileTableDataSourceColumnWidthsKey = ( + 20, + 651, + 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, + ); + }; + PBXPerProjectTemplateStateSaveDate = 265944697; + PBXWorkspaceStateSaveDate = 265944697; + }; + perUserProjectItems = { + 2E7C72E40FC05A6000A9CF0D = 2E7C72E40FC05A6000A9CF0D /* PBXTextBookmark */; + 2E7C72E50FC05A6000A9CF0D = 2E7C72E50FC05A6000A9CF0D /* PBXTextBookmark */; + 2E9A778E0FC31C940054A42B = 2E9A778E0FC31C940054A42B /* PlistBookmark */; + 2E9A77B70FC31F100054A42B = 2E9A77B70FC31F100054A42B /* PlistBookmark */; + 2E9A78FA0FC44B7B0054A42B = 2E9A78FA0FC44B7B0054A42B /* PBXTextBookmark */; + 2E9A78FC0FC44B7B0054A42B = 2E9A78FC0FC44B7B0054A42B /* PBXTextBookmark */; + 2E9A78FD0FC44B7B0054A42B = 2E9A78FD0FC44B7B0054A42B /* PBXTextBookmark */; + 2E9A78FE0FC44B7B0054A42B = 2E9A78FE0FC44B7B0054A42B /* PBXTextBookmark */; + 2E9A78FF0FC44B7B0054A42B = 2E9A78FF0FC44B7B0054A42B /* PBXTextBookmark */; + 2E9A79000FC44B7B0054A42B = 2E9A79000FC44B7B0054A42B /* PBXTextBookmark */; + 2E9A79250FC486CB0054A42B = 2E9A79250FC486CB0054A42B /* PBXTextBookmark */; + 2E9A79260FC486CB0054A42B = 2E9A79260FC486CB0054A42B /* PBXTextBookmark */; + 2E9A79660FC4D24A0054A42B = 2E9A79660FC4D24A0054A42B /* PBXTextBookmark */; + 2EB6A6A90FD9FE850045261B /* PBXBookmark */ = 2EB6A6A90FD9FE850045261B /* PBXBookmark */; + 2EB6A6AA0FD9FE850045261B /* PBXBookmark */ = 2EB6A6AA0FD9FE850045261B /* PBXBookmark */; + 2EB6A6AB0FD9FE850045261B /* PlistBookmark */ = 2EB6A6AB0FD9FE850045261B /* PlistBookmark */; + }; + sourceControlManager = 2E67EC0B0FC03B740025D101 /* Source Control */; + userBuildSettings = { + }; + }; + 2E10CA170FBD00900059A159 /* AppController.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {829, 938}}"; + sepNavSelRange = "{284, 0}"; + sepNavVisRange = "{104, 1263}"; + sepNavWindowFrame = "{{15, 59}, {842, 814}}"; + }; + }; + 2E10CA180FBD00900059A159 /* AppController.m */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {829, 5642}}"; + sepNavSelRange = "{8638, 0}"; + sepNavVisRange = "{0, 1288}"; + }; + }; + 2E67EC080FC03B430025D101 /* Proximity */ = { + isa = PBXExecutable; + activeArgIndices = ( + ); + argumentStrings = ( + ); + autoAttachOnCrash = 1; + breakpointsEnabled = 0; + configStateDict = { + }; + customDataFormattersEnabled = 1; + debuggerPlugin = GDBDebugging; + disassemblyDisplayState = 0; + dylibVariantSuffix = ""; + enableDebugStr = 1; + environmentEntries = ( + ); + executableSystemSymbolLevel = 0; + executableUserSymbolLevel = 0; + libgmallocEnabled = 0; + name = Proximity; + savedGlobals = { + }; + sourceDirectories = ( + ); + variableFormatDictionary = { + $cs = 1; + $ds = 1; + $eax = 1; + $ebp = 1; + $ebx = 1; + $ecx = 1; + $edi = 1; + $edx = 1; + $eflags = 1; + $eip = 1; + $es = 1; + $esi = 1; + $esp = 1; + $gs = 1; + $ss = 1; + }; + }; + 2E67EC0B0FC03B740025D101 /* Source Control */ = { + isa = PBXSourceControlManager; + fallbackIsa = XCSourceControlManager; + isSCMEnabled = 0; + scmConfiguration = { + }; + }; + 2E67EC0C0FC03B740025D101 /* Code sense */ = { + isa = PBXCodeSenseManager; + indexTemplatePath = ""; + }; + 2E7C72E40FC05A6000A9CF0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2E10CA180FBD00900059A159 /* AppController.m */; + name = "AppController.m: 399"; + rLen = 0; + rLoc = 9615; + rType = 0; + vrLen = 1181; + vrLoc = 6821; + }; + 2E7C72E50FC05A6000A9CF0D /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2E10CA170FBD00900059A159 /* AppController.h */; + name = "AppController.h: 25"; + rLen = 0; + rLoc = 689; + rType = 0; + vrLen = 1226; + vrLoc = 0; + }; + 2E9A778E0FC31C940054A42B /* PlistBookmark */ = { + isa = PlistBookmark; + fRef = 8D1107310486CEB800E47090 /* Info.plist */; + fallbackIsa = PBXBookmark; + isK = 0; + kPath = ( + ); + name = "/Users/dlt/Desktop/Proximity Working/Info.plist"; + rLen = 0; + rLoc = 2147483647; + }; + 2E9A77B70FC31F100054A42B /* PlistBookmark */ = { + isa = PlistBookmark; + fRef = 8D1107310486CEB800E47090 /* Info.plist */; + fallbackIsa = PBXBookmark; + isK = 0; + kPath = ( + ); + name = "/Users/dlt/Desktop/Proximity Working/Info.plist"; + rLen = 0; + rLoc = 2147483647; + }; + 2E9A78FA0FC44B7B0054A42B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2E10CA170FBD00900059A159 /* AppController.h */; + name = "AppController.h: 20"; + rLen = 27; + rLoc = 392; + rType = 0; + vrLen = 1220; + vrLoc = 104; + }; + 2E9A78FC0FC44B7B0054A42B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2E10CA170FBD00900059A159 /* AppController.h */; + name = "AppController.h: 33"; + rLen = 0; + rLoc = 769; + rType = 0; + vrLen = 1212; + vrLoc = 0; + }; + 2E9A78FD0FC44B7B0054A42B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2E10CA180FBD00900059A159 /* AppController.m */; + name = "AppController.m: 133"; + rLen = 266; + rLoc = 3021; + rType = 0; + vrLen = 1414; + vrLoc = 2503; + }; + 2E9A78FE0FC44B7B0054A42B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2E10CA170FBD00900059A159 /* AppController.h */; + name = "AppController.h: 52"; + rLen = 36; + rLoc = 1133; + rType = 0; + vrLen = 1264; + vrLoc = 104; + }; + 2E9A78FF0FC44B7B0054A42B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2E10CA180FBD00900059A159 /* AppController.m */; + name = "AppController.m: 42"; + rLen = 614; + rLoc = 1025; + rType = 0; + vrLen = 1088; + vrLoc = 921; + }; + 2E9A79000FC44B7B0054A42B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2E10CA170FBD00900059A159 /* AppController.h */; + name = "AppController.h: 20"; + rLen = 27; + rLoc = 392; + rType = 0; + vrLen = 1220; + vrLoc = 104; + }; + 2E9A79250FC486CB0054A42B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2E10CA180FBD00900059A159 /* AppController.m */; + name = "AppController.m: 347"; + rLen = 0; + rLoc = 8638; + rType = 0; + vrLen = 1288; + vrLoc = 0; + }; + 2E9A79260FC486CB0054A42B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2E10CA180FBD00900059A159 /* AppController.m */; + name = "AppController.m: 347"; + rLen = 0; + rLoc = 8638; + rType = 0; + vrLen = 1288; + vrLoc = 0; + }; + 2E9A79660FC4D24A0054A42B /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2E10CA170FBD00900059A159 /* AppController.h */; + name = "AppController.h: 13"; + rLen = 0; + rLoc = 284; + rType = 0; + vrLen = 1263; + vrLoc = 104; + }; + 2EB6A6A90FD9FE850045261B /* PBXBookmark */ = { + isa = PBXBookmark; + fRef = 2E10CA840FBD09DA0059A159 /* outRangeAlt.png */; + }; + 2EB6A6AA0FD9FE850045261B /* PBXBookmark */ = { + isa = PBXBookmark; + fRef = 2E10CA840FBD09DA0059A159 /* outRangeAlt.png */; + }; + 2EB6A6AB0FD9FE850045261B /* PlistBookmark */ = { + isa = PlistBookmark; + fRef = 8D1107310486CEB800E47090 /* Info.plist */; + fallbackIsa = PBXBookmark; + isK = 0; + kPath = ( + ); + name = "/Users/dlt/Desktop/proximity-working/Info.plist"; + rLen = 0; + rLoc = 2147483647; + }; + 8D1107260486CEB800E47090 /* Proximity */ = { + activeExec = 0; + executables = ( + 2E67EC080FC03B430025D101 /* Proximity */, + ); + }; + 8D1107310486CEB800E47090 /* Info.plist */ = { + uiCtxt = { + sepNavWindowFrame = "{{15, 59}, {842, 814}}"; + }; + }; +} diff --git a/Proximity.xcodeproj/project.pbxproj b/Proximity.xcodeproj/project.pbxproj new file mode 100644 index 0000000..15dd84d --- /dev/null +++ b/Proximity.xcodeproj/project.pbxproj @@ -0,0 +1,318 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1DDD58140DA1D0A300B32029 /* MainMenu.xib */; }; + 2E10CA190FBD00900059A159 /* AppController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2E10CA180FBD00900059A159 /* AppController.m */; }; + 2E10CA850FBD09DA0059A159 /* inRange.png in Resources */ = {isa = PBXBuildFile; fileRef = 2E10CA810FBD09DA0059A159 /* inRange.png */; }; + 2E10CA860FBD09DA0059A159 /* inRangeAlt.png in Resources */ = {isa = PBXBuildFile; fileRef = 2E10CA820FBD09DA0059A159 /* inRangeAlt.png */; }; + 2E10CA870FBD09DA0059A159 /* outRange.png in Resources */ = {isa = PBXBuildFile; fileRef = 2E10CA830FBD09DA0059A159 /* outRange.png */; }; + 2E10CA880FBD09DA0059A159 /* outRangeAlt.png in Resources */ = {isa = PBXBuildFile; fileRef = 2E10CA840FBD09DA0059A159 /* outRangeAlt.png */; }; + 2E67EBFB0FC03A780025D101 /* IOBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2E67EBFA0FC03A780025D101 /* IOBluetooth.framework */; }; + 2E67EC010FC03A8F0025D101 /* IOBluetoothUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2E67EC000FC03A8F0025D101 /* IOBluetoothUI.framework */; }; + 2EA9F55B0FC02F68007354EF /* AppIcon.icns in Resources */ = {isa = PBXBuildFile; fileRef = 2EA9F55A0FC02F68007354EF /* AppIcon.icns */; }; + 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; + 8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; }; + 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; + 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; + 13E42FB307B3F0F600E4EEF1 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = ""; }; + 1DDD58150DA1D0A300B32029 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MainMenu.xib; sourceTree = ""; }; + 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; + 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; + 2E10CA170FBD00900059A159 /* AppController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppController.h; sourceTree = ""; }; + 2E10CA180FBD00900059A159 /* AppController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppController.m; sourceTree = ""; }; + 2E10CA810FBD09DA0059A159 /* inRange.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = inRange.png; sourceTree = ""; }; + 2E10CA820FBD09DA0059A159 /* inRangeAlt.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = inRangeAlt.png; sourceTree = ""; }; + 2E10CA830FBD09DA0059A159 /* outRange.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = outRange.png; sourceTree = ""; }; + 2E10CA840FBD09DA0059A159 /* outRangeAlt.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = outRangeAlt.png; sourceTree = ""; }; + 2E67EBFA0FC03A780025D101 /* IOBluetooth.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOBluetooth.framework; path = /System/Library/Frameworks/IOBluetooth.framework; sourceTree = ""; }; + 2E67EC000FC03A8F0025D101 /* IOBluetoothUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOBluetoothUI.framework; path = /System/Library/Frameworks/IOBluetoothUI.framework; sourceTree = ""; }; + 2EA9F55A0FC02F68007354EF /* AppIcon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = AppIcon.icns; sourceTree = ""; }; + 32CA4F630368D1EE00C91783 /* Proximity_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Proximity_Prefix.pch; sourceTree = ""; }; + 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 8D1107320486CEB800E47090 /* Proximity.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Proximity.app; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 8D11072E0486CEB800E47090 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */, + 2E67EBFB0FC03A780025D101 /* IOBluetooth.framework in Frameworks */, + 2E67EC010FC03A8F0025D101 /* IOBluetoothUI.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 080E96DDFE201D6D7F000001 /* Classes */ = { + isa = PBXGroup; + children = ( + 2E10CA170FBD00900059A159 /* AppController.h */, + 2E10CA180FBD00900059A159 /* AppController.m */, + ); + name = Classes; + sourceTree = ""; + }; + 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = { + isa = PBXGroup; + children = ( + 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */, + ); + name = "Linked Frameworks"; + sourceTree = ""; + }; + 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = { + isa = PBXGroup; + children = ( + 29B97324FDCFA39411CA2CEA /* AppKit.framework */, + 13E42FB307B3F0F600E4EEF1 /* CoreData.framework */, + 29B97325FDCFA39411CA2CEA /* Foundation.framework */, + ); + name = "Other Frameworks"; + sourceTree = ""; + }; + 19C28FACFE9D520D11CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + 8D1107320486CEB800E47090 /* Proximity.app */, + ); + name = Products; + sourceTree = ""; + }; + 29B97314FDCFA39411CA2CEA /* Proximity */ = { + isa = PBXGroup; + children = ( + 080E96DDFE201D6D7F000001 /* Classes */, + 29B97315FDCFA39411CA2CEA /* Other Sources */, + 29B97317FDCFA39411CA2CEA /* Resources */, + 29B97323FDCFA39411CA2CEA /* Frameworks */, + 19C28FACFE9D520D11CA2CBB /* Products */, + ); + name = Proximity; + sourceTree = ""; + }; + 29B97315FDCFA39411CA2CEA /* Other Sources */ = { + isa = PBXGroup; + children = ( + 32CA4F630368D1EE00C91783 /* Proximity_Prefix.pch */, + 29B97316FDCFA39411CA2CEA /* main.m */, + ); + name = "Other Sources"; + sourceTree = ""; + }; + 29B97317FDCFA39411CA2CEA /* Resources */ = { + isa = PBXGroup; + children = ( + 2EA9F55A0FC02F68007354EF /* AppIcon.icns */, + 2E10CA810FBD09DA0059A159 /* inRange.png */, + 2E10CA820FBD09DA0059A159 /* inRangeAlt.png */, + 2E10CA830FBD09DA0059A159 /* outRange.png */, + 2E10CA840FBD09DA0059A159 /* outRangeAlt.png */, + 8D1107310486CEB800E47090 /* Info.plist */, + 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */, + 1DDD58140DA1D0A300B32029 /* MainMenu.xib */, + ); + name = Resources; + sourceTree = ""; + }; + 29B97323FDCFA39411CA2CEA /* Frameworks */ = { + isa = PBXGroup; + children = ( + 2E67EC000FC03A8F0025D101 /* IOBluetoothUI.framework */, + 2E67EBFA0FC03A780025D101 /* IOBluetooth.framework */, + 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */, + 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 8D1107260486CEB800E47090 /* Proximity */ = { + isa = PBXNativeTarget; + buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "Proximity" */; + buildPhases = ( + 8D1107290486CEB800E47090 /* Resources */, + 8D11072C0486CEB800E47090 /* Sources */, + 8D11072E0486CEB800E47090 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Proximity; + productInstallPath = "$(HOME)/Applications"; + productName = Proximity; + productReference = 8D1107320486CEB800E47090 /* Proximity.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 29B97313FDCFA39411CA2CEA /* Project object */ = { + isa = PBXProject; + buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Proximity" */; + compatibilityVersion = "Xcode 3.1"; + hasScannedForEncodings = 1; + mainGroup = 29B97314FDCFA39411CA2CEA /* Proximity */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 8D1107260486CEB800E47090 /* Proximity */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 8D1107290486CEB800E47090 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */, + 1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */, + 2E10CA850FBD09DA0059A159 /* inRange.png in Resources */, + 2E10CA860FBD09DA0059A159 /* inRangeAlt.png in Resources */, + 2E10CA870FBD09DA0059A159 /* outRange.png in Resources */, + 2E10CA880FBD09DA0059A159 /* outRangeAlt.png in Resources */, + 2EA9F55B0FC02F68007354EF /* AppIcon.icns in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 8D11072C0486CEB800E47090 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 8D11072D0486CEB800E47090 /* main.m in Sources */, + 2E10CA190FBD00900059A159 /* AppController.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + 089C165DFE840E0CC02AAC07 /* English */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; + 1DDD58140DA1D0A300B32029 /* MainMenu.xib */ = { + isa = PBXVariantGroup; + children = ( + 1DDD58150DA1D0A300B32029 /* English */, + ); + name = MainMenu.xib; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + C01FCF4B08A954540054247B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"$(SRCROOT)\"", + ); + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = Proximity_Prefix.pch; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(HOME)/Applications"; + PRODUCT_NAME = Proximity; + }; + name = Debug; + }; + C01FCF4C08A954540054247B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"$(SRCROOT)\"", + ); + GCC_MODEL_TUNING = G5; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = Proximity_Prefix.pch; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(HOME)/Applications"; + PRODUCT_NAME = Proximity; + }; + name = Release; + }; + C01FCF4F08A954540054247B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + ONLY_ACTIVE_ARCH = YES; + PREBINDING = NO; + SDKROOT = macosx10.4; + }; + name = Debug; + }; + C01FCF5008A954540054247B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + PREBINDING = NO; + SDKROOT = macosx10.4; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "Proximity" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C01FCF4B08A954540054247B /* Debug */, + C01FCF4C08A954540054247B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Proximity" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C01FCF4F08A954540054247B /* Debug */, + C01FCF5008A954540054247B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; +} diff --git a/Proximity_Prefix.pch b/Proximity_Prefix.pch new file mode 100644 index 0000000..f55561f --- /dev/null +++ b/Proximity_Prefix.pch @@ -0,0 +1,7 @@ +// +// Prefix header for all source files of the 'Proximity' target in the 'Proximity' project +// + +#ifdef __OBJC__ + #import +#endif diff --git a/inRange.png b/inRange.png new file mode 100644 index 0000000..fa489ac Binary files /dev/null and b/inRange.png differ diff --git a/inRangeAlt.png b/inRangeAlt.png new file mode 100644 index 0000000..0a716bd Binary files /dev/null and b/inRangeAlt.png differ diff --git a/main.m b/main.m new file mode 100644 index 0000000..c5f1148 --- /dev/null +++ b/main.m @@ -0,0 +1,14 @@ +// +// main.m +// Proximity +// +// Created by Denver Timothy on 5/14/09. +// Copyright __MyCompanyName__ 2009. All rights reserved. +// + +#import + +int main(int argc, char *argv[]) +{ + return NSApplicationMain(argc, (const char **) argv); +} diff --git a/outRange.png b/outRange.png new file mode 100644 index 0000000..8de8375 Binary files /dev/null and b/outRange.png differ diff --git a/outRangeAlt.png b/outRangeAlt.png new file mode 100644 index 0000000..d8a2427 Binary files /dev/null and b/outRangeAlt.png differ