Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Import into GitHub

  • Loading branch information...
commit c53637a06faa21bd9335d117679f4f258261bb9c 0 parents
@rickfillion rickfillion authored
23 AppController.h
@@ -0,0 +1,23 @@
+//
+// AppController.h
+// RFAnimatedSlider
+//
+// Created by Rick Fillion on 23/07/09.
+// All code is provided under the New BSD license.
+//
+
+#import <Cocoa/Cocoa.h>
+
+
+@interface AppController : NSObject {
+ NSNumber *value;
+}
+
+@property (nonatomic, retain) NSNumber *value;
+
+- (IBAction)setToMax:(id)sender;
+- (IBAction)setToMin:(id)sender;
+
+@end
+
+
35 AppController.m
@@ -0,0 +1,35 @@
+//
+// AppController.m
+// RFAnimatedSlider
+//
+// Created by Rick Fillion on 23/07/09.
+// All code is provided under the New BSD license.
+//
+
+#import "AppController.h"
+
+
+@implementation AppController
+
+@synthesize value;
+
+- (id)init
+{
+ if (self = [super init])
+ {
+ self.value = [NSNumber numberWithInt:0];
+ }
+ return self;
+}
+
+- (IBAction)setToMax:(id)sender
+{
+ self.value = [NSNumber numberWithInt:10];
+}
+
+- (IBAction)setToMin:(id)sender
+{
+ self.value = [NSNumber numberWithInt:0];
+}
+
+@end
BIN  English.lproj/InfoPlist.strings
Binary file not shown
3,866 English.lproj/MainMenu.xib
3,866 additions, 0 deletions not shown
28 Info.plist
@@ -0,0 +1,28 @@
+<?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></string>
+ <key>CFBundleIdentifier</key>
+ <string>ca.centrix.${PRODUCT_NAME:identifier}</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>${PRODUCT_NAME}</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>1.0</string>
+ <key>NSMainNibFile</key>
+ <string>MainMenu</string>
+ <key>NSPrincipalClass</key>
+ <string>NSApplication</string>
+</dict>
+</plist>
17 License.rtf
@@ -0,0 +1,17 @@
+{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf460
+{\fonttbl\f0\fnil\fcharset0 Verdana;}
+{\colortbl;\red255\green255\blue255;\red14\green14\blue14;}
+{\*\listtable{\list\listtemplateid1\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid1}}
+{\*\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}}
+\vieww9000\viewh8400\viewkind0
+\deftab720
+\pard\pardeftab720\sl400\sa280\ql\qnatural
+
+\f0\fs24 \cf2 Copyright (c) 2009, Centrix.ca\uc0\u8232 All rights reserved.\
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\
+\pard\tx220\tx720\pardeftab720\li720\fi-720\sl400\sa20\ql\qnatural
+\ls1\ilvl0\cf2 {\listtext \'95 }Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\
+{\listtext \'95 }Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\
+{\listtext \'95 }Neither the name of Centrix.ca nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\
+\pard\pardeftab720\sl400\sa280\ql\qnatural
+\cf2 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.}
0  README
No changes.
21 RFAnimatedSlider.h
@@ -0,0 +1,21 @@
+//
+// RFAnimatedSlider.h
+// RFAnimatedSlider
+//
+// Created by Rick Fillion on 19/03/09.
+// All code is provided under the New BSD license.
+//
+
+#import <Cocoa/Cocoa.h>
+
+
+@interface RFAnimatedSlider : NSSlider {
+ CALayer *knobLayer;
+ BOOL settingValue;
+ NSRect lastKnobRect;
+}
+
+- (void)refreshKnobImage;
+- (void)drawKnob:(NSRect)knobRect;
+
+@end
256 RFAnimatedSlider.m
@@ -0,0 +1,256 @@
+//
+// RFAnimatedSlider.m
+// RFAnimatedSlider
+//
+// Created by Rick Fillion on 19/03/09.
+// All code is provided under the New BSD license.
+//
+
+#import "RFAnimatedSlider.h"
+#import <QuartzCore/QuartzCore.h>
+
+@interface RFAnimatedSliderCell : NSSliderCell
+{
+ BOOL drawKnob;
+ BOOL isTracking;
+}
+-(void)setDrawKnob:(BOOL)value;
+
+@end
+
+
+@implementation RFAnimatedSliderCell
+
+- (void)drawKnob:(NSRect)knobRect
+{
+ if (!drawKnob)
+ [(RFAnimatedSlider *)[self controlView] drawKnob: knobRect];
+ else
+ [super drawKnob:knobRect];
+}
+
+- (BOOL)startTrackingAt:(NSPoint)startPoint inView:(NSView *)controlView
+{
+ BOOL value = [super startTrackingAt:startPoint inView:controlView];
+ if (!isTracking)
+ {
+ [(RFAnimatedSlider *)[self controlView] refreshKnobImage];
+ isTracking = YES;
+ }
+ return value;
+}
+
+- (void)stopTracking:(NSPoint)lastPoint at:(NSPoint)stopPoint inView:(NSView *)controlView mouseIsUp:(BOOL)flag
+{
+ isTracking = NO;
+ if (![self isContinuous])
+ [(NSControl *)controlView sendAction:[self action] to:[self target]];
+
+ [super stopTracking:lastPoint at:stopPoint inView:controlView mouseIsUp:flag];
+ [(RFAnimatedSlider *)[self controlView] refreshKnobImage];
+}
+
+- (BOOL)continueTracking:(NSPoint)lastPoint at:(NSPoint)currentPoint inView:(NSView *)controlView
+{
+ BOOL value =[super continueTracking:lastPoint at:currentPoint inView:controlView];
+ if ([self isContinuous])
+ [(NSControl *)controlView sendAction:[self action] to:[self target]];
+ return value;
+}
+
+-(void)setDrawKnob:(BOOL)value
+{
+ drawKnob = value;
+}
+
+@end
+
+@interface RFAnimatedSlider (Private)
+
+- (void)swapCells;
+- (Class) cellClass;
+- (void)createKnobLayer:(NSRect)knobRect;
+
+@end
+
+@implementation RFAnimatedSlider (Private)
+
+- (Class) cellClass
+{
+ return [RFAnimatedSliderCell class];
+}
+
+- (void)swapCells
+{
+ RFAnimatedSliderCell *newCell = [[[[self cellClass] alloc] initImageCell: nil] autorelease];
+ NSSliderCell *oldCell = [self cell];
+
+ [newCell setAltIncrementValue: [oldCell altIncrementValue]];
+ [newCell setKnobThickness: [oldCell knobThickness]];
+ [newCell setTitle: [oldCell title]];
+ [newCell setMinValue: [oldCell minValue]];
+ [newCell setMaxValue: [oldCell maxValue]];
+ [newCell setAllowsTickMarkValuesOnly: [oldCell allowsTickMarkValuesOnly]];
+ [newCell setNumberOfTickMarks: [oldCell numberOfTickMarks]];
+ [newCell setTickMarkPosition: [oldCell tickMarkPosition]];
+
+ [self setCell: newCell];
+}
+
+- (void)createKnobLayer:(NSRect)knobRect
+{
+ knobLayer = [[CALayer layer] retain];
+ knobLayer.anchorPoint = CGPointMake(0,0);
+
+ [self refreshKnobImage];
+}
+
+
+
+@end
+
+@implementation RFAnimatedSlider
+
+
+
+-(id)initWithFrame:(NSRect) rect
+{
+ if (self = [super initWithFrame: rect]){
+ [self swapCells];
+ [self setWantsLayer: YES];
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(windowWillBecomeKey:) name:NSWindowDidBecomeKeyNotification object:nil];
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(windowWillResignKey:) name:NSWindowDidResignKeyNotification object:nil];
+ }
+ return self;
+}
+
+-(id)initWithCoder:(NSCoder *)coder
+{
+ if (self = [super initWithCoder: coder]){
+ [self swapCells];
+ [self setWantsLayer: YES];
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(windowWillBecomeKey:) name:NSWindowDidBecomeKeyNotification object:nil];
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(windowWillResignKey:) name:NSWindowDidResignKeyNotification object:nil];
+ }
+ return self;
+}
+
+- (void)dealloc
+{
+ [[NSNotificationCenter defaultCenter] removeObserver:self];
+ [knobLayer release];
+ [super dealloc];
+}
+
+- (void)drawKnob:(NSRect)knobRect
+{
+ lastKnobRect = knobRect;
+ if (knobLayer == nil)
+ [self createKnobLayer: knobRect];
+
+
+ CGRect frame = NSRectToCGRect(lastKnobRect);
+ frame.origin.y = NSHeight([self frame]) - NSMaxY(lastKnobRect);
+ if (!settingValue)
+ {
+ [NSAnimationContext beginGrouping];
+ [[NSAnimationContext currentContext] setDuration: 0];
+ knobLayer.frame = frame;
+ [NSAnimationContext endGrouping];
+ }
+ else
+ {
+ CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"position"];
+ animation.duration = 0.2;
+ animation.fromValue=[NSValue valueWithPoint: NSMakePoint(knobLayer.position.x, knobLayer.position.y)];
+ animation.toValue=[NSValue valueWithPoint: NSMakePoint(frame.origin.x, frame.origin.y)];
+ [knobLayer addAnimation:animation forKey:@"movePosition"];
+ knobLayer.frame = frame;
+ settingValue = NO;
+ }
+}
+
+
+#pragma mark Methods that can trigger an explicit slider animation
+
+- (void)setDoubleValue:(double)value
+{
+ settingValue = YES;
+ [super setDoubleValue:value];
+}
+
+- (void)setFloatValue:(float)value
+{
+ settingValue = YES;
+ [super setFloatValue:value];
+}
+
+- (void)setIntValue:(int)value
+{
+ settingValue = YES;
+ [super setIntValue:value];
+}
+
+- (void)setIntegerValue:(NSInteger)value
+{
+ settingValue = YES;
+ [super setIntegerValue:value];
+}
+
+#pragma mark Methods that can change the look of the knob
+- (void)setNumberOfTickMarks:(NSInteger)numberOfTickMarks
+{
+ [super setNumberOfTickMarks:numberOfTickMarks];
+ [self refreshKnobImage];
+}
+
+- (void)windowWillBecomeKey:(id)sender
+{
+ [self refreshKnobImage];
+}
+
+- (void)windowWillResignKey:(id)sender
+{
+ [self refreshKnobImage];
+}
+
+- (void)refreshKnobImage
+{
+ NSImage *bigImage = [[[NSImage alloc] initWithSize: [self frame].size] autorelease];
+ [bigImage lockFocus];
+ [(RFAnimatedSliderCell*)[self cell] setDrawKnob:YES];
+ [[self cell] drawKnob: lastKnobRect];
+ [(RFAnimatedSliderCell*)[self cell] setDrawKnob:NO];
+ [bigImage unlockFocus];
+
+ NSImage *knobImage = [[[NSImage alloc] initWithSize:lastKnobRect.size] autorelease];
+ NSRect rectAtOrigin = lastKnobRect;
+ rectAtOrigin.origin.x = 0.0;
+ rectAtOrigin.origin.y = 0.0;
+
+ if ([knobImage respondsToSelector:@selector(lockFocusFlipped:)])
+ {
+ // 10.6 needs this.
+ [knobImage lockFocusFlipped: YES];
+ }
+ else {
+ [knobImage lockFocus];
+ }
+ [bigImage drawInRect:rectAtOrigin fromRect:lastKnobRect operation:NSCompositeSourceOver fraction: 1.0];
+ [knobImage unlockFocus];
+
+ NSData* cocoaData = [knobImage TIFFRepresentation];
+ CFDataRef carbonData = (CFDataRef)cocoaData;
+ CGImageSourceRef imageSourceRef = CGImageSourceCreateWithData(carbonData, NULL);
+ CGImageRef knobImageRef = CGImageSourceCreateImageAtIndex(imageSourceRef, 0, NULL);
+ knobLayer.contents = (id)knobImageRef;
+ CFRelease(imageSourceRef);
+ CFRelease(knobImageRef);
+ [[self layer] addSublayer: knobLayer];
+ CGRect frame = NSRectToCGRect(lastKnobRect);
+ frame.origin.y = NSHeight([self frame]) - NSMaxY(lastKnobRect);
+ [knobLayer setFrame: frame];
+}
+
+
+@end
BIN  RFAnimatedSlider.xcodeproj/TemplateIcon.icns
Binary file not shown
299 RFAnimatedSlider.xcodeproj/project.pbxproj
@@ -0,0 +1,299 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 45;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1DDD58140DA1D0A300B32029 /* MainMenu.xib */; };
+ 5FEE465D10193D7500AFC176 /* AppController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5FEE465C10193D7500AFC176 /* AppController.m */; };
+ 5FEE466610193F7200AFC176 /* RFAnimatedSlider.m in Sources */ = {isa = PBXBuildFile; fileRef = 5FEE466510193F7200AFC176 /* RFAnimatedSlider.m */; };
+ 5FEE466910193F9800AFC176 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5FEE466810193F9800AFC176 /* QuartzCore.framework */; };
+ 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; };
+ 8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; };
+ 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ 089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<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>"; };
+ 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>"; };
+ 32CA4F630368D1EE00C91783 /* RFAnimatedSlider_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RFAnimatedSlider_Prefix.pch; sourceTree = "<group>"; };
+ 5FEE465B10193D7500AFC176 /* AppController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppController.h; sourceTree = "<group>"; };
+ 5FEE465C10193D7500AFC176 /* AppController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppController.m; sourceTree = "<group>"; };
+ 5FEE466410193F7200AFC176 /* RFAnimatedSlider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RFAnimatedSlider.h; sourceTree = "<group>"; };
+ 5FEE466510193F7200AFC176 /* RFAnimatedSlider.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RFAnimatedSlider.m; sourceTree = "<group>"; };
+ 5FEE466810193F9800AFC176 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
+ 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+ 8D1107320486CEB800E47090 /* RFAnimatedSlider.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RFAnimatedSlider.app; sourceTree = BUILT_PRODUCTS_DIR; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 8D11072E0486CEB800E47090 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */,
+ 5FEE466910193F9800AFC176 /* QuartzCore.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 080E96DDFE201D6D7F000001 /* Classes */ = {
+ isa = PBXGroup;
+ children = (
+ 5FEE466410193F7200AFC176 /* RFAnimatedSlider.h */,
+ 5FEE466510193F7200AFC176 /* RFAnimatedSlider.m */,
+ 5FEE465B10193D7500AFC176 /* AppController.h */,
+ 5FEE465C10193D7500AFC176 /* AppController.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 /* RFAnimatedSlider.app */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 29B97314FDCFA39411CA2CEA /* RFAnimatedSlider */ = {
+ isa = PBXGroup;
+ children = (
+ 080E96DDFE201D6D7F000001 /* Classes */,
+ 29B97315FDCFA39411CA2CEA /* Other Sources */,
+ 29B97317FDCFA39411CA2CEA /* Resources */,
+ 29B97323FDCFA39411CA2CEA /* Frameworks */,
+ 19C28FACFE9D520D11CA2CBB /* Products */,
+ 5FEE466810193F9800AFC176 /* QuartzCore.framework */,
+ );
+ name = RFAnimatedSlider;
+ sourceTree = "<group>";
+ };
+ 29B97315FDCFA39411CA2CEA /* Other Sources */ = {
+ isa = PBXGroup;
+ children = (
+ 32CA4F630368D1EE00C91783 /* RFAnimatedSlider_Prefix.pch */,
+ 29B97316FDCFA39411CA2CEA /* main.m */,
+ );
+ name = "Other Sources";
+ sourceTree = "<group>";
+ };
+ 29B97317FDCFA39411CA2CEA /* Resources */ = {
+ isa = PBXGroup;
+ children = (
+ 8D1107310486CEB800E47090 /* 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 /* RFAnimatedSlider */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "RFAnimatedSlider" */;
+ buildPhases = (
+ 8D1107290486CEB800E47090 /* Resources */,
+ 8D11072C0486CEB800E47090 /* Sources */,
+ 8D11072E0486CEB800E47090 /* Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = RFAnimatedSlider;
+ productInstallPath = "$(HOME)/Applications";
+ productName = RFAnimatedSlider;
+ productReference = 8D1107320486CEB800E47090 /* RFAnimatedSlider.app */;
+ productType = "com.apple.product-type.application";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 29B97313FDCFA39411CA2CEA /* Project object */ = {
+ isa = PBXProject;
+ buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "RFAnimatedSlider" */;
+ compatibilityVersion = "Xcode 3.1";
+ developmentRegion = English;
+ hasScannedForEncodings = 1;
+ knownRegions = (
+ English,
+ Japanese,
+ French,
+ German,
+ );
+ mainGroup = 29B97314FDCFA39411CA2CEA /* RFAnimatedSlider */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ 8D1107260486CEB800E47090 /* RFAnimatedSlider */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ 8D1107290486CEB800E47090 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */,
+ 1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 8D11072C0486CEB800E47090 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 8D11072D0486CEB800E47090 /* main.m in Sources */,
+ 5FEE465D10193D7500AFC176 /* AppController.m in Sources */,
+ 5FEE466610193F7200AFC176 /* RFAnimatedSlider.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;
+ COPY_PHASE_STRIP = NO;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
+ GCC_MODEL_TUNING = G5;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = RFAnimatedSlider_Prefix.pch;
+ INFOPLIST_FILE = Info.plist;
+ INSTALL_PATH = "$(HOME)/Applications";
+ PRODUCT_NAME = RFAnimatedSlider;
+ };
+ name = Debug;
+ };
+ C01FCF4C08A954540054247B /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ GCC_MODEL_TUNING = G5;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = RFAnimatedSlider_Prefix.pch;
+ INFOPLIST_FILE = Info.plist;
+ INSTALL_PATH = "$(HOME)/Applications";
+ PRODUCT_NAME = RFAnimatedSlider;
+ };
+ name = Release;
+ };
+ C01FCF4F08A954540054247B /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+ GCC_C_LANGUAGE_STANDARD = c99;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ ONLY_ACTIVE_ARCH = YES;
+ PREBINDING = NO;
+ SDKROOT = macosx10.5;
+ };
+ name = Debug;
+ };
+ C01FCF5008A954540054247B /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = "$(ARCHS_STANDARD_32_BIT)";
+ GCC_C_LANGUAGE_STANDARD = c99;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ PREBINDING = NO;
+ SDKROOT = macosx10.5;
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "RFAnimatedSlider" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ C01FCF4B08A954540054247B /* Debug */,
+ C01FCF4C08A954540054247B /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ C01FCF4E08A954540054247B /* Build configuration list for PBXProject "RFAnimatedSlider" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ C01FCF4F08A954540054247B /* Debug */,
+ C01FCF5008A954540054247B /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
+}
7 RFAnimatedSlider_Prefix.pch
@@ -0,0 +1,7 @@
+//
+// Prefix header for all source files of the 'RFAnimatedSlider' target in the 'RFAnimatedSlider' project
+//
+
+#ifdef __OBJC__
+ #import <Cocoa/Cocoa.h>
+#endif
14 main.m
@@ -0,0 +1,14 @@
+//
+// main.m
+// RFAnimatedSlider
+//
+// Created by Rick Fillion on 23/07/09.
+// Copyright Centrix.ca 2009. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+
+int main(int argc, char *argv[])
+{
+ return NSApplicationMain(argc, (const char **) argv);
+}
Please sign in to comment.
Something went wrong with that request. Please try again.