diff --git a/English.lproj/InfoPlist.strings b/English.lproj/InfoPlist.strings new file mode 100644 index 0000000..477b28f --- /dev/null +++ b/English.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/English.lproj/MainMenu.xib b/English.lproj/MainMenu.xib new file mode 100644 index 0000000..44af148 --- /dev/null +++ b/English.lproj/MainMenu.xib @@ -0,0 +1,1586 @@ + + + + 1050 + 11C43 + 1617 + 1138.17 + 567.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 1617 + + + YES + NSView + NSMenu + NSWindowTemplate + NSMenuItem + NSButtonCell + NSImageCell + NSButton + NSImageView + NSCustomObject + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + YES + + + + + YES + + NSApplication + + + FirstResponder + + + NSApplication + + + AMainMenu + + YES + + + Timr + + 1048576 + 2147483647 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + submenuAction: + + Timr + + YES + + + About Timr + + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Preferences… + , + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Services + + 1048576 + 2147483647 + + + submenuAction: + + Services + + YES + + _NSServicesMenu + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Hide Timr + h + 1048576 + 2147483647 + + + + + + Hide Others + h + 1572864 + 2147483647 + + + + + + Show All + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Quit Timr + q + 1048576 + 2147483647 + + + + + _NSAppleMenu + + + + + File + + 1048576 + 2147483647 + + + submenuAction: + + File + + YES + + + New + n + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Close + w + 1048576 + 2147483647 + + + + + + + + + Window + + 1048576 + 2147483647 + + + submenuAction: + + Window + + YES + + + Minimize + m + 1048576 + 2147483647 + + + + + + Timer + t + 1048576 + 2147483647 + + + + + _NSWindowsMenu + + + + + Help + + 2147483647 + + + submenuAction: + + Help + + YES + + + Timr Help + ? + 1048576 + 2147483647 + + + + + _NSHelpMenu + + + + _NSMainMenu + + + TimrAppDelegate + + + NSFontManager + + + Timer + + + 263 + 2 + {{235, 410}, {489, 149}} + 1685586944 + + NSWindow + + + + + 256 + + YES + + + 268 + + YES + + YES + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + NSFilenamesPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT TIFF v4.0 pasteboard type + + + {{112, 47}, {10, 66}} + + + + YES + + 130560 + 33554432 + + NSImage + colon + + 0 + 0 + 0 + NO + + YES + + + + 268 + + YES + + YES + Apple PDF pasteboard type + Apple PICT pasteboard type + Apple PNG pasteboard type + NSFilenamesPboardType + NeXT Encapsulated PostScript v1.2 pasteboard type + NeXT TIFF v4.0 pasteboard type + + + {{216, 48}, {10, 66}} + + + + YES + + 130560 + 33554432 + + 0 + 0 + 0 + NO + + YES + + + + 268 + {{233, 48}, {37, 66}} + + + + YES + + -2080244224 + 134217728 + + + LucidaGrande + 13 + 1044 + + + -2041822977 + 160 + + NSImage + digit-0 + + + + 400 + 75 + + + + + 268 + {{276, 48}, {37, 66}} + + + + YES + + -2080244224 + 134217728 + + + + -2041822977 + 160 + + + + 400 + 75 + + + + + 268 + {{25, 48}, {37, 66}} + + + + YES + + -2080244224 + 134217728 + + + + -2041822977 + 160 + + + + 400 + 75 + + + + + 268 + {{68, 48}, {37, 66}} + + + + YES + + -2080244224 + 134217728 + + + + -2041822977 + 160 + + + + 400 + 75 + + + + + 268 + {{129, 48}, {37, 66}} + + + + YES + + -2080244224 + 134217728 + + + + -2041822977 + 160 + + + + 400 + 75 + + + + + 268 + {{172, 48}, {36, 66}} + + + + YES + + -2080244224 + 134217728 + + + + -2041822977 + 160 + + + + 400 + 75 + + + + + 268 + {{358, 11}, {129, 145}} + + + YES + + -2080244224 + 0 + + + + -2042871553 + 32 + + NSImage + power-button + + + NSImage + power-button-pressed + + + + 200 + 25 + + + + + 319 + {{347, 3}, {35, 35}} + + + + YES + + -2080244224 + 134217728 + + + + -2041790209 + 32 + + NSImage + clear-button + + + + 400 + 75 + + + + {489, 149} + + + + + {{0, 0}, {2560, 1418}} + {10000000000000, 10000000000000} + 128 + YES + + + + + YES + + + performMiniaturize: + + + + 37 + + + + orderFrontStandardAboutPanel: + + + + 142 + + + + performClose: + + + + 193 + + + + hide: + + + + 367 + + + + hideOtherApplications: + + + + 368 + + + + unhideAllApplications: + + + + 370 + + + + newDocument: + + + + 373 + + + + terminate: + + + + 449 + + + + showHelp: + + + + 493 + + + + delegate + + + + 495 + + + + start + + + + 572 + + + + hour1 + + + + 615 + + + + hour2 + + + + 616 + + + + minute1 + + + + 617 + + + + minute2 + + + + 618 + + + + second1 + + + + 619 + + + + second2 + + + + 620 + + + + timer + + + + 621 + + + + changeDigit: + + + + 622 + + + + changeDigit: + + + + 623 + + + + changeDigit: + + + + 624 + + + + changeDigit: + + + + 625 + + + + changeDigit: + + + + 626 + + + + changeDigit: + + + + 627 + + + + clear + + + + 630 + + + + clearNow: + + + + 631 + + + + aWindow + + + + 636 + + + + startOrPause: + + + + 640 + + + + orderFront: + + + + 642 + + + + + YES + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 29 + + + YES + + + + + + + + + 19 + + + YES + + + + + + 56 + + + YES + + + + + + 83 + + + YES + + + + + + 81 + + + YES + + + + + + + + 82 + + + + + 73 + + + + + 79 + + + + + 57 + + + YES + + + + + + + + + + + + + + + + 58 + + + + + 134 + + + + + 150 + + + + + 136 + + + + + 144 + + + + + 129 + + + + + 143 + + + + + 236 + + + + + 131 + + + YES + + + + + + 149 + + + + + 145 + + + + + 130 + + + + + 24 + + + YES + + + + + + + 23 + + + + + 420 + + + + + 490 + + + YES + + + + + + 491 + + + YES + + + + + + 492 + + + + + 494 + + + + + 556 + + + + + 634 + + + YES + + + + + + 635 + + + YES + + + + + + + + + + + + + + + 558 + + + YES + + + + + + 559 + + + + + 628 + + + YES + + + + + + 629 + + + + + 551 + + + YES + + + + + + 552 + + + + + 553 + + + YES + + + + + + 554 + + + + + 611 + + + YES + + + + + + 612 + + + + + 613 + + + YES + + + + + + 614 + + + + + 603 + + + YES + + + + + + 604 + + + + + 605 + + + YES + + + + + + 606 + + + + + 607 + + + YES + + + + + + 608 + + + + + 609 + + + YES + + + + + + 610 + + + + + 641 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + 129.IBPluginDependency + 130.IBPluginDependency + 131.IBPluginDependency + 134.IBPluginDependency + 136.IBPluginDependency + 143.IBPluginDependency + 144.IBPluginDependency + 145.IBPluginDependency + 149.IBPluginDependency + 150.IBPluginDependency + 19.IBPluginDependency + 23.IBPluginDependency + 236.IBPluginDependency + 24.IBPluginDependency + 29.IBPluginDependency + 420.IBPluginDependency + 490.IBPluginDependency + 491.IBPluginDependency + 492.IBPluginDependency + 494.IBPluginDependency + 551.IBPluginDependency + 552.IBPluginDependency + 553.IBPluginDependency + 554.IBPluginDependency + 556.IBPluginDependency + 556.showNotes + 558.IBPluginDependency + 558.IBViewIntegration.shadowBlurRadius + 558.IBViewIntegration.shadowColor + 558.IBViewIntegration.shadowOffsetHeight + 558.IBViewIntegration.shadowOffsetWidth + 559.IBPluginDependency + 56.IBPluginDependency + 57.IBPluginDependency + 58.IBPluginDependency + 603.IBPluginDependency + 604.IBPluginDependency + 605.IBPluginDependency + 606.IBPluginDependency + 607.IBPluginDependency + 608.IBPluginDependency + 609.IBPluginDependency + 610.IBPluginDependency + 611.IBPluginDependency + 612.IBPluginDependency + 613.IBPluginDependency + 614.IBPluginDependency + 628.IBPluginDependency + 629.IBPluginDependency + 634.IBPluginDependency + 634.IBWindowTemplateEditedContentRect + 634.NSWindowTemplate.visibleAtLaunch + 635.IBPluginDependency + 641.IBPluginDependency + 73.IBPluginDependency + 79.IBPluginDependency + 81.IBPluginDependency + 82.IBPluginDependency + 83.IBPluginDependency + + + YES + 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 + + + 3 + MAA + + + + 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 + {{21, 973}, {489, 149}} + + 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 + + + + + 642 + + + + YES + + Timer + NSObject + + YES + + YES + changeDigit: + clearNow: + startOrPause: + + + YES + NSButton + id + NSButton + + + + YES + + YES + changeDigit: + clearNow: + startOrPause: + + + YES + + changeDigit: + NSButton + + + clearNow: + id + + + startOrPause: + NSButton + + + + + YES + + YES + clear + hour1 + hour2 + minute1 + minute2 + second1 + second2 + start + + + YES + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + + + + YES + + YES + clear + hour1 + hour2 + minute1 + minute2 + second1 + second2 + start + + + YES + + clear + NSButton + + + hour1 + NSButton + + + hour2 + NSButton + + + minute1 + NSButton + + + minute2 + NSButton + + + second1 + NSButton + + + second2 + NSButton + + + start + NSButton + + + + + IBProjectSource + ./Classes/Timer.h + + + + TimrAppDelegate + NSObject + + YES + + YES + aWindow + timer + + + YES + NSWindow + Timer + + + + YES + + YES + aWindow + timer + + + YES + + aWindow + NSWindow + + + timer + Timer + + + + + IBProjectSource + ./Classes/TimrAppDelegate.h + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + 3 + + YES + + YES + NSMenuCheckmark + NSMenuMixedState + clear-button + colon + digit-0 + power-button + power-button-pressed + + + YES + {9, 8} + {7, 2} + {35, 35} + {10, 66} + {37, 66} + {120, 120} + {120, 120} + + + + diff --git a/Icon.icns b/Icon.icns new file mode 100644 index 0000000..067a32c Binary files /dev/null and b/Icon.icns differ diff --git a/README b/README new file mode 100644 index 0000000..6676338 --- /dev/null +++ b/README @@ -0,0 +1,3 @@ +== Timr + +Timr is a simple timer for OS X. diff --git a/Timer.h b/Timer.h new file mode 100644 index 0000000..06bad6a --- /dev/null +++ b/Timer.h @@ -0,0 +1,53 @@ +// +// Timer.h +// +// Created by Jeena on 15.12.09. +// Copyright 2009 Jeena Paradies. All rights reserved. +// + +#import + +@interface Timer : NSObject { + + IBOutlet NSButton *hour1; + IBOutlet NSButton *hour2; + IBOutlet NSButton *minute1; + IBOutlet NSButton *minute2; + IBOutlet NSButton *second1; + IBOutlet NSButton *second2; + IBOutlet NSButton *start; + IBOutlet NSButton *clear; + + NSMutableArray *digits; + NSImage *colon; + NSImage *no_colon; + NSSound *alarmSound; + NSSound *clickSound; + NSSound *clearSound; + + int remainingSeconds; + bool pause; + bool isAlarm; + bool cleared; + bool ongoing; + + NSTimer *repeatingTimer; + id action; +} + +@property (assign) NSTimer *repeatingTimer; + +- (id)init; +- (void)applicationLoaded:(id)sender; +- (void)alarm:(id)sender; +- (void)setDigitsForTime:(int)time; +- (void)clearNow; + +- (IBAction)startOrPause:(NSButton *)sender; +- (IBAction)changeDigit:(NSButton *)sender; +- (IBAction)clearNow:(id)sender; + +- (void)startRepeatingTimer:(id)sender; +- (void)stopRepeatingTimer:(id)sender; + +@end diff --git a/Timer.m b/Timer.m new file mode 100644 index 0000000..e26d1cc --- /dev/null +++ b/Timer.m @@ -0,0 +1,234 @@ +// +// Timer.m +// +// Created by Jeena on 15.12.09. +// Copyright 2009 Jeena Paradies. All rights reserved. +// sound from http://www.flashkit.com/soundfx/Electronic/Alarms/Alarm_cl-Liquid-8852/index.php +// click sound from http://free-loops.com/download-free-loop-7744.html +// + +#import "Timer.h" + +@implementation Timer + +@synthesize repeatingTimer; + +- (id)init { + + if (self = [super init]) { + + digits = [[NSMutableArray alloc] init]; + for(int i = 0; i <= 9; i++) { + [digits addObject:[NSImage imageNamed:[NSString stringWithFormat:@"digit-%i.png", i]]]; + } + + colon = [[NSImage imageNamed:@"colon.png"] retain]; + no_colon = [[NSImage imageNamed:@"no_colon.png"] retain]; + + alarmSound = [NSSound soundNamed:@"alarm.wav"]; + [alarmSound retain]; + [alarmSound setLoops:YES]; + [alarmSound setVolume:1]; + + clickSound = [NSSound soundNamed:@"click.wav"]; + [clickSound retain]; + [clickSound setLoops:NO]; + [clickSound setVolume:0.2]; + + clearSound = [NSSound soundNamed:@"clear.wav"]; + [clearSound retain]; + [clearSound setLoops:NO]; + [clearSound setVolume:0.2]; + + remainingSeconds = 0; + isAlarm = NO; + cleared = NO; + ongoing = NO; + + [clearSound play]; + } + + return self; +} + +- (void)dealloc { + + [digits release]; + [colon release]; + [no_colon release]; + [clickSound release]; + [clearSound release]; + + [super dealloc]; + +} + +- (void)applicationLoaded:(id)sender { + [(NSButtonCell *)[hour1 cell] setHighlightsBy:NSContentsCellMask]; + [(NSButtonCell *)[hour2 cell] setHighlightsBy:NSContentsCellMask]; + [(NSButtonCell *)[minute1 cell] setHighlightsBy:NSContentsCellMask]; + [(NSButtonCell *)[minute2 cell] setHighlightsBy:NSContentsCellMask]; + [(NSButtonCell *)[second1 cell] setHighlightsBy:NSContentsCellMask]; + [(NSButtonCell *)[second2 cell] setHighlightsBy:NSContentsCellMask]; + [(NSButtonCell *)[start cell] setHighlightsBy:NSContentsCellMask]; + [(NSButtonCell *)[clear cell] setHighlightsBy:NSContentsCellMask]; + [self clearNow]; +} + + +- (IBAction)startOrPause:(NSButton *)sender { + + [clickSound play]; + + if (isAlarm) { + [self stopRepeatingTimer:self]; + [self clearNow]; + ongoing = NO; + } else { + + if (!ongoing) { + [self startRepeatingTimer:self]; + [clear setTransparent:YES]; + ongoing = YES; + cleared = NO; + } else { + [self stopRepeatingTimer:self]; + [clear setTransparent:NO]; + ongoing = NO; + } + } +} + +- (void)clearNow:(id)sender { + [self clearNow]; + [clear setTransparent:YES]; + [clearSound play]; + [[[NSApplication sharedApplication] dockTile] setBadgeLabel:nil]; +} + +- (void)clearNow { + remainingSeconds = [[NSUserDefaults standardUserDefaults] integerForKey:@"defaultTime"]; + [self setDigitsForTime:remainingSeconds]; + cleared = YES; + [[[NSApplication sharedApplication] dockTile] setBadgeLabel:nil]; +} + + +- (void)tick:(NSTimer*)theTimer { + + [self setDigitsForTime:remainingSeconds]; + + remainingSeconds -= 1; + + if (remainingSeconds < 0) { + [theTimer invalidate]; + self.repeatingTimer = nil; + [self alarm:self]; + cleared = NO; + } +} + +- (void)setDigitsForTime:(int)time { + + int hd2, hd1, md2, md1, sd2, sd1, hours, minutes, seconds; + + hours = time / 3600; + hd1 = hours % 10; + hd2 = (hours - hd1) / 10; + + minutes = (time - (hours * 3600)) / 60; + md1 = minutes % 10; + md2 = (minutes - md1) / 10; + + seconds = time - (hours * 3600) - (minutes * 60); + sd1 = seconds % 10; + sd2 = (seconds - sd1) / 10; + + hour2.image = [digits objectAtIndex:hd2]; + hour1.image = [digits objectAtIndex:hd1]; + minute2.image = [digits objectAtIndex:md2]; + minute1.image = [digits objectAtIndex:md1]; + second2.image = [digits objectAtIndex:sd2]; + second1.image = [digits objectAtIndex:sd1]; + + + NSString *badge = [NSString stringWithFormat:@"%i%i:%i%i", hd2, hd1, md2, md1]; + [[[NSApplication sharedApplication] dockTile] setBadgeLabel:badge]; + +} + +- (void)alarm:(id)sender { + + isAlarm = YES; + + if (cleared == NO) { + [alarmSound play]; + [self performSelector:@selector(alarm:) withObject:self afterDelay:1]; + } else { + [alarmSound stop]; + isAlarm = NO; + } + +} + +- (void)startRepeatingTimer:(id)sender { + NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1 + target:self selector:@selector(tick:) + userInfo:nil repeats:YES]; + self.repeatingTimer = timer; + action = [[NSProcessInfo processInfo] beginActivityWithOptions:NSActivityUserInitiated reason:@"Timr needs to run every second"]; + [action retain]; +} + +- (void)stopRepeatingTimer:(id)sender { + [repeatingTimer invalidate]; + self.repeatingTimer = nil; + [[NSProcessInfo processInfo] endActivity:action]; + [action release]; +} + +- (IBAction)changeDigit:(NSButton *)sender { + + if (repeatingTimer == nil) { + + [clickSound play]; + + int time = remainingSeconds; + + int hd2, hd1, md2, md1, sd2, sd1, hours, minutes, seconds; + + hours = time / 3600; + hd1 = hours % 10; + hd2 = (hours - hd1) / 10; + + minutes = (time - (hours * 3600)) / 60; + md1 = minutes % 10; + md2 = (minutes - md1) / 10; + + seconds = time - (hours * 3600) - (minutes * 60); + sd1 = seconds % 10; + sd2 = (seconds - sd1) / 10; + + if (sender == hour2) { + hd2 = (hd2 + 1) % 10; + } else if (sender == hour1) { + hd1 = (hd1 + 1) % 10; + } else if (sender == minute2) { + md2 = (md2 + 1) % 6; + } else if (sender == minute1) { + md1 = (md1 + 1) % 10; + } else if (sender == second2) { + sd2 = (sd2 + 1) % 6; + } else if (sender == second1) { + sd1 = (sd1 + 1) % 10; + } + + remainingSeconds = hd2 * 3600 * 10 + hd1 * 3600 + md2 * 60 * 10 + md1 * 60 + sd2 * 10 + sd1; + + [[NSUserDefaults standardUserDefaults] setInteger:remainingSeconds forKey:@"defaultTime"]; + [self clearNow]; + } + +} + +@end diff --git a/Timr-Info.plist b/Timr-Info.plist new file mode 100644 index 0000000..0389bf1 --- /dev/null +++ b/Timr-Info.plist @@ -0,0 +1,34 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + Icon.icns + CFBundleIdentifier + net.jeena.apps.Timr + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.1 + LSApplicationCategoryType + public.app-category.utilities + LSMinimumSystemVersion + 10.5 + NSMainNibFile + MainMenu + NSPrincipalClass + NSApplication + + diff --git a/Timr.xcodeproj/jeena.mode1v3 b/Timr.xcodeproj/jeena.mode1v3 new file mode 100644 index 0000000..a46f105 --- /dev/null +++ b/Timr.xcodeproj/jeena.mode1v3 @@ -0,0 +1,1400 @@ + + + + + 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 + 1FB348AE10D7B81C003E34A4 + XCBarModuleItemNames + + XCBarModuleItems + + + FirstTimeWindowDisplayed + + Identifier + com.apple.perspectives.project.mode1v3 + MajorVersion + 33 + MinorVersion + 0 + Name + Default + Notifications + + OpenEditors + + PerspectiveWidths + + -1 + -1 + + Perspectives + + + ChosenToolbarItems + + active-combo-popup + action + NSToolbarFlexibleSpaceItem + build-and-go + com.apple.ide.PBXToolbarStopButton + get-info + NSToolbarFlexibleSpaceItem + com.apple.pbx.toolbar.searchfield + + ControllerClassBaseName + + IconName + WindowOfProjectWithEditor + Identifier + perspective.project + IsVertical + + Layout + + + BecomeActive + + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 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 + 1F4C18C310D84ABF0002BD95 + 1F4C160610D7BF030002BD95 + 1C37FBAC04509CD000000102 + 1C37FABC05509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 15 + 9 + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {186, 1060}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + XCSharingToken + com.apple.Xcode.GFSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {203, 1078}} + GroupTreeTableConfiguration + + MainColumn + 186 + + RubberWindowFrame + 20 299 1118 1119 0 0 2560 1418 + + Module + PBXSmartGroupTreeModule + Proportion + 203pt + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20306471E060097A5F4 + PBXProjectModuleLabel + digit-5.png + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CE0B20406471E060097A5F4 + PBXProjectModuleLabel + digit-5.png + _historyCapacity + 0 + bookmark + 1F12DEC612D7AD0B00A4538A + history + + 1F4C192710D854F20002BD95 + 1F4C192810D854F20002BD95 + 1F4F442C10D85CDB00B3E297 + 1F4F442D10D85CDB00B3E297 + 1F4F442E10D85CDB00B3E297 + 1F4F442F10D85CDB00B3E297 + 1F4F443010D85CDB00B3E297 + 1F12DEC412D7AD0B00A4538A + 1F12DEC512D7AD0B00A4538A + + + SplitCount + 1 + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {910, 739}} + RubberWindowFrame + 20 299 1118 1119 0 0 2560 1418 + + Module + PBXNavigatorGroup + Proportion + 739pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CE0B20506471E060097A5F4 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{0, 744}, {910, 334}} + RubberWindowFrame + 20 299 1118 1119 0 0 2560 1418 + + Module + XCDetailModule + Proportion + 334pt + + + Proportion + 910pt + + + Name + Project + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + XCModuleDock + PBXNavigatorGroup + XCDetailModule + + TableOfContents + + 1F12DE5712D75D8100A4538A + 1CE0B1FE06471DED0097A5F4 + 1F12DE5812D75D8100A4538A + 1CE0B20306471E060097A5F4 + 1CE0B20506471E060097A5F4 + + ToolbarConfigUserDefaultsMinorVersion + 2 + 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 + ToolbarConfigUserDefaultsMinorVersion + 2 + ToolbarDisplayMode + 1 + ToolbarIsVisible + + ToolbarSizeMode + 1 + 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 + + 1F12DECE12D7AD0B00A4538A + 1F12DECF12D7AD0B00A4538A + 1C78EAAD065D492600B07095 + 1CD10A99069EF8BA00B06720 + 1FB348AF10D7B81C003E34A4 + /Users/jeena/Projects/Timr/Timr.xcodeproj + + WindowString + 20 299 1118 1119 0 0 2560 1418 + WindowToolsV3 + + + FirstTimeWindowDisplayed + + Identifier + windowTool.build + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528F0623707200166675 + PBXProjectModuleLabel + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {500, 218}} + RubberWindowFrame + 1648 206 500 500 0 0 2560 1418 + + Module + PBXNavigatorGroup + Proportion + 218pt + + + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build Results + XCBuildResultsTrigger_Collapse + 1021 + XCBuildResultsTrigger_Open + 1011 + + GeometryConfiguration + + Frame + {{0, 223}, {500, 236}} + RubberWindowFrame + 1648 206 500 500 0 0 2560 1418 + + Module + PBXBuildResultsModule + Proportion + 236pt + + + Proportion + 459pt + + + Name + Build Results + ServiceClasses + + PBXBuildResultsModule + + StatusbarIsVisible + + TableOfContents + + 1FB348AF10D7B81C003E34A4 + 1F12DE5912D75D8100A4538A + 1CD0528F0623707200166675 + XCMainBuildResultsModuleGUID + + ToolbarConfiguration + xcode.toolbar.config.buildV3 + WindowContentMinSize + 486 300 + WindowString + 1648 206 500 500 0 0 2560 1418 + WindowToolGUID + 1FB348AF10D7B81C003E34A4 + WindowToolIsVisible + + + + FirstTimeWindowDisplayed + + Identifier + windowTool.debugger + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {316, 198}} + {{316, 0}, {378, 198}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {694, 198}} + {{0, 198}, {694, 183}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1C162984064C10D400B95A72 + PBXProjectModuleLabel + Debug - GLUTExamples (Underwater) + + GeometryConfiguration + + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 0}, {694, 381}} + PBXDebugSessionStackFrameViewKey + + DebugVariablesTableConfiguration + + Name + 120 + Value + 85 + Summary + 148 + + Frame + {{316, 0}, {378, 198}} + RubberWindowFrame + 1734 827 694 422 0 0 2560 1418 + + RubberWindowFrame + 1734 827 694 422 0 0 2560 1418 + + Module + PBXDebugSessionModule + Proportion + 381pt + + + Proportion + 381pt + + + Name + Debugger + ServiceClasses + + PBXDebugSessionModule + + StatusbarIsVisible + + TableOfContents + + 1CD10A99069EF8BA00B06720 + 1F12DEC712D7AD0B00A4538A + 1C162984064C10D400B95A72 + 1F12DEC812D7AD0B00A4538A + 1F12DEC912D7AD0B00A4538A + 1F12DECA12D7AD0B00A4538A + 1F12DECB12D7AD0B00A4538A + 1F12DECC12D7AD0B00A4538A + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + WindowString + 1734 827 694 422 0 0 2560 1418 + WindowToolGUID + 1CD10A99069EF8BA00B06720 + WindowToolIsVisible + + + + FirstTimeWindowDisplayed + + Identifier + windowTool.find + IsVertical + + Layout + + + Dock + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CDD528C0622207200134675 + PBXProjectModuleLabel + + StatusBarVisibility + + + GeometryConfiguration + + Frame + {{0, 0}, {781, 212}} + RubberWindowFrame + 32 685 781 470 0 0 1920 1178 + + Module + PBXNavigatorGroup + Proportion + 781pt + + + Proportion + 212pt + + + BecomeActive + + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528E0623707200166675 + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{0, 217}, {781, 212}} + RubberWindowFrame + 32 685 781 470 0 0 1920 1178 + + Module + PBXProjectFindModule + Proportion + 212pt + + + Proportion + 429pt + + + Name + Project Find + ServiceClasses + + PBXProjectFindModule + + StatusbarIsVisible + + TableOfContents + + 1C530D57069F1CE1000CFCEE + 1F4F442610D8577E00B3E297 + 1F4F442710D8577E00B3E297 + 1CDD528C0622207200134675 + 1CD0528E0623707200166675 + + WindowString + 32 685 781 470 0 0 1920 1178 + WindowToolGUID + 1C530D57069F1CE1000CFCEE + WindowToolIsVisible + + + + Identifier + MENUSEPARATOR + + + FirstTimeWindowDisplayed + + Identifier + windowTool.debuggerConsole + IsVertical + + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAAC065D492600B07095 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {629, 605}} + RubberWindowFrame + 56 414 629 646 0 0 2560 1418 + + Module + PBXDebugCLIModule + Proportion + 605pt + + + Proportion + 605pt + + + Name + Debugger Console + ServiceClasses + + PBXDebugCLIModule + + StatusbarIsVisible + + TableOfContents + + 1C78EAAD065D492600B07095 + 1F12DECD12D7AD0B00A4538A + 1C78EAAC065D492600B07095 + + ToolbarConfiguration + xcode.toolbar.config.consoleV3 + WindowString + 56 414 629 646 0 0 2560 1418 + 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 + + + Identifier + windowTool.breakpoints + IsVertical + 0 + Layout + + + Dock + + + BecomeActive + 1 + 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 + 0 + + GeometryConfiguration + + Frame + {{0, 0}, {185, 368}} + GroupTreeTableConfiguration + + MainColumn + 168 + + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 185pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA1AED706398EBD00589147 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{190, 0}, {554, 368}} + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + XCDetailModule + Proportion + 554pt + + + Proportion + 368pt + + + MajorVersion + 3 + MinorVersion + 0 + Name + Breakpoints + ServiceClasses + + PBXSmartGroupTreeModule + XCDetailModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CDDB66807F98D9800BB5817 + 1CDDB66907F98D9800BB5817 + 1CE0B1FE06471DED0097A5F4 + 1CA1AED706398EBD00589147 + + ToolbarConfiguration + xcode.toolbar.config.breakpointsV3 + WindowString + 315 424 744 409 0 0 1440 878 + WindowToolGUID + 1CDDB66807F98D9800BB5817 + WindowToolIsVisible + 1 + + + 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/Timr.xcodeproj/jeena.pbxuser b/Timr.xcodeproj/jeena.pbxuser new file mode 100644 index 0000000..a75dee0 --- /dev/null +++ b/Timr.xcodeproj/jeena.pbxuser @@ -0,0 +1,275 @@ +// !$*UTF8*$! +{ + 089C165DFE840E0CC02AAC07 /* English */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {849, 696}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRange = "{0, 45}"; + sepNavWindowFrame = "{{38, 70}, {1622, 1082}}"; + }; + }; + 1F12DEC412D7AD0B00A4538A /* PlistBookmark */ = { + isa = PlistBookmark; + fRef = 8D1107310486CEB800E47090 /* Timr-Info.plist */; + fallbackIsa = PBXBookmark; + isK = 0; + kPath = ( + ); + name = "/Users/jeena/Projects/Timr/Timr-Info.plist"; + rLen = 0; + rLoc = 9223372036854775807; + }; + 1F12DEC512D7AD0B00A4538A /* PBXBookmark */ = { + isa = PBXBookmark; + fRef = 1F4C162C10D7CE3B0002BD95 /* digit-5.png */; + }; + 1F12DEC612D7AD0B00A4538A /* PBXBookmark */ = { + isa = PBXBookmark; + fRef = 1F4C162C10D7CE3B0002BD95 /* digit-5.png */; + }; + 1F4C161810D7C99B0002BD95 /* Timer.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {849, 1016}}"; + sepNavSelRange = "{1003, 0}"; + sepNavVisRange = "{0, 1041}"; + }; + }; + 1F4C161910D7C99B0002BD95 /* Timer.m */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {849, 3435}}"; + sepNavSelRange = "{2563, 0}"; + sepNavVisRange = "{1595, 1529}"; + }; + }; + 1F4C192710D854F20002BD95 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 1F4C161910D7C99B0002BD95 /* Timer.m */; + name = "Timer.m: 111"; + rLen = 0; + rLoc = 2616; + rType = 0; + vrLen = 1447; + vrLoc = 2471; + }; + 1F4C192810D854F20002BD95 /* PBXBookmark */ = { + isa = PBXBookmark; + fRef = 1F4C192110D853BA0002BD95 /* Icon.icns */; + }; + 1F4F442C10D85CDB00B3E297 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 1F4C161810D7C99B0002BD95 /* Timer.h */; + name = "Timer.h: 11"; + rLen = 0; + rLoc = 168; + rType = 0; + vrLen = 905; + vrLoc = 0; + }; + 1F4F442D10D85CDB00B3E297 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 256AC3D80F4B6AC300CF3369 /* TimrAppDelegate.h */; + name = "TimrAppDelegate.h: 7"; + rLen = 0; + rLoc = 129; + rType = 0; + vrLen = 480; + vrLoc = 0; + }; + 1F4F442E10D85CDB00B3E297 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 256AC3D90F4B6AC300CF3369 /* TimrAppDelegate.m */; + name = "TimrAppDelegate.m: 2"; + rLen = 0; + rLoc = 7; + rType = 0; + vrLen = 390; + vrLoc = 0; + }; + 1F4F442F10D85CDB00B3E297 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 29B97316FDCFA39411CA2CEA /* main.m */; + name = "main.m: 9"; + rLen = 0; + rLoc = 132; + rType = 0; + vrLen = 241; + vrLoc = 0; + }; + 1F4F443010D85CDB00B3E297 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 089C165DFE840E0CC02AAC07 /* English */; + name = "InfoPlist.strings: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 45; + vrLoc = 0; + }; + 1FB3489F10D7B805003E34A4 /* Timr */ = { + 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 = Timr; + savedGlobals = { + }; + showTypeColumn = 0; + sourceDirectories = ( + ); + variableFormatDictionary = { + }; + }; + 1FB348B110D7B81C003E34A4 /* Source Control */ = { + isa = PBXSourceControlManager; + fallbackIsa = XCSourceControlManager; + isSCMEnabled = 0; + scmConfiguration = { + repositoryNamesForRoots = { + "" = ""; + }; + }; + }; + 1FB348B210D7B81C003E34A4 /* Code sense */ = { + isa = PBXCodeSenseManager; + indexTemplatePath = ""; + }; + 256AC3D80F4B6AC300CF3369 /* TimrAppDelegate.h */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {849, 713}}"; + sepNavSelRange = "{561, 0}"; + sepNavVisRange = "{0, 574}"; + }; + }; + 256AC3D90F4B6AC300CF3369 /* TimrAppDelegate.m */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {849, 690}}"; + sepNavSelRange = "{448, 0}"; + sepNavVisRange = "{0, 493}"; + }; + }; + 29B97313FDCFA39411CA2CEA /* Project object */ = { + activeBuildConfigurationName = Release; + activeExecutable = 1FB3489F10D7B805003E34A4 /* Timr */; + activeTarget = 8D1107260486CEB800E47090 /* Timr */; + addToTargets = ( + 8D1107260486CEB800E47090 /* Timr */, + ); + codeSenseManager = 1FB348B210D7B81C003E34A4 /* Code sense */; + executables = ( + 1FB3489F10D7B805003E34A4 /* Timr */, + ); + perUserDictionary = { + PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; + PBXFileTableDataSourceColumnWidthsKey = ( + 20, + 671, + 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.PBXFileTableDataSource3.PBXFindDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXFindDataSource_LocationID; + PBXFileTableDataSourceColumnWidthsKey = ( + 200, + 685, + ); + PBXFileTableDataSourceColumnsKey = ( + PBXFindDataSource_MessageID, + PBXFindDataSource_LocationID, + ); + }; + PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; + PBXFileTableDataSourceColumnWidthsKey = ( + 20, + 631, + 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 = 316104005; + PBXWorkspaceStateSaveDate = 316104005; + }; + perUserProjectItems = { + 1F12DEC412D7AD0B00A4538A /* PlistBookmark */ = 1F12DEC412D7AD0B00A4538A /* PlistBookmark */; + 1F12DEC512D7AD0B00A4538A /* PBXBookmark */ = 1F12DEC512D7AD0B00A4538A /* PBXBookmark */; + 1F12DEC612D7AD0B00A4538A /* PBXBookmark */ = 1F12DEC612D7AD0B00A4538A /* PBXBookmark */; + 1F4C192710D854F20002BD95 /* PBXTextBookmark */ = 1F4C192710D854F20002BD95 /* PBXTextBookmark */; + 1F4C192810D854F20002BD95 /* PBXBookmark */ = 1F4C192810D854F20002BD95 /* PBXBookmark */; + 1F4F442C10D85CDB00B3E297 /* PBXTextBookmark */ = 1F4F442C10D85CDB00B3E297 /* PBXTextBookmark */; + 1F4F442D10D85CDB00B3E297 /* PBXTextBookmark */ = 1F4F442D10D85CDB00B3E297 /* PBXTextBookmark */; + 1F4F442E10D85CDB00B3E297 /* PBXTextBookmark */ = 1F4F442E10D85CDB00B3E297 /* PBXTextBookmark */; + 1F4F442F10D85CDB00B3E297 /* PBXTextBookmark */ = 1F4F442F10D85CDB00B3E297 /* PBXTextBookmark */; + 1F4F443010D85CDB00B3E297 /* PBXTextBookmark */ = 1F4F443010D85CDB00B3E297 /* PBXTextBookmark */; + }; + sourceControlManager = 1FB348B110D7B81C003E34A4 /* Source Control */; + userBuildSettings = { + }; + }; + 29B97316FDCFA39411CA2CEA /* main.m */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {849, 696}}"; + sepNavSelRange = "{132, 0}"; + sepNavVisRange = "{0, 241}"; + }; + }; + 8D1107260486CEB800E47090 /* Timr */ = { + activeExec = 0; + executables = ( + 1FB3489F10D7B805003E34A4 /* Timr */, + ); + }; + 8D1107310486CEB800E47090 /* Timr-Info.plist */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {849, 696}}"; + sepNavSelRange = "{767, 24}"; + sepNavVisRange = "{0, 981}"; + }; + }; +} diff --git a/Timr.xcodeproj/project.pbxproj b/Timr.xcodeproj/project.pbxproj new file mode 100644 index 0000000..d5f66d8 --- /dev/null +++ b/Timr.xcodeproj/project.pbxproj @@ -0,0 +1,397 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1DDD58140DA1D0A300B32029 /* MainMenu.xib */; }; + 1F12DE5C12D75DB600A4538A /* power-button.png in Resources */ = {isa = PBXBuildFile; fileRef = 1F12DE5B12D75DB600A4538A /* power-button.png */; }; + 1F12DE6612D7671600A4538A /* power-button-pressed.png in Resources */ = {isa = PBXBuildFile; fileRef = 1F12DE6512D7671600A4538A /* power-button-pressed.png */; }; + 1F4C161A10D7C99B0002BD95 /* Timer.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F4C161910D7C99B0002BD95 /* Timer.m */; }; + 1F4C163110D7CE3B0002BD95 /* colon.png in Resources */ = {isa = PBXBuildFile; fileRef = 1F4C162610D7CE3B0002BD95 /* colon.png */; }; + 1F4C163210D7CE3B0002BD95 /* digit-0.png in Resources */ = {isa = PBXBuildFile; fileRef = 1F4C162710D7CE3B0002BD95 /* digit-0.png */; }; + 1F4C163310D7CE3B0002BD95 /* digit-1.png in Resources */ = {isa = PBXBuildFile; fileRef = 1F4C162810D7CE3B0002BD95 /* digit-1.png */; }; + 1F4C163410D7CE3B0002BD95 /* digit-2.png in Resources */ = {isa = PBXBuildFile; fileRef = 1F4C162910D7CE3B0002BD95 /* digit-2.png */; }; + 1F4C163510D7CE3B0002BD95 /* digit-3.png in Resources */ = {isa = PBXBuildFile; fileRef = 1F4C162A10D7CE3B0002BD95 /* digit-3.png */; }; + 1F4C163610D7CE3B0002BD95 /* digit-4.png in Resources */ = {isa = PBXBuildFile; fileRef = 1F4C162B10D7CE3B0002BD95 /* digit-4.png */; }; + 1F4C163710D7CE3B0002BD95 /* digit-5.png in Resources */ = {isa = PBXBuildFile; fileRef = 1F4C162C10D7CE3B0002BD95 /* digit-5.png */; }; + 1F4C163810D7CE3B0002BD95 /* digit-6.png in Resources */ = {isa = PBXBuildFile; fileRef = 1F4C162D10D7CE3B0002BD95 /* digit-6.png */; }; + 1F4C163910D7CE3B0002BD95 /* digit-7.png in Resources */ = {isa = PBXBuildFile; fileRef = 1F4C162E10D7CE3B0002BD95 /* digit-7.png */; }; + 1F4C163A10D7CE3B0002BD95 /* digit-8.png in Resources */ = {isa = PBXBuildFile; fileRef = 1F4C162F10D7CE3B0002BD95 /* digit-8.png */; }; + 1F4C163B10D7CE3B0002BD95 /* no_colon.png in Resources */ = {isa = PBXBuildFile; fileRef = 1F4C163010D7CE3B0002BD95 /* no_colon.png */; }; + 1F4C16BE10D7F0C30002BD95 /* digit-9.png in Resources */ = {isa = PBXBuildFile; fileRef = 1F4C16BD10D7F0C30002BD95 /* digit-9.png */; }; + 1F4C176610D810D50002BD95 /* alarm.wav in Resources */ = {isa = PBXBuildFile; fileRef = 1F4C176510D810D50002BD95 /* alarm.wav */; }; + 1F4C18B010D847310002BD95 /* clear-button.png in Resources */ = {isa = PBXBuildFile; fileRef = 1F4C18AF10D847310002BD95 /* clear-button.png */; }; + 1F4C18C510D84AE20002BD95 /* click.wav in Resources */ = {isa = PBXBuildFile; fileRef = 1F4C18C410D84AE20002BD95 /* click.wav */; }; + 1F4C190E10D851D70002BD95 /* clear.wav in Resources */ = {isa = PBXBuildFile; fileRef = 1F4C190D10D851D70002BD95 /* clear.wav */; }; + 1F4C192210D853BA0002BD95 /* Icon.icns in Resources */ = {isa = PBXBuildFile; fileRef = 1F4C192110D853BA0002BD95 /* Icon.icns */; }; + 1F85890311C45E5300AEB6A0 /* wood.png in Resources */ = {isa = PBXBuildFile; fileRef = 1F85890211C45E5300AEB6A0 /* wood.png */; }; + 256AC3DA0F4B6AC300CF3369 /* TimrAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 256AC3D90F4B6AC300CF3369 /* TimrAppDelegate.m */; }; + 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 = 4; 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 = ""; }; + 1F12DE5B12D75DB600A4538A /* power-button.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "power-button.png"; sourceTree = ""; }; + 1F12DE6512D7671600A4538A /* power-button-pressed.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "power-button-pressed.png"; sourceTree = ""; }; + 1F4C161810D7C99B0002BD95 /* Timer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Timer.h; sourceTree = ""; }; + 1F4C161910D7C99B0002BD95 /* Timer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Timer.m; sourceTree = ""; }; + 1F4C162610D7CE3B0002BD95 /* colon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = colon.png; sourceTree = ""; }; + 1F4C162710D7CE3B0002BD95 /* digit-0.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "digit-0.png"; sourceTree = ""; }; + 1F4C162810D7CE3B0002BD95 /* digit-1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "digit-1.png"; sourceTree = ""; }; + 1F4C162910D7CE3B0002BD95 /* digit-2.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "digit-2.png"; sourceTree = ""; }; + 1F4C162A10D7CE3B0002BD95 /* digit-3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "digit-3.png"; sourceTree = ""; }; + 1F4C162B10D7CE3B0002BD95 /* digit-4.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "digit-4.png"; sourceTree = ""; }; + 1F4C162C10D7CE3B0002BD95 /* digit-5.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "digit-5.png"; sourceTree = ""; }; + 1F4C162D10D7CE3B0002BD95 /* digit-6.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "digit-6.png"; sourceTree = ""; }; + 1F4C162E10D7CE3B0002BD95 /* digit-7.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "digit-7.png"; sourceTree = ""; }; + 1F4C162F10D7CE3B0002BD95 /* digit-8.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "digit-8.png"; sourceTree = ""; }; + 1F4C163010D7CE3B0002BD95 /* no_colon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = no_colon.png; sourceTree = ""; }; + 1F4C16BD10D7F0C30002BD95 /* digit-9.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "digit-9.png"; sourceTree = ""; }; + 1F4C176510D810D50002BD95 /* alarm.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = alarm.wav; sourceTree = ""; }; + 1F4C18AF10D847310002BD95 /* clear-button.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "clear-button.png"; sourceTree = ""; }; + 1F4C18C410D84AE20002BD95 /* click.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = click.wav; sourceTree = ""; }; + 1F4C190D10D851D70002BD95 /* clear.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = clear.wav; sourceTree = ""; }; + 1F4C192110D853BA0002BD95 /* Icon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = Icon.icns; sourceTree = ""; }; + 1F85890211C45E5300AEB6A0 /* wood.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = wood.png; sourceTree = ""; }; + 256AC3D80F4B6AC300CF3369 /* TimrAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TimrAppDelegate.h; sourceTree = ""; }; + 256AC3D90F4B6AC300CF3369 /* TimrAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TimrAppDelegate.m; sourceTree = ""; }; + 256AC3F00F4B6AF500CF3369 /* Timr_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Timr_Prefix.pch; 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 = ""; }; + 8D1107310486CEB800E47090 /* Timr-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Timr-Info.plist"; sourceTree = ""; }; + 8D1107320486CEB800E47090 /* Timr.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Timr.app; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 8D11072E0486CEB800E47090 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 080E96DDFE201D6D7F000001 /* Classes */ = { + isa = PBXGroup; + children = ( + 1F4C161810D7C99B0002BD95 /* Timer.h */, + 1F4C161910D7C99B0002BD95 /* Timer.m */, + 256AC3D80F4B6AC300CF3369 /* TimrAppDelegate.h */, + 256AC3D90F4B6AC300CF3369 /* TimrAppDelegate.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 /* Timr.app */, + ); + name = Products; + sourceTree = ""; + }; + 1F4C160610D7BF030002BD95 /* Images */ = { + isa = PBXGroup; + children = ( + 1F12DE6512D7671600A4538A /* power-button-pressed.png */, + 1F12DE5B12D75DB600A4538A /* power-button.png */, + 1F85890211C45E5300AEB6A0 /* wood.png */, + 1F4C18AF10D847310002BD95 /* clear-button.png */, + 1F4C162610D7CE3B0002BD95 /* colon.png */, + 1F4C162710D7CE3B0002BD95 /* digit-0.png */, + 1F4C162810D7CE3B0002BD95 /* digit-1.png */, + 1F4C162910D7CE3B0002BD95 /* digit-2.png */, + 1F4C162A10D7CE3B0002BD95 /* digit-3.png */, + 1F4C162B10D7CE3B0002BD95 /* digit-4.png */, + 1F4C162C10D7CE3B0002BD95 /* digit-5.png */, + 1F4C162D10D7CE3B0002BD95 /* digit-6.png */, + 1F4C162E10D7CE3B0002BD95 /* digit-7.png */, + 1F4C162F10D7CE3B0002BD95 /* digit-8.png */, + 1F4C16BD10D7F0C30002BD95 /* digit-9.png */, + 1F4C163010D7CE3B0002BD95 /* no_colon.png */, + ); + name = Images; + sourceTree = ""; + }; + 1F4C18C310D84ABF0002BD95 /* sounds */ = { + isa = PBXGroup; + children = ( + 1F4C190D10D851D70002BD95 /* clear.wav */, + 1F4C18C410D84AE20002BD95 /* click.wav */, + 1F4C176510D810D50002BD95 /* alarm.wav */, + ); + name = sounds; + sourceTree = ""; + }; + 29B97314FDCFA39411CA2CEA /* Timr */ = { + isa = PBXGroup; + children = ( + 080E96DDFE201D6D7F000001 /* Classes */, + 29B97315FDCFA39411CA2CEA /* Other Sources */, + 29B97317FDCFA39411CA2CEA /* Resources */, + 29B97323FDCFA39411CA2CEA /* Frameworks */, + 19C28FACFE9D520D11CA2CBB /* Products */, + ); + name = Timr; + sourceTree = ""; + }; + 29B97315FDCFA39411CA2CEA /* Other Sources */ = { + isa = PBXGroup; + children = ( + 256AC3F00F4B6AF500CF3369 /* Timr_Prefix.pch */, + 29B97316FDCFA39411CA2CEA /* main.m */, + ); + name = "Other Sources"; + sourceTree = ""; + }; + 29B97317FDCFA39411CA2CEA /* Resources */ = { + isa = PBXGroup; + children = ( + 1F4C192110D853BA0002BD95 /* Icon.icns */, + 1F4C18C310D84ABF0002BD95 /* sounds */, + 1F4C160610D7BF030002BD95 /* Images */, + 8D1107310486CEB800E47090 /* Timr-Info.plist */, + 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */, + 1DDD58140DA1D0A300B32029 /* MainMenu.xib */, + ); + name = Resources; + sourceTree = ""; + }; + 29B97323FDCFA39411CA2CEA /* Frameworks */ = { + isa = PBXGroup; + children = ( + 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */, + 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 8D1107260486CEB800E47090 /* Timr */ = { + isa = PBXNativeTarget; + buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "Timr" */; + buildPhases = ( + 8D1107290486CEB800E47090 /* Resources */, + 8D11072C0486CEB800E47090 /* Sources */, + 8D11072E0486CEB800E47090 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Timr; + productInstallPath = "$(HOME)/Applications"; + productName = Timr; + productReference = 8D1107320486CEB800E47090 /* Timr.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 29B97313FDCFA39411CA2CEA /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0510; + }; + buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Timr" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 1; + knownRegions = ( + English, + Japanese, + French, + German, + ); + mainGroup = 29B97314FDCFA39411CA2CEA /* Timr */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 8D1107260486CEB800E47090 /* Timr */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 8D1107290486CEB800E47090 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */, + 1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */, + 1F4C163110D7CE3B0002BD95 /* colon.png in Resources */, + 1F4C163210D7CE3B0002BD95 /* digit-0.png in Resources */, + 1F4C163310D7CE3B0002BD95 /* digit-1.png in Resources */, + 1F4C163410D7CE3B0002BD95 /* digit-2.png in Resources */, + 1F4C163510D7CE3B0002BD95 /* digit-3.png in Resources */, + 1F4C163610D7CE3B0002BD95 /* digit-4.png in Resources */, + 1F4C163710D7CE3B0002BD95 /* digit-5.png in Resources */, + 1F4C163810D7CE3B0002BD95 /* digit-6.png in Resources */, + 1F4C163910D7CE3B0002BD95 /* digit-7.png in Resources */, + 1F4C163A10D7CE3B0002BD95 /* digit-8.png in Resources */, + 1F4C163B10D7CE3B0002BD95 /* no_colon.png in Resources */, + 1F4C16BE10D7F0C30002BD95 /* digit-9.png in Resources */, + 1F4C176610D810D50002BD95 /* alarm.wav in Resources */, + 1F4C18B010D847310002BD95 /* clear-button.png in Resources */, + 1F4C18C510D84AE20002BD95 /* click.wav in Resources */, + 1F4C190E10D851D70002BD95 /* clear.wav in Resources */, + 1F4C192210D853BA0002BD95 /* Icon.icns in Resources */, + 1F85890311C45E5300AEB6A0 /* wood.png in Resources */, + 1F12DE5C12D75DB600A4538A /* power-button.png in Resources */, + 1F12DE6612D7671600A4538A /* power-button-pressed.png in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 8D11072C0486CEB800E47090 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 8D11072D0486CEB800E47090 /* main.m in Sources */, + 256AC3DA0F4B6AC300CF3369 /* TimrAppDelegate.m in Sources */, + 1F4C161A10D7C99B0002BD95 /* Timer.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; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = Timr_Prefix.pch; + INFOPLIST_FILE = "Timr-Info.plist"; + INSTALL_PATH = "$(HOME)/Applications"; + MACOSX_DEPLOYMENT_TARGET = 10.5; + ONLY_ACTIVE_ARCH = NO; + PRODUCT_NAME = Timr; + SDKROOT = ""; + }; + name = Debug; + }; + C01FCF4C08A954540054247B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COMBINE_HIDPI_IMAGES = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_MODEL_TUNING = G5; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = Timr_Prefix.pch; + INFOPLIST_FILE = "Timr-Info.plist"; + INSTALL_PATH = "$(HOME)/Applications"; + MACOSX_DEPLOYMENT_TARGET = 10.5; + ONLY_ACTIVE_ARCH = NO; + PRODUCT_NAME = Timr; + SDKROOT = ""; + }; + name = Release; + }; + C01FCF4F08A954540054247B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = ""; + }; + name = Debug; + }; + C01FCF5008A954540054247B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + SDKROOT = ""; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "Timr" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C01FCF4B08A954540054247B /* Debug */, + C01FCF4C08A954540054247B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Timr" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C01FCF4F08A954540054247B /* Debug */, + C01FCF5008A954540054247B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; +} diff --git a/TimrAppDelegate.h b/TimrAppDelegate.h new file mode 100644 index 0000000..cf5d3aa --- /dev/null +++ b/TimrAppDelegate.h @@ -0,0 +1,27 @@ +// +// TimrAppDelegate.h +// Timr +// +// Created by Jeena on 15.12.09. +// Copyright 2009 Jeena Paradies. All rights reserved. +// + +#import +#import "Timer.h" + +#if (MAC_OS_X_VERSION_MAX_ALLOWED <= MAC_OS_X_VERSION_10_5) +@interface TimrAppDelegate : NSObject +#else +@interface TimrAppDelegate : NSObject +#endif +{ + IBOutlet NSWindow *window; + IBOutlet Timer *timer; + IBOutlet NSWindow *aWindow; +} + +@property (assign) IBOutlet NSWindow *window; +@property (assign) IBOutlet Timer *timer; +@property (assign) IBOutlet NSWindow *aWindow; + +@end diff --git a/TimrAppDelegate.m b/TimrAppDelegate.m new file mode 100644 index 0000000..e422ada --- /dev/null +++ b/TimrAppDelegate.m @@ -0,0 +1,24 @@ +// +// TimrAppDelegate.m +// Timr +// +// Created by Jeena on 15.12.09. +// Copyright 2009 Jeena Paradies. All rights reserved. +// + +#import "TimrAppDelegate.h" + +@implementation TimrAppDelegate + +@synthesize window, timer, aWindow; + +- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { + // Insert code here to initialize your application + [aWindow setBackgroundColor:[NSColor colorWithPatternImage:[NSImage imageNamed:@"wood.png"]]]; + [timer applicationLoaded:self]; + + [aWindow orderFront:self]; +} + + +@end diff --git a/Timr_Prefix.pch b/Timr_Prefix.pch new file mode 100644 index 0000000..494dda6 --- /dev/null +++ b/Timr_Prefix.pch @@ -0,0 +1,7 @@ +// +// Prefix header for all source files of the 'Timr' target in the 'Timr' project +// + +#ifdef __OBJC__ + #import +#endif diff --git a/alarm.wav b/alarm.wav new file mode 100644 index 0000000..3292424 Binary files /dev/null and b/alarm.wav differ diff --git a/button.psd b/button.psd new file mode 100644 index 0000000..8779662 Binary files /dev/null and b/button.psd differ diff --git a/clear-button.png b/clear-button.png new file mode 100644 index 0000000..22dde16 Binary files /dev/null and b/clear-button.png differ diff --git a/clear.wav b/clear.wav new file mode 100644 index 0000000..68a2665 Binary files /dev/null and b/clear.wav differ diff --git a/click.wav b/click.wav new file mode 100644 index 0000000..7e71f8c Binary files /dev/null and b/click.wav differ diff --git a/colon.png b/colon.png new file mode 100644 index 0000000..f3619b7 Binary files /dev/null and b/colon.png differ diff --git a/digit-0.png b/digit-0.png new file mode 100644 index 0000000..11eef8f Binary files /dev/null and b/digit-0.png differ diff --git a/digit-1.png b/digit-1.png new file mode 100644 index 0000000..0f81e35 Binary files /dev/null and b/digit-1.png differ diff --git a/digit-2.png b/digit-2.png new file mode 100644 index 0000000..5da9509 Binary files /dev/null and b/digit-2.png differ diff --git a/digit-3.png b/digit-3.png new file mode 100644 index 0000000..4dce96d Binary files /dev/null and b/digit-3.png differ diff --git a/digit-4.png b/digit-4.png new file mode 100644 index 0000000..f612b77 Binary files /dev/null and b/digit-4.png differ diff --git a/digit-5.png b/digit-5.png new file mode 100644 index 0000000..01311d1 Binary files /dev/null and b/digit-5.png differ diff --git a/digit-6.png b/digit-6.png new file mode 100644 index 0000000..9a8ea58 Binary files /dev/null and b/digit-6.png differ diff --git a/digit-7.png b/digit-7.png new file mode 100644 index 0000000..1541121 Binary files /dev/null and b/digit-7.png differ diff --git a/digit-8.png b/digit-8.png new file mode 100644 index 0000000..2600e3a Binary files /dev/null and b/digit-8.png differ diff --git a/digit-9.png b/digit-9.png new file mode 100644 index 0000000..79daf0c Binary files /dev/null and b/digit-9.png differ diff --git a/index.html b/index.html deleted file mode 100644 index 0f2e28c..0000000 --- a/index.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - jeena/Timr @ GitHub - - - - - - - -
-
Fork me on GitHub
- -
- - -
- -

