├── yeswecode
├── en.lproj
│ └── InfoPlist.strings
├── picard.jpg
├── baracktocat.jpg
├── thumbnail@2x.png
├── obama_unicorn_rainbows.jpg
├── yeswecode-Prefix.pch
├── yeswecode-Info.plist
├── yeswecodeView.h
└── yeswecodeView.m
├── yeswecodeDebuggingPreview
├── en.lproj
│ ├── InfoPlist.strings
│ └── MainMenu.xib
├── yeswecodeDebuggingPreview-Prefix.pch
├── main.m
├── AppDelegate.h
├── AppDelegate.m
└── yeswecodeDebuggingPreview-Info.plist
├── yeswecode.xcodeproj
├── xcuserdata
│ └── britt.xcuserdatad
│ │ ├── xcdebugger
│ │ └── Breakpoints.xcbkptlist
│ │ └── xcschemes
│ │ ├── xcschememanagement.plist
│ │ ├── yeswecode.xcscheme
│ │ └── yeswecodeDebuggingPreview.xcscheme
├── project.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcuserdata
│ │ └── britt.xcuserdatad
│ │ ├── UserInterfaceState.xcuserstate
│ │ └── WorkspaceSettings.xcsettings
└── project.pbxproj
├── README.md
└── .gitignore
/yeswecode/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/yeswecode/picard.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bs/yeswecode-screensaver/master/yeswecode/picard.jpg
--------------------------------------------------------------------------------
/yeswecodeDebuggingPreview/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Localized versions of Info.plist keys */
2 |
3 |
--------------------------------------------------------------------------------
/yeswecode/baracktocat.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bs/yeswecode-screensaver/master/yeswecode/baracktocat.jpg
--------------------------------------------------------------------------------
/yeswecode/thumbnail@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bs/yeswecode-screensaver/master/yeswecode/thumbnail@2x.png
--------------------------------------------------------------------------------
/yeswecode/obama_unicorn_rainbows.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bs/yeswecode-screensaver/master/yeswecode/obama_unicorn_rainbows.jpg
--------------------------------------------------------------------------------
/yeswecode.xcodeproj/xcuserdata/britt.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
--------------------------------------------------------------------------------
/yeswecode/yeswecode-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'yeswecode' target in the 'yeswecode' project
3 | //
4 |
5 | #ifdef __OBJC__
6 | #import
7 | #endif
8 |
--------------------------------------------------------------------------------
/yeswecode.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/yeswecode.xcodeproj/project.xcworkspace/xcuserdata/britt.xcuserdatad/UserInterfaceState.xcuserstate:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bs/yeswecode-screensaver/master/yeswecode.xcodeproj/project.xcworkspace/xcuserdata/britt.xcuserdatad/UserInterfaceState.xcuserstate
--------------------------------------------------------------------------------
/yeswecodeDebuggingPreview/yeswecodeDebuggingPreview-Prefix.pch:
--------------------------------------------------------------------------------
1 | //
2 | // Prefix header for all source files of the 'yeswecodeDebuggingPreview' target in the 'yeswecodeDebuggingPreview' project
3 | //
4 |
5 | #ifdef __OBJC__
6 | #import
7 | #endif
8 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # YesWeCode Screensaver
2 |
3 | A screensaver written lovingly for the Eng team at OFA.
4 | Not done yet.
5 |
6 | ### CONTRIBUTORS
7 |
8 | - Simon Whitaker (@simonwhitaker), without whom I'd still not be able to debug this
9 | - Ian Dees (@iandees)
10 | - David Mathers (@davidmathers)
11 |
--------------------------------------------------------------------------------
/yeswecodeDebuggingPreview/main.m:
--------------------------------------------------------------------------------
1 | //
2 | // main.m
3 | // yeswecodeDebuggingPreview
4 | //
5 | // Created by Britt Selvitelle on 10/2/12.
6 | // Copyright (c) 2012 Britt Selvitelle. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | int main(int argc, char *argv[]) {
12 | return NSApplicationMain(argc, (const char **)argv);
13 | }
14 |
--------------------------------------------------------------------------------
/yeswecode.xcodeproj/project.xcworkspace/xcuserdata/britt.xcuserdatad/WorkspaceSettings.xcsettings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | HasAskedToTakeAutomaticSnapshotBeforeSignificantChanges
6 |
7 | SnapshotAutomaticallyBeforeSignificantChanges
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | ### /Users/simon/.gitignore-boilerplates/Objective-C.gitignore
2 |
3 | # Xcode
4 | .DS_Store
5 | build/
6 | *.pbxuser
7 | !default.pbxuser
8 | *.mode1v3
9 | !default.mode1v3
10 | *.mode2v3
11 | !default.mode2v3
12 | *.perspectivev3
13 | !default.perspectivev3
14 | *.xcworkspace
15 | !default.xcworkspace
16 | xcuserdata
17 | profile
18 | *.moved-aside
19 | DerivedData
20 | .idea/
21 |
22 |
23 | ### /Users/simon/.gitignore-boilerplates/Global/OSX.gitignore
24 |
25 | .DS_Store
26 | .AppleDouble
27 | .LSOverride
28 | Icon
29 |
30 |
31 | # Thumbnails
32 | ._*
33 |
34 | # Files that might appear on external disk
35 | .Spotlight-V100
36 | .Trashes
37 |
38 |
39 |
--------------------------------------------------------------------------------
/yeswecodeDebuggingPreview/AppDelegate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.h
3 | // yeswecodeDebuggingPreview
4 | //
5 | // Created by Britt Selvitelle on 10/2/12.
6 | // Copyright (c) 2012 Britt Selvitelle. All rights reserved.
7 | //
8 | // Huge thanks to Simon Whitaker, without whom I'd still not be able to debug this.
9 | // https://github.com/simonwhitaker/twirly-screensaver
10 |
11 | #import
12 | #import
13 |
14 | @interface AppDelegate : NSObject
15 |
16 | @property (assign) IBOutlet NSWindow *window;
17 | @property (nonatomic, assign) IBOutlet ScreenSaverView * view;
18 | @property (nonatomic, retain) NSTimer * timer;
19 |
20 | @end
21 |
--------------------------------------------------------------------------------
/yeswecodeDebuggingPreview/AppDelegate.m:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate.m
3 | // yeswecodeDebuggingPreview
4 | //
5 | // Created by Britt Selvitelle on 10/2/12.
6 | // Copyright (c) 2012 Britt Selvitelle. All rights reserved.
7 | //
8 | // Huge thanks to Simon Whitaker, without whom I'd still not be able to debug this.
9 | // https://github.com/simonwhitaker/twirly-screensaver
10 |
11 | #import "AppDelegate.h"
12 |
13 | @implementation AppDelegate
14 | @synthesize timer=_timer;
15 | @synthesize view=_view;
16 |
17 | - (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
18 | self.timer = [NSTimer scheduledTimerWithTimeInterval:self.view.animationTimeInterval
19 | target:self.view
20 | selector:@selector(animateOneFrame)
21 | userInfo:nil
22 | repeats:YES];
23 | }
24 |
25 | @end
26 |
--------------------------------------------------------------------------------
/yeswecode.xcodeproj/xcuserdata/britt.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | yeswecode.xcscheme
8 |
9 | orderHint
10 | 0
11 |
12 | yeswecodeDebuggingPreview.xcscheme
13 |
14 | orderHint
15 | 1
16 |
17 |
18 | SuppressBuildableAutocreation
19 |
20 | BB6F57D4161AD9030082F059
21 |
22 | primary
23 |
24 |
25 | BB6F57EE161AD9040082F059
26 |
27 | primary
28 |
29 |
30 | BBA8EA321617EDEF001D8E23
31 |
32 | primary
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/yeswecode/yeswecode-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | English
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIconFile
10 |
11 | CFBundleIdentifier
12 | com.brittspace.${PRODUCT_NAME:rfc1034identifier}
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | ${PRODUCT_NAME}
17 | CFBundlePackageType
18 | BNDL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1.0
25 | NSHumanReadableCopyright
26 | Copyright © 2012 Britt Selvitelle. All rights reserved.
27 | NSPrincipalClass
28 | yeswecodeView
29 |
30 |
31 |
--------------------------------------------------------------------------------
/yeswecodeDebuggingPreview/yeswecodeDebuggingPreview-Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | ${EXECUTABLE_NAME}
9 | CFBundleIconFile
10 |
11 | CFBundleIdentifier
12 | com.brittspace.${PRODUCT_NAME:rfc1034identifier}
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | ${PRODUCT_NAME}
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | 1
25 | LSMinimumSystemVersion
26 | ${MACOSX_DEPLOYMENT_TARGET}
27 | NSHumanReadableCopyright
28 | Copyright © 2012 Britt Selvitelle. All rights reserved.
29 | NSMainNibFile
30 | MainMenu
31 | NSPrincipalClass
32 | NSApplication
33 |
34 |
35 |
--------------------------------------------------------------------------------
/yeswecode/yeswecodeView.h:
--------------------------------------------------------------------------------
1 | //
2 | // yeswecodeView.h
3 | // yeswecode
4 | //
5 | // Created by Britt Selvitelle on 9/29/12.
6 | // Copyright (c) 2012 Britt Selvitelle. All rights reserved.
7 | //
8 |
9 | #import
10 |
11 | @interface yeswecodeView : ScreenSaverView {
12 | }
13 |
14 | -(void)fetchEdayStrings;
15 | -(NSString*)pluralize:(NSString*)word number:(NSInteger)number;
16 |
17 | @property (nonatomic, retain) NSArray *edayStrings;
18 | @property (nonatomic, retain) NSString *currentEdayString;
19 | @property (nonatomic) int changeEdayStringTick;
20 |
21 |
22 | @property (nonatomic, assign) NSImageView *octoImageView;
23 | @property (nonatomic, assign) NSTextField *timeLeftLabel;
24 |
25 | @property (nonatomic) NSInteger colorState;
26 | @property (nonatomic, strong) NSMutableArray *finalRedToBlue;
27 | @property (nonatomic, strong) NSMutableArray *finalBlueToRed;
28 |
29 | @property (nonatomic) float currentRed;
30 | @property (nonatomic) float currentGreen;
31 | @property (nonatomic) float currentBlue;
32 |
33 | @property (nonatomic, strong) NSMutableArray *currentStepSizes;
34 | @property (nonatomic) double redStep;
35 | @property (nonatomic) double greenStep;
36 | @property (nonatomic) double blueStep;
37 |
38 | @property (nonatomic) int delayTick;
39 |
40 | @end
41 |
--------------------------------------------------------------------------------
/yeswecode.xcodeproj/xcuserdata/britt.xcuserdatad/xcschemes/yeswecode.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
32 |
33 |
42 |
43 |
44 |
45 |
51 |
52 |
54 |
55 |
58 |
59 |
60 |
--------------------------------------------------------------------------------
/yeswecode.xcodeproj/xcuserdata/britt.xcuserdatad/xcschemes/yeswecodeDebuggingPreview.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
33 |
39 |
40 |
41 |
42 |
43 |
49 |
50 |
51 |
52 |
61 |
62 |
68 |
69 |
70 |
71 |
72 |
73 |
79 |
80 |
86 |
87 |
88 |
89 |
91 |
92 |
95 |
96 |
97 |
--------------------------------------------------------------------------------
/yeswecode/yeswecodeView.m:
--------------------------------------------------------------------------------
1 | //
2 | // yeswecodeView.m
3 | // yeswecode
4 | //
5 | // Created by Britt Selvitelle on 9/29/12.
6 | // Copyright (c) 2012 Britt Selvitelle. All rights reserved.
7 | //
8 |
9 | #import "yeswecodeView.h"
10 |
11 | @implementation yeswecodeView
12 |
13 | int const TIME_BETWEEN_EDAY_STRING_CHANGE = 200;
14 | int const TIME_BETWEEN_FETCHING_NEW_EDAY_STRINGS = 10000;
15 |
16 | - (void)commonInit {
17 | [self setAnimationTimeInterval:1/30.0];
18 |
19 | // colorState - Indicates if we're fading the background from red to blue or visa-versa
20 | // 0 - blue to red
21 | // 1 - red to blue
22 | self.colorState = 0;
23 |
24 | // Load the octocat into an NSImageView
25 | NSBundle *saverBundle = [NSBundle bundleForClass:[self class]];
26 | NSString *octaPath = [saverBundle pathForImageResource:[self determineImageToRender]];
27 | NSImageView *imageView = [[NSImageView alloc] initWithFrame:NSMakeRect(0, 0, 600, 600)];
28 | imageView.image = [[NSImage alloc] initWithContentsOfFile:octaPath];
29 | [self addSubview:imageView];
30 | self.octoImageView = imageView;
31 |
32 | // Create a label to hold the "time remaining" string
33 | NSTextField *label = [[NSTextField alloc] initWithFrame:NSMakeRect(0, 0, self.bounds.size.width, 100)];
34 |
35 | // Allow the label to grow/shrink with the parent view
36 | label.autoresizingMask = NSViewWidthSizable;
37 |
38 | label.alignment = NSCenterTextAlignment;
39 |
40 | label.backgroundColor = [NSColor clearColor];
41 | [label setEditable:NO];
42 | [label setBezeled:NO];
43 | label.textColor = [NSColor colorWithDeviceRed:254.0f/255.0f
44 | green:229.0f/255.0f
45 | blue:161.0f/255.0f
46 | alpha:1.0];
47 |
48 | label.font = [NSFont fontWithName:@"Helvetica Neue" size:24.0];
49 | [self addSubview:label];
50 | self.timeLeftLabel = label;
51 |
52 | self.finalBlueToRed = [[NSMutableArray alloc] init];
53 | self.finalRedToBlue = [[NSMutableArray alloc] init];
54 |
55 | // Polar red value
56 | [self.finalBlueToRed addObject:[NSNumber numberWithDouble:205.0]];
57 | [self.finalBlueToRed addObject:[NSNumber numberWithDouble:0.0]];
58 | [self.finalBlueToRed addObject:[NSNumber numberWithDouble:26.0]];
59 |
60 | // Polar blue value
61 | [self.finalRedToBlue addObject:[NSNumber numberWithDouble:93.0]];
62 | [self.finalRedToBlue addObject:[NSNumber numberWithDouble:131.0]];
63 | [self.finalRedToBlue addObject:[NSNumber numberWithDouble:141.0]];
64 |
65 | // Calculate the step size to converge on
66 | double redStepSize = fmax([self.finalRedToBlue[0] doubleValue], [self.finalBlueToRed[0] doubleValue]) - fmin([self.finalRedToBlue[0] doubleValue], [self.finalBlueToRed[0] doubleValue]);
67 | double greenStepSize = fmax([self.finalRedToBlue[1] doubleValue], [self.finalBlueToRed[1] doubleValue]) - fmin([self.finalRedToBlue[1] doubleValue], [self.finalBlueToRed[1] doubleValue]);
68 | double blueStepSize = fmax([self.finalRedToBlue[2] doubleValue], [self.finalBlueToRed[2] doubleValue]) - fmin([self.finalRedToBlue[2] doubleValue], [self.finalBlueToRed[2] doubleValue]);
69 | double minStep = fmin(fmin(redStepSize, greenStepSize), blueStepSize);
70 |
71 | // Quick modification of the step sizes
72 | double mod = 1;
73 |
74 | self.redStep = redStepSize/(minStep * mod);
75 | self.greenStep = greenStepSize/(minStep * mod);
76 | self.blueStep = blueStepSize/(minStep * mod);
77 |
78 | self.currentStepSizes = [[NSMutableArray alloc] init];
79 | [self.currentStepSizes addObject:[NSNumber numberWithDouble:self.redStep]];
80 | [self.currentStepSizes addObject:[NSNumber numberWithDouble:self.greenStep]];
81 | [self.currentStepSizes addObject:[NSNumber numberWithDouble:self.blueStep]];
82 |
83 | // Counter to delay color transition
84 | self.delayTick = 0;
85 |
86 | // Initial color
87 | self.currentRed = [self.finalRedToBlue[0] doubleValue];
88 | self.currentGreen = [self.finalRedToBlue[1] doubleValue];
89 | self.currentBlue = [self.finalRedToBlue[2] doubleValue];
90 |
91 | self.changeEdayStringTick = 0;
92 | [self fetchEdayStrings];
93 | self.currentEdayString = [self getRandomEdayString];
94 | }
95 |
96 | - (NSString *)determineImageToRender {
97 | NSString *didWeWin;
98 | NSString *imageToRender;
99 |
100 | @try {
101 | NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://api.openkeyval.org/yeswecode_screensaver_did_win"]];
102 | NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
103 | didWeWin = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];
104 | NSLog(@"[DIDHEWIN] Got a response: %@", didWeWin);
105 | }
106 |
107 | @catch (NSException *exception) {
108 | // Got an exception from the HTTP request.
109 | NSLog(@"[DIDHEWIN] Caught %@: %@", [exception name], [exception reason]);
110 | }
111 |
112 | @finally {
113 | if ([didWeWin isEqualToString:@"no"]) {
114 | imageToRender = @"picard.jpg";
115 | }
116 | else if ([didWeWin isEqualToString:@"yes"]) {
117 | imageToRender = @"obama_unicorn_rainbows.jpg";
118 | }
119 | else {
120 | imageToRender = @"baracktocat.jpg";
121 | }
122 | }
123 |
124 | return imageToRender;
125 | }
126 |
127 | - (NSString *)getRandomEdayString {
128 | unsigned long size = [self.edayStrings count];
129 | return self.edayStrings[arc4random() % size];
130 | }
131 |
132 | - (void)fetchEdayStrings {
133 | @try {
134 | NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://yeswecode.webscript.io/get_eday_strings"]];
135 | NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
136 | __autoreleasing NSError* error = nil;
137 | self.edayStrings = [NSJSONSerialization JSONObjectWithData:response options:kNilOptions error:&error];
138 | NSLog(@"Fetched %li strings", [self.edayStrings count]);
139 | }
140 |
141 | @catch (NSException *exception) {
142 | // Got an exception from the HTTP request.
143 | NSLog(@"[EDAYSTRING] Caught %@: %@", [exception name], [exception reason]);
144 | }
145 |
146 | @finally {
147 | if ([self.edayStrings count] == 0) {
148 | self.edayStrings = [NSArray arrayWithObject:@"#OFATECH"];
149 | }
150 | }
151 | }
152 |
153 | - (id)initWithCoder:(NSCoder *)aDecoder {
154 | self = [super initWithCoder:aDecoder];
155 | if (self) {
156 | [self commonInit];
157 | }
158 |
159 | return self;
160 | }
161 |
162 | - (id)initWithFrame:(NSRect)frame isPreview:(BOOL)isPreview {
163 | self = [super initWithFrame:frame isPreview:isPreview];
164 |
165 | if (self) {
166 | [self commonInit];
167 | }
168 |
169 | return self;
170 | }
171 |
172 | - (void)drawRect:(NSRect)rect {
173 | [super drawRect:rect];
174 |
175 | [self drawBackground];
176 | [self drawBaracktocat];
177 | [self drawTimeLeft];
178 |
179 | // blue -> red
180 | if (self.colorState == 0) {
181 | while (self.delayTick < 400) {
182 | self.delayTick += 1;
183 | return;
184 | }
185 |
186 | double finalRed = [self.finalBlueToRed[0] doubleValue];
187 | double finalGreen = [self.finalBlueToRed[1] doubleValue];
188 | double finalBlue = [self.finalBlueToRed[2] doubleValue];
189 |
190 | if (self.currentRed < finalRed) {
191 | self.currentRed += [self.currentStepSizes[0] doubleValue];
192 | }
193 |
194 | if (self.currentGreen > finalGreen) {
195 | self.currentGreen -= [self.currentStepSizes[1] doubleValue];
196 | }
197 |
198 | if (self.currentBlue > finalBlue) {
199 | self.currentBlue -= [self.currentStepSizes[2] doubleValue];
200 | }
201 |
202 | if (self.currentRed >= finalRed && self.currentGreen <= finalGreen && self.currentBlue <= finalBlue) {
203 | self.delayTick = 0;
204 | self.colorState = 1;
205 | }
206 | }
207 |
208 | // red -> blue
209 | else if (self.colorState == 1) {
210 | while (self.delayTick < 400) {
211 | self.delayTick += 1;
212 | return;
213 | }
214 |
215 | double finalRed = [self.finalRedToBlue[0] doubleValue];
216 | double finalGreen = [self.finalRedToBlue[1] doubleValue];
217 | double finalBlue = [self.finalRedToBlue[2] doubleValue];
218 |
219 | if (self.currentRed > finalRed) {
220 | self.currentRed -= [self.currentStepSizes[0] doubleValue];
221 | }
222 |
223 | if (self.currentGreen < finalGreen) {
224 | self.currentGreen += [self.currentStepSizes[1] doubleValue];
225 | }
226 |
227 | if (self.currentBlue < finalBlue) {
228 | self.currentBlue += ([self.currentStepSizes[2] doubleValue]);
229 | }
230 |
231 | if (self.currentRed <= finalRed && self.currentGreen >= finalGreen && self.currentBlue >= finalBlue) {
232 | self.delayTick = 0;
233 | self.colorState = 0;
234 | }
235 | }
236 | }
237 |
238 | - (void)drawBaracktocat {
239 | // Position the octocat image in the center-ish of the view
240 | CGRect r = self.octoImageView.frame;
241 | r.origin.x = self.bounds.size.width / 2 - r.size.width / 2;
242 | r.origin.y = self.bounds.size.height / 2 - r.size.height / 2.4;
243 | self.octoImageView.frame = r;
244 | }
245 |
246 |
247 | // Luckily we can just use a really dumb pluralization method here
248 | - (NSString *)pluralize: (NSString *)word number: (long)number {
249 | NSString *s = [NSString stringWithFormat:@"%@%@", word, (number == 1 ? @"" : @"s")];
250 | return s;
251 | }
252 |
253 | - (void)drawTimeLeft {
254 | // Font setup
255 | // Time left between E-Day and now
256 | // XXX Just get the seconds between the two dates
257 | // XXX Don't use dateWithNaturalLanguageString
258 | NSDate *now = [NSDate date];
259 | NSDate *eDay = [NSDate dateWithNaturalLanguageString:@"2012-11-07T00:00:00-05:00"];
260 |
261 | NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
262 | unsigned int unitFlags = NSDayCalendarUnit |
263 | NSHourCalendarUnit |
264 | NSMinuteCalendarUnit |
265 | NSSecondCalendarUnit;
266 |
267 | NSDateComponents *components = [gregorianCalendar components:unitFlags
268 | fromDate:now
269 | toDate:eDay
270 | options:0];
271 | NSString *timeLeft;
272 |
273 | if ([components day] <= 0) {
274 | self.changeEdayStringTick += 1;
275 | float edayStringChangeMod = self.changeEdayStringTick % TIME_BETWEEN_EDAY_STRING_CHANGE;
276 | float fetchNewStringsMod = self.changeEdayStringTick % TIME_BETWEEN_FETCHING_NEW_EDAY_STRINGS;
277 |
278 | if (edayStringChangeMod == 0) {
279 | self.currentEdayString = [self getRandomEdayString];
280 | }
281 |
282 | if (fetchNewStringsMod == 0) {
283 | [self fetchEdayStrings];
284 | }
285 |
286 | timeLeft = self.currentEdayString;
287 | }
288 |
289 | else {
290 | timeLeft = [NSString stringWithFormat:@"%ld %@, %ld %@, %ld %@ and %ld %@", [components day], [self pluralize:@"day" number:[components day]], [components hour], [self pluralize:@"hour" number:[components hour]], [components minute], [self pluralize:@"minute" number:[components minute]], [components second], [self pluralize:@"second" number:[components second]]];
291 | }
292 |
293 | self.timeLeftLabel.stringValue = timeLeft;
294 | self.timeLeftLabel.font = [NSFont fontWithName:@"Helvetica Neue" size:self.bounds.size.height * 0.04];
295 |
296 | // Adjust the height of self.timeLeftLabel according to the height of its parent view
297 | // Position it just below the OctoCat
298 | NSSize s = [timeLeft sizeWithAttributes:@{NSFontAttributeName: self.timeLeftLabel.font}];
299 | CGRect r = self.timeLeftLabel.frame;
300 | r.size.height = s.height;
301 | r.origin.y = self.octoImageView.frame.origin.y - 60;
302 | self.timeLeftLabel.frame = r;
303 | }
304 |
305 | - (void)drawBackground {
306 | float red = self.currentRed/255.0f;
307 | float green = self.currentGreen/255.0f;
308 | float blue = self.currentBlue/255.0f;
309 | float alpha = 1.0f;
310 |
311 | NSColor *color = [NSColor colorWithCalibratedRed: red green: green blue: blue alpha: alpha];
312 |
313 | [color set];
314 | NSRectFill(self.bounds);
315 | }
316 |
317 | - (void)animateOneFrame {
318 | self.needsDisplay = YES;
319 | }
320 |
321 | - (BOOL)hasConfigureSheet {
322 | return NO;
323 | }
324 |
325 | - (NSWindow*)configureSheet {
326 | return nil;
327 | }
328 |
329 | @end
330 |
--------------------------------------------------------------------------------
/yeswecode.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 46;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | BB073F0A1645B87300CEE392 /* obama_unicorn_rainbows.jpg in Resources */ = {isa = PBXBuildFile; fileRef = BB073F091645B87300CEE392 /* obama_unicorn_rainbows.jpg */; };
11 | BB073F0B1645B87300CEE392 /* obama_unicorn_rainbows.jpg in Resources */ = {isa = PBXBuildFile; fileRef = BB073F091645B87300CEE392 /* obama_unicorn_rainbows.jpg */; };
12 | BB073F171647328C00CEE392 /* picard.jpg in Resources */ = {isa = PBXBuildFile; fileRef = BB073F161647328C00CEE392 /* picard.jpg */; };
13 | BB073F181647328C00CEE392 /* picard.jpg in Resources */ = {isa = PBXBuildFile; fileRef = BB073F161647328C00CEE392 /* picard.jpg */; };
14 | BB6F57D7161AD9030082F059 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBA8EA361617EDEF001D8E23 /* Cocoa.framework */; };
15 | BB6F57DD161AD9030082F059 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = BB6F57DB161AD9030082F059 /* InfoPlist.strings */; };
16 | BB6F57DF161AD9030082F059 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = BB6F57DE161AD9030082F059 /* main.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
17 | BB6F57E6161AD9030082F059 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = BB6F57E5161AD9030082F059 /* AppDelegate.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
18 | BB6F57E9161AD9040082F059 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = BB6F57E7161AD9040082F059 /* MainMenu.xib */; };
19 | BB6F5804161ADE580082F059 /* yeswecodeView.m in Sources */ = {isa = PBXBuildFile; fileRef = BBA8EA461617EDEF001D8E23 /* yeswecodeView.m */; };
20 | BB6F5805161ADE940082F059 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBA8EA381617EDEF001D8E23 /* ScreenSaver.framework */; };
21 | BB6F5808161AE3850082F059 /* baracktocat.jpg in Resources */ = {isa = PBXBuildFile; fileRef = BB801C731618E1B500AC283B /* baracktocat.jpg */; };
22 | BB7CDA40162B54CD000036C2 /* thumbnail@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = BB7CDA3F162B54CD000036C2 /* thumbnail@2x.png */; };
23 | BB801C741618E1B500AC283B /* baracktocat.jpg in Resources */ = {isa = PBXBuildFile; fileRef = BB801C731618E1B500AC283B /* baracktocat.jpg */; };
24 | BBA8EA371617EDEF001D8E23 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBA8EA361617EDEF001D8E23 /* Cocoa.framework */; };
25 | BBA8EA391617EDEF001D8E23 /* ScreenSaver.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBA8EA381617EDEF001D8E23 /* ScreenSaver.framework */; };
26 | BBA8EA431617EDEF001D8E23 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = BBA8EA411617EDEF001D8E23 /* InfoPlist.strings */; };
27 | BBA8EA471617EDEF001D8E23 /* yeswecodeView.m in Sources */ = {isa = PBXBuildFile; fileRef = BBA8EA461617EDEF001D8E23 /* yeswecodeView.m */; };
28 | /* End PBXBuildFile section */
29 |
30 | /* Begin PBXFileReference section */
31 | BB073F091645B87300CEE392 /* obama_unicorn_rainbows.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = obama_unicorn_rainbows.jpg; sourceTree = ""; };
32 | BB073F161647328C00CEE392 /* picard.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = picard.jpg; sourceTree = ""; };
33 | BB6F57D5161AD9030082F059 /* yeswecodeDebuggingPreview.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = yeswecodeDebuggingPreview.app; sourceTree = BUILT_PRODUCTS_DIR; };
34 | BB6F57DA161AD9030082F059 /* yeswecodeDebuggingPreview-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "yeswecodeDebuggingPreview-Info.plist"; sourceTree = ""; };
35 | BB6F57DC161AD9030082F059 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; };
36 | BB6F57DE161AD9030082F059 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
37 | BB6F57E0161AD9030082F059 /* yeswecodeDebuggingPreview-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "yeswecodeDebuggingPreview-Prefix.pch"; sourceTree = ""; };
38 | BB6F57E4161AD9030082F059 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; };
39 | BB6F57E5161AD9030082F059 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; };
40 | BB6F57E8161AD9040082F059 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainMenu.xib; sourceTree = ""; };
41 | BB6F57F0161AD9040082F059 /* SenTestingKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SenTestingKit.framework; path = Library/Frameworks/SenTestingKit.framework; sourceTree = DEVELOPER_DIR; };
42 | BB7CDA3F162B54CD000036C2 /* thumbnail@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "thumbnail@2x.png"; sourceTree = ""; };
43 | BB801C731618E1B500AC283B /* baracktocat.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = baracktocat.jpg; sourceTree = ""; };
44 | BBA8EA331617EDEF001D8E23 /* yeswecode.saver */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = yeswecode.saver; sourceTree = BUILT_PRODUCTS_DIR; };
45 | BBA8EA361617EDEF001D8E23 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
46 | BBA8EA381617EDEF001D8E23 /* ScreenSaver.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ScreenSaver.framework; path = System/Library/Frameworks/ScreenSaver.framework; sourceTree = SDKROOT; };
47 | BBA8EA3B1617EDEF001D8E23 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
48 | BBA8EA3C1617EDEF001D8E23 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
49 | BBA8EA3D1617EDEF001D8E23 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
50 | BBA8EA401617EDEF001D8E23 /* yeswecode-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "yeswecode-Info.plist"; sourceTree = ""; };
51 | BBA8EA421617EDEF001D8E23 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; };
52 | BBA8EA441617EDEF001D8E23 /* yeswecode-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "yeswecode-Prefix.pch"; sourceTree = ""; };
53 | BBA8EA451617EDEF001D8E23 /* yeswecodeView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = yeswecodeView.h; sourceTree = ""; };
54 | BBA8EA461617EDEF001D8E23 /* yeswecodeView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = yeswecodeView.m; sourceTree = ""; };
55 | /* End PBXFileReference section */
56 |
57 | /* Begin PBXFrameworksBuildPhase section */
58 | BB6F57D2161AD9030082F059 /* Frameworks */ = {
59 | isa = PBXFrameworksBuildPhase;
60 | buildActionMask = 2147483647;
61 | files = (
62 | BB6F5805161ADE940082F059 /* ScreenSaver.framework in Frameworks */,
63 | BB6F57D7161AD9030082F059 /* Cocoa.framework in Frameworks */,
64 | );
65 | runOnlyForDeploymentPostprocessing = 0;
66 | };
67 | BBA8EA2E1617EDEF001D8E23 /* Frameworks */ = {
68 | isa = PBXFrameworksBuildPhase;
69 | buildActionMask = 2147483647;
70 | files = (
71 | BBA8EA371617EDEF001D8E23 /* Cocoa.framework in Frameworks */,
72 | BBA8EA391617EDEF001D8E23 /* ScreenSaver.framework in Frameworks */,
73 | );
74 | runOnlyForDeploymentPostprocessing = 0;
75 | };
76 | /* End PBXFrameworksBuildPhase section */
77 |
78 | /* Begin PBXGroup section */
79 | BB6F57D8161AD9030082F059 /* yeswecodeDebuggingPreview */ = {
80 | isa = PBXGroup;
81 | children = (
82 | BB6F57E4161AD9030082F059 /* AppDelegate.h */,
83 | BB6F57E5161AD9030082F059 /* AppDelegate.m */,
84 | BB6F57E7161AD9040082F059 /* MainMenu.xib */,
85 | BB6F57D9161AD9030082F059 /* Supporting Files */,
86 | );
87 | path = yeswecodeDebuggingPreview;
88 | sourceTree = "";
89 | };
90 | BB6F57D9161AD9030082F059 /* Supporting Files */ = {
91 | isa = PBXGroup;
92 | children = (
93 | BB6F57DA161AD9030082F059 /* yeswecodeDebuggingPreview-Info.plist */,
94 | BB6F57DB161AD9030082F059 /* InfoPlist.strings */,
95 | BB6F57DE161AD9030082F059 /* main.m */,
96 | BB6F57E0161AD9030082F059 /* yeswecodeDebuggingPreview-Prefix.pch */,
97 | );
98 | name = "Supporting Files";
99 | sourceTree = "";
100 | };
101 | BBA8EA261617EDEF001D8E23 = {
102 | isa = PBXGroup;
103 | children = (
104 | BBA8EA3E1617EDEF001D8E23 /* yeswecode */,
105 | BB6F57D8161AD9030082F059 /* yeswecodeDebuggingPreview */,
106 | BBA8EA351617EDEF001D8E23 /* Frameworks */,
107 | BBA8EA341617EDEF001D8E23 /* Products */,
108 | );
109 | sourceTree = "";
110 | };
111 | BBA8EA341617EDEF001D8E23 /* Products */ = {
112 | isa = PBXGroup;
113 | children = (
114 | BBA8EA331617EDEF001D8E23 /* yeswecode.saver */,
115 | BB6F57D5161AD9030082F059 /* yeswecodeDebuggingPreview.app */,
116 | );
117 | name = Products;
118 | sourceTree = "";
119 | };
120 | BBA8EA351617EDEF001D8E23 /* Frameworks */ = {
121 | isa = PBXGroup;
122 | children = (
123 | BBA8EA361617EDEF001D8E23 /* Cocoa.framework */,
124 | BBA8EA381617EDEF001D8E23 /* ScreenSaver.framework */,
125 | BB6F57F0161AD9040082F059 /* SenTestingKit.framework */,
126 | BBA8EA3A1617EDEF001D8E23 /* Other Frameworks */,
127 | );
128 | name = Frameworks;
129 | sourceTree = "";
130 | };
131 | BBA8EA3A1617EDEF001D8E23 /* Other Frameworks */ = {
132 | isa = PBXGroup;
133 | children = (
134 | BBA8EA3B1617EDEF001D8E23 /* AppKit.framework */,
135 | BBA8EA3C1617EDEF001D8E23 /* CoreData.framework */,
136 | BBA8EA3D1617EDEF001D8E23 /* Foundation.framework */,
137 | );
138 | name = "Other Frameworks";
139 | sourceTree = "";
140 | };
141 | BBA8EA3E1617EDEF001D8E23 /* yeswecode */ = {
142 | isa = PBXGroup;
143 | children = (
144 | BBA8EA451617EDEF001D8E23 /* yeswecodeView.h */,
145 | BBA8EA461617EDEF001D8E23 /* yeswecodeView.m */,
146 | BBA8EA3F1617EDEF001D8E23 /* Supporting Files */,
147 | );
148 | path = yeswecode;
149 | sourceTree = "";
150 | };
151 | BBA8EA3F1617EDEF001D8E23 /* Supporting Files */ = {
152 | isa = PBXGroup;
153 | children = (
154 | BB073F161647328C00CEE392 /* picard.jpg */,
155 | BB801C731618E1B500AC283B /* baracktocat.jpg */,
156 | BB073F091645B87300CEE392 /* obama_unicorn_rainbows.jpg */,
157 | BB7CDA3F162B54CD000036C2 /* thumbnail@2x.png */,
158 | BBA8EA401617EDEF001D8E23 /* yeswecode-Info.plist */,
159 | BBA8EA411617EDEF001D8E23 /* InfoPlist.strings */,
160 | BBA8EA441617EDEF001D8E23 /* yeswecode-Prefix.pch */,
161 | );
162 | name = "Supporting Files";
163 | sourceTree = "";
164 | };
165 | /* End PBXGroup section */
166 |
167 | /* Begin PBXHeadersBuildPhase section */
168 | BBA8EA2F1617EDEF001D8E23 /* Headers */ = {
169 | isa = PBXHeadersBuildPhase;
170 | buildActionMask = 2147483647;
171 | files = (
172 | );
173 | runOnlyForDeploymentPostprocessing = 0;
174 | };
175 | /* End PBXHeadersBuildPhase section */
176 |
177 | /* Begin PBXNativeTarget section */
178 | BB6F57D4161AD9030082F059 /* yeswecodeDebuggingPreview */ = {
179 | isa = PBXNativeTarget;
180 | buildConfigurationList = BB6F57FE161AD9040082F059 /* Build configuration list for PBXNativeTarget "yeswecodeDebuggingPreview" */;
181 | buildPhases = (
182 | BB6F57D1161AD9030082F059 /* Sources */,
183 | BB6F57D2161AD9030082F059 /* Frameworks */,
184 | BB6F57D3161AD9030082F059 /* Resources */,
185 | );
186 | buildRules = (
187 | );
188 | dependencies = (
189 | );
190 | name = yeswecodeDebuggingPreview;
191 | productName = yeswecodeDebuggingPreview;
192 | productReference = BB6F57D5161AD9030082F059 /* yeswecodeDebuggingPreview.app */;
193 | productType = "com.apple.product-type.application";
194 | };
195 | BBA8EA321617EDEF001D8E23 /* yeswecode */ = {
196 | isa = PBXNativeTarget;
197 | buildConfigurationList = BBA8EA4A1617EDEF001D8E23 /* Build configuration list for PBXNativeTarget "yeswecode" */;
198 | buildPhases = (
199 | BBA8EA2D1617EDEF001D8E23 /* Sources */,
200 | BBA8EA2E1617EDEF001D8E23 /* Frameworks */,
201 | BBA8EA2F1617EDEF001D8E23 /* Headers */,
202 | BBA8EA301617EDEF001D8E23 /* Resources */,
203 | BBA8EA311617EDEF001D8E23 /* Rez */,
204 | );
205 | buildRules = (
206 | );
207 | dependencies = (
208 | );
209 | name = yeswecode;
210 | productName = yeswecode;
211 | productReference = BBA8EA331617EDEF001D8E23 /* yeswecode.saver */;
212 | productType = "com.apple.product-type.bundle";
213 | };
214 | /* End PBXNativeTarget section */
215 |
216 | /* Begin PBXProject section */
217 | BBA8EA281617EDEF001D8E23 /* Project object */ = {
218 | isa = PBXProject;
219 | attributes = {
220 | LastUpgradeCheck = 0450;
221 | ORGANIZATIONNAME = "Britt Selvitelle";
222 | };
223 | buildConfigurationList = BBA8EA2B1617EDEF001D8E23 /* Build configuration list for PBXProject "yeswecode" */;
224 | compatibilityVersion = "Xcode 3.2";
225 | developmentRegion = English;
226 | hasScannedForEncodings = 0;
227 | knownRegions = (
228 | en,
229 | );
230 | mainGroup = BBA8EA261617EDEF001D8E23;
231 | productRefGroup = BBA8EA341617EDEF001D8E23 /* Products */;
232 | projectDirPath = "";
233 | projectRoot = "";
234 | targets = (
235 | BBA8EA321617EDEF001D8E23 /* yeswecode */,
236 | BB6F57D4161AD9030082F059 /* yeswecodeDebuggingPreview */,
237 | );
238 | };
239 | /* End PBXProject section */
240 |
241 | /* Begin PBXResourcesBuildPhase section */
242 | BB6F57D3161AD9030082F059 /* Resources */ = {
243 | isa = PBXResourcesBuildPhase;
244 | buildActionMask = 2147483647;
245 | files = (
246 | BB6F5808161AE3850082F059 /* baracktocat.jpg in Resources */,
247 | BB6F57DD161AD9030082F059 /* InfoPlist.strings in Resources */,
248 | BB6F57E9161AD9040082F059 /* MainMenu.xib in Resources */,
249 | BB073F0B1645B87300CEE392 /* obama_unicorn_rainbows.jpg in Resources */,
250 | BB073F181647328C00CEE392 /* picard.jpg in Resources */,
251 | );
252 | runOnlyForDeploymentPostprocessing = 0;
253 | };
254 | BBA8EA301617EDEF001D8E23 /* Resources */ = {
255 | isa = PBXResourcesBuildPhase;
256 | buildActionMask = 2147483647;
257 | files = (
258 | BBA8EA431617EDEF001D8E23 /* InfoPlist.strings in Resources */,
259 | BB801C741618E1B500AC283B /* baracktocat.jpg in Resources */,
260 | BB7CDA40162B54CD000036C2 /* thumbnail@2x.png in Resources */,
261 | BB073F0A1645B87300CEE392 /* obama_unicorn_rainbows.jpg in Resources */,
262 | BB073F171647328C00CEE392 /* picard.jpg in Resources */,
263 | );
264 | runOnlyForDeploymentPostprocessing = 0;
265 | };
266 | /* End PBXResourcesBuildPhase section */
267 |
268 | /* Begin PBXRezBuildPhase section */
269 | BBA8EA311617EDEF001D8E23 /* Rez */ = {
270 | isa = PBXRezBuildPhase;
271 | buildActionMask = 2147483647;
272 | files = (
273 | );
274 | runOnlyForDeploymentPostprocessing = 0;
275 | };
276 | /* End PBXRezBuildPhase section */
277 |
278 | /* Begin PBXSourcesBuildPhase section */
279 | BB6F57D1161AD9030082F059 /* Sources */ = {
280 | isa = PBXSourcesBuildPhase;
281 | buildActionMask = 2147483647;
282 | files = (
283 | BB6F5804161ADE580082F059 /* yeswecodeView.m in Sources */,
284 | BB6F57DF161AD9030082F059 /* main.m in Sources */,
285 | BB6F57E6161AD9030082F059 /* AppDelegate.m in Sources */,
286 | );
287 | runOnlyForDeploymentPostprocessing = 0;
288 | };
289 | BBA8EA2D1617EDEF001D8E23 /* Sources */ = {
290 | isa = PBXSourcesBuildPhase;
291 | buildActionMask = 2147483647;
292 | files = (
293 | BBA8EA471617EDEF001D8E23 /* yeswecodeView.m in Sources */,
294 | );
295 | runOnlyForDeploymentPostprocessing = 0;
296 | };
297 | /* End PBXSourcesBuildPhase section */
298 |
299 | /* Begin PBXVariantGroup section */
300 | BB6F57DB161AD9030082F059 /* InfoPlist.strings */ = {
301 | isa = PBXVariantGroup;
302 | children = (
303 | BB6F57DC161AD9030082F059 /* en */,
304 | );
305 | name = InfoPlist.strings;
306 | sourceTree = "";
307 | };
308 | BB6F57E7161AD9040082F059 /* MainMenu.xib */ = {
309 | isa = PBXVariantGroup;
310 | children = (
311 | BB6F57E8161AD9040082F059 /* en */,
312 | );
313 | name = MainMenu.xib;
314 | sourceTree = "";
315 | };
316 | BBA8EA411617EDEF001D8E23 /* InfoPlist.strings */ = {
317 | isa = PBXVariantGroup;
318 | children = (
319 | BBA8EA421617EDEF001D8E23 /* en */,
320 | );
321 | name = InfoPlist.strings;
322 | sourceTree = "";
323 | };
324 | /* End PBXVariantGroup section */
325 |
326 | /* Begin XCBuildConfiguration section */
327 | BB6F57FF161AD9040082F059 /* Debug */ = {
328 | isa = XCBuildConfiguration;
329 | buildSettings = {
330 | CLANG_ENABLE_OBJC_ARC = YES;
331 | COMBINE_HIDPI_IMAGES = YES;
332 | GCC_ENABLE_OBJC_GC = unsupported;
333 | GCC_PRECOMPILE_PREFIX_HEADER = YES;
334 | GCC_PREFIX_HEADER = "yeswecodeDebuggingPreview/yeswecodeDebuggingPreview-Prefix.pch";
335 | INFOPLIST_FILE = "yeswecodeDebuggingPreview/yeswecodeDebuggingPreview-Info.plist";
336 | PRODUCT_NAME = "$(TARGET_NAME)";
337 | WRAPPER_EXTENSION = app;
338 | };
339 | name = Debug;
340 | };
341 | BB6F5800161AD9040082F059 /* Release */ = {
342 | isa = XCBuildConfiguration;
343 | buildSettings = {
344 | CLANG_ENABLE_OBJC_ARC = YES;
345 | COMBINE_HIDPI_IMAGES = YES;
346 | GCC_ENABLE_OBJC_GC = unsupported;
347 | GCC_PRECOMPILE_PREFIX_HEADER = YES;
348 | GCC_PREFIX_HEADER = "yeswecodeDebuggingPreview/yeswecodeDebuggingPreview-Prefix.pch";
349 | INFOPLIST_FILE = "yeswecodeDebuggingPreview/yeswecodeDebuggingPreview-Info.plist";
350 | PRODUCT_NAME = "$(TARGET_NAME)";
351 | WRAPPER_EXTENSION = app;
352 | };
353 | name = Release;
354 | };
355 | BBA8EA481617EDEF001D8E23 /* Debug */ = {
356 | isa = XCBuildConfiguration;
357 | buildSettings = {
358 | ALWAYS_SEARCH_USER_PATHS = NO;
359 | ARCHS = "$(ARCHS_STANDARD_64_BIT)";
360 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
361 | CLANG_CXX_LIBRARY = "libc++";
362 | CLANG_WARN_EMPTY_BODY = YES;
363 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
364 | COPY_PHASE_STRIP = NO;
365 | GCC_C_LANGUAGE_STANDARD = gnu99;
366 | GCC_DYNAMIC_NO_PIC = NO;
367 | GCC_ENABLE_OBJC_EXCEPTIONS = YES;
368 | GCC_ENABLE_OBJC_GC = supported;
369 | GCC_OPTIMIZATION_LEVEL = 0;
370 | GCC_PREPROCESSOR_DEFINITIONS = (
371 | "DEBUG=1",
372 | "$(inherited)",
373 | );
374 | GCC_SYMBOLS_PRIVATE_EXTERN = NO;
375 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
376 | GCC_WARN_ABOUT_RETURN_TYPE = YES;
377 | GCC_WARN_UNINITIALIZED_AUTOS = YES;
378 | GCC_WARN_UNUSED_VARIABLE = YES;
379 | MACOSX_DEPLOYMENT_TARGET = 10.7;
380 | ONLY_ACTIVE_ARCH = YES;
381 | SDKROOT = macosx10.8;
382 | };
383 | name = Debug;
384 | };
385 | BBA8EA491617EDEF001D8E23 /* Release */ = {
386 | isa = XCBuildConfiguration;
387 | buildSettings = {
388 | ALWAYS_SEARCH_USER_PATHS = NO;
389 | ARCHS = "$(ARCHS_STANDARD_64_BIT)";
390 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
391 | CLANG_CXX_LIBRARY = "libc++";
392 | CLANG_WARN_EMPTY_BODY = YES;
393 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
394 | COPY_PHASE_STRIP = YES;
395 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
396 | GCC_C_LANGUAGE_STANDARD = gnu99;
397 | GCC_ENABLE_OBJC_EXCEPTIONS = YES;
398 | GCC_ENABLE_OBJC_GC = supported;
399 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
400 | GCC_WARN_ABOUT_RETURN_TYPE = YES;
401 | GCC_WARN_UNINITIALIZED_AUTOS = YES;
402 | GCC_WARN_UNUSED_VARIABLE = YES;
403 | MACOSX_DEPLOYMENT_TARGET = 10.7;
404 | ONLY_ACTIVE_ARCH = NO;
405 | SDKROOT = macosx10.8;
406 | };
407 | name = Release;
408 | };
409 | BBA8EA4B1617EDEF001D8E23 /* Debug */ = {
410 | isa = XCBuildConfiguration;
411 | buildSettings = {
412 | COMBINE_HIDPI_IMAGES = YES;
413 | GCC_ENABLE_OBJC_GC = supported;
414 | GCC_PRECOMPILE_PREFIX_HEADER = YES;
415 | GCC_PREFIX_HEADER = "yeswecode/yeswecode-Prefix.pch";
416 | INFOPLIST_FILE = "yeswecode/yeswecode-Info.plist";
417 | INSTALL_PATH = "$(HOME)/Library/Screen Savers";
418 | PRODUCT_NAME = "$(TARGET_NAME)";
419 | WRAPPER_EXTENSION = saver;
420 | };
421 | name = Debug;
422 | };
423 | BBA8EA4C1617EDEF001D8E23 /* Release */ = {
424 | isa = XCBuildConfiguration;
425 | buildSettings = {
426 | COMBINE_HIDPI_IMAGES = YES;
427 | GCC_ENABLE_OBJC_GC = supported;
428 | GCC_PRECOMPILE_PREFIX_HEADER = YES;
429 | GCC_PREFIX_HEADER = "yeswecode/yeswecode-Prefix.pch";
430 | INFOPLIST_FILE = "yeswecode/yeswecode-Info.plist";
431 | INSTALL_PATH = "$(HOME)/Library/Screen Savers";
432 | PRODUCT_NAME = "$(TARGET_NAME)";
433 | WRAPPER_EXTENSION = saver;
434 | };
435 | name = Release;
436 | };
437 | /* End XCBuildConfiguration section */
438 |
439 | /* Begin XCConfigurationList section */
440 | BB6F57FE161AD9040082F059 /* Build configuration list for PBXNativeTarget "yeswecodeDebuggingPreview" */ = {
441 | isa = XCConfigurationList;
442 | buildConfigurations = (
443 | BB6F57FF161AD9040082F059 /* Debug */,
444 | BB6F5800161AD9040082F059 /* Release */,
445 | );
446 | defaultConfigurationIsVisible = 0;
447 | defaultConfigurationName = Release;
448 | };
449 | BBA8EA2B1617EDEF001D8E23 /* Build configuration list for PBXProject "yeswecode" */ = {
450 | isa = XCConfigurationList;
451 | buildConfigurations = (
452 | BBA8EA481617EDEF001D8E23 /* Debug */,
453 | BBA8EA491617EDEF001D8E23 /* Release */,
454 | );
455 | defaultConfigurationIsVisible = 0;
456 | defaultConfigurationName = Release;
457 | };
458 | BBA8EA4A1617EDEF001D8E23 /* Build configuration list for PBXNativeTarget "yeswecode" */ = {
459 | isa = XCConfigurationList;
460 | buildConfigurations = (
461 | BBA8EA4B1617EDEF001D8E23 /* Debug */,
462 | BBA8EA4C1617EDEF001D8E23 /* Release */,
463 | );
464 | defaultConfigurationIsVisible = 0;
465 | defaultConfigurationName = Release;
466 | };
467 | /* End XCConfigurationList section */
468 | };
469 | rootObject = BBA8EA281617EDEF001D8E23 /* Project object */;
470 | }
471 |
--------------------------------------------------------------------------------
/yeswecodeDebuggingPreview/en.lproj/MainMenu.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 1080
5 | 12C60
6 | 2843
7 | 1187.34
8 | 625.00
9 |
13 |
14 | NSCustomObject
15 | NSMenu
16 | NSMenuItem
17 | NSView
18 | NSWindowTemplate
19 |
20 |
21 | com.apple.InterfaceBuilder.CocoaPlugin
22 |
23 |
27 |
28 |
31 |
34 |
37 |
1292 |
1314 |
1315 | AppDelegate
1316 |
1317 |
1318 | NSFontManager
1319 |
1320 |
1321 |
1322 |
1323 |
1324 |
1325 | terminate:
1326 |
1327 |
1328 |
1329 | 449
1330 |
1331 |
1332 |
1333 | orderFrontStandardAboutPanel:
1334 |
1335 |
1336 |
1337 | 142
1338 |
1339 |
1340 |
1341 | delegate
1342 |
1343 |
1344 |
1345 | 495
1346 |
1347 |
1348 |
1349 | performMiniaturize:
1350 |
1351 |
1352 |
1353 | 37
1354 |
1355 |
1356 |
1357 | arrangeInFront:
1358 |
1359 |
1360 |
1361 | 39
1362 |
1363 |
1364 |
1365 | print:
1366 |
1367 |
1368 |
1369 | 86
1370 |
1371 |
1372 |
1373 | runPageLayout:
1374 |
1375 |
1376 |
1377 | 87
1378 |
1379 |
1380 |
1381 | clearRecentDocuments:
1382 |
1383 |
1384 |
1385 | 127
1386 |
1387 |
1388 |
1389 | performClose:
1390 |
1391 |
1392 |
1393 | 193
1394 |
1395 |
1396 |
1397 | toggleContinuousSpellChecking:
1398 |
1399 |
1400 |
1401 | 222
1402 |
1403 |
1404 |
1405 | undo:
1406 |
1407 |
1408 |
1409 | 223
1410 |
1411 |
1412 |
1413 | copy:
1414 |
1415 |
1416 |
1417 | 224
1418 |
1419 |
1420 |
1421 | checkSpelling:
1422 |
1423 |
1424 |
1425 | 225
1426 |
1427 |
1428 |
1429 | paste:
1430 |
1431 |
1432 |
1433 | 226
1434 |
1435 |
1436 |
1437 | stopSpeaking:
1438 |
1439 |
1440 |
1441 | 227
1442 |
1443 |
1444 |
1445 | cut:
1446 |
1447 |
1448 |
1449 | 228
1450 |
1451 |
1452 |
1453 | showGuessPanel:
1454 |
1455 |
1456 |
1457 | 230
1458 |
1459 |
1460 |
1461 | redo:
1462 |
1463 |
1464 |
1465 | 231
1466 |
1467 |
1468 |
1469 | selectAll:
1470 |
1471 |
1472 |
1473 | 232
1474 |
1475 |
1476 |
1477 | startSpeaking:
1478 |
1479 |
1480 |
1481 | 233
1482 |
1483 |
1484 |
1485 | delete:
1486 |
1487 |
1488 |
1489 | 235
1490 |
1491 |
1492 |
1493 | performZoom:
1494 |
1495 |
1496 |
1497 | 240
1498 |
1499 |
1500 |
1501 | performFindPanelAction:
1502 |
1503 |
1504 |
1505 | 241
1506 |
1507 |
1508 |
1509 | centerSelectionInVisibleArea:
1510 |
1511 |
1512 |
1513 | 245
1514 |
1515 |
1516 |
1517 | toggleGrammarChecking:
1518 |
1519 |
1520 |
1521 | 347
1522 |
1523 |
1524 |
1525 | toggleSmartInsertDelete:
1526 |
1527 |
1528 |
1529 | 355
1530 |
1531 |
1532 |
1533 | toggleAutomaticQuoteSubstitution:
1534 |
1535 |
1536 |
1537 | 356
1538 |
1539 |
1540 |
1541 | toggleAutomaticLinkDetection:
1542 |
1543 |
1544 |
1545 | 357
1546 |
1547 |
1548 |
1549 | saveDocument:
1550 |
1551 |
1552 |
1553 | 362
1554 |
1555 |
1556 |
1557 | revertDocumentToSaved:
1558 |
1559 |
1560 |
1561 | 364
1562 |
1563 |
1564 |
1565 | runToolbarCustomizationPalette:
1566 |
1567 |
1568 |
1569 | 365
1570 |
1571 |
1572 |
1573 | toggleToolbarShown:
1574 |
1575 |
1576 |
1577 | 366
1578 |
1579 |
1580 |
1581 | hide:
1582 |
1583 |
1584 |
1585 | 367
1586 |
1587 |
1588 |
1589 | hideOtherApplications:
1590 |
1591 |
1592 |
1593 | 368
1594 |
1595 |
1596 |
1597 | unhideAllApplications:
1598 |
1599 |
1600 |
1601 | 370
1602 |
1603 |
1604 |
1605 | newDocument:
1606 |
1607 |
1608 |
1609 | 373
1610 |
1611 |
1612 |
1613 | openDocument:
1614 |
1615 |
1616 |
1617 | 374
1618 |
1619 |
1620 |
1621 | raiseBaseline:
1622 |
1623 |
1624 |
1625 | 426
1626 |
1627 |
1628 |
1629 | lowerBaseline:
1630 |
1631 |
1632 |
1633 | 427
1634 |
1635 |
1636 |
1637 | copyFont:
1638 |
1639 |
1640 |
1641 | 428
1642 |
1643 |
1644 |
1645 | subscript:
1646 |
1647 |
1648 |
1649 | 429
1650 |
1651 |
1652 |
1653 | superscript:
1654 |
1655 |
1656 |
1657 | 430
1658 |
1659 |
1660 |
1661 | tightenKerning:
1662 |
1663 |
1664 |
1665 | 431
1666 |
1667 |
1668 |
1669 | underline:
1670 |
1671 |
1672 |
1673 | 432
1674 |
1675 |
1676 |
1677 | orderFrontColorPanel:
1678 |
1679 |
1680 |
1681 | 433
1682 |
1683 |
1684 |
1685 | useAllLigatures:
1686 |
1687 |
1688 |
1689 | 434
1690 |
1691 |
1692 |
1693 | loosenKerning:
1694 |
1695 |
1696 |
1697 | 435
1698 |
1699 |
1700 |
1701 | pasteFont:
1702 |
1703 |
1704 |
1705 | 436
1706 |
1707 |
1708 |
1709 | unscript:
1710 |
1711 |
1712 |
1713 | 437
1714 |
1715 |
1716 |
1717 | useStandardKerning:
1718 |
1719 |
1720 |
1721 | 438
1722 |
1723 |
1724 |
1725 | useStandardLigatures:
1726 |
1727 |
1728 |
1729 | 439
1730 |
1731 |
1732 |
1733 | turnOffLigatures:
1734 |
1735 |
1736 |
1737 | 440
1738 |
1739 |
1740 |
1741 | turnOffKerning:
1742 |
1743 |
1744 |
1745 | 441
1746 |
1747 |
1748 |
1749 | toggleAutomaticSpellingCorrection:
1750 |
1751 |
1752 |
1753 | 456
1754 |
1755 |
1756 |
1757 | orderFrontSubstitutionsPanel:
1758 |
1759 |
1760 |
1761 | 458
1762 |
1763 |
1764 |
1765 | toggleAutomaticDashSubstitution:
1766 |
1767 |
1768 |
1769 | 461
1770 |
1771 |
1772 |
1773 | toggleAutomaticTextReplacement:
1774 |
1775 |
1776 |
1777 | 463
1778 |
1779 |
1780 |
1781 | uppercaseWord:
1782 |
1783 |
1784 |
1785 | 464
1786 |
1787 |
1788 |
1789 | capitalizeWord:
1790 |
1791 |
1792 |
1793 | 467
1794 |
1795 |
1796 |
1797 | lowercaseWord:
1798 |
1799 |
1800 |
1801 | 468
1802 |
1803 |
1804 |
1805 | pasteAsPlainText:
1806 |
1807 |
1808 |
1809 | 486
1810 |
1811 |
1812 |
1813 | performFindPanelAction:
1814 |
1815 |
1816 |
1817 | 487
1818 |
1819 |
1820 |
1821 | performFindPanelAction:
1822 |
1823 |
1824 |
1825 | 488
1826 |
1827 |
1828 |
1829 | performFindPanelAction:
1830 |
1831 |
1832 |
1833 | 489
1834 |
1835 |
1836 |
1837 | showHelp:
1838 |
1839 |
1840 |
1841 | 493
1842 |
1843 |
1844 |
1845 | alignCenter:
1846 |
1847 |
1848 |
1849 | 518
1850 |
1851 |
1852 |
1853 | pasteRuler:
1854 |
1855 |
1856 |
1857 | 519
1858 |
1859 |
1860 |
1861 | toggleRuler:
1862 |
1863 |
1864 |
1865 | 520
1866 |
1867 |
1868 |
1869 | alignRight:
1870 |
1871 |
1872 |
1873 | 521
1874 |
1875 |
1876 |
1877 | copyRuler:
1878 |
1879 |
1880 |
1881 | 522
1882 |
1883 |
1884 |
1885 | alignJustified:
1886 |
1887 |
1888 |
1889 | 523
1890 |
1891 |
1892 |
1893 | alignLeft:
1894 |
1895 |
1896 |
1897 | 524
1898 |
1899 |
1900 |
1901 | makeBaseWritingDirectionNatural:
1902 |
1903 |
1904 |
1905 | 525
1906 |
1907 |
1908 |
1909 | makeBaseWritingDirectionLeftToRight:
1910 |
1911 |
1912 |
1913 | 526
1914 |
1915 |
1916 |
1917 | makeBaseWritingDirectionRightToLeft:
1918 |
1919 |
1920 |
1921 | 527
1922 |
1923 |
1924 |
1925 | makeTextWritingDirectionNatural:
1926 |
1927 |
1928 |
1929 | 528
1930 |
1931 |
1932 |
1933 | makeTextWritingDirectionLeftToRight:
1934 |
1935 |
1936 |
1937 | 529
1938 |
1939 |
1940 |
1941 | makeTextWritingDirectionRightToLeft:
1942 |
1943 |
1944 |
1945 | 530
1946 |
1947 |
1948 |
1949 | performFindPanelAction:
1950 |
1951 |
1952 |
1953 | 535
1954 |
1955 |
1956 |
1957 | addFontTrait:
1958 |
1959 |
1960 |
1961 | 421
1962 |
1963 |
1964 |
1965 | addFontTrait:
1966 |
1967 |
1968 |
1969 | 422
1970 |
1971 |
1972 |
1973 | modifyFont:
1974 |
1975 |
1976 |
1977 | 423
1978 |
1979 |
1980 |
1981 | orderFrontFontPanel:
1982 |
1983 |
1984 |
1985 | 424
1986 |
1987 |
1988 |
1989 | modifyFont:
1990 |
1991 |
1992 |
1993 | 425
1994 |
1995 |
1996 |
1997 | window
1998 |
1999 |
2000 |
2001 | 532
2002 |
2003 |
2004 |
2005 | view
2006 |
2007 |
2008 |
2009 | 548
2010 |
2011 |
2012 |
2013 |
2014 |
2015 | 0
2016 |
2017 |
2018 |
2019 |
2020 |
2021 | -2
2022 |
2023 |
2024 | File's Owner
2025 |
2026 |
2027 | -1
2028 |
2029 |
2030 | First Responder
2031 |
2032 |
2033 | -3
2034 |
2035 |
2036 | Application
2037 |
2038 |
2039 | 29
2040 |
2041 |
2042 |
2043 |
2044 |
2045 |
2046 |
2047 |
2048 |
2049 |
2050 |
2051 |
2052 |
2053 | 19
2054 |
2055 |
2056 |
2057 |
2058 |
2059 |
2060 |
2061 | 56
2062 |
2063 |
2064 |
2065 |
2066 |
2067 |
2068 |
2069 | 217
2070 |
2071 |
2072 |
2073 |
2074 |
2075 |
2076 |
2077 | 83
2078 |
2079 |
2080 |
2081 |
2082 |
2083 |
2084 |
2085 | 81
2086 |
2087 |
2088 |
2089 |
2090 |
2091 |
2092 |
2093 |
2094 |
2095 |
2096 |
2097 |
2098 |
2099 |
2100 |
2101 |
2102 | 75
2103 |
2104 |
2105 |
2106 |
2107 | 78
2108 |
2109 |
2110 |
2111 |
2112 | 72
2113 |
2114 |
2115 |
2116 |
2117 | 82
2118 |
2119 |
2120 |
2121 |
2122 | 124
2123 |
2124 |
2125 |
2126 |
2127 |
2128 |
2129 |
2130 | 77
2131 |
2132 |
2133 |
2134 |
2135 | 73
2136 |
2137 |
2138 |
2139 |
2140 | 79
2141 |
2142 |
2143 |
2144 |
2145 | 112
2146 |
2147 |
2148 |
2149 |
2150 | 74
2151 |
2152 |
2153 |
2154 |
2155 | 125
2156 |
2157 |
2158 |
2159 |
2160 |
2161 |
2162 |
2163 | 126
2164 |
2165 |
2166 |
2167 |
2168 | 205
2169 |
2170 |
2171 |
2172 |
2173 |
2174 |
2175 |
2176 |
2177 |
2178 |
2179 |
2180 |
2181 |
2182 |
2183 |
2184 |
2185 |
2186 |
2187 |
2188 |
2189 |
2190 | 202
2191 |
2192 |
2193 |
2194 |
2195 | 198
2196 |
2197 |
2198 |
2199 |
2200 | 207
2201 |
2202 |
2203 |
2204 |
2205 | 214
2206 |
2207 |
2208 |
2209 |
2210 | 199
2211 |
2212 |
2213 |
2214 |
2215 | 203
2216 |
2217 |
2218 |
2219 |
2220 | 197
2221 |
2222 |
2223 |
2224 |
2225 | 206
2226 |
2227 |
2228 |
2229 |
2230 | 215
2231 |
2232 |
2233 |
2234 |
2235 | 218
2236 |
2237 |
2238 |
2239 |
2240 |
2241 |
2242 |
2243 | 216
2244 |
2245 |
2246 |
2247 |
2248 |
2249 |
2250 |
2251 | 200
2252 |
2253 |
2254 |
2255 |
2256 |
2257 |
2258 |
2259 |
2260 |
2261 |
2262 |
2263 |
2264 | 219
2265 |
2266 |
2267 |
2268 |
2269 | 201
2270 |
2271 |
2272 |
2273 |
2274 | 204
2275 |
2276 |
2277 |
2278 |
2279 | 220
2280 |
2281 |
2282 |
2283 |
2284 |
2285 |
2286 |
2287 |
2288 |
2289 |
2290 |
2291 |
2292 | 213
2293 |
2294 |
2295 |
2296 |
2297 | 210
2298 |
2299 |
2300 |
2301 |
2302 | 221
2303 |
2304 |
2305 |
2306 |
2307 | 208
2308 |
2309 |
2310 |
2311 |
2312 | 209
2313 |
2314 |
2315 |
2316 |
2317 | 57
2318 |
2319 |
2320 |
2321 |
2322 |
2323 |
2324 |
2325 |
2326 |
2327 |
2328 |
2329 |
2330 |
2331 |
2332 |
2333 |
2334 |
2335 | 58
2336 |
2337 |
2338 |
2339 |
2340 | 134
2341 |
2342 |
2343 |
2344 |
2345 | 150
2346 |
2347 |
2348 |
2349 |
2350 | 136
2351 |
2352 |
2353 |
2354 |
2355 | 144
2356 |
2357 |
2358 |
2359 |
2360 | 129
2361 |
2362 |
2363 |
2364 |
2365 | 143
2366 |
2367 |
2368 |
2369 |
2370 | 236
2371 |
2372 |
2373 |
2374 |
2375 | 131
2376 |
2377 |
2378 |
2379 |
2380 |
2381 |
2382 |
2383 | 149
2384 |
2385 |
2386 |
2387 |
2388 | 145
2389 |
2390 |
2391 |
2392 |
2393 | 130
2394 |
2395 |
2396 |
2397 |
2398 | 24
2399 |
2400 |
2401 |
2402 |
2403 |
2404 |
2405 |
2406 |
2407 |
2408 |
2409 | 92
2410 |
2411 |
2412 |
2413 |
2414 | 5
2415 |
2416 |
2417 |
2418 |
2419 | 239
2420 |
2421 |
2422 |
2423 |
2424 | 23
2425 |
2426 |
2427 |
2428 |
2429 | 295
2430 |
2431 |
2432 |
2433 |
2434 |
2435 |
2436 |
2437 | 296
2438 |
2439 |
2440 |
2441 |
2442 |
2443 |
2444 |
2445 |
2446 | 297
2447 |
2448 |
2449 |
2450 |
2451 | 298
2452 |
2453 |
2454 |
2455 |
2456 | 211
2457 |
2458 |
2459 |
2460 |
2461 |
2462 |
2463 |
2464 | 212
2465 |
2466 |
2467 |
2468 |
2469 |
2470 |
2471 |
2472 |
2473 | 195
2474 |
2475 |
2476 |
2477 |
2478 | 196
2479 |
2480 |
2481 |
2482 |
2483 | 346
2484 |
2485 |
2486 |
2487 |
2488 | 348
2489 |
2490 |
2491 |
2492 |
2493 |
2494 |
2495 |
2496 | 349
2497 |
2498 |
2499 |
2500 |
2501 |
2502 |
2503 |
2504 |
2505 |
2506 |
2507 |
2508 |
2509 |
2510 | 350
2511 |
2512 |
2513 |
2514 |
2515 | 351
2516 |
2517 |
2518 |
2519 |
2520 | 354
2521 |
2522 |
2523 |
2524 |
2525 | 371
2526 |
2527 |
2528 |
2529 |
2530 |
2531 |
2532 |
2533 | 372
2534 |
2535 |
2536 |
2537 |
2538 |
2539 | 375
2540 |
2541 |
2542 |
2543 |
2544 |
2545 |
2546 |
2547 | 376
2548 |
2549 |
2550 |
2551 |
2552 |
2553 |
2554 |
2555 |
2556 | 377
2557 |
2558 |
2559 |
2560 |
2561 |
2562 |
2563 |
2564 | 388
2565 |
2566 |
2567 |
2568 |
2569 |
2570 |
2571 |
2572 |
2573 |
2574 |
2575 |
2576 |
2577 |
2578 |
2579 |
2580 |
2581 |
2582 |
2583 |
2584 |
2585 |
2586 |
2587 | 389
2588 |
2589 |
2590 |
2591 |
2592 | 390
2593 |
2594 |
2595 |
2596 |
2597 | 391
2598 |
2599 |
2600 |
2601 |
2602 | 392
2603 |
2604 |
2605 |
2606 |
2607 | 393
2608 |
2609 |
2610 |
2611 |
2612 | 394
2613 |
2614 |
2615 |
2616 |
2617 | 395
2618 |
2619 |
2620 |
2621 |
2622 | 396
2623 |
2624 |
2625 |
2626 |
2627 | 397
2628 |
2629 |
2630 |
2631 |
2632 |
2633 |
2634 |
2635 | 398
2636 |
2637 |
2638 |
2639 |
2640 |
2641 |
2642 |
2643 | 399
2644 |
2645 |
2646 |
2647 |
2648 |
2649 |
2650 |
2651 | 400
2652 |
2653 |
2654 |
2655 |
2656 | 401
2657 |
2658 |
2659 |
2660 |
2661 | 402
2662 |
2663 |
2664 |
2665 |
2666 | 403
2667 |
2668 |
2669 |
2670 |
2671 | 404
2672 |
2673 |
2674 |
2675 |
2676 | 405
2677 |
2678 |
2679 |
2680 |
2681 |
2682 |
2683 |
2684 |
2685 |
2686 |
2687 |
2688 | 406
2689 |
2690 |
2691 |
2692 |
2693 | 407
2694 |
2695 |
2696 |
2697 |
2698 | 408
2699 |
2700 |
2701 |
2702 |
2703 | 409
2704 |
2705 |
2706 |
2707 |
2708 | 410
2709 |
2710 |
2711 |
2712 |
2713 | 411
2714 |
2715 |
2716 |
2717 |
2718 |
2719 |
2720 |
2721 |
2722 |
2723 | 412
2724 |
2725 |
2726 |
2727 |
2728 | 413
2729 |
2730 |
2731 |
2732 |
2733 | 414
2734 |
2735 |
2736 |
2737 |
2738 | 415
2739 |
2740 |
2741 |
2742 |
2743 |
2744 |
2745 |
2746 |
2747 |
2748 |
2749 | 416
2750 |
2751 |
2752 |
2753 |
2754 | 417
2755 |
2756 |
2757 |
2758 |
2759 | 418
2760 |
2761 |
2762 |
2763 |
2764 | 419
2765 |
2766 |
2767 |
2768 |
2769 | 420
2770 |
2771 |
2772 |
2773 |
2774 | 450
2775 |
2776 |
2777 |
2778 |
2779 |
2780 |
2781 |
2782 | 451
2783 |
2784 |
2785 |
2786 |
2787 |
2788 |
2789 |
2790 |
2791 |
2792 | 452
2793 |
2794 |
2795 |
2796 |
2797 | 453
2798 |
2799 |
2800 |
2801 |
2802 | 454
2803 |
2804 |
2805 |
2806 |
2807 | 457
2808 |
2809 |
2810 |
2811 |
2812 | 459
2813 |
2814 |
2815 |
2816 |
2817 | 460
2818 |
2819 |
2820 |
2821 |
2822 | 462
2823 |
2824 |
2825 |
2826 |
2827 | 465
2828 |
2829 |
2830 |
2831 |
2832 | 466
2833 |
2834 |
2835 |
2836 |
2837 | 485
2838 |
2839 |
2840 |
2841 |
2842 | 490
2843 |
2844 |
2845 |
2846 |
2847 |
2848 |
2849 |
2850 | 491
2851 |
2852 |
2853 |
2854 |
2855 |
2856 |
2857 |
2858 | 492
2859 |
2860 |
2861 |
2862 |
2863 | 494
2864 |
2865 |
2866 |
2867 |
2868 | 496
2869 |
2870 |
2871 |
2872 |
2873 |
2874 |
2875 |
2876 | 497
2877 |
2878 |
2879 |
2880 |
2881 |
2882 |
2883 |
2884 |
2885 |
2886 |
2887 |
2888 |
2889 |
2890 |
2891 |
2892 |
2893 | 498
2894 |
2895 |
2896 |
2897 |
2898 | 499
2899 |
2900 |
2901 |
2902 |
2903 | 500
2904 |
2905 |
2906 |
2907 |
2908 | 501
2909 |
2910 |
2911 |
2912 |
2913 | 502
2914 |
2915 |
2916 |
2917 |
2918 | 503
2919 |
2920 |
2921 |
2922 |
2923 |
2924 |
2925 |
2926 | 504
2927 |
2928 |
2929 |
2930 |
2931 | 505
2932 |
2933 |
2934 |
2935 |
2936 | 506
2937 |
2938 |
2939 |
2940 |
2941 | 507
2942 |
2943 |
2944 |
2945 |
2946 | 508
2947 |
2948 |
2949 |
2950 |
2951 |
2952 |
2953 |
2954 |
2955 |
2956 |
2957 |
2958 |
2959 |
2960 |
2961 |
2962 | 509
2963 |
2964 |
2965 |
2966 |
2967 | 510
2968 |
2969 |
2970 |
2971 |
2972 | 511
2973 |
2974 |
2975 |
2976 |
2977 | 512
2978 |
2979 |
2980 |
2981 |
2982 | 513
2983 |
2984 |
2985 |
2986 |
2987 | 514
2988 |
2989 |
2990 |
2991 |
2992 | 515
2993 |
2994 |
2995 |
2996 |
2997 | 516
2998 |
2999 |
3000 |
3001 |
3002 | 517
3003 |
3004 |
3005 |
3006 |
3007 | 534
3008 |
3009 |
3010 |
3011 |
3012 |
3013 |
3014 | com.apple.InterfaceBuilder.CocoaPlugin
3015 | com.apple.InterfaceBuilder.CocoaPlugin
3016 | com.apple.InterfaceBuilder.CocoaPlugin
3017 | com.apple.InterfaceBuilder.CocoaPlugin
3018 | com.apple.InterfaceBuilder.CocoaPlugin
3019 | com.apple.InterfaceBuilder.CocoaPlugin
3020 | com.apple.InterfaceBuilder.CocoaPlugin
3021 | com.apple.InterfaceBuilder.CocoaPlugin
3022 | com.apple.InterfaceBuilder.CocoaPlugin
3023 | com.apple.InterfaceBuilder.CocoaPlugin
3024 | com.apple.InterfaceBuilder.CocoaPlugin
3025 | com.apple.InterfaceBuilder.CocoaPlugin
3026 | com.apple.InterfaceBuilder.CocoaPlugin
3027 | com.apple.InterfaceBuilder.CocoaPlugin
3028 | com.apple.InterfaceBuilder.CocoaPlugin
3029 | com.apple.InterfaceBuilder.CocoaPlugin
3030 | com.apple.InterfaceBuilder.CocoaPlugin
3031 | com.apple.InterfaceBuilder.CocoaPlugin
3032 | com.apple.InterfaceBuilder.CocoaPlugin
3033 | com.apple.InterfaceBuilder.CocoaPlugin
3034 | com.apple.InterfaceBuilder.CocoaPlugin
3035 | com.apple.InterfaceBuilder.CocoaPlugin
3036 | com.apple.InterfaceBuilder.CocoaPlugin
3037 | com.apple.InterfaceBuilder.CocoaPlugin
3038 | com.apple.InterfaceBuilder.CocoaPlugin
3039 | com.apple.InterfaceBuilder.CocoaPlugin
3040 | com.apple.InterfaceBuilder.CocoaPlugin
3041 | com.apple.InterfaceBuilder.CocoaPlugin
3042 | com.apple.InterfaceBuilder.CocoaPlugin
3043 | com.apple.InterfaceBuilder.CocoaPlugin
3044 | com.apple.InterfaceBuilder.CocoaPlugin
3045 | com.apple.InterfaceBuilder.CocoaPlugin
3046 | com.apple.InterfaceBuilder.CocoaPlugin
3047 | com.apple.InterfaceBuilder.CocoaPlugin
3048 | com.apple.InterfaceBuilder.CocoaPlugin
3049 | com.apple.InterfaceBuilder.CocoaPlugin
3050 | com.apple.InterfaceBuilder.CocoaPlugin
3051 | com.apple.InterfaceBuilder.CocoaPlugin
3052 | com.apple.InterfaceBuilder.CocoaPlugin
3053 | com.apple.InterfaceBuilder.CocoaPlugin
3054 | com.apple.InterfaceBuilder.CocoaPlugin
3055 | com.apple.InterfaceBuilder.CocoaPlugin
3056 | com.apple.InterfaceBuilder.CocoaPlugin
3057 | com.apple.InterfaceBuilder.CocoaPlugin
3058 | com.apple.InterfaceBuilder.CocoaPlugin
3059 | com.apple.InterfaceBuilder.CocoaPlugin
3060 | com.apple.InterfaceBuilder.CocoaPlugin
3061 | com.apple.InterfaceBuilder.CocoaPlugin
3062 | com.apple.InterfaceBuilder.CocoaPlugin
3063 | com.apple.InterfaceBuilder.CocoaPlugin
3064 | com.apple.InterfaceBuilder.CocoaPlugin
3065 | com.apple.InterfaceBuilder.CocoaPlugin
3066 | com.apple.InterfaceBuilder.CocoaPlugin
3067 | com.apple.InterfaceBuilder.CocoaPlugin
3068 | com.apple.InterfaceBuilder.CocoaPlugin
3069 | com.apple.InterfaceBuilder.CocoaPlugin
3070 | com.apple.InterfaceBuilder.CocoaPlugin
3071 | com.apple.InterfaceBuilder.CocoaPlugin
3072 | com.apple.InterfaceBuilder.CocoaPlugin
3073 | com.apple.InterfaceBuilder.CocoaPlugin
3074 | com.apple.InterfaceBuilder.CocoaPlugin
3075 | {{380, 496}, {480, 360}}
3076 |
3077 | yeswecodeView
3078 | com.apple.InterfaceBuilder.CocoaPlugin
3079 | com.apple.InterfaceBuilder.CocoaPlugin
3080 | com.apple.InterfaceBuilder.CocoaPlugin
3081 | com.apple.InterfaceBuilder.CocoaPlugin
3082 | com.apple.InterfaceBuilder.CocoaPlugin
3083 | com.apple.InterfaceBuilder.CocoaPlugin
3084 | com.apple.InterfaceBuilder.CocoaPlugin
3085 | com.apple.InterfaceBuilder.CocoaPlugin
3086 | com.apple.InterfaceBuilder.CocoaPlugin
3087 | com.apple.InterfaceBuilder.CocoaPlugin
3088 | com.apple.InterfaceBuilder.CocoaPlugin
3089 | com.apple.InterfaceBuilder.CocoaPlugin
3090 | com.apple.InterfaceBuilder.CocoaPlugin
3091 | com.apple.InterfaceBuilder.CocoaPlugin
3092 | com.apple.InterfaceBuilder.CocoaPlugin
3093 | com.apple.InterfaceBuilder.CocoaPlugin
3094 | com.apple.InterfaceBuilder.CocoaPlugin
3095 | com.apple.InterfaceBuilder.CocoaPlugin
3096 | com.apple.InterfaceBuilder.CocoaPlugin
3097 | com.apple.InterfaceBuilder.CocoaPlugin
3098 | com.apple.InterfaceBuilder.CocoaPlugin
3099 | com.apple.InterfaceBuilder.CocoaPlugin
3100 | com.apple.InterfaceBuilder.CocoaPlugin
3101 | com.apple.InterfaceBuilder.CocoaPlugin
3102 | com.apple.InterfaceBuilder.CocoaPlugin
3103 | com.apple.InterfaceBuilder.CocoaPlugin
3104 | com.apple.InterfaceBuilder.CocoaPlugin
3105 | com.apple.InterfaceBuilder.CocoaPlugin
3106 | com.apple.InterfaceBuilder.CocoaPlugin
3107 | com.apple.InterfaceBuilder.CocoaPlugin
3108 | com.apple.InterfaceBuilder.CocoaPlugin
3109 | com.apple.InterfaceBuilder.CocoaPlugin
3110 | com.apple.InterfaceBuilder.CocoaPlugin
3111 | com.apple.InterfaceBuilder.CocoaPlugin
3112 | com.apple.InterfaceBuilder.CocoaPlugin
3113 | com.apple.InterfaceBuilder.CocoaPlugin
3114 | com.apple.InterfaceBuilder.CocoaPlugin
3115 | com.apple.InterfaceBuilder.CocoaPlugin
3116 | com.apple.InterfaceBuilder.CocoaPlugin
3117 | com.apple.InterfaceBuilder.CocoaPlugin
3118 | com.apple.InterfaceBuilder.CocoaPlugin
3119 | com.apple.InterfaceBuilder.CocoaPlugin
3120 | com.apple.InterfaceBuilder.CocoaPlugin
3121 | com.apple.InterfaceBuilder.CocoaPlugin
3122 | com.apple.InterfaceBuilder.CocoaPlugin
3123 | com.apple.InterfaceBuilder.CocoaPlugin
3124 | com.apple.InterfaceBuilder.CocoaPlugin
3125 | com.apple.InterfaceBuilder.CocoaPlugin
3126 | com.apple.InterfaceBuilder.CocoaPlugin
3127 | com.apple.InterfaceBuilder.CocoaPlugin
3128 | com.apple.InterfaceBuilder.CocoaPlugin
3129 | com.apple.InterfaceBuilder.CocoaPlugin
3130 | com.apple.InterfaceBuilder.CocoaPlugin
3131 | com.apple.InterfaceBuilder.CocoaPlugin
3132 | com.apple.InterfaceBuilder.CocoaPlugin
3133 | com.apple.InterfaceBuilder.CocoaPlugin
3134 | com.apple.InterfaceBuilder.CocoaPlugin
3135 | com.apple.InterfaceBuilder.CocoaPlugin
3136 | com.apple.InterfaceBuilder.CocoaPlugin
3137 | com.apple.InterfaceBuilder.CocoaPlugin
3138 | com.apple.InterfaceBuilder.CocoaPlugin
3139 | com.apple.InterfaceBuilder.CocoaPlugin
3140 | com.apple.InterfaceBuilder.CocoaPlugin
3141 | com.apple.InterfaceBuilder.CocoaPlugin
3142 | com.apple.InterfaceBuilder.CocoaPlugin
3143 | com.apple.InterfaceBuilder.CocoaPlugin
3144 | com.apple.InterfaceBuilder.CocoaPlugin
3145 | com.apple.InterfaceBuilder.CocoaPlugin
3146 | com.apple.InterfaceBuilder.CocoaPlugin
3147 | com.apple.InterfaceBuilder.CocoaPlugin
3148 | com.apple.InterfaceBuilder.CocoaPlugin
3149 | com.apple.InterfaceBuilder.CocoaPlugin
3150 | com.apple.InterfaceBuilder.CocoaPlugin
3151 | com.apple.InterfaceBuilder.CocoaPlugin
3152 | com.apple.InterfaceBuilder.CocoaPlugin
3153 | com.apple.InterfaceBuilder.CocoaPlugin
3154 | com.apple.InterfaceBuilder.CocoaPlugin
3155 | com.apple.InterfaceBuilder.CocoaPlugin
3156 | com.apple.InterfaceBuilder.CocoaPlugin
3157 | com.apple.InterfaceBuilder.CocoaPlugin
3158 | com.apple.InterfaceBuilder.CocoaPlugin
3159 | com.apple.InterfaceBuilder.CocoaPlugin
3160 | com.apple.InterfaceBuilder.CocoaPlugin
3161 | com.apple.InterfaceBuilder.CocoaPlugin
3162 | com.apple.InterfaceBuilder.CocoaPlugin
3163 | com.apple.InterfaceBuilder.CocoaPlugin
3164 | com.apple.InterfaceBuilder.CocoaPlugin
3165 | com.apple.InterfaceBuilder.CocoaPlugin
3166 | com.apple.InterfaceBuilder.CocoaPlugin
3167 | com.apple.InterfaceBuilder.CocoaPlugin
3168 | com.apple.InterfaceBuilder.CocoaPlugin
3169 |
3170 |
3171 |
3172 |
3173 |
3174 | 548
3175 |
3176 |
3177 |
3178 |
3179 | AppDelegate
3180 | NSObject
3181 |
3182 | ScreenSaverView
3183 | NSWindow
3184 |
3185 |
3186 |
3187 | view
3188 | ScreenSaverView
3189 |
3190 |
3191 | window
3192 | NSWindow
3193 |
3194 |
3195 |
3196 | IBProjectSource
3197 | ./Classes/AppDelegate.h
3198 |
3199 |
3200 |
3201 | ScreenSaverView
3202 | NSView
3203 |
3204 | IBProjectSource
3205 | ./Classes/ScreenSaverView.h
3206 |
3207 |
3208 |
3209 | yeswecodeView
3210 | ScreenSaverView
3211 |
3212 | IBProjectSource
3213 | ./Classes/yeswecodeView.h
3214 |
3215 |
3216 |
3217 |
3218 | 0
3219 | IBCocoaFramework
3220 | YES
3221 | 3
3222 |
3223 | {11, 11}
3224 | {10, 3}
3225 |
3226 | YES
3227 |
3228 |
3229 |
--------------------------------------------------------------------------------