[
  {
    "path": "F3BarGaugeDemo/AppDelegate.h",
    "content": "//\n//  AppDelegate.h\n//  F3BarGaugeDemo\n//\n//  Created by Brad Benson on 12/13/11.\n//  Copyright (c) 2011 __MyCompanyName__. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n\n@class ViewController;\n\n@interface AppDelegate : UIResponder <UIApplicationDelegate>\n\n@property (strong, nonatomic) UIWindow *window;\n\n@property (strong, nonatomic) ViewController *viewController;\n\n@end\n"
  },
  {
    "path": "F3BarGaugeDemo/AppDelegate.m",
    "content": "//\n//  AppDelegate.m\n//  F3BarGaugeDemo\n//\n//  Created by Brad Benson on 12/13/11.\n//  Copyright (c) 2011 __MyCompanyName__. All rights reserved.\n//\n\n#import \"AppDelegate.h\"\n\n#import \"ViewController.h\"\n\n@implementation AppDelegate\n\n@synthesize window = _window;\n@synthesize viewController = _viewController;\n\n\n- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions\n{\n    self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];\n    // Override point for customization after application launch.\n  self.viewController = [[ViewController alloc] initWithNibName:@\"ViewController\" bundle:nil];\n  self.window.rootViewController = self.viewController;\n    [self.window makeKeyAndVisible];\n    return YES;\n}\n\n- (void)applicationWillResignActive:(UIApplication *)application\n{\n  /*\n   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.\n   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.\n   */\n}\n\n- (void)applicationDidEnterBackground:(UIApplication *)application\n{\n  /*\n   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. \n   If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.\n   */\n}\n\n- (void)applicationWillEnterForeground:(UIApplication *)application\n{\n  /*\n   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.\n   */\n}\n\n- (void)applicationDidBecomeActive:(UIApplication *)application\n{\n  /*\n   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.\n   */\n}\n\n- (void)applicationWillTerminate:(UIApplication *)application\n{\n  /*\n   Called when the application is about to terminate.\n   Save data if appropriate.\n   See also applicationDidEnterBackground:.\n   */\n}\n\n@end\n"
  },
  {
    "path": "F3BarGaugeDemo/F3BarGauge.h",
    "content": "//\n//  F3BarGauge.h\n//\n//  Copyright (c) 2011-2014 by Brad Benson\n//  All rights reserved.\n//  \n//  Redistribution and use in source and binary forms, with or without \n//  modification, are permitted provided that the following \n//  conditions are met:\n//    1.  Redistributions of source code must retain the above copyright\n//        notice this list of conditions and the following disclaimer.\n//    2.  Redistributions in binary form must reproduce the above copyright \n//        notice, this list of conditions and the following disclaimer in \n//        the documentation and/or other materials provided with the \n//        distribution.\n//  \n//  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n//  \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT \n//  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS \n//  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE \n//  COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, \n//  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, \n//  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS \n//  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED \n//  AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\n//  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF \n//  THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY \n//  OF SUCH DAMAGE.\n//  \n\n//---> Pick up required headers <-----------------------------------------\n#import <UIKit/UIKit.h>\n\n\n//------------------------------------------------------------------------\n//------------------------------------------------------------------------\n//------------------|  F3BarGauge class definition  |---------------------\n//------------------------------------------------------------------------\n//------------------------------------------------------------------------\n@interface F3BarGauge : UIView\n\n@property (readwrite, nonatomic)  float     value;\n@property (readwrite, nonatomic)  float     warnThreshold;\n@property (readwrite, nonatomic)  float     dangerThreshold;\n@property (readwrite, nonatomic)  float     maxLimit;\n@property (readwrite, nonatomic)  float     minLimit;\n@property (readwrite, nonatomic)  int       numBars;\n@property (readonly, nonatomic)   float     peakValue;\n@property (readwrite, nonatomic)  BOOL      holdPeak;\n@property (readwrite, nonatomic)  BOOL      litEffect;\n@property (readwrite, nonatomic)  BOOL      reverse;\n@property (readwrite, strong)     UIColor   *outerBorderColor;\n@property (readwrite, strong)     UIColor   *innerBorderColor;\n@property (readwrite, strong)     UIColor   *backgroundColor;\n@property (readwrite, strong)     UIColor   *normalBarColor;\n@property (readwrite, strong)     UIColor   *warningBarColor;\n@property (readwrite, strong)     UIColor   *dangerBarColor;\n\n-(void) resetPeak;\n\n\n\n@end\n"
  },
  {
    "path": "F3BarGaugeDemo/F3BarGauge.m",
    "content": "//\n//  F3BarGauge.m\n//\n//  Copyright (c) 2011-2014 by Brad Benson\n//  All rights reserved.\n//\n//  Redistribution and use in source and binary forms, with or without\n//  modification, are permitted provided that the following\n//  conditions are met:\n//    1.  Redistributions of source code must retain the above copyright\n//        notice this list of conditions and the following disclaimer.\n//    2.  Redistributions in binary form must reproduce the above copyright\n//        notice, this list of conditions and the following disclaimer in\n//        the documentation and/or other materials provided with the\n//        distribution.\n//\n//  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n//  \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n//  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS\n//  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\n//  COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,\n//  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n//  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS\n//  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED\n//  AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\n//  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF\n//  THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY\n//  OF SUCH DAMAGE.\n//\n\n//===[ Required headers ]================================================\n\n// Our stuff\n#import \"F3BarGauge.h\"\n\n\n\n//===[ Local definitions/constants/etc ]=================================\n\nstatic const int BAR_NOT_USED = -1;   // Used to indicate that bar/level/peak does not exist\n\n\n//-----------------------------------------------------------------------\n//-----------------------------------------------------------------------\n//---------------|  F3BarGauge class implementation  |-------------------\n//-----------------------------------------------------------------------\n//-----------------------------------------------------------------------\n\n//===[ Extention for private-ish stuff ]=================================\n@interface F3BarGauge()\n{\n    float       _peakValue;             // Peak value seen since reset\n    int         _iOnIdx,                // Point at which segments are on\n                _iOffIdx,               // Point at which segments are off\n                _iPeakBarIdx,           // Index of peak value segment\n                _iWarningBarIdx,        // Index of first warning segment\n                _iDangerBarIdx;         // Index of first danger segment\n}\n\n\n@end\n\n\n\n@implementation F3BarGauge\n//===[ Published Methods ]===============================================\n\n//-----------------------------------------------------------------------\n//  Method: initWithFrame:\n//    Designated initializer\n//\n-(instancetype) initWithFrame:(CGRect)frame\n{\n    self = [super initWithFrame:frame];\n    if(self) {\n        // Assign default values\n        [self setDefaults];\n    }\n    return self;\n}\n\n\n//-----------------------------------------------------------------------\n// Method:  initWithCoder:\n//  Initializes the instance when brought from nib, etc.\n//\n-(instancetype) initWithCoder:(NSCoder *)aDecoder\n{\n    self = [super initWithCoder:aDecoder];\n    if(self) {\n        // Assign default values\n        [self setDefaults];\n    }\n    return self;\n}\n\n\n//-----------------------------------------------------------------------\n//  Method: resetPeak\n//    Resets peak value.\n//\n-(void) resetPeak\n{\n    // Reset the value and redraw\n    _peakValue = -INFINITY;\n    _iPeakBarIdx = BAR_NOT_USED;\n    [self setNeedsDisplay];\n}\n\n\n//-----------------------------------------------------------------------\n//  Method: value setter\n//\n-(void) setValue:(float)a_value\n{\n    bool      fRedraw = false;\n    \n    // Save value\n    _value = a_value;\n    \n    // Point at which bars start lighting up\n    int iOnIdx = (_value >= _minLimit) ?  0 : _numBars;\n    if( iOnIdx != _iOnIdx ) {\n        // Changed - save it\n        _iOnIdx = iOnIdx;\n        fRedraw = true;\n    }\n    \n    // Point at which bars are no longer lit\n    int iOffIdx = ((_value - _minLimit) / (_maxLimit - _minLimit)) * _numBars;\n    if( iOffIdx != _iOffIdx ) {\n        // Changed - save it\n        _iOffIdx = iOffIdx;\n        fRedraw = true;\n    }\n    \n    // Are we doing peak?\n    if( _holdPeak && a_value > _peakValue ) {\n        // Yes, save the peak bar index\n        _peakValue = a_value;\n        _iPeakBarIdx = MIN(_iOffIdx, _numBars - 1);\n    }\n    \n    // Redraw the display?\n    if( fRedraw ) {\n        // Do it\n        [self setNeedsDisplay];\n    }\n}\n\n\n//-----------------------------------------------------------------------\n//  Method: setNumBars:\n//    This method sets the number of bars in the display\n//\n- (void) setNumBars:(int)a_iNumBars\n{\n    // Reset peak value to force it to be updated w/new bar index\n    _peakValue = -INFINITY;\n    \n    // Save it, then update the thresholds\n    _numBars = a_iNumBars;\n    self.value = _value;\n    self.warnThreshold = _warnThreshold;\n    self.dangerThreshold = _dangerThreshold;\n}\n\n\n//-----------------------------------------------------------------------\n//  Method: setWarnThreshold:\n//    Sets the level for which bars should be of the warning color\n//    (dft: yellow)\n//\n- (void) setWarnThreshold:(float)a_flWarnThreshold\n{\n    // Save it and recompute values\n    _warnThreshold = a_flWarnThreshold;\n    _iWarningBarIdx = ( !isnan(a_flWarnThreshold) && a_flWarnThreshold > 0.0f ) ?\n    (int)( _warnThreshold * (float)_numBars ) :\n    BAR_NOT_USED;\n}\n\n\n//-----------------------------------------------------------------------\n//  Method: setDangerThreshold:\n//    Sets the level for which bars should be of the warning color\n//    (dft: red).\n//\n- (void) setDangerThreshold:(float)a_flDangerThreshold\n{\n    // Save it and recompute values\n    _dangerThreshold = a_flDangerThreshold;\n    _iDangerBarIdx = ( !isnan(a_flDangerThreshold) && a_flDangerThreshold > 0.0f ) ?\n    (int)( _dangerThreshold * (float)_numBars ) :\n    BAR_NOT_USED;\n}\n\n\n\n//===[ Unpublished Methods ]=============================================\n\n//-----------------------------------------------------------------------\n//  Method: setDefaults\n//    Configure default settings for instance\n//\n-(void) setDefaults\n{\n    // Set view background to clear\n    self.backgroundColor = [UIColor clearColor];\n    \n    // Configure limits\n    _maxLimit  = 1.0f;\n    _minLimit  = 0.0f;\n    _value     = 0.0f;\n    \n    // Set defaults for bar display\n    _holdPeak     = NO;\n    _numBars      = 10;\n    _iOffIdx      = 0;\n    _iOnIdx       = 0;\n    _iPeakBarIdx  = BAR_NOT_USED;\n    _litEffect    = YES;\n    _reverse      = NO;\n    self.warnThreshold = 0.60f;\n    self.dangerThreshold = 0.80f;\n    \n    // Set default colors\n    _backgroundColor  = [UIColor blackColor];\n    _outerBorderColor = [UIColor grayColor];\n    _innerBorderColor = [UIColor blackColor];\n    _normalBarColor   = [UIColor greenColor];\n    _warningBarColor  = [UIColor yellowColor];\n    _dangerBarColor   = [UIColor redColor];\n    \n    // Misc.\n    self.clearsContextBeforeDrawing = NO;\n    self.opaque = NO;\n}\n\n\n//-----------------------------------------------------------------------\n//  Method: drawRect:\n//    Draw the gauge\n//\n-(void) drawRect:(CGRect)rect\n{\n    CGContextRef        ctx;          // Graphics context\n    CGRect              rectBounds,   // Bounding rectangle adjusted for multiple of bar size\n                        rectBar;      // Rectangle for individual light bar\n    size_t              iBarSize;     // Size (width or height) of each LED bar\n    \n    // How is the bar oriented?\n    rectBounds = self.bounds;\n    BOOL fIsVertical = (rectBounds.size.height >= rectBounds.size.width);\n    if(fIsVertical) {\n        // Adjust height to be an exact multiple of bar\n        iBarSize = rectBounds.size.height / _numBars;\n        rectBounds.size.height  = iBarSize * _numBars;\n    }\n    else {\n        // Adjust width to be an exact multiple\n        iBarSize = rectBounds.size.width / _numBars;\n        rectBounds.size.width = iBarSize * _numBars;\n    }\n    \n    // Compute size of bar\n    rectBar.size.width  = (fIsVertical) ? rectBounds.size.width - 2 : iBarSize;\n    rectBar.size.height = (fIsVertical) ? iBarSize : rectBounds.size.height - 2;\n    \n    // Get stuff needed for drawing\n    ctx = UIGraphicsGetCurrentContext();\n    CGContextClearRect(ctx, self.bounds);\n    \n    // Fill background\n    CGContextSetFillColorWithColor(ctx, _backgroundColor.CGColor);\n    CGContextFillRect(ctx, rectBounds);\n    \n    // Draw LED bars\n    CGContextSetStrokeColorWithColor(ctx, _innerBorderColor.CGColor);\n    CGContextSetLineWidth(ctx, 1.0);\n    for( int iX = 0; iX < _numBars; ++iX ) {\n        // Determine position for this bar\n        if(_reverse) {\n            // Top-to-bottom or right-to-left\n            rectBar.origin.x = (fIsVertical) ? rectBounds.origin.x + 1 : (CGRectGetMaxX(rectBounds) - (iX+1) * iBarSize);\n            rectBar.origin.y = (fIsVertical) ? (CGRectGetMinY(rectBounds) + iX * iBarSize) : rectBounds.origin.y + 1;\n        }\n        else {\n            // Bottom-to-top or right-to-left\n            rectBar.origin.x = (fIsVertical) ? rectBounds.origin.x + 1 : (CGRectGetMinX(rectBounds) + iX * iBarSize);\n            rectBar.origin.y = (fIsVertical) ? (CGRectGetMaxY(rectBounds) - (iX + 1) * iBarSize) : rectBounds.origin.y + 1;\n        }\n        \n        // Draw top and bottom borders for bar\n        CGContextAddRect(ctx, rectBar);\n        CGContextStrokePath(ctx);\n        \n        // Determine color of bar\n        UIColor   *clrFill = _normalBarColor;\n        if( _iDangerBarIdx >= 0 && iX >= _iDangerBarIdx ) {\n            clrFill = _dangerBarColor;\n        }\n        else if( _iWarningBarIdx >= 0 && iX >= _iWarningBarIdx ) {\n            clrFill = _warningBarColor;\n        }\n        \n        // Determine if bar should be lit\n        BOOL fLit = ((iX >= _iOnIdx && iX < _iOffIdx) || iX == _iPeakBarIdx);\n        \n        // Fill the interior of the bar\n        CGContextSaveGState(ctx);\n        CGRect rectFill = CGRectInset(rectBar, 1.0, 1.0);\n        CGPathRef clipPath = CGPathCreateWithRect(rectFill, NULL);\n        CGContextAddPath(ctx, clipPath);\n        CGContextClip(ctx);\n        [self drawBar:ctx\n             withRect:rectFill\n             andColor:clrFill\n                  lit:fLit];\n        CGContextRestoreGState(ctx);\n        CGPathRelease(clipPath);\n    }\n    \n    // Draw border around the control\n    CGContextSetStrokeColorWithColor(ctx, _outerBorderColor.CGColor);\n    CGContextSetLineWidth(ctx, 2.0);\n    CGContextAddRect(ctx, CGRectInset(rectBounds, 1, 1));\n    CGContextStrokePath(ctx);\n}\n\n\n//-----------------------------------------------------------------------\n//  Method: drawBar::::\n//    This method draws a bar\n//\n- (void) drawBar:(CGContextRef)a_ctx\n        withRect:(CGRect)a_rect\n        andColor:(UIColor *)a_clr\n             lit:(BOOL) a_fLit\n{\n    // Is the bar lit?\n    if(a_fLit) {\n        // Are we doing radial gradient fills?\n        if(_litEffect) {\n            // Yes, set up to draw the bar as a radial gradient\n            static  size_t  nu_locations = 2;\n            static  CGFloat locations[]   = { 0.0, 0.5 };\n            CGFloat aComponents[8];\n            CGColorRef clr = a_clr.CGColor;\n            \n            // Set up color components from passed UIColor object\n            if (CGColorGetNumberOfComponents(clr) == 4) {\n                // Extract the components\n                //\n                //  Note that iOS 5.0 provides a nicer way to do this i.e.\n                //    [a_clr getRed:&aComponents[0]\n                //            green:&aComponents[1]\n                //             blue:&aComponents[2]\n                //            alpha:&aComponents[3] ];\n                memcpy(aComponents, CGColorGetComponents(clr), 4*sizeof(CGFloat));\n                \n                // Calculate dark color of gradient\n                aComponents[4] = aComponents[0] - ((aComponents[0] > 0.3) ? 0.3 : 0.0);\n                aComponents[5] = aComponents[1] - ((aComponents[1] > 0.3) ? 0.3 : 0.0);\n                aComponents[6] = aComponents[2] - ((aComponents[2] > 0.3) ? 0.3 : 0.0);\n                aComponents[7] = aComponents[3];\n            }\n            \n            // Calculate radius needed\n            CGFloat width = CGRectGetWidth(a_rect);\n            CGFloat height = CGRectGetHeight(a_rect);\n            CGFloat radius = sqrt( width * width + height * height );\n            \n            // Draw the gradient inside the provided rectangle\n            CGColorSpaceRef myColorspace = CGColorSpaceCreateDeviceRGB();\n            CGGradientRef myGradient = CGGradientCreateWithColorComponents (myColorspace,\n                                                                            aComponents,\n                                                                            locations,\n                                                                            nu_locations);\n            CGPoint myStartPoint = { CGRectGetMidX(a_rect), CGRectGetMidY(a_rect) };\n            CGContextDrawRadialGradient(a_ctx, myGradient, myStartPoint, 0.0, myStartPoint, radius, 0);\n            CGColorSpaceRelease(myColorspace);\n            CGGradientRelease(myGradient);\n        }\n        else {\n            // No, solid fill\n            CGContextSetFillColorWithColor(a_ctx, a_clr.CGColor);\n            CGContextFillRect(a_ctx, a_rect);\n        }\n    }\n    else {\n        // No, draw the bar as background color overlayed with a mostly\n        // ... transparent version of the passed color\n        CGColorRef  fillClr = CGColorCreateCopyWithAlpha(a_clr.CGColor, 0.2f);\n        CGContextSetFillColorWithColor(a_ctx, _backgroundColor.CGColor);\n        CGContextFillRect(a_ctx, a_rect);\n        CGContextSetFillColorWithColor(a_ctx, fillClr);\n        CGContextFillRect(a_ctx, a_rect);\n        CGColorRelease(fillClr);  \n    }    \n}\n\n@end\n"
  },
  {
    "path": "F3BarGaugeDemo/F3BarGaugeDemo-Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>en</string>\n\t<key>CFBundleDisplayName</key>\n\t<string>${PRODUCT_NAME}</string>\n\t<key>CFBundleExecutable</key>\n\t<string>${EXECUTABLE_NAME}</string>\n\t<key>CFBundleIconFiles</key>\n\t<array/>\n\t<key>CFBundleIdentifier</key>\n\t<string>com.flightiii.${PRODUCT_NAME:rfc1034identifier}</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>${PRODUCT_NAME}</string>\n\t<key>CFBundlePackageType</key>\n\t<string>APPL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleSignature</key>\n\t<string>????</string>\n\t<key>CFBundleVersion</key>\n\t<string>1.0</string>\n\t<key>LSRequiresIPhoneOS</key>\n\t<true/>\n\t<key>UIRequiredDeviceCapabilities</key>\n\t<array>\n\t\t<string>armv7</string>\n\t</array>\n\t<key>UIStatusBarStyle</key>\n\t<string>UIStatusBarStyleLightContent</string>\n\t<key>UISupportedInterfaceOrientations</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n\t</array>\n</dict>\n</plist>\n"
  },
  {
    "path": "F3BarGaugeDemo/F3BarGaugeDemo-Prefix.pch",
    "content": "//\n// Prefix header for all source files of the 'F3BarGaugeDemo' target in the 'F3BarGaugeDemo' project\n//\n\n#import <Availability.h>\n\n#ifndef __IPHONE_4_0\n#warning \"This project uses features only available in iOS SDK 4.0 and later.\"\n#endif\n\n#ifdef __OBJC__\n  #import <UIKit/UIKit.h>\n  #import <Foundation/Foundation.h>\n#endif\n"
  },
  {
    "path": "F3BarGaugeDemo/ViewController.h",
    "content": "//\n//  ViewController.h\n//  F3BarGaugeDemo\n//\n//  Created by Brad Benson on 12/13/11.\n//  Copyright (c) 2011 __MyCompanyName__. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n#import \"F3BarGauge.h\"\n\n@interface ViewController : UIViewController\n\n@end\n"
  },
  {
    "path": "F3BarGaugeDemo/ViewController.m",
    "content": "//\n//  ViewController.m\n//  F3BarGaugeDemo\n//\n//  Created by Brad Benson on 12/13/11.\n//  Copyright (c) 2011 __MyCompanyName__. All rights reserved.\n//\n\n#import \"ViewController.h\"\n\n@interface ViewController ()\n\n@property (strong, nonatomic) IBOutlet F3BarGauge *horizontalBar;\n@property (strong, nonatomic) IBOutlet F3BarGauge *reversedBar;\n@property (strong, nonatomic) IBOutlet F3BarGauge *verticalBar;\n@property (strong, nonatomic) IBOutlet F3BarGauge *lcdBar;\n@property (strong, nonatomic) IBOutlet F3BarGauge *peakHoldBar;\n@property (strong, nonatomic) IBOutlet F3BarGauge *customThresholdBar;\n@property (strong, nonatomic) IBOutlet F3BarGauge *customRangeBar;\n@property (strong, nonatomic) IBOutlet UISlider *valueSlider;\n@property (strong, nonatomic) IBOutlet UILabel *valueLabel;\n\n- (IBAction)didChangeValue:(id)sender;\n- (IBAction)didReset:(id)sender;\n@end\n\n\n\n@implementation ViewController\n\n\n#pragma mark - View lifecycle\n\n- (void)viewDidLoad\n{\n  [super viewDidLoad];\n\n  _reversedBar.reverse = YES;\n  \n  _customThresholdBar.numBars = 15;\n  _customThresholdBar.warnThreshold = 0.45;\n  _customThresholdBar.dangerThreshold = 0.90;\n  _customThresholdBar.normalBarColor = [UIColor blueColor];\n  _customThresholdBar.warningBarColor = [UIColor cyanColor];\n  _customThresholdBar.dangerBarColor = [UIColor magentaColor];\n  _customThresholdBar.outerBorderColor = [UIColor clearColor];\n  _customThresholdBar.innerBorderColor = [UIColor clearColor];\n  \n  _customRangeBar.numBars = 20;\n  _customRangeBar.minLimit = 0.40;\n  _customRangeBar.maxLimit = 0.60;\n  \n  _peakHoldBar.numBars = 10;\n  _peakHoldBar.holdPeak = YES;\n\n  _lcdBar.numBars = 20;\n  _lcdBar.litEffect = NO;\n  UIColor *clrBar = [UIColor colorWithRed:0.2 green:0.2 blue:0.2 alpha:1.0];\n  _lcdBar.normalBarColor = clrBar;\n  _lcdBar.warningBarColor = clrBar;\n  _lcdBar.dangerBarColor = clrBar;\n  _lcdBar.backgroundColor = [UIColor clearColor];\n  _lcdBar.outerBorderColor = [UIColor clearColor];\n  _lcdBar.innerBorderColor = [UIColor clearColor];\n}\n\n\n- (IBAction)didChangeValue:(id)sender {\n  // Update the text label\n  _valueLabel.text = [NSString stringWithFormat:@\"%0.02f\", _valueSlider.value];\n  \n  // Update the bar gauges\n  _horizontalBar.value = _valueSlider.value;\n  _reversedBar.value = _valueSlider.value;\n  _lcdBar.value = _valueSlider.value;\n  _verticalBar.value = _valueSlider.value;\n  _peakHoldBar.value = _valueSlider.value;\n  _customThresholdBar.value = _valueSlider.value;\n  _customRangeBar.value = _valueSlider.value;\n\n}\n\n- (IBAction)didReset:(id)sender {\n  [_peakHoldBar resetPeak];\n}\n@end\n"
  },
  {
    "path": "F3BarGaugeDemo/en.lproj/InfoPlist.strings",
    "content": "/* Localized versions of Info.plist keys */\n\n"
  },
  {
    "path": "F3BarGaugeDemo/en.lproj/ViewController.xib",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" version=\"3.0\" toolsVersion=\"8191\" systemVersion=\"14E46\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\">\n    <dependencies>\n        <deployment identifier=\"iOS\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"8154\"/>\n    </dependencies>\n    <objects>\n        <placeholder placeholderIdentifier=\"IBFilesOwner\" id=\"-1\" userLabel=\"File's Owner\" customClass=\"ViewController\">\n            <connections>\n                <outlet property=\"customRangeBar\" destination=\"31\" id=\"33\"/>\n                <outlet property=\"customThresholdBar\" destination=\"28\" id=\"30\"/>\n                <outlet property=\"horizontalBar\" destination=\"10\" id=\"14\"/>\n                <outlet property=\"lcdBar\" destination=\"18\" id=\"22\"/>\n                <outlet property=\"peakHoldBar\" destination=\"23\" id=\"25\"/>\n                <outlet property=\"reversedBar\" destination=\"37\" id=\"39\"/>\n                <outlet property=\"valueLabel\" destination=\"34\" id=\"35\"/>\n                <outlet property=\"valueSlider\" destination=\"12\" id=\"16\"/>\n                <outlet property=\"verticalBar\" destination=\"9\" id=\"15\"/>\n                <outlet property=\"view\" destination=\"6\" id=\"7\"/>\n            </connections>\n        </placeholder>\n        <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"-2\" customClass=\"UIResponder\"/>\n        <view clearsContextBeforeDrawing=\"NO\" contentMode=\"scaleToFill\" id=\"6\">\n            <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"320\" height=\"480\"/>\n            <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n            <subviews>\n                <label opaque=\"NO\" clipsSubviews=\"YES\" userInteractionEnabled=\"NO\" contentMode=\"left\" text=\"Flight III Systems Bar Gauge\" lineBreakMode=\"tailTruncation\" minimumFontSize=\"10\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"8\">\n                    <rect key=\"frame\" x=\"20\" y=\"27\" width=\"280\" height=\"24\"/>\n                    <fontDescription key=\"fontDescription\" type=\"italicSystem\" pointSize=\"20\"/>\n                    <color key=\"textColor\" white=\"1\" alpha=\"1\" colorSpace=\"calibratedWhite\"/>\n                    <nil key=\"highlightedColor\"/>\n                </label>\n                <view contentMode=\"scaleToFill\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"9\" customClass=\"F3BarGauge\">\n                    <rect key=\"frame\" x=\"20\" y=\"61\" width=\"40\" height=\"359\"/>\n                    <color key=\"backgroundColor\" white=\"0.66666666666666663\" alpha=\"1\" colorSpace=\"calibratedWhite\"/>\n                    <constraints>\n                        <constraint firstAttribute=\"width\" constant=\"40\" id=\"cXM-fS-skK\"/>\n                    </constraints>\n                </view>\n                <view contentMode=\"scaleToFill\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"10\" customClass=\"F3BarGauge\">\n                    <rect key=\"frame\" x=\"77\" y=\"80\" width=\"220\" height=\"25\"/>\n                    <color key=\"backgroundColor\" white=\"0.66666666666666663\" alpha=\"1\" colorSpace=\"calibratedWhite\"/>\n                    <constraints>\n                        <constraint firstAttribute=\"height\" constant=\"25\" id=\"03e-D7-71d\"/>\n                    </constraints>\n                </view>\n                <slider opaque=\"NO\" contentMode=\"scaleToFill\" contentHorizontalAlignment=\"center\" contentVerticalAlignment=\"center\" minValue=\"0.0\" maxValue=\"1\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"12\">\n                    <rect key=\"frame\" x=\"75\" y=\"432\" width=\"170\" height=\"29\"/>\n                    <constraints>\n                        <constraint firstAttribute=\"height\" constant=\"28\" id=\"3cc-ob-6iR\"/>\n                    </constraints>\n                    <connections>\n                        <action selector=\"didChangeValue:\" destination=\"-1\" eventType=\"valueChanged\" id=\"17\"/>\n                    </connections>\n                </slider>\n                <label opaque=\"NO\" clipsSubviews=\"YES\" userInteractionEnabled=\"NO\" contentMode=\"left\" text=\"Value\" lineBreakMode=\"tailTruncation\" minimumFontSize=\"10\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"13\">\n                    <rect key=\"frame\" x=\"20\" y=\"439\" width=\"42\" height=\"14\"/>\n                    <fontDescription key=\"fontDescription\" type=\"system\" pointSize=\"17\"/>\n                    <color key=\"textColor\" white=\"1\" alpha=\"1\" colorSpace=\"calibratedWhite\"/>\n                    <nil key=\"highlightedColor\"/>\n                </label>\n                <label opaque=\"NO\" clipsSubviews=\"YES\" userInteractionEnabled=\"NO\" contentMode=\"left\" text=\"Default Horizontal\" lineBreakMode=\"tailTruncation\" minimumFontSize=\"10\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"19\">\n                    <rect key=\"frame\" x=\"77\" y=\"61\" width=\"117\" height=\"17\"/>\n                    <fontDescription key=\"fontDescription\" type=\"system\" pointSize=\"14\"/>\n                    <color key=\"textColor\" white=\"1\" alpha=\"1\" colorSpace=\"calibratedWhite\"/>\n                    <nil key=\"highlightedColor\"/>\n                </label>\n                <view contentMode=\"scaleToFill\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"28\" customClass=\"F3BarGauge\">\n                    <rect key=\"frame\" x=\"77\" y=\"184\" width=\"220\" height=\"25\"/>\n                    <color key=\"backgroundColor\" white=\"0.66666666666666663\" alpha=\"1\" colorSpace=\"calibratedWhite\"/>\n                    <constraints>\n                        <constraint firstAttribute=\"height\" constant=\"25\" id=\"cS5-P0-dIN\"/>\n                    </constraints>\n                </view>\n                <label opaque=\"NO\" clipsSubviews=\"YES\" userInteractionEnabled=\"NO\" contentMode=\"left\" text=\"Custom Thresholds &amp; Colors\" lineBreakMode=\"tailTruncation\" minimumFontSize=\"10\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"29\">\n                    <rect key=\"frame\" x=\"77\" y=\"165\" width=\"186\" height=\"17\"/>\n                    <fontDescription key=\"fontDescription\" type=\"system\" pointSize=\"14\"/>\n                    <color key=\"textColor\" white=\"1\" alpha=\"1\" colorSpace=\"calibratedWhite\"/>\n                    <nil key=\"highlightedColor\"/>\n                </label>\n                <view contentMode=\"scaleToFill\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"37\" customClass=\"F3BarGauge\">\n                    <rect key=\"frame\" x=\"77\" y=\"132\" width=\"220\" height=\"25\"/>\n                    <color key=\"backgroundColor\" white=\"0.66666666666666663\" alpha=\"1\" colorSpace=\"calibratedWhite\"/>\n                    <constraints>\n                        <constraint firstAttribute=\"height\" constant=\"25\" id=\"VgS-fu-EJw\"/>\n                    </constraints>\n                </view>\n                <label opaque=\"NO\" clipsSubviews=\"YES\" userInteractionEnabled=\"NO\" contentMode=\"left\" text=\"Reversed (right-to-left)\" lineBreakMode=\"tailTruncation\" minimumFontSize=\"10\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"38\">\n                    <rect key=\"frame\" x=\"77\" y=\"113\" width=\"150\" height=\"17\"/>\n                    <fontDescription key=\"fontDescription\" type=\"system\" pointSize=\"14\"/>\n                    <color key=\"textColor\" white=\"1\" alpha=\"1\" colorSpace=\"calibratedWhite\"/>\n                    <nil key=\"highlightedColor\"/>\n                </label>\n                <view contentMode=\"scaleToFill\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"31\" customClass=\"F3BarGauge\">\n                    <rect key=\"frame\" x=\"77\" y=\"236\" width=\"220\" height=\"25\"/>\n                    <color key=\"backgroundColor\" white=\"0.66666666666666663\" alpha=\"1\" colorSpace=\"calibratedWhite\"/>\n                    <constraints>\n                        <constraint firstAttribute=\"height\" constant=\"25\" id=\"y5O-OA-Cbq\"/>\n                    </constraints>\n                </view>\n                <label opaque=\"NO\" clipsSubviews=\"YES\" userInteractionEnabled=\"NO\" contentMode=\"left\" text=\"Custom Range (.4 - .6)\" lineBreakMode=\"tailTruncation\" minimumFontSize=\"10\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"32\">\n                    <rect key=\"frame\" x=\"77\" y=\"217\" width=\"147\" height=\"17\"/>\n                    <fontDescription key=\"fontDescription\" type=\"system\" pointSize=\"14\"/>\n                    <color key=\"textColor\" white=\"1\" alpha=\"1\" colorSpace=\"calibratedWhite\"/>\n                    <nil key=\"highlightedColor\"/>\n                </label>\n                <view contentMode=\"scaleToFill\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"23\" customClass=\"F3BarGauge\">\n                    <rect key=\"frame\" x=\"77\" y=\"288\" width=\"150\" height=\"25\"/>\n                    <color key=\"backgroundColor\" white=\"0.66666666666666663\" alpha=\"1\" colorSpace=\"calibratedWhite\"/>\n                    <constraints>\n                        <constraint firstAttribute=\"height\" constant=\"25\" id=\"kJX-ZR-Sol\"/>\n                    </constraints>\n                </view>\n                <label opaque=\"NO\" clipsSubviews=\"YES\" userInteractionEnabled=\"NO\" contentMode=\"left\" text=\"Peak Hold\" lineBreakMode=\"tailTruncation\" minimumFontSize=\"10\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"24\">\n                    <rect key=\"frame\" x=\"77\" y=\"269\" width=\"66\" height=\"17\"/>\n                    <fontDescription key=\"fontDescription\" type=\"system\" pointSize=\"14\"/>\n                    <color key=\"textColor\" white=\"1\" alpha=\"1\" colorSpace=\"calibratedWhite\"/>\n                    <nil key=\"highlightedColor\"/>\n                </label>\n                <label opaque=\"NO\" clipsSubviews=\"YES\" userInteractionEnabled=\"NO\" contentMode=\"left\" text=\"LCD-ish Look\" lineBreakMode=\"tailTruncation\" minimumFontSize=\"10\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"20\">\n                    <rect key=\"frame\" x=\"77\" y=\"329\" width=\"88\" height=\"17\"/>\n                    <fontDescription key=\"fontDescription\" type=\"system\" pointSize=\"14\"/>\n                    <color key=\"textColor\" white=\"1\" alpha=\"1\" colorSpace=\"calibratedWhite\"/>\n                    <nil key=\"highlightedColor\"/>\n                </label>\n                <button opaque=\"NO\" contentMode=\"scaleToFill\" contentHorizontalAlignment=\"center\" contentVerticalAlignment=\"center\" buttonType=\"roundedRect\" lineBreakMode=\"middleTruncation\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"26\">\n                    <rect key=\"frame\" x=\"231\" y=\"286\" width=\"66\" height=\"30\"/>\n                    <constraints>\n                        <constraint firstAttribute=\"width\" constant=\"66\" id=\"dxn-c2-nlI\"/>\n                    </constraints>\n                    <state key=\"normal\" title=\"Reset\">\n                        <color key=\"titleShadowColor\" white=\"0.5\" alpha=\"1\" colorSpace=\"calibratedWhite\"/>\n                    </state>\n                    <connections>\n                        <action selector=\"didReset:\" destination=\"-1\" eventType=\"touchUpInside\" id=\"27\"/>\n                    </connections>\n                </button>\n                <label opaque=\"NO\" clipsSubviews=\"YES\" userInteractionEnabled=\"NO\" contentMode=\"left\" text=\"\" lineBreakMode=\"tailTruncation\" minimumFontSize=\"10\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"34\">\n                    <rect key=\"frame\" x=\"252\" y=\"430\" width=\"45\" height=\"30\"/>\n                    <constraints>\n                        <constraint firstAttribute=\"width\" constant=\"45\" id=\"8w5-EV-NSM\"/>\n                        <constraint firstAttribute=\"height\" constant=\"30\" id=\"kAi-Xj-gth\"/>\n                    </constraints>\n                    <fontDescription key=\"fontDescription\" name=\"DBLCDTempBlack\" family=\"DB LCD Temp\" pointSize=\"19\"/>\n                    <color key=\"textColor\" red=\"0.0\" green=\"1\" blue=\"0.0\" alpha=\"1\" colorSpace=\"calibratedRGB\"/>\n                    <nil key=\"highlightedColor\"/>\n                </label>\n                <view contentMode=\"scaleToFill\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"36\">\n                    <rect key=\"frame\" x=\"77\" y=\"348\" width=\"220\" height=\"40\"/>\n                    <subviews>\n                        <view contentMode=\"scaleToFill\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"18\" customClass=\"F3BarGauge\">\n                            <rect key=\"frame\" x=\"10\" y=\"5\" width=\"200\" height=\"30\"/>\n                            <color key=\"backgroundColor\" white=\"0.66666666666666663\" alpha=\"1\" colorSpace=\"calibratedWhite\"/>\n                        </view>\n                    </subviews>\n                    <color key=\"backgroundColor\" red=\"0.50163379779999995\" green=\"0.73209770770000004\" blue=\"0.85550860969999998\" alpha=\"1\" colorSpace=\"calibratedRGB\"/>\n                    <constraints>\n                        <constraint firstItem=\"18\" firstAttribute=\"top\" secondItem=\"36\" secondAttribute=\"top\" constant=\"5\" id=\"1vx-U2-9EF\"/>\n                        <constraint firstItem=\"18\" firstAttribute=\"leading\" secondItem=\"36\" secondAttribute=\"leading\" constant=\"10\" id=\"6wh-L4-QOm\"/>\n                        <constraint firstAttribute=\"trailing\" secondItem=\"18\" secondAttribute=\"trailing\" constant=\"10\" id=\"C31-3A-IIu\"/>\n                        <constraint firstAttribute=\"height\" constant=\"40\" id=\"r15-di-Dub\"/>\n                        <constraint firstAttribute=\"bottom\" secondItem=\"18\" secondAttribute=\"bottom\" constant=\"5\" id=\"sVj-2n-A3V\"/>\n                    </constraints>\n                </view>\n            </subviews>\n            <color key=\"backgroundColor\" red=\"0.1015425702\" green=\"0.1015425702\" blue=\"0.1015425702\" alpha=\"1\" colorSpace=\"calibratedRGB\"/>\n            <constraints>\n                <constraint firstItem=\"34\" firstAttribute=\"leading\" secondItem=\"12\" secondAttribute=\"trailing\" constant=\"9\" id=\"02W-PP-X37\"/>\n                <constraint firstItem=\"24\" firstAttribute=\"leading\" secondItem=\"9\" secondAttribute=\"trailing\" constant=\"17\" id=\"48x-t8-9Vc\"/>\n                <constraint firstItem=\"28\" firstAttribute=\"leading\" secondItem=\"9\" secondAttribute=\"trailing\" constant=\"17\" id=\"5ZK-nT-9hE\"/>\n                <constraint firstAttribute=\"trailing\" secondItem=\"36\" secondAttribute=\"trailing\" constant=\"23\" id=\"6PU-G1-2OW\"/>\n                <constraint firstAttribute=\"bottom\" secondItem=\"13\" secondAttribute=\"bottom\" constant=\"27\" id=\"7kd-J6-PSo\"/>\n                <constraint firstItem=\"10\" firstAttribute=\"leading\" secondItem=\"9\" secondAttribute=\"trailing\" constant=\"17\" id=\"7oT-8O-ePj\"/>\n                <constraint firstAttribute=\"trailing\" secondItem=\"10\" secondAttribute=\"trailing\" constant=\"23\" id=\"Apq-CX-uu0\"/>\n                <constraint firstItem=\"8\" firstAttribute=\"top\" secondItem=\"6\" secondAttribute=\"top\" constant=\"27\" id=\"BKz-4k-SUC\"/>\n                <constraint firstItem=\"31\" firstAttribute=\"leading\" secondItem=\"9\" secondAttribute=\"trailing\" constant=\"17\" id=\"CJy-6y-ObV\"/>\n                <constraint firstItem=\"36\" firstAttribute=\"top\" secondItem=\"20\" secondAttribute=\"bottom\" constant=\"2\" id=\"DSE-rQ-Al8\"/>\n                <constraint firstItem=\"37\" firstAttribute=\"leading\" secondItem=\"9\" secondAttribute=\"trailing\" constant=\"17\" id=\"GZ0-xY-Nzn\"/>\n                <constraint firstAttribute=\"bottom\" secondItem=\"12\" secondAttribute=\"bottom\" constant=\"20\" id=\"Isq-vg-gRU\"/>\n                <constraint firstItem=\"38\" firstAttribute=\"top\" secondItem=\"10\" secondAttribute=\"bottom\" constant=\"8\" id=\"J80-hL-27H\"/>\n                <constraint firstItem=\"24\" firstAttribute=\"top\" secondItem=\"31\" secondAttribute=\"bottom\" constant=\"8\" id=\"K75-jy-QfM\"/>\n                <constraint firstItem=\"19\" firstAttribute=\"leading\" secondItem=\"9\" secondAttribute=\"trailing\" constant=\"17\" id=\"KZJ-ef-qUz\"/>\n                <constraint firstItem=\"26\" firstAttribute=\"leading\" secondItem=\"23\" secondAttribute=\"trailing\" constant=\"4\" id=\"Khi-lQ-ftk\"/>\n                <constraint firstItem=\"32\" firstAttribute=\"top\" secondItem=\"28\" secondAttribute=\"bottom\" constant=\"8\" id=\"P96-gV-Yir\"/>\n                <constraint firstAttribute=\"trailing\" secondItem=\"34\" secondAttribute=\"trailing\" constant=\"23\" id=\"Pp9-0K-MVq\"/>\n                <constraint firstItem=\"32\" firstAttribute=\"leading\" secondItem=\"9\" secondAttribute=\"trailing\" constant=\"17\" id=\"QqH-DT-zKN\"/>\n                <constraint firstItem=\"29\" firstAttribute=\"leading\" secondItem=\"9\" secondAttribute=\"trailing\" constant=\"17\" id=\"R1f-5p-3Kv\"/>\n                <constraint firstItem=\"31\" firstAttribute=\"top\" secondItem=\"32\" secondAttribute=\"bottom\" constant=\"2\" id=\"TzV-gE-5JD\"/>\n                <constraint firstAttribute=\"trailing\" secondItem=\"26\" secondAttribute=\"trailing\" constant=\"23\" id=\"Wo5-nz-KRJ\"/>\n                <constraint firstAttribute=\"trailing\" secondItem=\"8\" secondAttribute=\"trailing\" constant=\"20\" id=\"WuJ-nB-J81\"/>\n                <constraint firstItem=\"23\" firstAttribute=\"top\" secondItem=\"24\" secondAttribute=\"bottom\" constant=\"2\" id=\"XYH-Cr-3rT\"/>\n                <constraint firstAttribute=\"trailing\" secondItem=\"37\" secondAttribute=\"trailing\" constant=\"23\" id=\"aXZ-qy-zR2\"/>\n                <constraint firstItem=\"8\" firstAttribute=\"leading\" secondItem=\"6\" secondAttribute=\"leading\" constant=\"20\" id=\"bDV-kB-xKp\"/>\n                <constraint firstItem=\"13\" firstAttribute=\"top\" secondItem=\"9\" secondAttribute=\"bottom\" constant=\"19\" id=\"bna-nV-FBt\"/>\n                <constraint firstAttribute=\"trailing\" secondItem=\"28\" secondAttribute=\"trailing\" constant=\"23\" id=\"d1b-YD-Saa\"/>\n                <constraint firstAttribute=\"trailing\" secondItem=\"31\" secondAttribute=\"trailing\" constant=\"23\" id=\"en0-tl-arz\"/>\n                <constraint firstItem=\"20\" firstAttribute=\"top\" secondItem=\"23\" secondAttribute=\"bottom\" constant=\"16\" id=\"fHj-xE-Jmm\"/>\n                <constraint firstItem=\"19\" firstAttribute=\"top\" secondItem=\"9\" secondAttribute=\"top\" id=\"fZ1-AC-s2D\"/>\n                <constraint firstItem=\"26\" firstAttribute=\"centerY\" secondItem=\"23\" secondAttribute=\"centerY\" id=\"fba-IN-exQ\"/>\n                <constraint firstItem=\"29\" firstAttribute=\"top\" secondItem=\"37\" secondAttribute=\"bottom\" constant=\"8\" id=\"gy7-de-Qx4\"/>\n                <constraint firstItem=\"38\" firstAttribute=\"leading\" secondItem=\"9\" secondAttribute=\"trailing\" constant=\"17\" id=\"h3e-0u-OcD\"/>\n                <constraint firstItem=\"36\" firstAttribute=\"leading\" secondItem=\"9\" secondAttribute=\"trailing\" constant=\"17\" id=\"htN-gx-Sdx\"/>\n                <constraint firstItem=\"12\" firstAttribute=\"leading\" secondItem=\"13\" secondAttribute=\"trailing\" constant=\"15\" id=\"iuZ-Tu-2YF\"/>\n                <constraint firstItem=\"28\" firstAttribute=\"top\" secondItem=\"29\" secondAttribute=\"bottom\" constant=\"2\" id=\"lH1-gy-fhd\"/>\n                <constraint firstItem=\"9\" firstAttribute=\"top\" secondItem=\"8\" secondAttribute=\"bottom\" constant=\"10\" id=\"lN3-KY-d5E\"/>\n                <constraint firstItem=\"9\" firstAttribute=\"leading\" secondItem=\"6\" secondAttribute=\"leading\" constant=\"20\" id=\"pcZ-Os-QRD\"/>\n                <constraint firstItem=\"23\" firstAttribute=\"leading\" secondItem=\"9\" secondAttribute=\"trailing\" constant=\"17\" id=\"rHC-C9-hj4\"/>\n                <constraint firstAttribute=\"bottom\" secondItem=\"34\" secondAttribute=\"bottom\" constant=\"20\" id=\"rxT-FF-kSa\"/>\n                <constraint firstItem=\"13\" firstAttribute=\"leading\" secondItem=\"6\" secondAttribute=\"leading\" constant=\"20\" id=\"uDp-bM-zjt\"/>\n                <constraint firstItem=\"10\" firstAttribute=\"top\" secondItem=\"19\" secondAttribute=\"bottom\" constant=\"2\" id=\"vMe-NF-f4a\"/>\n                <constraint firstItem=\"12\" firstAttribute=\"centerY\" secondItem=\"13\" secondAttribute=\"centerY\" id=\"wWW-Te-mJM\"/>\n                <constraint firstItem=\"37\" firstAttribute=\"top\" secondItem=\"38\" secondAttribute=\"bottom\" constant=\"2\" id=\"wsN-Vz-Idm\"/>\n                <constraint firstItem=\"20\" firstAttribute=\"leading\" secondItem=\"9\" secondAttribute=\"trailing\" constant=\"17\" id=\"zS2-yg-cvR\"/>\n            </constraints>\n            <simulatedStatusBarMetrics key=\"simulatedStatusBarMetrics\" statusBarStyle=\"lightContent\"/>\n            <freeformSimulatedSizeMetrics key=\"simulatedDestinationMetrics\"/>\n        </view>\n    </objects>\n</document>\n"
  },
  {
    "path": "F3BarGaugeDemo/main.m",
    "content": "//\n//  main.m\n//  F3BarGaugeDemo\n//\n//  Created by Brad Benson on 12/13/11.\n//  Copyright (c) 2011 __MyCompanyName__. All rights reserved.\n//\n\n#import <UIKit/UIKit.h>\n\n#import \"AppDelegate.h\"\n\nint main(int argc, char *argv[])\n{\n  @autoreleasepool {\n      return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));\n  }\n}\n"
  },
  {
    "path": "F3BarGaugeDemo.xcodeproj/project.pbxproj",
    "content": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 46;\n\tobjects = {\n\n/* Begin PBXBuildFile section */\n\t\tC68DA36E1497B71B00437005 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C68DA36D1497B71B00437005 /* UIKit.framework */; };\n\t\tC68DA3701497B71B00437005 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C68DA36F1497B71B00437005 /* Foundation.framework */; };\n\t\tC68DA3721497B71B00437005 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C68DA3711497B71B00437005 /* CoreGraphics.framework */; };\n\t\tC68DA3781497B71B00437005 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = C68DA3761497B71B00437005 /* InfoPlist.strings */; };\n\t\tC68DA37A1497B71B00437005 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = C68DA3791497B71B00437005 /* main.m */; };\n\t\tC68DA37E1497B71B00437005 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = C68DA37D1497B71B00437005 /* AppDelegate.m */; };\n\t\tC68DA3811497B71B00437005 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C68DA3801497B71B00437005 /* ViewController.m */; };\n\t\tC68DA3841497B71B00437005 /* ViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = C68DA3821497B71B00437005 /* ViewController.xib */; };\n\t\tC68DA3911497B79000437005 /* F3BarGauge.m in Sources */ = {isa = PBXBuildFile; fileRef = C68DA3901497B79000437005 /* F3BarGauge.m */; };\n\t\tC6E5F05A188F04B0006D1593 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = C6E5F059188F04B0006D1593 /* Default-568h@2x.png */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXFileReference section */\n\t\tC68DA3691497B71B00437005 /* F3BarGaugeDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = F3BarGaugeDemo.app; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tC68DA36D1497B71B00437005 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };\n\t\tC68DA36F1497B71B00437005 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };\n\t\tC68DA3711497B71B00437005 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };\n\t\tC68DA3751497B71B00437005 /* F3BarGaugeDemo-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = \"F3BarGaugeDemo-Info.plist\"; sourceTree = \"<group>\"; };\n\t\tC68DA3771497B71B00437005 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = \"<group>\"; };\n\t\tC68DA3791497B71B00437005 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = \"<group>\"; };\n\t\tC68DA37B1497B71B00437005 /* F3BarGaugeDemo-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = \"F3BarGaugeDemo-Prefix.pch\"; sourceTree = \"<group>\"; };\n\t\tC68DA37C1497B71B00437005 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = \"<group>\"; };\n\t\tC68DA37D1497B71B00437005 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = \"<group>\"; };\n\t\tC68DA37F1497B71B00437005 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = \"<group>\"; };\n\t\tC68DA3801497B71B00437005 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = \"<group>\"; };\n\t\tC68DA3831497B71B00437005 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/ViewController.xib; sourceTree = \"<group>\"; };\n\t\tC68DA38F1497B79000437005 /* F3BarGauge.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = F3BarGauge.h; sourceTree = \"<group>\"; };\n\t\tC68DA3901497B79000437005 /* F3BarGauge.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = F3BarGauge.m; sourceTree = \"<group>\"; };\n\t\tC6E5F059188F04B0006D1593 /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = \"Default-568h@2x.png\"; sourceTree = \"<group>\"; };\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\tC68DA3661497B71B00437005 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tC68DA36E1497B71B00437005 /* UIKit.framework in Frameworks */,\n\t\t\t\tC68DA3701497B71B00437005 /* Foundation.framework in Frameworks */,\n\t\t\t\tC68DA3721497B71B00437005 /* CoreGraphics.framework in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXFrameworksBuildPhase section */\n\n/* Begin PBXGroup section */\n\t\tC68DA35E1497B71B00437005 = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tC6E5F059188F04B0006D1593 /* Default-568h@2x.png */,\n\t\t\t\tC68DA38A1497B73D00437005 /* BarGauge */,\n\t\t\t\tC68DA3731497B71B00437005 /* F3BarGaugeDemo */,\n\t\t\t\tC68DA36C1497B71B00437005 /* Frameworks */,\n\t\t\t\tC68DA36A1497B71B00437005 /* Products */,\n\t\t\t);\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tC68DA36A1497B71B00437005 /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tC68DA3691497B71B00437005 /* F3BarGaugeDemo.app */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tC68DA36C1497B71B00437005 /* Frameworks */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tC68DA36D1497B71B00437005 /* UIKit.framework */,\n\t\t\t\tC68DA36F1497B71B00437005 /* Foundation.framework */,\n\t\t\t\tC68DA3711497B71B00437005 /* CoreGraphics.framework */,\n\t\t\t);\n\t\t\tname = Frameworks;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tC68DA3731497B71B00437005 /* F3BarGaugeDemo */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tC68DA37C1497B71B00437005 /* AppDelegate.h */,\n\t\t\t\tC68DA37D1497B71B00437005 /* AppDelegate.m */,\n\t\t\t\tC68DA37F1497B71B00437005 /* ViewController.h */,\n\t\t\t\tC68DA3801497B71B00437005 /* ViewController.m */,\n\t\t\t\tC68DA3821497B71B00437005 /* ViewController.xib */,\n\t\t\t\tC68DA3741497B71B00437005 /* Supporting Files */,\n\t\t\t);\n\t\t\tpath = F3BarGaugeDemo;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tC68DA3741497B71B00437005 /* Supporting Files */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tC68DA3751497B71B00437005 /* F3BarGaugeDemo-Info.plist */,\n\t\t\t\tC68DA3761497B71B00437005 /* InfoPlist.strings */,\n\t\t\t\tC68DA3791497B71B00437005 /* main.m */,\n\t\t\t\tC68DA37B1497B71B00437005 /* F3BarGaugeDemo-Prefix.pch */,\n\t\t\t);\n\t\t\tname = \"Supporting Files\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tC68DA38A1497B73D00437005 /* BarGauge */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tC68DA38F1497B79000437005 /* F3BarGauge.h */,\n\t\t\t\tC68DA3901497B79000437005 /* F3BarGauge.m */,\n\t\t\t);\n\t\t\tname = BarGauge;\n\t\t\tpath = F3BarGaugeDemo;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXNativeTarget section */\n\t\tC68DA3681497B71B00437005 /* F3BarGaugeDemo */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = C68DA3871497B71B00437005 /* Build configuration list for PBXNativeTarget \"F3BarGaugeDemo\" */;\n\t\t\tbuildPhases = (\n\t\t\t\tC68DA3651497B71B00437005 /* Sources */,\n\t\t\t\tC68DA3661497B71B00437005 /* Frameworks */,\n\t\t\t\tC68DA3671497B71B00437005 /* Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = F3BarGaugeDemo;\n\t\t\tproductName = F3BarGaugeDemo;\n\t\t\tproductReference = C68DA3691497B71B00437005 /* F3BarGaugeDemo.app */;\n\t\t\tproductType = \"com.apple.product-type.application\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\tC68DA3601497B71B00437005 /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tLastUpgradeCheck = 0420;\n\t\t\t};\n\t\t\tbuildConfigurationList = C68DA3631497B71B00437005 /* Build configuration list for PBXProject \"F3BarGaugeDemo\" */;\n\t\t\tcompatibilityVersion = \"Xcode 3.2\";\n\t\t\tdevelopmentRegion = English;\n\t\t\thasScannedForEncodings = 0;\n\t\t\tknownRegions = (\n\t\t\t\ten,\n\t\t\t);\n\t\t\tmainGroup = C68DA35E1497B71B00437005;\n\t\t\tproductRefGroup = C68DA36A1497B71B00437005 /* Products */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\tC68DA3681497B71B00437005 /* F3BarGaugeDemo */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXResourcesBuildPhase section */\n\t\tC68DA3671497B71B00437005 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tC68DA3781497B71B00437005 /* InfoPlist.strings in Resources */,\n\t\t\t\tC68DA3841497B71B00437005 /* ViewController.xib in Resources */,\n\t\t\t\tC6E5F05A188F04B0006D1593 /* Default-568h@2x.png in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXResourcesBuildPhase section */\n\n/* Begin PBXSourcesBuildPhase section */\n\t\tC68DA3651497B71B00437005 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tC68DA37A1497B71B00437005 /* main.m in Sources */,\n\t\t\t\tC68DA37E1497B71B00437005 /* AppDelegate.m in Sources */,\n\t\t\t\tC68DA3811497B71B00437005 /* ViewController.m in Sources */,\n\t\t\t\tC68DA3911497B79000437005 /* F3BarGauge.m in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXSourcesBuildPhase section */\n\n/* Begin PBXVariantGroup section */\n\t\tC68DA3761497B71B00437005 /* InfoPlist.strings */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\tC68DA3771497B71B00437005 /* en */,\n\t\t\t);\n\t\t\tname = InfoPlist.strings;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tC68DA3821497B71B00437005 /* ViewController.xib */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\tC68DA3831497B71B00437005 /* en */,\n\t\t\t);\n\t\t\tname = ViewController.xib;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXVariantGroup section */\n\n/* Begin XCBuildConfiguration section */\n\t\tC68DA3851497B71B00437005 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tARCHS = \"$(ARCHS_STANDARD_32_BIT)\";\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"iPhone Developer\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = (\n\t\t\t\t\t\"DEBUG=1\",\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t);\n\t\t\t\tGCC_SYMBOLS_PRIVATE_EXTERN = NO;\n\t\t\t\tGCC_VERSION = com.apple.compilers.llvm.clang.1_0;\n\t\t\t\tGCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 5.0;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tC68DA3861497B71B00437005 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tARCHS = \"$(ARCHS_STANDARD_32_BIT)\";\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"iPhone Developer\";\n\t\t\t\tCOPY_PHASE_STRIP = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_VERSION = com.apple.compilers.llvm.clang.1_0;\n\t\t\t\tGCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 5.0;\n\t\t\t\tOTHER_CFLAGS = \"-DNS_BLOCK_ASSERTIONS=1\";\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tVALIDATE_PRODUCT = YES;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\tC68DA3881497B71B00437005 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tGCC_PRECOMPILE_PREFIX_HEADER = YES;\n\t\t\t\tGCC_PREFIX_HEADER = \"F3BarGaugeDemo/F3BarGaugeDemo-Prefix.pch\";\n\t\t\t\tINFOPLIST_FILE = \"F3BarGaugeDemo/F3BarGaugeDemo-Info.plist\";\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 6.0;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tWRAPPER_EXTENSION = app;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\tC68DA3891497B71B00437005 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tGCC_PRECOMPILE_PREFIX_HEADER = YES;\n\t\t\t\tGCC_PREFIX_HEADER = \"F3BarGaugeDemo/F3BarGaugeDemo-Prefix.pch\";\n\t\t\t\tINFOPLIST_FILE = \"F3BarGaugeDemo/F3BarGaugeDemo-Info.plist\";\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 6.0;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tWRAPPER_EXTENSION = app;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\tC68DA3631497B71B00437005 /* Build configuration list for PBXProject \"F3BarGaugeDemo\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tC68DA3851497B71B00437005 /* Debug */,\n\t\t\t\tC68DA3861497B71B00437005 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\tC68DA3871497B71B00437005 /* Build configuration list for PBXNativeTarget \"F3BarGaugeDemo\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tC68DA3881497B71B00437005 /* Debug */,\n\t\t\t\tC68DA3891497B71B00437005 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n/* End XCConfigurationList section */\n\t};\n\trootObject = C68DA3601497B71B00437005 /* Project object */;\n}\n"
  },
  {
    "path": "F3BarGaugeDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"self:F3BarGaugeDemo.xcodeproj\">\n   </FileRef>\n</Workspace>\n"
  },
  {
    "path": "F3BarGaugeDemo.xcodeproj/xcuserdata/bradbenson.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Bucket\n   type = \"1\"\n   version = \"1.0\">\n   <FileBreakpoints>\n      <FileBreakpoint\n         shouldBeEnabled = \"No\"\n         ignoreCount = \"0\"\n         continueAfterRunningActions = \"No\"\n         isPathRelative = \"1\"\n         filePath = \"F3BarGaugeDemo/F3BarGauge.m\"\n         timestampString = \"345499585.107942\"\n         startingColumnNumber = \"9223372036854775807\"\n         endingColumnNumber = \"9223372036854775807\"\n         startingLineNumber = \"345\"\n         endingLineNumber = \"345\"\n         landmarkName = \"-drawRect:\"\n         landmarkType = \"5\">\n      </FileBreakpoint>\n      <FileBreakpoint\n         shouldBeEnabled = \"No\"\n         ignoreCount = \"0\"\n         continueAfterRunningActions = \"No\"\n         isPathRelative = \"1\"\n         filePath = \"F3BarGaugeDemo/F3BarGauge.m\"\n         timestampString = \"345499585.107942\"\n         startingColumnNumber = \"9223372036854775807\"\n         endingColumnNumber = \"9223372036854775807\"\n         startingLineNumber = \"160\"\n         endingLineNumber = \"160\"\n         landmarkName = \"-setValue:\"\n         landmarkType = \"5\">\n      </FileBreakpoint>\n   </FileBreakpoints>\n</Bucket>\n"
  },
  {
    "path": "F3BarGaugeDemo.xcodeproj/xcuserdata/bradbenson.xcuserdatad/xcschemes/F3BarGaugeDemo.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\n      <BuildActionEntries>\n         <BuildActionEntry\n            buildForTesting = \"YES\"\n            buildForRunning = \"YES\"\n            buildForProfiling = \"YES\"\n            buildForArchiving = \"YES\"\n            buildForAnalyzing = \"YES\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"C68DA3681497B71B00437005\"\n               BuildableName = \"F3BarGaugeDemo.app\"\n               BlueprintName = \"F3BarGaugeDemo\"\n               ReferencedContainer = \"container:F3BarGaugeDemo.xcodeproj\">\n            </BuildableReference>\n         </BuildActionEntry>\n      </BuildActionEntries>\n   </BuildAction>\n   <TestAction\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\"\n      buildConfiguration = \"Debug\">\n      <Testables>\n      </Testables>\n      <MacroExpansion>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"C68DA3681497B71B00437005\"\n            BuildableName = \"F3BarGaugeDemo.app\"\n            BlueprintName = \"F3BarGaugeDemo\"\n            ReferencedContainer = \"container:F3BarGaugeDemo.xcodeproj\">\n         </BuildableReference>\n      </MacroExpansion>\n   </TestAction>\n   <LaunchAction\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      launchStyle = \"0\"\n      useCustomWorkingDirectory = \"NO\"\n      buildConfiguration = \"Debug\"\n      ignoresPersistentStateOnLaunch = \"NO\"\n      debugDocumentVersioning = \"YES\"\n      allowLocationSimulation = \"YES\">\n      <BuildableProductRunnable>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"C68DA3681497B71B00437005\"\n            BuildableName = \"F3BarGaugeDemo.app\"\n            BlueprintName = \"F3BarGaugeDemo\"\n            ReferencedContainer = \"container:F3BarGaugeDemo.xcodeproj\">\n         </BuildableReference>\n      </BuildableProductRunnable>\n      <AdditionalOptions>\n      </AdditionalOptions>\n   </LaunchAction>\n   <ProfileAction\n      shouldUseLaunchSchemeArgsEnv = \"YES\"\n      savedToolIdentifier = \"\"\n      useCustomWorkingDirectory = \"NO\"\n      buildConfiguration = \"Release\"\n      debugDocumentVersioning = \"YES\">\n      <BuildableProductRunnable>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"C68DA3681497B71B00437005\"\n            BuildableName = \"F3BarGaugeDemo.app\"\n            BlueprintName = \"F3BarGaugeDemo\"\n            ReferencedContainer = \"container:F3BarGaugeDemo.xcodeproj\">\n         </BuildableReference>\n      </BuildableProductRunnable>\n   </ProfileAction>\n   <AnalyzeAction\n      buildConfiguration = \"Debug\">\n   </AnalyzeAction>\n   <ArchiveAction\n      buildConfiguration = \"Release\"\n      revealArchiveInOrganizer = \"YES\">\n   </ArchiveAction>\n</Scheme>\n"
  },
  {
    "path": "F3BarGaugeDemo.xcodeproj/xcuserdata/bradbenson.xcuserdatad/xcschemes/xcschememanagement.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>SchemeUserState</key>\n\t<dict>\n\t\t<key>F3BarGaugeDemo.xcscheme</key>\n\t\t<dict>\n\t\t\t<key>orderHint</key>\n\t\t\t<integer>0</integer>\n\t\t</dict>\n\t</dict>\n\t<key>SuppressBuildableAutocreation</key>\n\t<dict>\n\t\t<key>C68DA3681497B71B00437005</key>\n\t\t<dict>\n\t\t\t<key>primary</key>\n\t\t\t<true/>\n\t\t</dict>\n\t</dict>\n</dict>\n</plist>\n"
  },
  {
    "path": "README.markdown",
    "content": "F3BarGauge\n==========\n\nWelcome!\n--------\nThis demo contains the LED bar gauge control for iOS.   It has been\ntested on iOS 6.x and 7.x on iTouch, iPhone, and iPad devices.\n\n![Screenshot](https://raw.github.com/ChiefPilot/F3BarGauge/master/F3BarGauge.png \"Screenshot of Component Demo App\")\n\nIf you find this control of use (or find bugs), I'd love to hear\nfrom you!   Drop a note to brad@flightiii.com with questions, comments,\nor dissenting opinions.\n\n\nBackground\n----------\nThis control is intended to replicate/simulate the level indicator\non an audio mixing board.   These indicators are usually\nsegmented/stacked LEDs, with several colors to indicate thresholds.\nThis control replicates that look, using Quartz drawing primitives,\nand auto-adjusts to horizontal or vertical orientation. Additionally,\nthe colors, number of bars, peak hold, and other items are easily\ncustomized.\n\n\nUsage\n-----\nAdding this control to your XCode project is straightforward :\n1.  Add the F3BarGauge.h and F3BarGauge.m files to your project\n2.  Add a new blank subview to the nib, sized and positioned to\n    match what the bar gauge should look like.\n3.  In the properties inspector for this subview, change the\n    class to \"F3BarGauge\"\n4.  Add an outlet to represent the bar gauge\n5.  Update your code to set the value property as appropriate.\n\nFor more information have a look at the demo code, which\nhas multiple examples including a version that customizes the\nwith an LCD-style appearance.\n\nLicense\n-------\nCopyright (c) 2011-2014 by Brad Benson\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following\nconditions are met:\n  1.  Redistributions of source code must retain the above copyright\n      notice this list of conditions and the following disclaimer.\n  2.  Redistributions in binary form must reproduce the above copyright\n      notice, this list of conditions and the following disclaimer in\n      the documentation and/or other materials provided with the\n      distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\nLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS\nFOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\nCOPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,\nINCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\nBUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS\nOF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED\nAND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF\nTHE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY\nOF SUCH DAMAGE.\n"
  }
]