Timr

-

Timr is a simple timer for OS X in a kind of a retro look.

- -

You can select the time by clicking on the digits, start it by clicking on the start button, - which turns to pause, and in pause mode you can reset the timer by clicking on the little "C" - which appears under the big start button.

- -

Timr Screenshot

- -

Dependencies

-

OS X — Mac OS X

- -

Install

-

Download, unzip and move it to your Application folder.

- -

License

-

MIT

- -

Contact

-

Jeena Paradies (spam@jeenaparadies.net)

- -

Download

-

- You can download this project in - zip format. -

-

You can also clone the project with Git - by running: -

$ git clone git://github.com/jeena/Timr
-

- -
- - \ No newline at end of file diff --git a/main.m b/main.m new file mode 100644 index 0000000..6836316 --- /dev/null +++ b/main.m @@ -0,0 +1,14 @@ +// +// main.m +// Timr +// +// Created by Jeena on 15.12.09. +// Copyright 2009 Jeena Paradies. All rights reserved. +// + +#import + +int main(int argc, char *argv[]) +{ + return NSApplicationMain(argc, (const char **) argv); +} diff --git a/no_colon.png b/no_colon.png new file mode 100644 index 0000000..19105e5 Binary files /dev/null and b/no_colon.png differ diff --git a/power-button-pressed.png b/power-button-pressed.png new file mode 100644 index 0000000..5586eed Binary files /dev/null and b/power-button-pressed.png differ diff --git a/power-button.png b/power-button.png new file mode 100644 index 0000000..1a6857b Binary files /dev/null and b/power-button.png differ diff --git a/wood.png b/wood.png new file mode 100644 index 0000000..ff3b71e Binary files /dev/null and b/wood.png differ