Repository: ddeville/DDProgressView Branch: master Commit: bc9f6a8f3365 Files: 19 Total size: 54.7 KB Directory structure: gitextract_a_lusg03/ ├── .gitattributes ├── .gitignore ├── DDProgressView/ │ ├── AppKitCompatibility.h │ ├── AppKitCompatibility.m │ ├── DDProgressView-Info.plist │ ├── DDProgressView-Prefix.pch │ ├── DDProgressView.h │ ├── DDProgressView.m │ ├── DDProgressViewAppDelegate.h │ ├── DDProgressViewAppDelegate.m │ ├── DDProgressViewViewController.h │ ├── DDProgressViewViewController.m │ ├── en.lproj/ │ │ ├── DDProgressViewViewController.xib │ │ ├── InfoPlist.strings │ │ └── MainWindow.xib │ └── main.m ├── DDProgressView.xcodeproj/ │ └── project.pbxproj ├── LICENSE └── README.md ================================================ FILE CONTENTS ================================================ ================================================ FILE: .gitattributes ================================================ *.pbxproj -crlf -diff -merge ================================================ FILE: .gitignore ================================================ # OS X .DS_Store .DS_store profile # XCode *.mode* *.perspective* *.pbxuser* *tmproj External/GHUnit/* PLBlocks.framework/* *.pyc # for Xcode 4 xcuserdata *.xcworkspace # built products build *.o # Other source repository archive directories .hg .svn CVS # Automatic backup files #~.nib/ *.swp *~ *(Autosaved).rtfd/ Backup[ ]of[ ]*.pages/ Backup[ ]of[ ]*.key/ Backup[ ]of[ ]*.numbers/ ================================================ FILE: DDProgressView/AppKitCompatibility.h ================================================ #define UIView NSView #define UIColor NSColor #define UIGraphicsGetCurrentContext() [[NSGraphicsContext currentContext] graphicsPort] @interface NSView (UIKit) @property (copy) UIColor *backgroundColor ; - (void)setNeedsDisplay ; @end ================================================ FILE: DDProgressView/AppKitCompatibility.m ================================================ #import "AppKitCompatibility.h" @implementation NSView (UIKit) - (UIColor *)backgroundColor { return nil ; } - (void)setBackgroundColor:(UIColor *)color { return ; } - (void)setNeedsDisplay { [self setNeedsDisplay:YES] ; } @end ================================================ FILE: DDProgressView/DDProgressView-Info.plist ================================================ CFBundleDevelopmentRegion en CFBundleDisplayName ${PRODUCT_NAME} CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIconFile CFBundleIdentifier com.SnappyCode.${PRODUCT_NAME:rfc1034identifier} CFBundleInfoDictionaryVersion 6.0 CFBundleName ${PRODUCT_NAME} CFBundlePackageType APPL CFBundleShortVersionString 1.0 CFBundleSignature ???? CFBundleVersion 1.0 LSRequiresIPhoneOS NSMainNibFile MainWindow UISupportedInterfaceOrientations UIInterfaceOrientationPortrait ================================================ FILE: DDProgressView/DDProgressView-Prefix.pch ================================================ // // Prefix header for all source files of the 'DDProgressView' target in the 'DDProgressView' project // #import #ifndef __IPHONE_3_0 #warning "This project uses features only available in iPhone SDK 3.0 and later." #endif #ifdef __OBJC__ #import #import #endif ================================================ FILE: DDProgressView/DDProgressView.h ================================================ // // DDProgressView.h // DDProgressView // // Created by Damien DeVille on 3/13/11. // Copyright 2011 Snappy Code. All rights reserved. // #if TARGET_OS_IPHONE #import #elif TARGET_OS_MAC #import "AppKitCompatibility.h" #endif @interface DDProgressView : UIView { @private float progress ; UIColor *innerColor ; UIColor *outerColor ; UIColor *emptyColor ; } @property (nonatomic,retain) UIColor *innerColor ; @property (nonatomic,retain) UIColor *outerColor ; @property (nonatomic,retain) UIColor *emptyColor ; @property (nonatomic,assign) float progress ; @property (nonatomic,assign) CGFloat preferredFrameHeight ; @end ================================================ FILE: DDProgressView/DDProgressView.m ================================================ // // DDProgressView.m // DDProgressView // // Created by Damien DeVille on 3/13/11. // Copyright 2011 Snappy Code. All rights reserved. // #import "DDProgressView.h" #define kDefaultProgressBarHeight 22.0f #define kProgressBarWidth 160.0f @implementation DDProgressView @synthesize innerColor ; @synthesize outerColor ; @synthesize emptyColor ; @synthesize progress ; @synthesize preferredFrameHeight ; - (id)init { return [self initWithFrame: CGRectZero] ; } - (id)initWithFrame:(CGRect)frame { self = [super initWithFrame: frame] ; if (self) { self.backgroundColor = [UIColor clearColor] ; self.innerColor = [UIColor lightGrayColor] ; self.outerColor = [UIColor lightGrayColor] ; self.emptyColor = [UIColor clearColor] ; self.preferredFrameHeight = kDefaultProgressBarHeight; if (frame.size.width == 0.0f) frame.size.width = kProgressBarWidth ; } return self ; } - (void)dealloc { [innerColor release], innerColor = nil ; [outerColor release], outerColor = nil ; [emptyColor release], emptyColor = nil ; [super dealloc] ; } - (void)setProgress:(float)theProgress { // make sure the user does not try to set the progress outside of the bounds if (theProgress > 1.0f) theProgress = 1.0f ; if (theProgress < 0.0f) theProgress = 0.0f ; progress = theProgress ; [self setNeedsDisplay] ; } - (void)setFrame:(CGRect)frame { // we set the height ourselves since it is fixed frame.size.height = self.preferredFrameHeight ; [super setFrame: frame] ; } - (void)setBounds:(CGRect)bounds { // we set the height ourselves since it is fixed bounds.size.height = self.preferredFrameHeight ; [super setBounds: bounds] ; } - (void)drawRect:(CGRect)rect { CGContextRef context = UIGraphicsGetCurrentContext() ; // save the context CGContextSaveGState(context) ; // allow antialiasing CGContextSetAllowsAntialiasing(context, TRUE) ; // we first draw the outter rounded rectangle rect = CGRectInset(rect, 1.0f, 1.0f) ; CGFloat radius = 0.5f * rect.size.height ; [outerColor setStroke] ; CGContextSetLineWidth(context, 2.0f) ; CGContextBeginPath(context) ; CGContextMoveToPoint(context, CGRectGetMinX(rect), CGRectGetMidY(rect)) ; CGContextAddArcToPoint(context, CGRectGetMinX(rect), CGRectGetMinY(rect), CGRectGetMidX(rect), CGRectGetMinY(rect), radius) ; CGContextAddArcToPoint(context, CGRectGetMaxX(rect), CGRectGetMinY(rect), CGRectGetMaxX(rect), CGRectGetMidY(rect), radius) ; CGContextAddArcToPoint(context, CGRectGetMaxX(rect), CGRectGetMaxY(rect), CGRectGetMidX(rect), CGRectGetMaxY(rect), radius) ; CGContextAddArcToPoint(context, CGRectGetMinX(rect), CGRectGetMaxY(rect), CGRectGetMinX(rect), CGRectGetMidY(rect), radius) ; CGContextClosePath(context) ; CGContextDrawPath(context, kCGPathStroke) ; // draw the empty rounded rectangle (shown for the "unfilled" portions of the progress rect = CGRectInset(rect, 3.0f, 3.0f) ; radius = 0.5f * rect.size.height ; [emptyColor setFill] ; CGContextBeginPath(context) ; CGContextMoveToPoint(context, CGRectGetMinX(rect), CGRectGetMidY(rect)) ; CGContextAddArcToPoint(context, CGRectGetMinX(rect), CGRectGetMinY(rect), CGRectGetMidX(rect), CGRectGetMinY(rect), radius) ; CGContextAddArcToPoint(context, CGRectGetMaxX(rect), CGRectGetMinY(rect), CGRectGetMaxX(rect), CGRectGetMidY(rect), radius) ; CGContextAddArcToPoint(context, CGRectGetMaxX(rect), CGRectGetMaxY(rect), CGRectGetMidX(rect), CGRectGetMaxY(rect), radius) ; CGContextAddArcToPoint(context, CGRectGetMinX(rect), CGRectGetMaxY(rect), CGRectGetMinX(rect), CGRectGetMidY(rect), radius) ; CGContextClosePath(context) ; CGContextFillPath(context) ; // draw the inside moving filled rounded rectangle radius = 0.5f * rect.size.height ; // make sure the filled rounded rectangle is not smaller than 2 times the radius rect.size.width *= progress ; if (rect.size.width < 2 * radius) rect.size.width = 2 * radius ; if(isnan(rect.size.width)){ rect.size.width = 14; } [innerColor setFill] ; CGContextBeginPath(context) ; CGContextMoveToPoint(context, CGRectGetMinX(rect), CGRectGetMidY(rect)) ; CGContextAddArcToPoint(context, CGRectGetMinX(rect), CGRectGetMinY(rect), CGRectGetMidX(rect), CGRectGetMinY(rect), radius) ; CGContextAddArcToPoint(context, CGRectGetMaxX(rect), CGRectGetMinY(rect), CGRectGetMaxX(rect), CGRectGetMidY(rect), radius) ; CGContextAddArcToPoint(context, CGRectGetMaxX(rect), CGRectGetMaxY(rect), CGRectGetMidX(rect), CGRectGetMaxY(rect), radius) ; CGContextAddArcToPoint(context, CGRectGetMinX(rect), CGRectGetMaxY(rect), CGRectGetMinX(rect), CGRectGetMidY(rect), radius) ; CGContextClosePath(context) ; CGContextFillPath(context) ; // restore the context CGContextRestoreGState(context) ; } @end ================================================ FILE: DDProgressView/DDProgressViewAppDelegate.h ================================================ // // DDProgressViewAppDelegate.h // DDProgressView // // Created by Damien DeVille on 3/13/11. // Copyright 2011 Snappy Code. All rights reserved. // #import @class DDProgressViewViewController ; @interface DDProgressViewAppDelegate : NSObject { } @property (nonatomic, retain) IBOutlet UIWindow *window ; @property (nonatomic, retain) IBOutlet DDProgressViewViewController *viewController ; @end ================================================ FILE: DDProgressView/DDProgressViewAppDelegate.m ================================================ // // DDProgressViewAppDelegate.m // DDProgressView // // Created by Damien DeVille on 3/13/11. // Copyright 2011 Snappy Code. All rights reserved. // #import "DDProgressViewAppDelegate.h" #import "DDProgressViewViewController.h" @implementation DDProgressViewAppDelegate @synthesize window = _window ; @synthesize viewController = _viewController ; - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window.rootViewController = self.viewController ; [self.window makeKeyAndVisible] ; return YES ; } - (void)applicationWillResignActive:(UIApplication *)application { /* Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. */ } - (void)applicationDidEnterBackground:(UIApplication *)application { /* Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. */ } - (void)applicationWillEnterForeground:(UIApplication *)application { /* Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. */ } - (void)applicationDidBecomeActive:(UIApplication *)application { /* Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. */ } - (void)applicationWillTerminate:(UIApplication *)application { /* Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. */ } - (void)dealloc { [_window release] ; [_viewController release] ; [super dealloc] ; } @end ================================================ FILE: DDProgressView/DDProgressViewViewController.h ================================================ // // DDProgressViewViewController.h // DDProgressView // // Created by Damien DeVille on 3/13/11. // Copyright 2011 Snappy Code. All rights reserved. // #import @class DDProgressView ; @interface DDProgressViewViewController : UIViewController { float testProgress ; int progressDir ; DDProgressView *progressView ; DDProgressView *progressView2 ; } @end ================================================ FILE: DDProgressView/DDProgressViewViewController.m ================================================ // // DDProgressViewViewController.m // DDProgressView // // Created by Damien DeVille on 3/13/11. // Copyright 2011 Snappy Code. All rights reserved. // #import "DDProgressViewViewController.h" #import "DDProgressView.h" @implementation DDProgressViewViewController - (void)dealloc { [super dealloc] ; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning] ; } - (void)viewDidLoad { testProgress = 0.0f ; progressDir = 1 ; [super viewDidLoad] ; [self.view setBackgroundColor: [UIColor blackColor]] ; progressView = [[DDProgressView alloc] initWithFrame: CGRectMake(20.0f, 140.0f, self.view.bounds.size.width-40.0f, 0.0f)] ; [progressView setOuterColor: [UIColor grayColor]] ; [progressView setInnerColor: [UIColor lightGrayColor]] ; [self.view addSubview: progressView] ; [progressView release] ; progressView2 = [[DDProgressView alloc] initWithFrame: CGRectMake(20.0f, 180.0f, self.view.bounds.size.width-40.0f, 0.0f)] ; [progressView2 setOuterColor: [UIColor clearColor]] ; [progressView2 setInnerColor: [UIColor lightGrayColor]] ; [progressView2 setEmptyColor: [UIColor darkGrayColor]] ; [self.view addSubview: progressView2] ; [progressView2 release] ; // set a timer that updates the progress NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval: 0.03f target: self selector: @selector(updateProgress) userInfo: nil repeats: YES] ; [timer fire] ; } - (void)updateProgress { testProgress += (0.01f * progressDir) ; [progressView setProgress: testProgress] ; [progressView2 setProgress: testProgress] ; if (testProgress > 1 || testProgress < 0) progressDir *= -1 ; } - (void)viewDidUnload { [super viewDidUnload] ; } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return (interfaceOrientation == UIInterfaceOrientationPortrait); } @end ================================================ FILE: DDProgressView/en.lproj/DDProgressViewViewController.xib ================================================ 1056 10J567 1305 1038.35 462.00 com.apple.InterfaceBuilder.IBCocoaTouchPlugin 300 YES IBProxyObject IBUIView YES com.apple.InterfaceBuilder.IBCocoaTouchPlugin YES YES YES IBFilesOwner IBCocoaTouchFramework IBFirstResponder IBCocoaTouchFramework 274 {{0, 20}, {320, 460}} 3 MC43NQA 2 NO IBCocoaTouchFramework YES view 7 YES 0 -1 File's Owner -2 6 YES YES YES -1.CustomClassName -2.CustomClassName 6.IBEditorWindowLastContentRect 6.IBPluginDependency YES DDProgressViewViewController UIResponder {{239, 654}, {320, 480}} com.apple.InterfaceBuilder.IBCocoaTouchPlugin YES YES 10 YES DDProgressViewViewController UIViewController toolBar UIToolbar toolBar toolBar UIToolbar IBProjectSource ./Classes/DDProgressViewViewController.h 0 IBCocoaTouchFramework com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 YES 3 300 ================================================ FILE: DDProgressView/en.lproj/InfoPlist.strings ================================================ /* Localized versions of Info.plist keys */ ================================================ FILE: DDProgressView/en.lproj/MainWindow.xib ================================================ 1024 10D571 786 1038.29 460.00 com.apple.InterfaceBuilder.IBCocoaTouchPlugin 112 YES YES com.apple.InterfaceBuilder.IBCocoaTouchPlugin YES YES YES YES IBFilesOwner IBCocoaTouchFramework IBFirstResponder IBCocoaTouchFramework IBCocoaTouchFramework DDProgressViewViewController 1 IBCocoaTouchFramework NO 292 {320, 480} 1 MSAxIDEAA NO NO IBCocoaTouchFramework YES YES delegate 4 viewController 11 window 14 YES 0 -1 File's Owner 3 DDProgressView App Delegate -2 10 12 YES YES -1.CustomClassName -2.CustomClassName 10.CustomClassName 10.IBEditorWindowLastContentRect 10.IBPluginDependency 12.IBEditorWindowLastContentRect 12.IBPluginDependency 3.CustomClassName 3.IBPluginDependency YES UIApplication UIResponder DDProgressViewViewController {{234, 376}, {320, 480}} com.apple.InterfaceBuilder.IBCocoaTouchPlugin {{525, 346}, {320, 480}} com.apple.InterfaceBuilder.IBCocoaTouchPlugin DDProgressViewAppDelegate com.apple.InterfaceBuilder.IBCocoaTouchPlugin YES YES YES YES 15 YES UIWindow UIView IBUserSource DDProgressViewAppDelegate NSObject YES YES viewController window YES DDProgressViewViewController UIWindow YES YES viewController window YES viewController DDProgressViewViewController window UIWindow IBProjectSource DDProgressViewAppDelegate.h DDProgressViewAppDelegate NSObject IBUserSource DDProgressViewViewController UIViewController IBProjectSource DDProgressViewViewController.h YES NSObject IBFrameworkSource Foundation.framework/Headers/NSError.h NSObject IBFrameworkSource Foundation.framework/Headers/NSFileManager.h NSObject IBFrameworkSource Foundation.framework/Headers/NSKeyValueCoding.h NSObject IBFrameworkSource Foundation.framework/Headers/NSKeyValueObserving.h NSObject IBFrameworkSource Foundation.framework/Headers/NSKeyedArchiver.h NSObject IBFrameworkSource Foundation.framework/Headers/NSObject.h NSObject IBFrameworkSource Foundation.framework/Headers/NSRunLoop.h NSObject IBFrameworkSource Foundation.framework/Headers/NSThread.h NSObject IBFrameworkSource Foundation.framework/Headers/NSURL.h NSObject IBFrameworkSource Foundation.framework/Headers/NSURLConnection.h NSObject IBFrameworkSource UIKit.framework/Headers/UIAccessibility.h NSObject IBFrameworkSource UIKit.framework/Headers/UINibLoading.h NSObject IBFrameworkSource UIKit.framework/Headers/UIResponder.h UIApplication UIResponder IBFrameworkSource UIKit.framework/Headers/UIApplication.h UIResponder NSObject UISearchBar UIView IBFrameworkSource UIKit.framework/Headers/UISearchBar.h UISearchDisplayController NSObject IBFrameworkSource UIKit.framework/Headers/UISearchDisplayController.h UIView IBFrameworkSource UIKit.framework/Headers/UITextField.h UIView UIResponder IBFrameworkSource UIKit.framework/Headers/UIView.h UIViewController IBFrameworkSource UIKit.framework/Headers/UINavigationController.h UIViewController IBFrameworkSource UIKit.framework/Headers/UIPopoverController.h UIViewController IBFrameworkSource UIKit.framework/Headers/UISplitViewController.h UIViewController IBFrameworkSource UIKit.framework/Headers/UITabBarController.h UIViewController UIResponder IBFrameworkSource UIKit.framework/Headers/UIViewController.h UIWindow UIView IBFrameworkSource UIKit.framework/Headers/UIWindow.h 0 IBCocoaTouchFramework com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 YES DDProgressView.xcodeproj 3 112 ================================================ FILE: DDProgressView/main.m ================================================ // // main.m // DDProgressView // // Created by Damien DeVille on 3/13/11. // Copyright 2011 Snappy Code. All rights reserved. // #import int main(int argc, char *argv[]) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; int retVal = UIApplicationMain(argc, argv, nil, nil); [pool release]; return retVal; } ================================================ FILE: DDProgressView.xcodeproj/project.pbxproj ================================================ // !$*UTF8*$! { archiveVersion = 1; classes = { }; objectVersion = 46; objects = { /* Begin PBXBuildFile section */ 6DA2E7E1132D6DC100985306 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6DA2E7E0132D6DC100985306 /* UIKit.framework */; }; 6DA2E7E3132D6DC100985306 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6DA2E7E2132D6DC100985306 /* Foundation.framework */; }; 6DA2E7E5132D6DC100985306 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6DA2E7E4132D6DC100985306 /* CoreGraphics.framework */; }; 6DA2E7EB132D6DC100985306 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 6DA2E7E9132D6DC100985306 /* InfoPlist.strings */; }; 6DA2E7EE132D6DC100985306 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DA2E7ED132D6DC100985306 /* main.m */; }; 6DA2E7F1132D6DC100985306 /* DDProgressViewAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DA2E7F0132D6DC100985306 /* DDProgressViewAppDelegate.m */; }; 6DA2E7F4132D6DC100985306 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6DA2E7F2132D6DC100985306 /* MainWindow.xib */; }; 6DA2E7F7132D6DC100985306 /* DDProgressViewViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DA2E7F6132D6DC100985306 /* DDProgressViewViewController.m */; }; 6DA2E7FA132D6DC100985306 /* DDProgressViewViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6DA2E7F8132D6DC100985306 /* DDProgressViewViewController.xib */; }; 6DA2E802132D6E2E00985306 /* DDProgressView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DA2E801132D6E2D00985306 /* DDProgressView.m */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ 6DA2E7DC132D6DC100985306 /* DDProgressView.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DDProgressView.app; sourceTree = BUILT_PRODUCTS_DIR; }; 6DA2E7E0132D6DC100985306 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; 6DA2E7E2132D6DC100985306 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 6DA2E7E4132D6DC100985306 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; 6DA2E7E8132D6DC100985306 /* DDProgressView-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "DDProgressView-Info.plist"; sourceTree = ""; }; 6DA2E7EA132D6DC100985306 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 6DA2E7EC132D6DC100985306 /* DDProgressView-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "DDProgressView-Prefix.pch"; sourceTree = ""; }; 6DA2E7ED132D6DC100985306 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 6DA2E7EF132D6DC100985306 /* DDProgressViewAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DDProgressViewAppDelegate.h; sourceTree = ""; }; 6DA2E7F0132D6DC100985306 /* DDProgressViewAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DDProgressViewAppDelegate.m; sourceTree = ""; }; 6DA2E7F3132D6DC100985306 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainWindow.xib; sourceTree = ""; }; 6DA2E7F5132D6DC100985306 /* DDProgressViewViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DDProgressViewViewController.h; sourceTree = ""; }; 6DA2E7F6132D6DC100985306 /* DDProgressViewViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DDProgressViewViewController.m; sourceTree = ""; }; 6DA2E7F9132D6DC100985306 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/DDProgressViewViewController.xib; sourceTree = ""; }; 6DA2E800132D6E2D00985306 /* DDProgressView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDProgressView.h; sourceTree = ""; }; 6DA2E801132D6E2D00985306 /* DDProgressView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDProgressView.m; sourceTree = ""; }; DA8635BA136EEA8000776109 /* AppKitCompatibility.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppKitCompatibility.h; sourceTree = ""; }; DA8635BB136EEA8000776109 /* AppKitCompatibility.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppKitCompatibility.m; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ 6DA2E7D9132D6DC100985306 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( 6DA2E7E1132D6DC100985306 /* UIKit.framework in Frameworks */, 6DA2E7E3132D6DC100985306 /* Foundation.framework in Frameworks */, 6DA2E7E5132D6DC100985306 /* CoreGraphics.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ 6DA2E7D1132D6DC100985306 = { isa = PBXGroup; children = ( 6DA2E7E6132D6DC100985306 /* DDProgressView */, 6DA2E7DF132D6DC100985306 /* Frameworks */, 6DA2E7DD132D6DC100985306 /* Products */, ); sourceTree = ""; }; 6DA2E7DD132D6DC100985306 /* Products */ = { isa = PBXGroup; children = ( 6DA2E7DC132D6DC100985306 /* DDProgressView.app */, ); name = Products; sourceTree = ""; }; 6DA2E7DF132D6DC100985306 /* Frameworks */ = { isa = PBXGroup; children = ( 6DA2E7E0132D6DC100985306 /* UIKit.framework */, 6DA2E7E2132D6DC100985306 /* Foundation.framework */, 6DA2E7E4132D6DC100985306 /* CoreGraphics.framework */, ); name = Frameworks; sourceTree = ""; }; 6DA2E7E6132D6DC100985306 /* DDProgressView */ = { isa = PBXGroup; children = ( DA8635BA136EEA8000776109 /* AppKitCompatibility.h */, DA8635BB136EEA8000776109 /* AppKitCompatibility.m */, 6DA2E800132D6E2D00985306 /* DDProgressView.h */, 6DA2E801132D6E2D00985306 /* DDProgressView.m */, 6DA2E7EF132D6DC100985306 /* DDProgressViewAppDelegate.h */, 6DA2E7F0132D6DC100985306 /* DDProgressViewAppDelegate.m */, 6DA2E7F2132D6DC100985306 /* MainWindow.xib */, 6DA2E7F5132D6DC100985306 /* DDProgressViewViewController.h */, 6DA2E7F6132D6DC100985306 /* DDProgressViewViewController.m */, 6DA2E7F8132D6DC100985306 /* DDProgressViewViewController.xib */, 6DA2E7E7132D6DC100985306 /* Supporting Files */, ); path = DDProgressView; sourceTree = ""; }; 6DA2E7E7132D6DC100985306 /* Supporting Files */ = { isa = PBXGroup; children = ( 6DA2E7E8132D6DC100985306 /* DDProgressView-Info.plist */, 6DA2E7E9132D6DC100985306 /* InfoPlist.strings */, 6DA2E7EC132D6DC100985306 /* DDProgressView-Prefix.pch */, 6DA2E7ED132D6DC100985306 /* main.m */, ); name = "Supporting Files"; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ 6DA2E7DB132D6DC100985306 /* DDProgressView */ = { isa = PBXNativeTarget; buildConfigurationList = 6DA2E7FD132D6DC100985306 /* Build configuration list for PBXNativeTarget "DDProgressView" */; buildPhases = ( 6DA2E7D8132D6DC100985306 /* Sources */, 6DA2E7D9132D6DC100985306 /* Frameworks */, 6DA2E7DA132D6DC100985306 /* Resources */, ); buildRules = ( ); dependencies = ( ); name = DDProgressView; productName = DDProgressView; productReference = 6DA2E7DC132D6DC100985306 /* DDProgressView.app */; productType = "com.apple.product-type.application"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ 6DA2E7D3132D6DC100985306 /* Project object */ = { isa = PBXProject; attributes = { ORGANIZATIONNAME = Acrossair; }; buildConfigurationList = 6DA2E7D6132D6DC100985306 /* Build configuration list for PBXProject "DDProgressView" */; compatibilityVersion = "Xcode 3.2"; developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( en, ); mainGroup = 6DA2E7D1132D6DC100985306; productRefGroup = 6DA2E7DD132D6DC100985306 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( 6DA2E7DB132D6DC100985306 /* DDProgressView */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ 6DA2E7DA132D6DC100985306 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( 6DA2E7EB132D6DC100985306 /* InfoPlist.strings in Resources */, 6DA2E7F4132D6DC100985306 /* MainWindow.xib in Resources */, 6DA2E7FA132D6DC100985306 /* DDProgressViewViewController.xib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ 6DA2E7D8132D6DC100985306 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 6DA2E7EE132D6DC100985306 /* main.m in Sources */, 6DA2E7F1132D6DC100985306 /* DDProgressViewAppDelegate.m in Sources */, 6DA2E7F7132D6DC100985306 /* DDProgressViewViewController.m in Sources */, 6DA2E802132D6E2E00985306 /* DDProgressView.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXVariantGroup section */ 6DA2E7E9132D6DC100985306 /* InfoPlist.strings */ = { isa = PBXVariantGroup; children = ( 6DA2E7EA132D6DC100985306 /* en */, ); name = InfoPlist.strings; sourceTree = ""; }; 6DA2E7F2132D6DC100985306 /* MainWindow.xib */ = { isa = PBXVariantGroup; children = ( 6DA2E7F3132D6DC100985306 /* en */, ); name = MainWindow.xib; sourceTree = ""; }; 6DA2E7F8132D6DC100985306 /* DDProgressViewViewController.xib */ = { isa = PBXVariantGroup; children = ( 6DA2E7F9132D6DC100985306 /* en */, ); name = DDProgressViewViewController.xib; sourceTree = ""; }; /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ 6DA2E7FB132D6DC100985306 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_BIT)"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = DEBUG; GCC_SYMBOLS_PRIVATE_EXTERN = NO; GCC_VERSION = com.apple.compilers.llvmgcc42; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 4.3; SDKROOT = iphoneos; }; name = Debug; }; 6DA2E7FC132D6DC100985306 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_BIT)"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_VERSION = com.apple.compilers.llvmgcc42; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 4.3; OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; SDKROOT = iphoneos; }; name = Release; }; 6DA2E7FE132D6DC100985306 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; COPY_PHASE_STRIP = NO; GCC_DYNAMIC_NO_PIC = NO; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "DDProgressView/DDProgressView-Prefix.pch"; INFOPLIST_FILE = "DDProgressView/DDProgressView-Info.plist"; PRODUCT_NAME = "$(TARGET_NAME)"; WRAPPER_EXTENSION = app; }; name = Debug; }; 6DA2E7FF132D6DC100985306 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; COPY_PHASE_STRIP = YES; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = "DDProgressView/DDProgressView-Prefix.pch"; INFOPLIST_FILE = "DDProgressView/DDProgressView-Info.plist"; PRODUCT_NAME = "$(TARGET_NAME)"; VALIDATE_PRODUCT = YES; WRAPPER_EXTENSION = app; }; name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ 6DA2E7D6132D6DC100985306 /* Build configuration list for PBXProject "DDProgressView" */ = { isa = XCConfigurationList; buildConfigurations = ( 6DA2E7FB132D6DC100985306 /* Debug */, 6DA2E7FC132D6DC100985306 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 6DA2E7FD132D6DC100985306 /* Build configuration list for PBXNativeTarget "DDProgressView" */ = { isa = XCConfigurationList; buildConfigurations = ( 6DA2E7FE132D6DC100985306 /* Debug */, 6DA2E7FF132D6DC100985306 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; rootObject = 6DA2E7D3132D6DC100985306 /* Project object */; } ================================================ FILE: LICENSE ================================================ * Copyright (c) 2010-2011, Snappy Code * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 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. * * Neither the name of Snappy Code nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY Snappy Code ''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 Snappy Code 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. ================================================ FILE: README.md ================================================ About ===== **DDProgressView** is a custom progress view à la Twitter for iPhone. DDProgressView works on both iOS and Mac OS. You must also compile the `AppKitCompatibility.m` file when targeting Mac OS. Screenshot ========== ![Gray on Black DDProgressView](https://github.com/0xced/DDProgressView/raw/master/Screenshot.png) ![DDProgressView using the emptyColor property](https://github.com/ddeville/DDProgressView/raw/master/Screenshot2.png)