Compare commits
No commits in common. "gh-pages" and "master" have entirely different histories.
2
English.lproj/InfoPlist.strings
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
/* Localized versions of Info.plist keys */
|
||||||
|
|
1586
English.lproj/MainMenu.xib
Normal file
BIN
Icon.icns
Normal file
3
README
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
== Timr
|
||||||
|
|
||||||
|
Timr is a simple timer for OS X.
|
53
Timer.h
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
//
|
||||||
|
// Timer.h
|
||||||
|
//
|
||||||
|
// Created by Jeena on 15.12.09.
|
||||||
|
// Copyright 2009 Jeena Paradies. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Cocoa/Cocoa.h>
|
||||||
|
|
||||||
|
@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<NSObject> 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
|
234
Timer.m
Normal file
|
@ -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
|
34
Timr-Info.plist
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
|
<string>English</string>
|
||||||
|
<key>CFBundleExecutable</key>
|
||||||
|
<string>${EXECUTABLE_NAME}</string>
|
||||||
|
<key>CFBundleIconFile</key>
|
||||||
|
<string>Icon.icns</string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>net.jeena.apps.Timr</string>
|
||||||
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
|
<string>6.0</string>
|
||||||
|
<key>CFBundleName</key>
|
||||||
|
<string>${PRODUCT_NAME}</string>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>APPL</string>
|
||||||
|
<key>CFBundleShortVersionString</key>
|
||||||
|
<string>1.0</string>
|
||||||
|
<key>CFBundleSignature</key>
|
||||||
|
<string>????</string>
|
||||||
|
<key>CFBundleVersion</key>
|
||||||
|
<string>1.1</string>
|
||||||
|
<key>LSApplicationCategoryType</key>
|
||||||
|
<string>public.app-category.utilities</string>
|
||||||
|
<key>LSMinimumSystemVersion</key>
|
||||||
|
<string>10.5</string>
|
||||||
|
<key>NSMainNibFile</key>
|
||||||
|
<string>MainMenu</string>
|
||||||
|
<key>NSPrincipalClass</key>
|
||||||
|
<string>NSApplication</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
1400
Timr.xcodeproj/jeena.mode1v3
Normal file
275
Timr.xcodeproj/jeena.pbxuser
Normal file
|
@ -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}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
397
Timr.xcodeproj/project.pbxproj
Normal file
|
@ -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 = "<group>"; };
|
||||||
|
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
|
||||||
|
13E42FB307B3F0F600E4EEF1 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = "<absolute>"; };
|
||||||
|
1DDD58150DA1D0A300B32029 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
||||||
|
1F12DE5B12D75DB600A4538A /* power-button.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "power-button.png"; sourceTree = "<group>"; };
|
||||||
|
1F12DE6512D7671600A4538A /* power-button-pressed.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "power-button-pressed.png"; sourceTree = "<group>"; };
|
||||||
|
1F4C161810D7C99B0002BD95 /* Timer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Timer.h; sourceTree = "<group>"; };
|
||||||
|
1F4C161910D7C99B0002BD95 /* Timer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Timer.m; sourceTree = "<group>"; };
|
||||||
|
1F4C162610D7CE3B0002BD95 /* colon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = colon.png; sourceTree = "<group>"; };
|
||||||
|
1F4C162710D7CE3B0002BD95 /* digit-0.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "digit-0.png"; sourceTree = "<group>"; };
|
||||||
|
1F4C162810D7CE3B0002BD95 /* digit-1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "digit-1.png"; sourceTree = "<group>"; };
|
||||||
|
1F4C162910D7CE3B0002BD95 /* digit-2.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "digit-2.png"; sourceTree = "<group>"; };
|
||||||
|
1F4C162A10D7CE3B0002BD95 /* digit-3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "digit-3.png"; sourceTree = "<group>"; };
|
||||||
|
1F4C162B10D7CE3B0002BD95 /* digit-4.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "digit-4.png"; sourceTree = "<group>"; };
|
||||||
|
1F4C162C10D7CE3B0002BD95 /* digit-5.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "digit-5.png"; sourceTree = "<group>"; };
|
||||||
|
1F4C162D10D7CE3B0002BD95 /* digit-6.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "digit-6.png"; sourceTree = "<group>"; };
|
||||||
|
1F4C162E10D7CE3B0002BD95 /* digit-7.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "digit-7.png"; sourceTree = "<group>"; };
|
||||||
|
1F4C162F10D7CE3B0002BD95 /* digit-8.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "digit-8.png"; sourceTree = "<group>"; };
|
||||||
|
1F4C163010D7CE3B0002BD95 /* no_colon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = no_colon.png; sourceTree = "<group>"; };
|
||||||
|
1F4C16BD10D7F0C30002BD95 /* digit-9.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "digit-9.png"; sourceTree = "<group>"; };
|
||||||
|
1F4C176510D810D50002BD95 /* alarm.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = alarm.wav; sourceTree = "<group>"; };
|
||||||
|
1F4C18AF10D847310002BD95 /* clear-button.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "clear-button.png"; sourceTree = "<group>"; };
|
||||||
|
1F4C18C410D84AE20002BD95 /* click.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = click.wav; sourceTree = "<group>"; };
|
||||||
|
1F4C190D10D851D70002BD95 /* clear.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = clear.wav; sourceTree = "<group>"; };
|
||||||
|
1F4C192110D853BA0002BD95 /* Icon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = Icon.icns; sourceTree = "<group>"; };
|
||||||
|
1F85890211C45E5300AEB6A0 /* wood.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = wood.png; sourceTree = "<group>"; };
|
||||||
|
256AC3D80F4B6AC300CF3369 /* TimrAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TimrAppDelegate.h; sourceTree = "<group>"; };
|
||||||
|
256AC3D90F4B6AC300CF3369 /* TimrAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TimrAppDelegate.m; sourceTree = "<group>"; };
|
||||||
|
256AC3F00F4B6AF500CF3369 /* Timr_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Timr_Prefix.pch; sourceTree = "<group>"; };
|
||||||
|
29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
|
||||||
|
29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
|
||||||
|
29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
|
||||||
|
8D1107310486CEB800E47090 /* Timr-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Timr-Info.plist"; sourceTree = "<group>"; };
|
||||||
|
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 = "<group>";
|
||||||
|
};
|
||||||
|
1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,
|
||||||
|
);
|
||||||
|
name = "Linked Frameworks";
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
29B97324FDCFA39411CA2CEA /* AppKit.framework */,
|
||||||
|
13E42FB307B3F0F600E4EEF1 /* CoreData.framework */,
|
||||||
|
29B97325FDCFA39411CA2CEA /* Foundation.framework */,
|
||||||
|
);
|
||||||
|
name = "Other Frameworks";
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
19C28FACFE9D520D11CA2CBB /* Products */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
8D1107320486CEB800E47090 /* Timr.app */,
|
||||||
|
);
|
||||||
|
name = Products;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
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 = "<group>";
|
||||||
|
};
|
||||||
|
1F4C18C310D84ABF0002BD95 /* sounds */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
1F4C190D10D851D70002BD95 /* clear.wav */,
|
||||||
|
1F4C18C410D84AE20002BD95 /* click.wav */,
|
||||||
|
1F4C176510D810D50002BD95 /* alarm.wav */,
|
||||||
|
);
|
||||||
|
name = sounds;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
29B97314FDCFA39411CA2CEA /* Timr */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
080E96DDFE201D6D7F000001 /* Classes */,
|
||||||
|
29B97315FDCFA39411CA2CEA /* Other Sources */,
|
||||||
|
29B97317FDCFA39411CA2CEA /* Resources */,
|
||||||
|
29B97323FDCFA39411CA2CEA /* Frameworks */,
|
||||||
|
19C28FACFE9D520D11CA2CBB /* Products */,
|
||||||
|
);
|
||||||
|
name = Timr;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
29B97315FDCFA39411CA2CEA /* Other Sources */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
256AC3F00F4B6AF500CF3369 /* Timr_Prefix.pch */,
|
||||||
|
29B97316FDCFA39411CA2CEA /* main.m */,
|
||||||
|
);
|
||||||
|
name = "Other Sources";
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
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 = "<group>";
|
||||||
|
};
|
||||||
|
29B97323FDCFA39411CA2CEA /* Frameworks */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */,
|
||||||
|
1058C7A2FEA54F0111CA2CBB /* Other Frameworks */,
|
||||||
|
);
|
||||||
|
name = Frameworks;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
/* 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 = "<group>";
|
||||||
|
};
|
||||||
|
1DDD58140DA1D0A300B32029 /* MainMenu.xib */ = {
|
||||||
|
isa = PBXVariantGroup;
|
||||||
|
children = (
|
||||||
|
1DDD58150DA1D0A300B32029 /* English */,
|
||||||
|
);
|
||||||
|
name = MainMenu.xib;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
/* 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 */;
|
||||||
|
}
|
27
TimrAppDelegate.h
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
//
|
||||||
|
// TimrAppDelegate.h
|
||||||
|
// Timr
|
||||||
|
//
|
||||||
|
// Created by Jeena on 15.12.09.
|
||||||
|
// Copyright 2009 Jeena Paradies. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Cocoa/Cocoa.h>
|
||||||
|
#import "Timer.h"
|
||||||
|
|
||||||
|
#if (MAC_OS_X_VERSION_MAX_ALLOWED <= MAC_OS_X_VERSION_10_5)
|
||||||
|
@interface TimrAppDelegate : NSObject
|
||||||
|
#else
|
||||||
|
@interface TimrAppDelegate : NSObject <NSApplicationDelegate>
|
||||||
|
#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
|
24
TimrAppDelegate.m
Normal file
|
@ -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
|
7
Timr_Prefix.pch
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
//
|
||||||
|
// Prefix header for all source files of the 'Timr' target in the 'Timr' project
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifdef __OBJC__
|
||||||
|
#import <Cocoa/Cocoa.h>
|
||||||
|
#endif
|
BIN
alarm.wav
Normal file
BIN
button.psd
Normal file
BIN
clear-button.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
clear.wav
Normal file
BIN
click.wav
Normal file
BIN
colon.png
Normal file
After Width: | Height: | Size: 189 B |
BIN
digit-0.png
Normal file
After Width: | Height: | Size: 510 B |
BIN
digit-1.png
Normal file
After Width: | Height: | Size: 374 B |
BIN
digit-2.png
Normal file
After Width: | Height: | Size: 472 B |
BIN
digit-3.png
Normal file
After Width: | Height: | Size: 488 B |
BIN
digit-4.png
Normal file
After Width: | Height: | Size: 432 B |
BIN
digit-5.png
Normal file
After Width: | Height: | Size: 477 B |
BIN
digit-6.png
Normal file
After Width: | Height: | Size: 508 B |
BIN
digit-7.png
Normal file
After Width: | Height: | Size: 430 B |
BIN
digit-8.png
Normal file
After Width: | Height: | Size: 542 B |
BIN
digit-9.png
Normal file
After Width: | Height: | Size: 512 B |
75
index.html
|
@ -1,75 +0,0 @@
|
||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
||||||
<head>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
|
||||||
|
|
||||||
<title>jeena/Timr @ GitHub</title>
|
|
||||||
|
|
||||||
<style type="text/css">
|
|
||||||
html, body { margin: 0 0 2em 0; padding: 0; }
|
|
||||||
body { font-family: "Lucida Grande", Helvetica, Verdana, sans-serif; background: url(http://pavatar.com/img/body.png) top left repeat-x; }
|
|
||||||
#container { max-width: 35em; margin: auto; }
|
|
||||||
h1 { font-size: 3.8em; }
|
|
||||||
h1 img { vertical-align: bottom; width: 80px; height: 80px; }
|
|
||||||
h2 { margin-top: 2em; }
|
|
||||||
h1, h3 { padding-bottom: 0; margin-bottom: 0; }
|
|
||||||
h3 + p, h1 + p { padding-top: 0; margin-top: 0; }
|
|
||||||
#fork { position: absolute; top: 0; right: 0; border: 0; }
|
|
||||||
a img { border: none; }
|
|
||||||
code, pre { font-size: 1.2em; }
|
|
||||||
.screenshot { margin-left: -6px; }
|
|
||||||
.description { font-size: 1.1em; margin: 30px 0; font-style: italic; }
|
|
||||||
.download { float: right; }
|
|
||||||
.download img { width: 90px; }
|
|
||||||
pre { background: #000; color: #fff; padding: 15px;}
|
|
||||||
|
|
||||||
</style>
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<div id="container">
|
|
||||||
<div id="fork"><a href="http://github.com/jeena/Timr"><img src="http://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub" /></a></div>
|
|
||||||
|
|
||||||
<div class="download">
|
|
||||||
<a href="http://cloud.github.com/downloads/jeena/Timr/Timr.zip">
|
|
||||||
<img src="http://github.com/images/modules/download/zip.png"></a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<h1>Timr</h1>
|
|
||||||
<p class="description"><em><strong>Timr</strong> is a simple timer for OS X in a kind of a retro look.</em></p>
|
|
||||||
|
|
||||||
<p>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.</p>
|
|
||||||
|
|
||||||
<p class="screenshot"><img width="459" height="183" src="http://cloud.github.com/downloads/jeena/Timr/Screenshot.png" alt="Timr Screenshot" /></p>
|
|
||||||
|
|
||||||
<h2>Dependencies</h2>
|
|
||||||
<p>OS X — <a href="http://www.apple.com/macosx/">Mac OS X</a></p>
|
|
||||||
|
|
||||||
<h2>Install</h2>
|
|
||||||
<p>Download, unzip and move it to your Application folder.</p>
|
|
||||||
|
|
||||||
<h2>License</h2>
|
|
||||||
<p><a href="http://www.opensource.org/licenses/mit-license.php">MIT</a></p>
|
|
||||||
|
|
||||||
<h2>Contact</h2>
|
|
||||||
<p>Jeena Paradies (<a href="mailto:spam@jeenaparadies.net">spam@jeenaparadies.net</a>)</p>
|
|
||||||
|
|
||||||
<h2>Download</h2>
|
|
||||||
<p>
|
|
||||||
You can download this project in
|
|
||||||
<a href="http://cloud.github.com/downloads/jeena/Timr/Timr.zip">zip</a> format.
|
|
||||||
</p>
|
|
||||||
<p>You can also clone the project with <a href="http://git-scm.com">Git</a>
|
|
||||||
by running:
|
|
||||||
<pre>$ git clone git://github.com/jeena/Timr</pre>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
14
main.m
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
//
|
||||||
|
// main.m
|
||||||
|
// Timr
|
||||||
|
//
|
||||||
|
// Created by Jeena on 15.12.09.
|
||||||
|
// Copyright 2009 Jeena Paradies. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <Cocoa/Cocoa.h>
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
return NSApplicationMain(argc, (const char **) argv);
|
||||||
|
}
|
BIN
no_colon.png
Normal file
After Width: | Height: | Size: 134 B |
BIN
power-button-pressed.png
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
power-button.png
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
wood.png
Normal file
After Width: | Height: | Size: 180 KiB |