Full Code of Grouper/FlatUIKit for AI

master 63fea9a86cad cached
79 files
250.9 KB
68.9k tokens
1 symbols
1 requests
Download .txt
Showing preview only (271K chars total). Download the full file or copy to clipboard to get everything.
Repository: Grouper/FlatUIKit
Branch: master
Commit: 63fea9a86cad
Files: 79
Total size: 250.9 KB

Directory structure:
gitextract__euyavku/

├── .gitignore
├── .travis.yml
├── Classes/
│   └── ios/
│       ├── FUIAlertView.h
│       ├── FUIAlertView.m
│       ├── FUIButton.h
│       ├── FUIButton.m
│       ├── FUICellBackgroundView.h
│       ├── FUICellBackgroundView.m
│       ├── FUIPopoverBackgroundView.h
│       ├── FUIPopoverBackgroundView.m
│       ├── FUISegmentedControl.h
│       ├── FUISegmentedControl.m
│       ├── FUISwitch.h
│       ├── FUISwitch.m
│       ├── FUITextField.h
│       ├── FUITextField.m
│       ├── FlatUIKit.h
│       ├── NSString+Icons.h
│       ├── NSString+Icons.m
│       ├── UIBarButtonItem+FlatUI.h
│       ├── UIBarButtonItem+FlatUI.m
│       ├── UIColor+FlatUI.h
│       ├── UIColor+FlatUI.m
│       ├── UIFont+FlatUI.h
│       ├── UIFont+FlatUI.m
│       ├── UIImage+FlatUI.h
│       ├── UIImage+FlatUI.m
│       ├── UINavigationBar+FlatUI.h
│       ├── UINavigationBar+FlatUI.m
│       ├── UIPopoverController+FlatUI.h
│       ├── UIPopoverController+FlatUI.m
│       ├── UIProgressView+FlatUI.h
│       ├── UIProgressView+FlatUI.m
│       ├── UISlider+FlatUI.h
│       ├── UISlider+FlatUI.m
│       ├── UIStepper+FlatUI.h
│       ├── UIStepper+FlatUI.m
│       ├── UITabBar+FlatUI.h
│       ├── UITabBar+FlatUI.m
│       ├── UITableViewCell+FlatUI.h
│       ├── UITableViewCell+FlatUI.m
│       ├── UIToolbar+FlatUI.h
│       └── UIToolbar+FlatUI.m
├── Example/
│   ├── .gitignore
│   ├── FlatUIKitExample/
│   │   ├── AppDelegate.h
│   │   ├── AppDelegate.m
│   │   ├── FlatUIKitExample-Info.plist
│   │   ├── FlatUIKitExample-Prefix.pch
│   │   ├── IconViewController.h
│   │   ├── IconViewController.m
│   │   ├── TableViewController.h
│   │   ├── TableViewController.m
│   │   ├── ViewController.h
│   │   ├── ViewController.m
│   │   ├── ViewController_iPad.xib
│   │   ├── ViewController_iPhone.xib
│   │   ├── en.lproj/
│   │   │   └── InfoPlist.strings
│   │   └── main.m
│   └── FlatUIKitExample.xcodeproj/
│       └── project.pbxproj
├── FlatUIKit.podspec
├── LICENSE
├── README.markdown
├── Rakefile
└── Tests/
    ├── FUIKitTests/
    │   ├── FUIAppDelegate.h
    │   ├── FUIAppDelegate.m
    │   ├── FUIKitTests-Info.plist
    │   ├── FUIKitTests-Prefix.pch
    │   ├── en.lproj/
    │   │   └── InfoPlist.strings
    │   └── main.m
    ├── FUIKitTests.xcodeproj/
    │   ├── project.pbxproj
    │   └── xcshareddata/
    │       └── xcschemes/
    │           └── FUIKitTests.xcscheme
    ├── FUIKitTestsTests/
    │   ├── FUIAlertViewTests.m
    │   ├── FUIKitTestsTests-Info.plist
    │   ├── FUITableViewCellTests.m
    │   ├── SenTestCase+FUITestHelpers.h
    │   ├── SenTestCase+FUITestHelpers.m
    │   └── en.lproj/
    │       └── InfoPlist.strings
    ├── Podfile
    └── Schemes/
        └── FUIKitTests.xcscheme

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
.DS_Store
*.swp
*~.nib
.idea
build/
bin/
.idea/
*.pbxuser
*.perspective
*.perspectivev3
xcuserdata
objects
Settings.bundle
Pods
Podfile.lock
*.xcworkspace


================================================
FILE: .travis.yml
================================================
language: objective-c
before_install:
  - brew update
  - brew install xctool --HEAD
  - gem install cocoapods
  - cd Tests && pod install && cd $TRAVIS_BUILD_DIR
script: "rake test"



================================================
FILE: Classes/ios/FUIAlertView.h
================================================
//
//  FUIAlertView.h
//  FlatUI
//
//  Created by Jack Flintermann on 5/7/13.
//  Copyright (c) 2013 Jack Flintermann. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "FUITextField.h"

typedef NS_ENUM(NSInteger, FUIAlertViewStyle) {
    FUIAlertViewStyleDefault = 0,
    FUIAlertViewStyleSecureTextInput,
    FUIAlertViewStylePlainTextInput,
    FUIAlertViewStyleLoginAndPasswordInput
};

@protocol FUIAlertViewDelegate;

@interface FUIAlertView : UIView

- (id)initWithTitle:(NSString *)title
            message:(NSString *)message
           delegate:(id<FUIAlertViewDelegate>)delegate
  cancelButtonTitle:(NSString *)cancelButtonTitle
  otherButtonTitles:(NSString *)otherButtonTitles, ... NS_REQUIRES_NIL_TERMINATION;

@property(nonatomic,assign) id<FUIAlertViewDelegate> delegate;    // weak reference

@property (nonatomic, copy) void(^onOkAction)(void); //called if dismissed with other button
@property (nonatomic, copy) void(^onCancelAction)(void);//called if dismissed with cancel button
@property (nonatomic, copy) void(^onDismissAction)(void);//called after onOkAction or onCancelAction. Useful if alert has more than 2 buttons

@property (nonatomic, assign, readonly) NSInteger dismissButtonIndex;//index of button that was tapped to dismiss the alert


@property(nonatomic,copy) NSString *title;
@property(nonatomic,copy) NSString *message;   // secondary explanation text

// adds a button with the title. returns the index (0 based) of where it was added. buttons are displayed in the order added except for the
// cancel button which will be positioned based on HI requirements. Buttons cannot be customized. If you pass nil as a title no button will be added.
- (NSInteger)addButtonWithTitle:(NSString *)title;    // returns index of button. 0 based.
- (NSString *)buttonTitleAtIndex:(NSInteger)buttonIndex;
@property(nonatomic,readonly) NSInteger numberOfButtons;
@property(nonatomic) NSInteger cancelButtonIndex;      // if the delegate does not implement -alertViewCancel:, we pretend this button was clicked on. default is -1

//max height of the alert, if set
@property(nonatomic) NSInteger maxHeight;

// TODO: not implemented
//@property(nonatomic,readonly) NSInteger firstOtherButtonIndex;	// -1 if no otherButtonTitles or initWithTitle:... not used

@property(nonatomic,readonly,getter=isVisible) BOOL visible;

// Flat Alert view style - defaults to FUIAlertViewStyleDefault
@property(nonatomic,assign) FUIAlertViewStyle alertViewStyle;

// shows popup alert animated.
- (void)show;

// hides alert sheet or popup. use this method when you need to explicitly dismiss the alert.
// it does not need to be called if the user presses on a button
- (void)dismissWithClickedButtonIndex:(NSInteger)buttonIndex animated:(BOOL)animated;

- (void)clickButtonAtIndex:(NSInteger)buttonIndex;

/* Retrieve a text field at an index - raises NSRangeException when textFieldIndex is out-of-bounds.
 The field at index 0 will be the first text field (the single field or the login field), the field at index 1 will be the password field. */
- (FUITextField *)textFieldAtIndex:(NSInteger)textFieldIndex;

@property(nonatomic, strong) NSMutableArray *buttons;
@property(nonatomic, weak, readonly) UILabel *titleLabel;
@property(nonatomic, weak, readonly) UILabel *messageLabel;
@property(nonatomic, weak, readonly) UIView *backgroundOverlay;
@property(nonatomic, weak, readonly) UIView *alertContainer;
@property(nonatomic) CGFloat buttonSpacing UI_APPEARANCE_SELECTOR;
@property(nonatomic) CGFloat animationDuration UI_APPEARANCE_SELECTOR;
@property(nonatomic) BOOL hasCancelButton;

//setting these properties overwrites any other button colors/fonts that have already been set
@property(nonatomic, strong) UIFont *defaultButtonFont UI_APPEARANCE_SELECTOR;
@property(nonatomic, strong) UIColor *defaultButtonTitleColor UI_APPEARANCE_SELECTOR;
@property(nonatomic, strong) UIColor *defaultButtonColor UI_APPEARANCE_SELECTOR;
@property(nonatomic, strong) UIColor *defaultButtonShadowColor UI_APPEARANCE_SELECTOR;
@property(nonatomic, readwrite) CGFloat defaultButtonCornerRadius UI_APPEARANCE_SELECTOR;
@property(nonatomic, readwrite) CGFloat defaultButtonShadowHeight UI_APPEARANCE_SELECTOR;

@end


@protocol FUIAlertViewDelegate <NSObject>
@optional

// Called when a button is clicked. The view will be automatically dismissed after this call returns
- (void)alertView:(FUIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex;

// Called when we cancel a view (eg. the user clicks the Home button). This is not called when the user clicks the cancel button.
// If not defined in the delegate, we simulate a click in the cancel button
// TODO: not implemented
//- (void)alertViewCancel:(FUIAlertView *)alertView;

- (void)willPresentAlertView:(FUIAlertView *)alertView;  // before animation and showing view
- (void)didPresentAlertView:(FUIAlertView *)alertView;  // after animation

- (void)alertView:(FUIAlertView *)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex; // before animation and hiding view
- (void)alertView:(FUIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex;  // after animation

// Called after edits in any of the default fields added by the style
// TODO: not implemented
//- (BOOL)alertViewShouldEnableFirstOtherButton:(UIAlertView *)alertView;

@end


================================================
FILE: Classes/ios/FUIAlertView.m
================================================
//
//  FUIAlertView.m
//  FlatUI
//
//  Created by Jack Flintermann on 5/7/13.
//  Copyright (c) 2013 Jack Flintermann. All rights reserved.
//

#import "FUIAlertView.h"
#import "FUIButton.h"

@interface FUIAlertView()

@property(nonatomic, weak) UIView *alertContentContainer;
@property(nonatomic, strong) NSMutableArray* textFields;

@end

@implementation FUIAlertView

+ (void)initialize {
    if (self == [FUIAlertView class]) {
        FUIAlertView *appearance = [self appearance];
        [appearance setButtonSpacing:10.0f];
        [appearance setAnimationDuration:0.2f];
    }
}

- (id)init
{
    return [self initWithFrame:CGRectZero];
}

- (id)initWithCoder:(NSCoder *)aDecoder
{
    return [self initWithFrame:CGRectZero];
}

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        self.textFields = [@[] mutableCopy];
        
        // This mask is set to force lay out of subviews when superview's bounds change
        self.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
        
        UIView *backgroundOverlay = [[UIView alloc] init];
        backgroundOverlay.backgroundColor = [UIColor blueColor];
        [self addSubview:backgroundOverlay];
        backgroundOverlay.alpha = 0;
        _backgroundOverlay = backgroundOverlay;
        
        UIView *alertContainer = [[UIView alloc] init];
        alertContainer.backgroundColor = [UIColor yellowColor];
        [self addSubview:alertContainer];
        [self bringSubviewToFront:alertContainer];
        _alertContainer = alertContainer;
        
        UIView *alertContentContainer = [[UIView alloc] init];
        alertContentContainer.backgroundColor = [UIColor clearColor];
        [self.alertContainer addSubview:alertContentContainer];
        [self.alertContainer bringSubviewToFront:alertContentContainer];
        _alertContentContainer = alertContentContainer;
        
        UILabel *titleLabel = [[UILabel alloc] init];
        titleLabel.numberOfLines = 0;
        titleLabel.backgroundColor = [UIColor clearColor];
        titleLabel.textAlignment = NSTextAlignmentCenter;
        titleLabel.text = self.title;
        [alertContentContainer addSubview:titleLabel];
        _titleLabel = titleLabel;
        
        UILabel *messageLabel = [[UILabel alloc] init];
        messageLabel.numberOfLines = 0;
        messageLabel.backgroundColor = [UIColor clearColor];
        messageLabel.textAlignment = NSTextAlignmentCenter;
        messageLabel.text = self.message;
        [alertContentContainer addSubview:messageLabel];
        _messageLabel = messageLabel;
        
        FUITextField* firstTextField = [[FUITextField alloc] init];
        [firstTextField setTextAlignment:NSTextAlignmentCenter];
        [self.textFields addObject:firstTextField];
        [alertContentContainer addSubview:firstTextField];
        
        FUITextField* secureTextField = [[FUITextField alloc] init];
        [secureTextField setSecureTextEntry:YES];
        [secureTextField setTextAlignment:NSTextAlignmentCenter];
        [self.textFields addObject:secureTextField];
        [alertContentContainer addSubview:secureTextField];
        
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow) name:UIKeyboardWillShowNotification object:nil];
    }
    return self;
}

- (id)initWithTitle:(NSString *)title
            message:(NSString *)message
           delegate:(id<FUIAlertViewDelegate>)delegate
  cancelButtonTitle:(NSString *)cancelButtonTitle
  otherButtonTitles:(NSString *)otherButtonTitles, ... {
    self = [self initWithFrame:CGRectZero];
    if (self) {
        self.title = title;
        self.message = message;
        self.delegate = delegate;
        
        if (cancelButtonTitle) {
            [self addButtonWithTitle:cancelButtonTitle];
            [self setHasCancelButton:YES];
        }
        va_list args;
        va_start(args, otherButtonTitles);
        for (NSString *arg = otherButtonTitles; arg != nil; arg = va_arg(args, NSString*)) {
            [self addButtonWithTitle:arg];
        }
        va_end(args);
    }
    return self;
}

- (void)keyboardWillShow
{
    [self.alertContainer setTransform:CGAffineTransformMakeTranslation(0, - self.alertContainer.frame.origin.y + [[UIApplication sharedApplication] statusBarFrame].size.height)];
}

- (void) layoutSubviews {
    [super layoutSubviews];
    if (CGAffineTransformIsIdentity(self.alertContainer.transform)) {
        self.backgroundOverlay.frame = self.bounds;
        CGFloat padding = 15;
        CGRect contentContainerFrame = CGRectMake(padding, padding, 0, 0);
        contentContainerFrame.size = [self calculateSize];
        self.alertContentContainer.frame = contentContainerFrame;
        CGRect alertContainerFrame = CGRectInset(contentContainerFrame, -padding, -padding);
        alertContainerFrame.origin = CGPointMake(floorf((self.frame.size.width - alertContainerFrame.size.width) / 2),
                                                 floorf((self.frame.size.height - alertContainerFrame.size.height) / 2));
        alertContainerFrame.origin.y = MAX(30, alertContainerFrame.origin.y - 30);
        self.alertContainer.frame = alertContainerFrame;
        CGRect titleFrame = self.titleLabel.frame;
        titleFrame.size.width = self.alertContentContainer.frame.size.width;
        self.titleLabel.frame = titleFrame;
        [self.titleLabel sizeToFit];
        titleFrame = self.titleLabel.frame;
        CGPoint titleOrigin = CGPointMake(floorf((self.alertContentContainer.frame.size.width - self.titleLabel.frame.size.width)/2), 0);
        titleFrame.origin = titleOrigin;
        self.titleLabel.frame = titleFrame;
        CGRect messageFrame = self.messageLabel.frame;
        messageFrame.size.width = self.alertContentContainer.frame.size.width;
        self.messageLabel.frame = messageFrame;
        [self.messageLabel sizeToFit];
        messageFrame = self.messageLabel.frame;
        CGPoint messageOrigin = CGPointMake(floorf((self.alertContentContainer.frame.size.width - self.messageLabel.frame.size.width)/2), CGRectGetMaxY(titleFrame) + 10);
        messageFrame.origin = messageOrigin;
        self.messageLabel.frame = messageFrame;
        
        if (self.alertViewStyle == FUIAlertViewStylePlainTextInput || self.alertViewStyle == FUIAlertViewStyleSecureTextInput) {
            if (self.alertViewStyle == FUIAlertViewStyleSecureTextInput) {
                [self.textFields[0] setSecureTextEntry:YES];
            }
            [self.textFields[0] setFrame:(CGRect){{0, self.messageLabel.frame.origin.y + self.messageLabel.frame.size.height + 10},{self.alertContentContainer.frame.size.width, 40}}];
        }
        if (self.alertViewStyle == FUIAlertViewStyleLoginAndPasswordInput) {
            [self.textFields[0] setFrame:(CGRect){{0, self.messageLabel.frame.origin.y + self.messageLabel.frame.size.height + 10},{self.alertContentContainer.frame.size.width, 40}}];
            [self.textFields[1] setFrame:(CGRect){{0, ((FUITextField*)self.textFields[0]).frame.origin.y + ((FUITextField*)self.textFields[0]).frame.size.height + 5},{self.alertContentContainer.frame.size.width, 40}}];
        }
        
        __block CGFloat startingButtonY = self.alertContentContainer.frame.size.height - [self totalButtonHeight];
        [self.buttons enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
            UIButton *button = obj;
            if (self.hasCancelButton && idx == 0) {
                CGFloat lastButtonY = self.alertContentContainer.frame.size.height - button.frame.size.height;
                [self setButton:obj atHeight:lastButtonY];
            } else {
                [self setButton:obj atHeight:startingButtonY];
                startingButtonY += (button.frame.size.height + self.buttonSpacing);
            }
        }];
        if(self.messageLabel.superview&&![self.messageLabel.superview isEqual:self.alertContentContainer]) {
            [self.messageLabel removeFromSuperview];
            [self.alertContentContainer addSubview:self.messageLabel];
        }
        if(self.maxHeight) {
            CGSize originalSize = messageFrame.size;
            messageFrame.size.height = self.alertContentContainer.frame.size.height-self.titleLabel.frame.size.height-[self totalButtonHeight]-20;
            if(messageFrame.size.height<originalSize.height) {
                UIScrollView *messageScrollView = [[UIScrollView alloc] initWithFrame:messageFrame];
                messageFrame.origin = CGPointZero;
                messageFrame.size = originalSize;
                self.messageLabel.frame = messageFrame;
                [messageScrollView setContentSize:originalSize];
                [messageScrollView addSubview:self.messageLabel];
                [self.alertContentContainer addSubview:messageScrollView];
            }
        }
    }
}

- (void)setTitle:(NSString *)title {
    _title = title;
    self.titleLabel.text = title;
}

- (void)setMessage:(NSString *)message {
    _message = message;
    self.messageLabel.text = message;
}

- (void)setButton:(UIButton *)button atHeight:(CGFloat)height {
    CGRect buttonFrame = button.frame;
    buttonFrame.origin = CGPointMake(0, height);
    buttonFrame.size.width = self.alertContentContainer.frame.size.width;
    button.frame = buttonFrame;
}

- (CGFloat) totalButtonHeight {
    __block CGFloat buttonHeight = 0;
    [self.buttons enumerateObjectsUsingBlock:^(FUIButton *button, NSUInteger idx, BOOL *stop) {
        buttonHeight += (button.frame.size.height + self.buttonSpacing);
    }];
    buttonHeight -= self.buttonSpacing;
    return buttonHeight;
}

- (CGSize) calculateSize {
    CGFloat contentWidth = 250;
    
    CGFloat titleHeight;
    CGFloat messageHeight;
    CGFloat textFieldHeight = 0;
    
    if ([[[UIDevice currentDevice] systemVersion] compare:@"7.0" options:NSNumericSearch] != NSOrderedAscending) {
        // iOS7 methods
        CGRect titleRect = [self.titleLabel.text boundingRectWithSize:CGSizeMake(contentWidth, CGFLOAT_MAX)
                                                              options:NSStringDrawingUsesLineFragmentOrigin
                                                           attributes:@{NSFontAttributeName:self.titleLabel.font}
                                                              context:nil];
        CGRect messageRect = [self.messageLabel.text boundingRectWithSize:CGSizeMake(contentWidth, CGFLOAT_MAX)
                                                                  options:NSStringDrawingUsesLineFragmentOrigin
                                                               attributes:@{NSFontAttributeName:self.messageLabel.font}
                                                                  context:nil];
        titleHeight = titleRect.size.height;
        messageHeight = messageRect.size.height;
    } else {
        // Pre-iOS7 methods
        titleHeight = [self.titleLabel.text sizeWithFont:self.titleLabel.font constrainedToSize:CGSizeMake(contentWidth, CGFLOAT_MAX)].height;
        messageHeight = [self.messageLabel.text sizeWithFont:self.messageLabel.font constrainedToSize:CGSizeMake(contentWidth, CGFLOAT_MAX)].height;
    }
    
    CGFloat singleTextFieldHeight = 40;
    if (self.alertViewStyle == FUIAlertViewStyleDefault) {
        textFieldHeight = -10;
    }
    if (self.alertViewStyle == FUIAlertViewStylePlainTextInput || self.alertViewStyle == FUIAlertViewStyleSecureTextInput) {
        textFieldHeight = singleTextFieldHeight;
    }
    if (self.alertViewStyle == FUIAlertViewStyleLoginAndPasswordInput) {
        textFieldHeight = singleTextFieldHeight * 2 + 10;
    }
    
    CGFloat buttonHeight = [self totalButtonHeight];
    CGFloat contentHeight = titleHeight + 10 + messageHeight + 10 + buttonHeight + 10 + textFieldHeight;
    if(self.maxHeight && contentHeight>self.maxHeight)
        return CGSizeMake(contentWidth, MAX(titleHeight + 10 + buttonHeight, self.maxHeight));
    else
        return CGSizeMake(contentWidth, contentHeight);
}

- (NSInteger) numberOfButtons {
    return (NSInteger)self.buttons.count;
}

- (void)show {
    self.alertContainer.alpha = 0;
    self.alertContainer.transform = CGAffineTransformMakeScale(1.3, 1.3);
    UIViewController *topController = [[[[UIApplication sharedApplication] windows] firstObject] rootViewController];
    
    while (topController.presentedViewController && !topController.presentedViewController.isBeingDismissed) {
        topController = topController.presentedViewController;
    }
    UIView *rootView = topController.view;
    self.frame = rootView.bounds;
    
    [rootView addSubview:self];
    [rootView bringSubviewToFront:self];
    if ([self.delegate respondsToSelector:@selector(willPresentAlertView:)]) {
        [self.delegate willPresentAlertView:self];
    }
    [UIView animateWithDuration:self.animationDuration animations:^{
        self.backgroundOverlay.alpha = 1;
        self.alertContainer.alpha = 1;
        self.alertContainer.transform = CGAffineTransformIdentity;
    } completion:^(BOOL finished0) {
        _visible = YES;
        if ([self.delegate respondsToSelector:@selector(didPresentAlertView:)]) {
            [self.delegate didPresentAlertView:self];
        }
    }];
}

- (NSString *)buttonTitleAtIndex:(NSInteger)buttonIndex {
    if (buttonIndex < 0 || buttonIndex > (NSInteger)self.buttons.count) {
        return nil;
    }
    return [[self.buttons objectAtIndex:(NSUInteger)buttonIndex] titleForState:UIControlStateNormal];
}

- (void)dismissWithClickedButtonIndex:(NSInteger)buttonIndex animated:(BOOL)animated {
    //todo delegate
    
    _dismissButtonIndex = buttonIndex;
    
    self.alertContainer.transform = CGAffineTransformIdentity;
    if ([self.delegate respondsToSelector:@selector(alertView:willDismissWithButtonIndex:)]) {
        [self.delegate alertView:self willDismissWithButtonIndex:buttonIndex];
    }
    
    if (self.onDismissAction) {
        self.onDismissAction();
    }
    
    [UIView animateWithDuration:self.animationDuration animations:^{
        self.backgroundOverlay.alpha = 0;
        self.alertContainer.alpha = 0;
        self.alertContainer.transform = CGAffineTransformMakeScale(0.7, 0.7);
    } completion:^(BOOL finished) {
        [self removeFromSuperview];
        _visible = NO;
        if ([self.delegate respondsToSelector:@selector(alertView:didDismissWithButtonIndex:)]) {
            [self.delegate alertView:self didDismissWithButtonIndex:buttonIndex];
        }
    }];
}

- (NSInteger)addButtonWithTitle:(NSString *)title {
    if (!title) return -1;
    if (!self.buttons) {
        self.buttons = [NSMutableArray array];
    }
    FUIButton *button = [[FUIButton alloc] initWithFrame:CGRectMake(0, 0, 250, 44)];
    button.cornerRadius = 3;
    button.buttonColor = [UIColor greenColor];
    button.shadowColor = [UIColor brownColor];
    button.shadowHeight = 3;
    [button setTitle:title forState:UIControlStateNormal];
    [button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
    [self.alertContentContainer addSubview:button];
    [self.buttons addObject:button];
    return (NSInteger)self.buttons.count-1;
}

- (void) buttonPressed:(FUIButton *)sender {
    NSUInteger index = [self.buttons indexOfObject:sender];
    if ([self.delegate respondsToSelector:@selector(alertView:clickedButtonAtIndex:)]) {
        [self.delegate alertView:self clickedButtonAtIndex:(NSInteger)index];
    }
    
    if (index == self.cancelButtonIndex && self.onCancelAction) {
        self.onCancelAction();
    } else if (index != self.cancelButtonIndex && self.onOkAction) {
        self.onOkAction();
    }
    
    [self dismissWithClickedButtonIndex:(NSInteger)index animated:YES];
}

- (void)clickButtonAtIndex:(NSInteger)buttonIndex {
    [[self.buttons objectAtIndex:(NSUInteger)buttonIndex] sendActionsForControlEvents:UIControlEventTouchUpInside];
}

- (void) setDefaultButtonFont:(UIFont *)defaultButtonFont {
    _defaultButtonFont = defaultButtonFont;
    [self.buttons enumerateObjectsUsingBlock:^(FUIButton *button, NSUInteger idx, BOOL *stop) {
        button.titleLabel.font = defaultButtonFont;
    }];
}

- (void) setDefaultButtonTitleColor:(UIColor *)defaultButtonTitleColor {
    _defaultButtonTitleColor = defaultButtonTitleColor;
    [self.buttons enumerateObjectsUsingBlock:^(FUIButton *button, NSUInteger idx, BOOL *stop) {
        [button setTitleColor:defaultButtonTitleColor forState:UIControlStateNormal & UIControlStateHighlighted];
    }];
}

- (void) setDefaultButtonColor:(UIColor *)defaultButtonColor {
    _defaultButtonColor = defaultButtonColor;
    [self.buttons enumerateObjectsUsingBlock:^(FUIButton *button, NSUInteger idx, BOOL *stop) {
        button.buttonColor = defaultButtonColor;
    }];
}

- (void) setDefaultButtonShadowColor:(UIColor *)defaultButtonShadowColor {
    _defaultButtonShadowColor = defaultButtonShadowColor;
    [self.buttons enumerateObjectsUsingBlock:^(FUIButton *button, NSUInteger idx, BOOL *stop) {
        button.shadowColor = defaultButtonShadowColor;
    }];
}

- (void) setDefaultButtonCornerRadius:(CGFloat)defaultButtonCornerRadius {
    _defaultButtonCornerRadius = defaultButtonCornerRadius;
    [self.buttons enumerateObjectsUsingBlock:^(FUIButton *button, NSUInteger idx, BOOL *stop) {
        button.cornerRadius = defaultButtonCornerRadius;
    }];
}

- (void) setDefaultButtonShadowHeight:(CGFloat)defaultButtonShadowHeight {
    _defaultButtonShadowHeight = defaultButtonShadowHeight;
    [self.buttons enumerateObjectsUsingBlock:^(FUIButton *button, NSUInteger idx, BOOL *stop) {
        button.shadowHeight = defaultButtonShadowHeight;
    }];
}

- (FUITextField *)textFieldAtIndex:(NSInteger)textFieldIndex
{
    return (textFieldIndex < 2) ? self.textFields[textFieldIndex] : nil;
}

- (void)dealloc
{
    [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillShowNotification object:nil];
}

@end


================================================
FILE: Classes/ios/FUIButton.h
================================================
//
//  FUIButton.h
//  FlatUI
//
//  Created by Jack Flintermann on 5/7/13.
//  Copyright (c) 2013 Jack Flintermann. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface FUIButton : UIButton

@property(nonatomic, strong, readwrite) UIColor *buttonColor UI_APPEARANCE_SELECTOR;
@property(nonatomic, strong, readwrite) UIColor *shadowColor UI_APPEARANCE_SELECTOR;
@property(nonatomic, strong, readwrite) UIColor *highlightedColor UI_APPEARANCE_SELECTOR;
@property(nonatomic, strong, readwrite) UIColor *disabledColor UI_APPEARANCE_SELECTOR;
@property(nonatomic, strong, readwrite) UIColor *disabledShadowColor UI_APPEARANCE_SELECTOR;
@property(nonatomic, readwrite) CGFloat shadowHeight UI_APPEARANCE_SELECTOR;
@property(nonatomic, readwrite) CGFloat cornerRadius UI_APPEARANCE_SELECTOR;

@end


================================================
FILE: Classes/ios/FUIButton.m
================================================
//
//  FUIButton.m
//  FlatUI
//
//  Created by Jack Flintermann on 5/7/13.
//  Copyright (c) 2013 Jack Flintermann. All rights reserved.
//

#import "FUIButton.h"
#import "UIImage+FlatUI.h"

@interface FUIButton()
@property(nonatomic) UIEdgeInsets defaultEdgeInsets;
@property(nonatomic) UIEdgeInsets normalEdgeInsets;
@property(nonatomic) UIEdgeInsets highlightedEdgeInsets;
@end

@implementation FUIButton

- (id)initWithFrame:(CGRect)frame {
    self = [super initWithFrame:frame];
    if (self) {
        self.defaultEdgeInsets = self.titleEdgeInsets;
    }
    return self;
}

- (void) setTitleEdgeInsets:(UIEdgeInsets)titleEdgeInsets {
    [super setTitleEdgeInsets:titleEdgeInsets];
    self.defaultEdgeInsets = titleEdgeInsets;
    [self setShadowHeight:self.shadowHeight];
}

- (void) setHighlighted:(BOOL)highlighted {
    UIEdgeInsets insets = highlighted ? self.highlightedEdgeInsets : self.normalEdgeInsets;
    [super setTitleEdgeInsets:insets];
    [super setHighlighted:highlighted];
}

- (void) setCornerRadius:(CGFloat)cornerRadius {
    _cornerRadius = cornerRadius;
    [self configureFlatButton];
}

- (void) setButtonColor:(UIColor *)buttonColor {
    _buttonColor = buttonColor;
    [self configureFlatButton];
}

- (void) setShadowColor:(UIColor *)shadowColor {
    _shadowColor = shadowColor;
    [self configureFlatButton];
}

- (void) setHighlightedColor:(UIColor *)highlightedColor {
    _highlightedColor = highlightedColor;
    [self configureFlatButton];
}

- (void) setDisabledColor:(UIColor *)disabledColor {
    _disabledColor = disabledColor;
    [self configureFlatButton];
}

- (void) setDisabledShadowColor:(UIColor *)disabledShadowColor {
    _disabledShadowColor = disabledShadowColor;
    [self configureFlatButton];
}

- (void) setShadowHeight:(CGFloat)shadowHeight {
    _shadowHeight = shadowHeight;
    UIEdgeInsets insets = self.defaultEdgeInsets;
    insets.top += shadowHeight;
    self.highlightedEdgeInsets = insets;
    insets.top -= shadowHeight * 2.0f;
    self.normalEdgeInsets = insets;
    [super setTitleEdgeInsets:insets];
    [self configureFlatButton];
}

- (void) configureFlatButton {
    UIImage *normalBackgroundImage = [UIImage buttonImageWithColor:self.buttonColor
                                                      cornerRadius:self.cornerRadius
                                                       shadowColor:self.shadowColor
                                                      shadowInsets:UIEdgeInsetsMake(0, 0, self.shadowHeight, 0)];

    UIColor *highlightedColor = self.highlightedColor == nil ? self.buttonColor : self.highlightedColor;
    UIImage *highlightedBackgroundImage = [UIImage buttonImageWithColor:highlightedColor
                                                           cornerRadius:self.cornerRadius
                                                            shadowColor:[UIColor clearColor]
                                                           shadowInsets:UIEdgeInsetsMake(self.shadowHeight, 0, 0, 0)];

    if (self.disabledColor) {
        UIColor *disabledShadowColor = self.disabledShadowColor == nil ? self.shadowColor : self.disabledShadowColor;
        UIImage *disabledBackgroundImage = [UIImage buttonImageWithColor:self.disabledColor
                                                            cornerRadius:self.cornerRadius
                                                             shadowColor:disabledShadowColor
                                                            shadowInsets:UIEdgeInsetsMake(0, 0, self.shadowHeight, 0)];
        [self setBackgroundImage:disabledBackgroundImage forState:UIControlStateDisabled];
    }

    [self setBackgroundImage:normalBackgroundImage forState:UIControlStateNormal];
    [self setBackgroundImage:highlightedBackgroundImage forState:UIControlStateHighlighted];
}

@end


================================================
FILE: Classes/ios/FUICellBackgroundView.h
================================================
//
//  UACellBackgroundView.h
//  FlatUI
//
//  Created by Maciej Swic on 2013-05-30.
//  Licensed under the MIT license.

#import <UIKit/UIKit.h>

@interface FUICellBackgroundView : UIView

@property (nonatomic, strong) UIColor *backgroundColor UI_APPEARANCE_SELECTOR;
@property (nonatomic) CGFloat cornerRadius UI_APPEARANCE_SELECTOR;
@property (nonatomic, strong) UIColor* separatorColor UI_APPEARANCE_SELECTOR;
@property (nonatomic) CGFloat separatorHeight UI_APPEARANCE_SELECTOR;
@property (nonatomic) UIRectCorner roundedCorners;

@end


================================================
FILE: Classes/ios/FUICellBackgroundView.m
================================================
//
//  UACellBackgroundView.m
//  FlatUI
//
//  Created by Maciej Swic on 2013-05-30.
//  Licensed under the MIT license.

#import "FUICellBackgroundView.h"

@implementation FUICellBackgroundView

+ (void)initialize {
    if (self == [FUICellBackgroundView class]) {
        FUICellBackgroundView *appearance = [self appearance];
        [appearance setCornerRadius:3.0f];
        [appearance setSeparatorHeight:1.0f];
        [appearance setSeparatorColor:[UIColor clearColor]];
    }
}

- (id)initWithFrame:(CGRect)frame {
	if ((self = [super initWithFrame:frame])) {
        self.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
	}
	return self;
}

- (BOOL)isOpaque {
	return NO;
}

- (void)drawRect:(CGRect)aRect {
    
    CGContextRef c = UIGraphicsGetCurrentContext();

	int lineWidth = 1;

	CGContextSetStrokeColorWithColor(c, [[UIColor grayColor] CGColor]);
	CGContextSetLineWidth(c, lineWidth);
	CGContextSetAllowsAntialiasing(c, YES);
	CGContextSetShouldAntialias(c, YES);

    CGSize radii = CGSizeMake(self.cornerRadius, self.cornerRadius);
    UIBezierPath *bezierPath = [UIBezierPath bezierPathWithRoundedRect:self.bounds
                                                     byRoundingCorners:self.roundedCorners
                                                           cornerRadii:radii];
    CGPathRef path = bezierPath.CGPath;
    
    CGContextSaveGState(c);
    CGContextAddPath(c, path);
    CGContextClip(c);
    
    CGContextSetFillColorWithColor(c, self.backgroundColor.CGColor);
    CGContextFillRect(c, self.bounds);
    CGContextSetFillColorWithColor(c, self.separatorColor.CGColor);
    CGContextFillRect(c, CGRectMake(0, self.bounds.size.height - self.separatorHeight, self.bounds.size.width, self.bounds.size.height - self.separatorHeight));
    
    CGContextRestoreGState(c);
    
}

@end


================================================
FILE: Classes/ios/FUIPopoverBackgroundView.h
================================================
//
//  FUIPopoverBackgroundView.h
//  FlatUIKitExample
//
//  Created by Jack Flintermann on 6/5/13.
//
//

#import <UIKit/UIKit.h>

@interface FUIPopoverBackgroundView : UIPopoverBackgroundView

+ (void) setBackgroundColor:(UIColor *)backgroundColor;
+ (void) setCornerRadius:(CGFloat)cornerRadius;

@end


================================================
FILE: Classes/ios/FUIPopoverBackgroundView.m
================================================
//
//  FUIPopoverBackgroundView.m
//  FlatUIKitExample
//
//  Created by Jack Flintermann on 6/5/13.
//  Partial implementation created by Ignacio on 5/30/13.
//

#import "FUIPopoverBackgroundView.h"
#import "UIImage+FlatUI.h"
#import <QuartzCore/QuartzCore.h>
#import "UIColor+FlatUI.h"

#define CONTENT_INSET 10.0f
#define ARROW_BASE 30.0f
#define ARROW_HEIGHT 20.0f

static CGFloat _cornerRadius = 9.0;
static UIColor *_backgroundColor;

@interface FUIPopoverBackgroundView() {
    UIImageView *_borderImageView;
    UIImageView *_arrowView;
    CGFloat _arrowOffset;
    UIPopoverArrowDirection _arrowDirection;
}
@end

@implementation FUIPopoverBackgroundView

- (id)initWithFrame:(CGRect)frame {
    self = [super initWithFrame:frame];
    if (self) {
        if (!_backgroundColor) {
            _backgroundColor = [UIColor midnightBlueColor];
        }
        
        _borderImageView = [[UIImageView alloc] init];
        [self addSubview:_borderImageView];
        
        _arrowView = [[UIImageView alloc] init];
        [self setupImages];
        [self addSubview:_arrowView];
        self.layer.shadowColor = [UIColor clearColor].CGColor;
    }
    return self;
}

+ (void) setBackgroundColor:(UIColor *)backgroundColor {
    _backgroundColor = backgroundColor;
}

+ (void) setCornerRadius:(CGFloat)cornerRadius {
    _cornerRadius = cornerRadius;
}

- (void) setupImages {
    _borderImageView.image = [self borderImage];
    _arrowView.image = [self arrowImage];
}

- (UIImage *)borderImage {
    return [[[UIImage imageWithColor:_backgroundColor cornerRadius:_cornerRadius] imageWithMinimumSize:self.frame.size] resizableImageWithCapInsets:UIEdgeInsetsMake(_cornerRadius, _cornerRadius, _cornerRadius, _cornerRadius)];
}

- (UIImage *)arrowImage {
    //Create a UIBezierPath for a Triangle
    UIGraphicsBeginImageContextWithOptions(CGSizeMake(ARROW_BASE, ARROW_HEIGHT), NO, [UIScreen mainScreen].scale);
    
    //// Bezier Drawing
    UIBezierPath* bezierPath = [UIBezierPath bezierPath];
    [bezierPath moveToPoint:CGPointMake(ARROW_BASE / 2, 0)];
    [bezierPath addLineToPoint:CGPointMake(0, ARROW_HEIGHT)];
    [bezierPath addLineToPoint:CGPointMake(ARROW_BASE, ARROW_HEIGHT)];
    [bezierPath closePath];
    [_backgroundColor setFill];
    [bezierPath fill];
    
    //Create a UIImage using the current context.
    UIImage *arrow = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    
    return arrow;
}

+ (BOOL)wantsDefaultContentAppearance {
    return NO;
}

/*
 The following code is taken from the Treehouse blog and can be found (along with other awesome stuff) at
 http://blog.teamtreehouse.com/customizing-the-design-of-uipopovercontroller
 */

- (CGFloat) arrowOffset {
    return _arrowOffset;
}

- (void) setArrowOffset:(CGFloat)arrowOffset {
    _arrowOffset = arrowOffset;
}

- (UIPopoverArrowDirection)arrowDirection {
    return _arrowDirection;
}

- (void)setArrowDirection:(UIPopoverArrowDirection)arrowDirection {
    _arrowDirection = arrowDirection;
}

+ (UIEdgeInsets)contentViewInsets{
    return UIEdgeInsetsMake(CONTENT_INSET, CONTENT_INSET, CONTENT_INSET, CONTENT_INSET);
}

+ (CGFloat)arrowHeight{
    return ARROW_HEIGHT;
}

+ (CGFloat)arrowBase{
    return ARROW_BASE;
}

#pragma mark - Layout subviews
-  (void)layoutSubviews {
    [super layoutSubviews];
    
    CGFloat _height = self.frame.size.height;
    CGFloat _width = self.frame.size.width;
    CGFloat _left = 0.0;
    CGFloat _top = 0.0;
    CGFloat _coordinate = 0.0;
    CGAffineTransform _rotation = CGAffineTransformIdentity;
    
    switch (_arrowDirection) {
        default:
        case UIPopoverArrowDirectionUp:
            _top += ARROW_HEIGHT;
            _height -= ARROW_HEIGHT;
            _coordinate = ((self.frame.size.width / 2) + self.arrowOffset) - (ARROW_BASE/2);
            _arrowView.frame = CGRectMake(_coordinate, 0, ARROW_BASE, ARROW_HEIGHT);
            break;
        case UIPopoverArrowDirectionDown:
            _height -= ARROW_HEIGHT;
            _coordinate = ((self.frame.size.width / 2) + self.arrowOffset) - (ARROW_BASE/2);
            _arrowView.frame = CGRectMake(_coordinate, _height, ARROW_BASE, ARROW_HEIGHT);
            _rotation = CGAffineTransformMakeRotation( (float)M_PI );
            break;
        case UIPopoverArrowDirectionLeft:
            _left += ARROW_BASE - 10;
            _width -= ARROW_BASE;
            _width += 10;
            _coordinate = ((self.frame.size.height / 2) + self.arrowOffset) - (ARROW_HEIGHT/2);
            _arrowView.frame = CGRectMake(-(ARROW_BASE - ARROW_HEIGHT)/2, _coordinate, ARROW_BASE, ARROW_HEIGHT);
            _rotation = CGAffineTransformMakeRotation( -(float)M_PI_2 );
            break;
        case UIPopoverArrowDirectionRight:
            _width -= ARROW_BASE;
            _coordinate = ((self.frame.size.height / 2) + self.arrowOffset)- (ARROW_HEIGHT/2);
            _arrowView.frame = CGRectMake(_width + ((ARROW_BASE - ARROW_HEIGHT)/2), _coordinate, ARROW_BASE, ARROW_HEIGHT);
            _rotation = CGAffineTransformMakeRotation( (float)M_PI_2 );
            _width += 10;
            break;
    }
    
    _borderImageView.frame =  CGRectMake(_left, _top, _width, _height);
    [_arrowView setTransform:_rotation];
}

@end


================================================
FILE: Classes/ios/FUISegmentedControl.h
================================================
//
//  FUISegmentedControl.h
//  FlatUIKitExample
//
//  Created by Alex Medearis on 5/17/13.
//
//

#import <UIKit/UIKit.h>

@interface FUISegmentedControl : UISegmentedControl

@property(nonatomic, strong, readwrite) UIColor *selectedColor UI_APPEARANCE_SELECTOR;
@property(nonatomic, strong, readwrite) UIColor *disabledColor UI_APPEARANCE_SELECTOR;
@property(nonatomic, strong, readwrite) UIColor *deselectedColor UI_APPEARANCE_SELECTOR;
@property(nonatomic, strong, readwrite) UIColor *highlightedColor UI_APPEARANCE_SELECTOR;
@property(nonatomic, strong, readwrite) UIColor *dividerColor UI_APPEARANCE_SELECTOR;
@property(nonatomic, readwrite) CGFloat cornerRadius UI_APPEARANCE_SELECTOR;
@property(nonatomic, strong, readwrite) UIFont *selectedFont UI_APPEARANCE_SELECTOR;
@property(nonatomic, strong, readwrite) UIFont *disabledFont UI_APPEARANCE_SELECTOR;
@property(nonatomic, strong, readwrite) UIFont *deselectedFont UI_APPEARANCE_SELECTOR;
@property(nonatomic, strong, readwrite) UIFont *highlightedFont UI_APPEARANCE_SELECTOR;
@property(nonatomic, strong, readwrite) UIColor *selectedFontColor UI_APPEARANCE_SELECTOR;
@property(nonatomic, strong, readwrite) UIColor *deselectedFontColor UI_APPEARANCE_SELECTOR;
@property(nonatomic, strong, readwrite) UIColor *disabledFontColor UI_APPEARANCE_SELECTOR;
@property(nonatomic, strong, readwrite) UIColor *highlightedFontColor UI_APPEARANCE_SELECTOR;
@property(nonatomic, strong, readwrite) UIColor *borderColor UI_APPEARANCE_SELECTOR;
@property(nonatomic, readwrite) CGFloat borderWidth UI_APPEARANCE_SELECTOR;

@end


================================================
FILE: Classes/ios/FUISegmentedControl.m
================================================
//
//  FUISegmentedControl.m
//  FlatUIKitExample
//
//  Created by Alex Medearis on 5/17/13.
//
//

#import "FUISegmentedControl.h"
#import "UIImage+FlatUI.h"
#import "UIColor+FlatUI.h"
#import "UIFont+FlatUI.h"

@implementation FUISegmentedControl

+ (void)initialize {
    if (self == [FUISegmentedControl class]) {
        FUISegmentedControl *appearance = [self appearance];
        [appearance setCornerRadius:5.0f];
        [appearance setSelectedColor:[UIColor blueColor]];
        [appearance setDeselectedColor:[UIColor darkGrayColor]];
        [appearance setSelectedFontColor:[UIColor whiteColor]];
        [appearance setDeselectedFontColor:[UIColor whiteColor]];
        [appearance setHighlightedColor:[UIColor grayColor]];
        [appearance setHighlightedFontColor:[UIColor whiteColor]];
    }
}

- (void)setDeselectedColor:(UIColor *)deselectedColor {
    _deselectedColor = deselectedColor;
    [self configureFlatSegmentedControl];
}

- (void)setSelectedColor:(UIColor *)selectedColor {
    _selectedColor = selectedColor;
    [self configureFlatSegmentedControl];
}

- (void)setHighlightedColor:(UIColor *)highlightedColor {
    _highlightedColor = highlightedColor;
    [self configureFlatSegmentedControl];
}

- (void)setDisabledColor:(UIColor *)disabledColor {
    _disabledColor = disabledColor;
    [self configureFlatSegmentedControl];
}

- (void)setDividerColor:(UIColor *)dividerColor {
    _dividerColor = dividerColor;
    [self configureFlatSegmentedControl];
}

- (void)setCornerRadius:(CGFloat)cornerRadius {
    _cornerRadius = cornerRadius;
    [self configureFlatSegmentedControl];
}

- (void)setSelectedFont:(UIFont *)selectedFont {
    _selectedFont = selectedFont;
    [self setupFonts];
}

- (void)setSelectedFontColor:(UIColor *)selectedFontColor {
    _selectedFontColor = selectedFontColor;
    [self setupFonts];
}

- (void)setDeselectedFont:(UIFont *)deselectedFont {
    _deselectedFont = deselectedFont;
    [self setupFonts];
}

- (void)setDeselectedFontColor:(UIColor *)deselectedFontColor {
    _deselectedFontColor = deselectedFontColor;
    [self setupFonts];
}

- (void)setDisabledFont:(UIFont *)disabledFont {
    _disabledFont = disabledFont;
    [self setupFonts];
}

- (void)setDisabledFontColor:(UIColor *)disabledFontColor {
    _disabledFontColor = disabledFontColor;
    [self setupFonts];
}

- (void)setHighlightedFont:(UIFont *)highlightedFont {
    _highlightedFont = highlightedFont;
    [self setupFonts];
}

- (void)setHighlightedFontColor:(UIColor *)highlightedFontColor {
    _highlightedFontColor = highlightedFontColor;
    [self setupFonts];
}

- (void)setBorderColor:(UIColor *)borderColor {
    _borderColor = borderColor;
    [self configureFlatSegmentedControl];
}

- (void)setBorderWidth:(CGFloat)borderWidth {
    _borderWidth = borderWidth;
    [self configureFlatSegmentedControl];
}

- (void)setupFonts {
	// Although iOS 6 supports NSForegroundColorAttributeName,
	// it doesn't seem to apply it to deselected segments but will apply the
	// old UITextAttributeTextColor attribute. We therefore do a runtime version
	// check and use the old attributes when needed

    NSDictionary *selectedAttributesDictionary;
    
	if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1) {
        NSShadow *shadow = [[NSShadow alloc] init];
        [shadow setShadowOffset:CGSizeZero];
        [shadow setShadowColor:[UIColor clearColor]];
        selectedAttributesDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
                                        self.selectedFontColor,
                                        NSForegroundColorAttributeName,
                                        shadow,
                                        NSShadowAttributeName,
                                        self.selectedFont,
                                        NSFontAttributeName,
                                        nil];
    } else {
        // iOS6- methods
        selectedAttributesDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
                                        self.selectedFontColor,
                                        UITextAttributeTextColor,
                                        [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.0],
                                        UITextAttributeTextShadowColor,
                                        [NSValue valueWithUIOffset:UIOffsetMake(0, 0)],
                                        UITextAttributeTextShadowOffset,
                                        self.selectedFont,
                                        UITextAttributeFont,
                                        nil];
    }
    
    [self setTitleTextAttributes:selectedAttributesDictionary forState:UIControlStateSelected];
    
    NSDictionary *deselectedAttributesDictionary;
    if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1) {
        // iOS7+ methods
        NSShadow *shadow = [[NSShadow alloc] init];
        [shadow setShadowOffset:CGSizeZero];
        [shadow setShadowColor:[UIColor clearColor]];
        deselectedAttributesDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
                                          self.deselectedFontColor,
                                          NSForegroundColorAttributeName,
                                          shadow,
                                          NSShadowAttributeName,
                                          self.deselectedFont,
                                          NSFontAttributeName,
                                          nil];
	} else {
        // iOS6- methods.
        deselectedAttributesDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
                                          self.deselectedFontColor,
                                          UITextAttributeTextColor,
                                          [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.0],
                                          UITextAttributeTextShadowColor,
                                          [NSValue valueWithUIOffset:UIOffsetMake(0, 0)],
                                          UITextAttributeTextShadowOffset,
                                          self.deselectedFont,
                                          UITextAttributeFont,
                                          nil];
    }
    [self setTitleTextAttributes:deselectedAttributesDictionary forState:UIControlStateNormal];

    NSDictionary *disabledAttributesDictionary;
    if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1) {
        // iOS7+ methods
        NSShadow *shadow = [[NSShadow alloc] init];
        [shadow setShadowOffset:CGSizeZero];
        [shadow setShadowColor:[UIColor clearColor]];
        disabledAttributesDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
                self.disabledFontColor,
                NSForegroundColorAttributeName,
                shadow,
                NSShadowAttributeName,
                self.disabledFont,
                NSFontAttributeName,
                nil];
    } else {
        // iOS6- methods
        disabledAttributesDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
                self.disabledFontColor,
                UITextAttributeTextColor,
                [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.0],
                UITextAttributeTextShadowColor,
                [NSValue valueWithUIOffset:UIOffsetMake(0, 0)],
                UITextAttributeTextShadowOffset,
                self.disabledFont,
                UITextAttributeFont,
                nil];
    }

    [self setTitleTextAttributes:disabledAttributesDictionary forState:UIControlStateDisabled];
    
    
    NSDictionary *highlightedAttributesDictionary;
    if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1) {
        // iOS7+ methods
        NSShadow *shadow = [[NSShadow alloc] init];
        [shadow setShadowOffset:CGSizeZero];
        [shadow setShadowColor:[UIColor clearColor]];
        highlightedAttributesDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
                                        self.highlightedFontColor,
                                        NSForegroundColorAttributeName,
                                        shadow,
                                        NSShadowAttributeName,
                                        self.highlightedFont,
                                        NSFontAttributeName,
                                        nil];
    } else {
        // iOS6- methods
        highlightedAttributesDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
                                        self.highlightedFontColor,
                                        UITextAttributeTextColor,
                                        [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.0],
                                        UITextAttributeTextShadowColor,
                                        [NSValue valueWithUIOffset:UIOffsetMake(0, 0)],
                                        UITextAttributeTextShadowOffset,
                                        self.highlightedFont,
                                        UITextAttributeFont,
                                        nil];
    }
    
    [self setTitleTextAttributes:highlightedAttributesDictionary forState:UIControlStateHighlighted];
}

- (void)configureFlatSegmentedControl {
    UIImage *selectedBackgroundImage = [UIImage buttonImageWithColor:self.selectedColor
                                                        cornerRadius:self.cornerRadius
                                                         shadowColor:[UIColor clearColor]
                                                        shadowInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
    UIImage *deselectedBackgroundImage = [UIImage buttonImageWithColor:self.deselectedColor
                                                           cornerRadius:self.cornerRadius
                                                            shadowColor:[UIColor clearColor]
                                                           shadowInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
    UIImage *disabledBackgroundImage = [UIImage buttonImageWithColor:self.disabledColor
                                                          cornerRadius:self.cornerRadius
                                                           shadowColor:[UIColor clearColor]
                                                          shadowInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
    UIImage *highlightedBackgroundImage = [UIImage buttonImageWithColor:self.highlightedColor
                                                        cornerRadius:self.cornerRadius
                                                         shadowColor:[UIColor clearColor]
                                                        shadowInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
    
    UIColor *selectedColor = (self.dividerColor) ? self.dividerColor : self.selectedColor;
    UIColor *deselectedColor = (self.dividerColor) ? self.dividerColor : self.deselectedColor;
    UIImage *selectedDividerImage = [[UIImage imageWithColor:selectedColor cornerRadius:0] imageWithMinimumSize:CGSizeMake(1, 1)];
    UIImage *deselectedDividerImage = [[UIImage imageWithColor:deselectedColor cornerRadius:0] imageWithMinimumSize:CGSizeMake(1, 1)];
    
    
    [self setBackgroundImage:selectedBackgroundImage forState:UIControlStateSelected barMetrics:UIBarMetricsDefault];
    [self setBackgroundImage:deselectedBackgroundImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
    [self setBackgroundImage:disabledBackgroundImage forState:UIControlStateDisabled barMetrics:UIBarMetricsDefault];
    [self setBackgroundImage:highlightedBackgroundImage forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault];

    [self setDividerImage:deselectedDividerImage forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
    [self setDividerImage:selectedDividerImage forLeftSegmentState:UIControlStateSelected rightSegmentState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
    [self setDividerImage:deselectedDividerImage forLeftSegmentState:UIControlStateNormal rightSegmentState:UIControlStateSelected barMetrics:UIBarMetricsDefault];
    [self setDividerImage:selectedDividerImage forLeftSegmentState:UIControlStateSelected rightSegmentState:UIControlStateSelected barMetrics:UIBarMetricsDefault];
    self.layer.borderWidth = self.borderWidth;
    self.layer.borderColor = self.borderColor.CGColor;
    self.layer.cornerRadius = self.cornerRadius;
}

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    NSInteger previousSelectedSegmentIndex = self.selectedSegmentIndex;
    [super touchesBegan:touches withEvent:event];
    [self sendActionsForControlEvents:UIControlEventTouchDown];
    if (!(NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1)) {
        // before iOS7 the segment is selected in touchesBegan
        if (previousSelectedSegmentIndex == self.selectedSegmentIndex) {
            // if the selectedSegmentIndex before the selection process is equal to the selectedSegmentIndex
            // after the selection process the superclass won't send a UIControlEventValueChanged event.
            // So we have to do this ourselves.
            [self sendActionsForControlEvents:UIControlEventValueChanged];
        }
    }
}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
    NSInteger previousSelectedSegmentIndex = self.selectedSegmentIndex;
    [super touchesEnded:touches withEvent:event];
    [self sendActionsForControlEvents:UIControlEventTouchUpInside];
    if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1) {
        // on iOS7 the segment is selected in touchesEnded
        if (previousSelectedSegmentIndex == self.selectedSegmentIndex) {
            [self sendActionsForControlEvents:UIControlEventValueChanged];
        }
    }
}

@end


================================================
FILE: Classes/ios/FUISwitch.h
================================================
//
//  FUISwitch.h
//  FlatUI
//
//  Created by Jack Flintermann on 5/3/13.
//  Copyright (c) 2013 Jack Flintermann. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface FUISwitch : UIControl

@property(nonatomic,getter=isOn) BOOL on;
@property(nonatomic, strong, readwrite) UIColor *onBackgroundColor UI_APPEARANCE_SELECTOR;
@property(nonatomic, strong, readwrite) UIColor *offBackgroundColor UI_APPEARANCE_SELECTOR;
@property(nonatomic, strong, readwrite) UIColor *onColor UI_APPEARANCE_SELECTOR;
@property(nonatomic, strong, readwrite) UIColor *offColor UI_APPEARANCE_SELECTOR;
@property(nonatomic, strong, readwrite) UIColor *highlightedColor UI_APPEARANCE_SELECTOR;
@property(nonatomic, readwrite) CGFloat switchCornerRadius UI_APPEARANCE_SELECTOR;
@property(nonatomic, readwrite) CGFloat percentOn;
@property(weak, readwrite, nonatomic) UILabel *offLabel;
@property(weak, readwrite, nonatomic) UILabel *onLabel;

- (void)setOn:(BOOL)on animated:(BOOL)animated; // does not send action

@end


================================================
FILE: Classes/ios/FUISwitch.m
================================================
//
//  FUISwitch.m
//  FlatUI
//
//  Created by Jack Flintermann on 5/3/13.
//  Copyright (c) 2013 Jack Flintermann. All rights reserved.
//

#import "FUISwitch.h"
#import "UIImage+FlatUI.h"
#import "UIColor+FlatUI.h"
#import <QuartzCore/QuartzCore.h>

@interface FUISwitch()
@property(weak, readwrite, nonatomic) UIView *thumbView;
@property(weak, readwrite, nonatomic) UIScrollView *internalContainer;
@end

@implementation FUISwitch

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        [self sharedInit];
    }
    return self;
}

- (id) initWithCoder:(NSCoder *)aDecoder {
    self = [super initWithCoder:aDecoder];
    if (self) {
        [self sharedInit];
    }
    return self;
}

- (void) sharedInit {
    self.clipsToBounds = YES;
    UIScrollView *internalContainer = [[UIScrollView alloc] init];
    internalContainer.pagingEnabled = YES;
    internalContainer.showsHorizontalScrollIndicator = NO;
    internalContainer.showsVerticalScrollIndicator = NO;
    internalContainer.bounces = NO;
    internalContainer.userInteractionEnabled = NO;
    self.internalContainer = internalContainer;
    UILabel *offLabel = [[UILabel alloc] init];
    UILabel *onLabel = [[UILabel alloc] init];
    offLabel.backgroundColor = [UIColor clearColor];
    onLabel.backgroundColor = [UIColor clearColor];
    offLabel.textAlignment = NSTextAlignmentCenter;
    onLabel.textAlignment = NSTextAlignmentCenter;
    offLabel.text = @"OFF";
    onLabel.text = @"ON";
    self.offLabel = offLabel;
    self.onLabel = onLabel;
    [internalContainer addSubview:offLabel];
    [internalContainer addSubview:onLabel];
    UIView *thumbView = [[UIView alloc] init];
    [internalContainer addSubview:thumbView];
    self.thumbView = thumbView;
    [self addSubview:internalContainer];
    
    UIPanGestureRecognizer *panGestureRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panned:)];
    panGestureRecognizer.cancelsTouchesInView = NO;
    [self addGestureRecognizer:panGestureRecognizer];
    
    UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapped:)];
    [self addGestureRecognizer:tapGestureRecognizer];
    _on = YES;
    _percentOn = 1;
    self.layer.cornerRadius = 3.0;
}

- (void) layoutSubviews {
    [super layoutSubviews];
    
    //container
    CGSize size = self.frame.size;
    size.width *= 2;
    size.width -= self.frame.size.height;
    self.internalContainer.contentSize = size;
    self.internalContainer.frame = self.bounds;
    CGFloat contentHeight = self.internalContainer.contentSize.height;
    
    //thumb image
    CGFloat insetFraction = .75;
    CGFloat thumbEdgeSize = floorf(contentHeight * insetFraction);
    CGFloat thumbInset = (contentHeight - thumbEdgeSize) / 2;
    self.thumbView.frame = CGRectMake((self.internalContainer.contentSize.width - contentHeight) / 2 + thumbInset, thumbInset, thumbEdgeSize, thumbEdgeSize);
    self.thumbView.layer.cornerRadius = thumbEdgeSize / 2;
    
    //labels
    CGRect left = CGRectMake(0, 0, (self.internalContainer.contentSize.width - self.thumbView.frame.size.width)/2, contentHeight);
    CGRect right = left;
    right.origin.x = self.internalContainer.contentSize.width - left.size.width;
    self.offLabel.frame = right;
    self.onLabel.frame = left;
    [self setOn:_on];
}

- (void) setOn:(BOOL)on {
    [self setOn:on animated:NO];
}

- (void)setOn:(BOOL)on animated:(BOOL)animated {
    [self setOn:on animated:NO sendEvent:NO];
}

- (void)setOn:(BOOL)on animated:(BOOL)animated sendEvent:(BOOL)sendEvent {
    if (_on != on) {
        _on = on;
        if (sendEvent) {
            [self sendActionsForControlEvents:UIControlEventValueChanged];
        }
    }
    [self setPercentOn:_on * 1.0f animated:animated];
}

- (void) setPercentOn:(CGFloat)percentOn {
    [self setPercentOn:percentOn animated:NO];
}

- (void) setPercentOn:(CGFloat)percentOn animated:(BOOL)animated {
    _percentOn = percentOn;
    [self updateBackground];
    CGFloat maxOffset = self.internalContainer.contentSize.width - self.frame.size.width;
    CGPoint newOffset = CGPointMake((1 - _percentOn) * maxOffset, 0);
    [self.internalContainer setContentOffset:newOffset animated:animated];
}

- (void) panned:(UIPanGestureRecognizer *)gestureRecognizer {
    
    CGPoint translation = [gestureRecognizer translationInView:self.internalContainer];
    [gestureRecognizer setTranslation:CGPointZero inView:self.internalContainer];
    CGPoint newOffset = self.internalContainer.contentOffset;
    newOffset.x -= translation.x;
    CGFloat maxOffset = self.internalContainer.contentSize.width - self.frame.size.width;
    newOffset.x = MAX(newOffset.x, 0);
    newOffset.x = MIN(newOffset.x, maxOffset);
    
    if (gestureRecognizer.state == UIGestureRecognizerStateBegan ||
        gestureRecognizer.state == UIGestureRecognizerStateChanged) {
        
        [self setPercentOn:(1 - newOffset.x/maxOffset) animated:NO];
        
    } else if (gestureRecognizer.state == UIGestureRecognizerStateEnded) {
        BOOL left = newOffset.x > maxOffset / 2;
        [self setOn:(!left) animated:YES sendEvent:YES];
    }
    
}

- (void) tapped:(UITapGestureRecognizer *)gestureRecognizer {
    [self setOn:!self.on animated:YES sendEvent:YES];
}

- (void) setOnBackgroundColor:(UIColor *)onBackgroundColor {
    _onBackgroundColor = onBackgroundColor;
    [self updateBackground];
}

- (void) setOffBackgroundColor:(UIColor *)offBackgroundColor {
    _offBackgroundColor = offBackgroundColor;
    [self updateBackground];
}

- (void) setOnColor:(UIColor *)onColor {
    _onColor = onColor;
    [self updateBackground];
}

- (void) setOffColor:(UIColor *)offColor {
    _offColor = offColor;
    [self updateBackground];
}

- (void) setSwitchCornerRadius:(CGFloat)switchCornerRadius {
    _switchCornerRadius = switchCornerRadius;
    self.layer.cornerRadius = _switchCornerRadius;
}

- (void) updateBackground {
    self.backgroundColor = [UIColor blendedColorWithForegroundColor:self.onBackgroundColor
                                                    backgroundColor:self.offBackgroundColor
                                                       percentBlend:self.percentOn];
    UIColor *contentColor = [UIColor blendedColorWithForegroundColor:self.onColor
                                                     backgroundColor:self.offColor
                                                        percentBlend:self.percentOn];
    self.onLabel.textColor = contentColor;
    self.offLabel.textColor = contentColor;
    self.thumbView.backgroundColor = contentColor;
}

- (void)setHighlighted:(BOOL)highlighted {
    [super setHighlighted:highlighted];
    
    if (highlighted)
        self.backgroundColor = self.highlightedColor;
}

- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    [super touchesBegan:touches withEvent:event];
    [self setHighlighted:YES];
}

@end


================================================
FILE: Classes/ios/FUITextField.h
================================================
//
//  FUITextField.h
//  FlatUI
//
//  Created by Andrej Mihajlov on 8/25/13.
//  Copyright (c) 2013 Andrej Mihajlov. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface FUITextField : UITextField

@property (nonatomic, assign) UIEdgeInsets edgeInsets UI_APPEARANCE_SELECTOR;
@property (nonatomic, strong) UIColor *textFieldColor UI_APPEARANCE_SELECTOR;
@property (nonatomic, strong) UIColor *borderColor UI_APPEARANCE_SELECTOR;
@property (nonatomic, assign) CGFloat borderWidth UI_APPEARANCE_SELECTOR;
@property (nonatomic, assign) CGFloat cornerRadius UI_APPEARANCE_SELECTOR;

@end


================================================
FILE: Classes/ios/FUITextField.m
================================================
//
//  FUITextField.m
//  FlatUI
//
//  Created by Andrej Mihajlov on 8/25/13.
//  Copyright (c) 2013 Andrej Mihajlov. All rights reserved.
//

#import "FUITextField.h"
#import "UIImage+FlatUI.h"

@implementation FUITextField {
	UIImage* _flatBackgroundImage;
	UIImage* _flatHighlightedBackgroundImage;
}

- (void)setTextFieldColor:(UIColor *)textFieldColor {
	_textFieldColor = textFieldColor;
	[self configureTextField];
}

- (void)setBorderColor:(UIColor *)borderColor {
	_borderColor = borderColor;
	[self configureTextField];
}

- (void)setBorderWidth:(CGFloat)borderWidth {
	_borderWidth = borderWidth;
	[self configureTextField];
}

- (void)setCornerRadius:(CGFloat)cornerRadius {
	_cornerRadius = cornerRadius;
	[self configureTextField];
}

- (void)setTextColor:(UIColor *)textColor {
	[super setTextColor:textColor];
	
	// Setup placeholder color with 60% alpha of original text color
	if([self respondsToSelector:@selector(setAttributedPlaceholder:)] && self.placeholder) {
		self.attributedPlaceholder = [[NSAttributedString alloc] initWithString:self.placeholder attributes:@{ NSForegroundColorAttributeName: [self.textColor colorWithAlphaComponent:.6] }];
	}
}

- (void)configureTextField {
	_flatBackgroundImage = [self textFieldImageWithColor:_textFieldColor borderColor:_borderColor borderWidth:0 cornerRadius:_cornerRadius];
	_flatHighlightedBackgroundImage = [self textFieldImageWithColor:_textFieldColor borderColor:_borderColor borderWidth:_borderWidth cornerRadius:_cornerRadius];
	
	[self setBackground:_flatBackgroundImage];
}

// A helper method to draw a simple rounded rectangle image that can be used as background
- (UIImage*)textFieldImageWithColor:(UIColor*)color borderColor:(UIColor*)borderColor
						borderWidth:(CGFloat)borderWidth cornerRadius:(CGFloat)cornerRadius {
	CGRect rect = CGRectMake(0, 0, 44, 44);
	UIBezierPath* bezierPath = [UIBezierPath bezierPathWithRoundedRect:CGRectInset(rect, borderWidth, borderWidth) cornerRadius:cornerRadius];
	
	UIGraphicsBeginImageContextWithOptions(rect.size, NO, 0.0f);
	CGContextRef ctx = UIGraphicsGetCurrentContext();
	
	[color setFill];
	[borderColor setStroke];
	
	CGContextSetLineWidth(ctx, borderWidth);
	CGContextAddPath(ctx, [bezierPath CGPath]);
	CGContextDrawPath(ctx, kCGPathFillStroke);
	
	UIImage* output = UIGraphicsGetImageFromCurrentImageContext();
	UIGraphicsEndImageContext();
	
	return [output resizableImageWithCapInsets:UIEdgeInsetsMake(cornerRadius*2, cornerRadius*2, cornerRadius*2, cornerRadius*2)];
}

// Both methods make some space around text
- (CGRect)textRectForBounds:(CGRect)bounds {
    return [super textRectForBounds:UIEdgeInsetsInsetRect(bounds, self.edgeInsets)];
}

- (CGRect)editingRectForBounds:(CGRect)bounds {
    return [super editingRectForBounds:UIEdgeInsetsInsetRect(bounds, self.edgeInsets)];
}

- (CGRect)leftViewRectForBounds:(CGRect)bounds {
	bounds.origin.x += self.edgeInsets.left;
	return [super leftViewRectForBounds:bounds];
}

- (CGRect)rightViewRectForBounds:(CGRect)bounds {
	bounds.origin.x -= self.edgeInsets.right;
	return [super rightViewRectForBounds:bounds];
}

// Switch background image to bordered image
- (BOOL)becomeFirstResponder {
	BOOL flag = [super becomeFirstResponder];
	if(flag) {
		self.background = _flatHighlightedBackgroundImage;
	}
	return flag;
}

// Switch background image to borderless image
- (BOOL)resignFirstResponder {
	BOOL flag = [super resignFirstResponder];
	if(flag) {
		self.background = _flatBackgroundImage;
	}
	return flag;
}

@end


================================================
FILE: Classes/ios/FlatUIKit.h
================================================
//
//  FlatUIKit.h
//  FlatUI
//
//  Created by Keisuke Kimura on 6/8/13.
//  Copyright (c) 2013 Keisuke Kimura. All rights reserved.
//

#ifndef FlatUI_FlatUIKit_h
#define FlatUI_FlatUIKit_h

#if TARGET_OS_IPHONE
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#endif

#endif

#import "FUIAlertView.h"
#import "FUIButton.h"
#import "FUITextField.h"
#import "FUICellBackgroundView.h"
#import "FUISegmentedControl.h"
#import "FUISwitch.h"
#import "UIBarButtonItem+FlatUI.h"
#import "UIColor+FlatUI.h"
#import "UIFont+FlatUI.h"
#import "UIImage+FlatUI.h"
#import "UINavigationBar+FlatUI.h"
#import "UIProgressView+FlatUI.h"
#import "UIStepper+FlatUI.h"
#import "UISlider+FlatUI.h"
#import "UITabBar+FlatUI.h"
#import "UITableViewCell+FlatUI.h"
#import "UIToolbar+FlatUI.h"

================================================
FILE: Classes/ios/NSString+Icons.h
================================================
//
//  NSString+Icons.h
//  FlatUIKitExample
//
//  Created by Jamie Matthews on 12/24/14.
//
//

#import <Foundation/Foundation.h>
typedef NS_ENUM(NSInteger, FlatUIIcon) {
    FUITriangleUp,
    FUITraingleDown,
    FUITriangleUpSmall,
    FUITriangleDownSmall,
    FUITriangleLeftLarge,
    FUITriangleRightLarge,
    FUIArrowLeft,
    FUIArrowRight,
    FUIPlus,
    FUICross,
    FUICheck,
    FUIRadioUnchecked,
    FUIRadioChecked,
    FUICheckboxUnchecked,
    FUICheckboxChecked,
    FUIInfoCircle,
    FUIAlertCircle,
    FUIQuestionCirlce,
    FUICheckCircle,
    FUICrossCircle,
    FUIPlusCircle,
    FUIPause,
    FUIPlay,
    FUIVolume,
    FUIMute,
    FUIResize,
    FUIList,
    FUIListThumbnailed,
    FUIListSmallThumbails,
    FUIListLargeThumnails,
    FUIListNumbered,
    FUIListColumned,
    FUIListBulleted,
    FUIWindow,
    FUIWindows,
    FUILoop,
    FUICMD,
    FUIMic,
    FUIHeart,
    FUILocation,
    FUINew,
    FUIVideo,
    FUIPhoto,
    FUITime,
    FUIEye,
    FUIChat,
    FUIHome,
    FUIUpload,
    FUISearch,
    FUIUser,
    FUIMail,
    FUILock,
    FUIPower,
    FUICalendar,
    FUIGear,
    FUIBookmark,
    FUIExit,
    FUITrash,
    FUIFolder,
    FUIBubble,
    FUIExport,
    FUICalendarSolid,
    FUIStar,
    FUIStar2,
    FUICreditCard,
    FUIClip,
    FUILink,
    FUITag,
    FUIDocument,
    FUIImage,
    FUIFacebook,
    FUIYoutube,
    FUIVimeo,
    FUITwitter,
    FUISpotify,
    FUISkype,
    FUIPintrest,
    FUIPath,
    FUILinkedin,
    FUIGooglePlus,
    FUIDribble,
    FUIBehance,
    FUIStumbleUpon,
    FUIYelp,
    FUIWordpress,
    FUIWindows8,
    FUIVine,
    FUITumblr,
    FUIPaypal,
    FUILastFM,
    FUIInstagram,
    FUIHtml5,
    FUIGithub,
    FUIFourSquare,
    FUIDropBox,
    FUIAndroid,
    FUIApple,
    
};

static NSString *const kFlatUIFontFamilyName = @"flat-ui-pro-icons";

@interface NSString (Icons)
+ (NSString*)iconStringForEnum:(FlatUIIcon)value;
+ (NSArray *)iconUnicodeStrings;
@end


================================================
FILE: Classes/ios/NSString+Icons.m
================================================
//
//  NSString+Icons.m
//  FlatUIKitExample
//
//  Created by Jamie Matthews on 12/24/14.
//
// Credit to https://github.com/designmodo/Flat-UI
// for the aweseome flat icons!

#import "NSString+Icons.h"


@implementation NSString (Icons)
+ (NSString*)iconStringForEnum:(FlatUIIcon)value {
    NSString *toReturn = [NSString iconUnicodeStrings][value];
    return toReturn;
}

+ (NSArray *)iconUnicodeStrings {
    
    static NSArray *iconUnicodeStrings;
    
    static dispatch_once_t unicodeStringsOnceToken;
    dispatch_once(&unicodeStringsOnceToken, ^{
        
        iconUnicodeStrings = @[@"\ue600", @"\ue601", @"\ue602", @"\ue603", @"\ue604", @"\ue605", @"\ue606", @"\ue607", @"\ue608", @"\ue609", @"\ue60a", @"\ue60b", @"\ue60c", @"\ue60d", @"\ue60e", @"\ue60f", @"\ue610", @"\ue611", @"\ue612", @"\ue613", @"\ue614", @"\ue615", @"\ue616", @"\ue617", @"\ue618", @"\ue619", @"\ue61a", @"\ue61b", @"\ue61c", @"\ue61d", @"\ue61e", @"\ue61f", @"\ue620", @"\ue621", @"\ue622", @"\ue623", @"\ue624", @"\ue625", @"\ue626", @"\ue627", @"\ue628", @"\ue629", @"\ue62a", @"\ue62b", @"\ue62c", @"\ue62d", @"\ue62e", @"\ue62f", @"\ue630", @"\ue631", @"\ue632", @"\ue633", @"\ue634", @"\ue635", @"\ue636", @"\ue637", @"\ue638", @"\ue639", @"\ue63a", @"\ue63b", @"\ue63c", @"\ue63d", @"\ue63e", @"\ue63f", @"\ue640", @"\ue641", @"\ue642", @"\ue643", @"\ue644", @"\ue645", @"\ue646", @"\ue647", @"\ue648", @"\ue649", @"\ue64a", @"\ue64b", @"\ue64c", @"\ue64d", @"\ue64e", @"\ue64f", @"\ue650", @"\ue651", @"\ue652", @"\ue653", @"\ue654", @"\ue655", @"\ue656", @"\ue657", @"\ue658", @"\ue659", @"\ue65a", @"\ue65b", @"\ue65c", @"\ua65d", @"\ue65e", @"\ue65f", @"\ue660"];
        
    });
    
    return iconUnicodeStrings;
}

@end


================================================
FILE: Classes/ios/UIBarButtonItem+FlatUI.h
================================================
//
//  UIBarButtonItem+FlatUI.h
//  FlatUI
//
//  Created by Jack Flintermann on 5/8/13.
//  Copyright (c) 2013 Jack Flintermann. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface UIBarButtonItem (FlatUI)

// styles a single bar button item
- (void) configureFlatButtonWithColor:(UIColor *)color
                     highlightedColor:(UIColor *)highlightedColor
                         cornerRadius:(CGFloat) cornerRadius UI_APPEARANCE_SELECTOR;

// styles all bar button items that exist within a class heirarchy (same as UIAppearanceProxy methods)
+ (void) configureFlatButtonsWithColor:(UIColor *) color
                      highlightedColor:(UIColor *)highlightedColor
                          cornerRadius:(CGFloat) cornerRadius
                       whenContainedIn:(Class <UIAppearanceContainer>)containerClass, ... NS_REQUIRES_NIL_TERMINATION;

// styles all bar button items (can be overwritten with the above methods)
+ (void) configureFlatButtonsWithColor:(UIColor *) color
                      highlightedColor:(UIColor *)highlightedColor
                          cornerRadius:(CGFloat) cornerRadius;


// removes the text shadows off a single bar button item (sadly, this can't be easily done for all buttons simultaneously)
- (void) removeTitleShadow;

@end


================================================
FILE: Classes/ios/UIBarButtonItem+FlatUI.m
================================================
//
//  UIBarButtonItem+FlatUI.m
//  FlatUI
//
//  Created by Jack Flintermann on 5/8/13.
//  Copyright (c) 2013 Jack Flintermann. All rights reserved.
//

#import "UIBarButtonItem+FlatUI.h"
#import "UIImage+FlatUI.h"

@implementation UIBarButtonItem (FlatUI)

- (void) configureFlatButtonWithColor:(UIColor *)color
                     highlightedColor:(UIColor *)highlightedColor
                         cornerRadius:(CGFloat) cornerRadius {
  [UIBarButtonItem configureItemOrProxy:self forFlatButtonWithColor:color highlightedColor:highlightedColor cornerRadius:cornerRadius];
}

+ (void) configureFlatButtonsWithColor:(UIColor *) color
                      highlightedColor:(UIColor *)highlightedColor
                          cornerRadius:(CGFloat) cornerRadius {
  [self configureFlatButtonsWithColor:color highlightedColor:highlightedColor cornerRadius:cornerRadius whenContainedIn:[UINavigationBar class], [UINavigationController class], [UIToolbar class], nil];
}

+ (void) configureFlatButtonsWithColor:(UIColor *) color
                      highlightedColor:(UIColor *)highlightedColor
                          cornerRadius:(CGFloat) cornerRadius
                       whenContainedIn:(Class <UIAppearanceContainer>)containerClass, ... {
  va_list vl;
  va_start(vl, containerClass);
  id appearance = [UIBarButtonItem appearanceWhenContainedIn:containerClass, nil];
  va_end(vl);
  [UIBarButtonItem configureItemOrProxy:appearance forFlatButtonWithColor:color highlightedColor:highlightedColor cornerRadius:cornerRadius];
}

// only used pre-ios7
- (void) removeTitleShadow {

    if (NSFoundationVersionNumber <= NSFoundationVersionNumber_iOS_6_1) {
        NSArray *states = @[@(UIControlStateNormal), @(UIControlStateHighlighted)];
        
        for (NSNumber *state in states) {
            UIControlState controlState = [state unsignedIntegerValue];
            NSMutableDictionary *titleTextAttributes = [[self titleTextAttributesForState:controlState] mutableCopy];
            if (!titleTextAttributes) {
                titleTextAttributes = [NSMutableDictionary dictionary];
            }
        
            // iOS6+ methods
            NSShadow *shadow = [[NSShadow alloc] init];
            [shadow setShadowOffset:CGSizeZero];
            [shadow setShadowColor:[UIColor clearColor]];
            [titleTextAttributes setObject:shadow forKey:NSShadowAttributeName];
        
            [self setTitleTextAttributes:titleTextAttributes forState:controlState];
        }
    }
}

//helper method, basically a wrapper to allow creating a custom UIAppearance method that doesn't conform to the usual naming style
+ (void) configureItemOrProxy:(id)appearance
       forFlatButtonWithColor:(UIColor *)color
             highlightedColor:(UIColor *)highlightedColor
                 cornerRadius:(CGFloat) cornerRadius {
    UIImage *backButtonPortraitImage = [UIImage backButtonImageWithColor:color
                                                            barMetrics:UIBarMetricsDefault
                                                          cornerRadius:cornerRadius];
    UIImage *highlightedBackButtonPortraitImage = [UIImage backButtonImageWithColor:highlightedColor
                                                                       barMetrics:UIBarMetricsDefault
                                                                     cornerRadius:cornerRadius];
    UIImage *backButtonLandscapeImage = [UIImage backButtonImageWithColor:color
                                                             barMetrics:UIBarMetricsLandscapePhone
                                                           cornerRadius:2];
    UIImage *highlightedBackButtonLandscapeImage = [UIImage backButtonImageWithColor:highlightedColor
                                                                        barMetrics:UIBarMetricsLandscapePhone
                                                                      cornerRadius:2];

    [appearance setBackButtonBackgroundImage:backButtonPortraitImage
                                  forState:UIControlStateNormal
                                barMetrics:UIBarMetricsDefault];
    [appearance setBackButtonBackgroundImage:backButtonLandscapeImage
                                  forState:UIControlStateNormal
                                barMetrics:UIBarMetricsLandscapePhone];
    [appearance setBackButtonBackgroundImage:highlightedBackButtonPortraitImage
                                  forState:UIControlStateHighlighted
                                barMetrics:UIBarMetricsDefault];
    [appearance setBackButtonBackgroundImage:highlightedBackButtonLandscapeImage
                                  forState:UIControlStateHighlighted
                                barMetrics:UIBarMetricsLandscapePhone];

    [appearance setBackButtonTitlePositionAdjustment:UIOffsetMake(1.0f, 1.0f) forBarMetrics:UIBarMetricsDefault];
    [appearance setBackButtonTitlePositionAdjustment:UIOffsetMake(1.0f, 1.0f) forBarMetrics:UIBarMetricsLandscapePhone];

    UIImage *buttonImageNormal       = [UIImage imageWithColor:color cornerRadius:cornerRadius];
    UIImage *buttonImageHightlighted = [UIImage imageWithColor:highlightedColor cornerRadius:cornerRadius];
    [appearance setBackgroundImage:buttonImageNormal forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
    [appearance setBackgroundImage:buttonImageHightlighted forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault];
}

@end


================================================
FILE: Classes/ios/UIColor+FlatUI.h
================================================
//
//  UIColor+FlatUI.h
//  FlatUI
//
//  Created by Jack Flintermann on 5/3/13.
//  Copyright (c) 2013 Jack Flintermann. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface UIColor (FlatUI)

+ (UIColor *) colorFromHexCode:(NSString *)hexString;
+ (UIColor *) turquoiseColor;
+ (UIColor *) greenSeaColor;
+ (UIColor *) emerlandColor;
+ (UIColor *) nephritisColor;
+ (UIColor *) peterRiverColor;
+ (UIColor *) belizeHoleColor;
+ (UIColor *) amethystColor;
+ (UIColor *) wisteriaColor;
+ (UIColor *) wetAsphaltColor;
+ (UIColor *) midnightBlueColor;
+ (UIColor *) sunflowerColor;
+ (UIColor *) tangerineColor;
+ (UIColor *) carrotColor;
+ (UIColor *) pumpkinColor;
+ (UIColor *) alizarinColor;
+ (UIColor *) pomegranateColor;
+ (UIColor *) cloudsColor;
+ (UIColor *) silverColor;
+ (UIColor *) concreteColor;
+ (UIColor *) asbestosColor;

+ (UIColor *) blendedColorWithForegroundColor:(UIColor *)foregroundColor
                              backgroundColor:(UIColor *)backgroundColor
                                 percentBlend:(CGFloat) percentBlend;

@end


================================================
FILE: Classes/ios/UIColor+FlatUI.m
================================================
//
//  UIColor+FlatUI.m
//  FlatUI
//
//  Created by Jack Flintermann on 5/3/13.
//  Copyright (c) 2013 Jack Flintermann. All rights reserved.
//

#import "UIColor+FlatUI.h"

@implementation UIColor (FlatUI)

// Thanks to http://stackoverflow.com/questions/3805177/how-to-convert-hex-rgb-color-codes-to-uicolor
+ (UIColor *) colorFromHexCode:(NSString *)hexString {
    NSString *cleanString = [hexString stringByReplacingOccurrencesOfString:@"#" withString:@""];
    if ([cleanString length] == 3) {
        cleanString = [NSString stringWithFormat:@"%@%@%@%@%@%@",
                       [cleanString substringWithRange:NSMakeRange(0, 1)],[cleanString substringWithRange:NSMakeRange(0, 1)],
                       [cleanString substringWithRange:NSMakeRange(1, 1)],[cleanString substringWithRange:NSMakeRange(1, 1)],
                       [cleanString substringWithRange:NSMakeRange(2, 1)],[cleanString substringWithRange:NSMakeRange(2, 1)]];
    }
    if([cleanString length] == 6) {
        cleanString = [cleanString stringByAppendingString:@"ff"];
    }
    
    unsigned int baseValue;
    [[NSScanner scannerWithString:cleanString] scanHexInt:&baseValue];
    
    float red = ((baseValue >> 24) & 0xFF)/255.0f;
    float green = ((baseValue >> 16) & 0xFF)/255.0f;
    float blue = ((baseValue >> 8) & 0xFF)/255.0f;
    float alpha = ((baseValue >> 0) & 0xFF)/255.0f;
    
    return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
}

+ (UIColor *) turquoiseColor {
    static UIColor *turquoise = nil;
    static dispatch_once_t dispatchToken;

    dispatch_once(&dispatchToken, ^{
        turquoise = [UIColor colorFromHexCode:@"1ABC9C"];
    });
    
    return turquoise;
}

+ (UIColor *) greenSeaColor {
    static UIColor *greenSea = nil;
    static dispatch_once_t greenToken;
    
    dispatch_once(&greenToken, ^{
        greenSea = [UIColor colorFromHexCode:@"16A085"];
    });
    
    return greenSea;
}

+ (UIColor *) emerlandColor {
    static UIColor *emerald = nil;
    static dispatch_once_t emeraldToken;
    
    dispatch_once(&emeraldToken, ^{
        emerald = [UIColor colorFromHexCode:@"2ECC71"];
    });
    
    return emerald;
}

+ (UIColor *) nephritisColor {
    static UIColor *nephritis = nil;
    static dispatch_once_t nephritisToken;
    
    dispatch_once(&nephritisToken, ^{
        nephritis = [UIColor colorFromHexCode:@"27AE60"];
    });
    
    return nephritis;
}

+ (UIColor *) peterRiverColor {
    static UIColor *peterRiver = nil;
    static dispatch_once_t peterToken;
    
    dispatch_once(&peterToken, ^{
        peterRiver = [UIColor colorFromHexCode:@"#3498DB"];
    });
    
    return peterRiver;
}

+ (UIColor *) belizeHoleColor {
    static UIColor *tripToBelize = nil; // Let's cook!
    static dispatch_once_t belizeToken;
    
    dispatch_once(&belizeToken, ^{
        tripToBelize = [UIColor colorFromHexCode:@"2980B9"];
    });
    
    return tripToBelize;
}

+ (UIColor *) amethystColor {
    static UIColor *amethyst = nil;
    static dispatch_once_t amethystToken;
    
    dispatch_once(&amethystToken, ^{
        amethyst = [UIColor colorFromHexCode:@"9B59B6"];
    });
    
    return amethyst;
}

+ (UIColor *) wisteriaColor {
    static UIColor *wisteria = nil;
    static dispatch_once_t wisteriaToken;
    
    dispatch_once(&wisteriaToken, ^{
        wisteria = [UIColor colorFromHexCode:@"8E44AD"];
    });
    
    return wisteria;
}

+ (UIColor *) wetAsphaltColor {
    static UIColor *asphalt = nil;
    static dispatch_once_t asphaltToken;
    
    dispatch_once(&asphaltToken, ^{
        asphalt = [UIColor colorFromHexCode:@"34495E"];
    });
    
    return asphalt;
}

+ (UIColor *) midnightBlueColor {
    static UIColor *midnightBlue = nil;
    static dispatch_once_t midnightBlueToken;
    
    dispatch_once(&midnightBlueToken, ^{
        midnightBlue = [UIColor colorFromHexCode:@"2C3E50"];
    });
    
    return midnightBlue;
}

+ (UIColor *) sunflowerColor {
    static UIColor *sunflower = nil;
    static dispatch_once_t sunflowerToken;
    
    dispatch_once(&sunflowerToken, ^{
        sunflower = [UIColor colorFromHexCode:@"F1C40F"];
    });
    
    return sunflower;
}

+ (UIColor *) tangerineColor {
    static UIColor *tangerine = nil;
    static dispatch_once_t tangerineToken;
    
    dispatch_once(&tangerineToken, ^{
        tangerine = [UIColor colorFromHexCode:@"F39C12"];
    });
    
    return tangerine;
}

+ (UIColor *) carrotColor {
    static UIColor *carrot = nil;
    static dispatch_once_t carrotToken;
    
    dispatch_once(&carrotToken, ^{
        carrot = [UIColor colorFromHexCode:@"E67E22"];
    });
    
    return carrot;
}

+ (UIColor *) pumpkinColor {
    static UIColor *pumpkin = nil;
    static dispatch_once_t pumpkinToken;
    
    dispatch_once(&pumpkinToken, ^{
        pumpkin = [UIColor colorFromHexCode:@"D35400"];
    });
    
    return pumpkin;
}

+ (UIColor *) alizarinColor {
    static UIColor *alizarin = nil;
    static dispatch_once_t alizarinToken;
    
    dispatch_once(&alizarinToken, ^{
        alizarin = [UIColor colorFromHexCode:@"E74C3C"];
    });
    
    return alizarin;
}

+ (UIColor *) pomegranateColor {
    static UIColor *pomegranate = nil;
    static dispatch_once_t pomegranateToken;
    
    dispatch_once(&pomegranateToken, ^{
        pomegranate = [UIColor colorFromHexCode:@"C0392B"];
    });
    
    return pomegranate;
}

+ (UIColor *) cloudsColor {
    static UIColor *clouds = nil;
    static dispatch_once_t cloudsToken;
    
    dispatch_once(&cloudsToken, ^{
        clouds = [UIColor colorFromHexCode:@"ECF0F1"];
    });
    
    return clouds;
}

+ (UIColor *) silverColor {
    static UIColor *silver = nil;
    static dispatch_once_t silverToken;
    
    dispatch_once(&silverToken, ^{
        silver = [UIColor colorFromHexCode:@"BDC3C7"];
    });
    
    return silver;
}

+ (UIColor *) concreteColor {
    static UIColor *concrete = nil;
    static dispatch_once_t concreteToken;
    
    dispatch_once(&concreteToken, ^{
        concrete = [UIColor colorFromHexCode:@"95A5A6"];
    });
    
    return concrete;
}

+ (UIColor *) asbestosColor {
    static UIColor *asbestos = nil;
    static dispatch_once_t asbestosToken;
    
    dispatch_once(&asbestosToken, ^{
        asbestos = [UIColor colorFromHexCode:@"7F8C8D"];
    });
    
    return asbestos;
}

+ (UIColor *) blendedColorWithForegroundColor:(UIColor *)foregroundColor
                              backgroundColor:(UIColor *)backgroundColor
                                 percentBlend:(CGFloat) percentBlend {
    CGFloat onRed, offRed, newRed, onGreen, offGreen, newGreen, onBlue, offBlue, newBlue, onWhite, offWhite;
    if (![foregroundColor getRed:&onRed green:&onGreen blue:&onBlue alpha:nil]) {
        [foregroundColor getWhite:&onWhite alpha:nil];
        onRed = onWhite;
        onBlue = onWhite;
        onGreen = onWhite;
    }
    if (![backgroundColor getRed:&offRed green:&offGreen blue:&offBlue alpha:nil]) {
        [backgroundColor getWhite:&offWhite alpha:nil];
        offRed = offWhite;
        offBlue = offWhite;
        offGreen = offWhite;
    }
    newRed = onRed * percentBlend + offRed * (1-percentBlend);
    newGreen = onGreen * percentBlend + offGreen * (1-percentBlend);
    newBlue = onBlue * percentBlend + offBlue * (1-percentBlend);
    return [UIColor colorWithRed:newRed green:newGreen blue:newBlue alpha:1.0];
}

@end


================================================
FILE: Classes/ios/UIFont+FlatUI.h
================================================
//
//  UIFont+FlatUI.h
//  FlatUI
//
//  Created by Jack Flintermann on 5/7/13.
//  Copyright (c) 2013 Jack Flintermann. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface UIFont (FlatUI)

+ (UIFont *)flatFontOfSize:(CGFloat)size;
+ (UIFont *)boldFlatFontOfSize:(CGFloat)size;
+ (UIFont *)italicFlatFontOfSize:(CGFloat)size;
+ (UIFont *)lightFlatFontOfSize:(CGFloat)size;
+ (UIFont *)iconFontWithSize:(CGFloat)size;
@end


================================================
FILE: Classes/ios/UIFont+FlatUI.m
================================================
//
//  UIFont+FlatUI.m
//  FlatUI
//
//  Created by Jack Flintermann on 5/7/13.
//  Copyright (c) 2013 Jack Flintermann. All rights reserved.
//

#import "UIFont+FlatUI.h"
#import <CoreText/CoreText.h>
#import "NSString+Icons.h"

@implementation UIFont (FlatUI)

+ (void) initialize {
    [super initialize];
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        NSArray *fontNames = @[@"Lato-Regular", @"Lato-Bold", @"Lato-Italic", @"Lato-Light"];
        for (NSString *fontName in fontNames) {
            NSURL * url = [[NSBundle mainBundle] URLForResource:fontName withExtension:@"ttf"];
            if (url) {
                CFErrorRef error;
                CTFontManagerRegisterFontsForURL((__bridge CFURLRef)url, kCTFontManagerScopeNone, &error);
            }
        }
    });
}

+ (UIFont *)flatFontOfSize:(CGFloat)size {
    return [UIFont fontWithName:@"Lato-Regular" size:size];
}

+ (UIFont *)boldFlatFontOfSize:(CGFloat)size {
    return [UIFont fontWithName:@"Lato-Bold" size:size];
}

+ (UIFont *)italicFlatFontOfSize:(CGFloat)size {
    return [UIFont fontWithName:@"Lato-Italic" size:size];
}

+ (UIFont *)lightFlatFontOfSize:(CGFloat)size {
    return [UIFont fontWithName:@"Lato-Light" size:size];
}

+ (UIFont *)iconFontWithSize:(CGFloat)size{
    return [UIFont fontWithName:kFlatUIFontFamilyName size:size];
}
@end


================================================
FILE: Classes/ios/UIImage+FlatUI.h
================================================
//
//  UIImage+Color.h
//  FlatUI
//
//  Created by Jack Flintermann on 5/3/13.
//  Copyright (c) 2013 Jack Flintermann. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface UIImage (FlatUI)

+ (UIImage *)imageWithColor:(UIColor *)color
               cornerRadius:(CGFloat)cornerRadius;

+ (UIImage *) buttonImageWithColor:(UIColor *)color
                      cornerRadius:(CGFloat)cornerRadius
                       shadowColor:(UIColor *)shadowColor
                      shadowInsets:(UIEdgeInsets)shadowInsets;

+ (UIImage *) circularImageWithColor:(UIColor *)color
                                size:(CGSize)size;

- (UIImage *) imageWithMinimumSize:(CGSize)size;

+ (UIImage *) stepperPlusImageWithColor:(UIColor *)color;
+ (UIImage *) stepperMinusImageWithColor:(UIColor *)color;

+ (UIImage *) backButtonImageWithColor:(UIColor *)color
                            barMetrics:(UIBarMetrics) metrics
                          cornerRadius:(CGFloat)cornerRadius;

@end


================================================
FILE: Classes/ios/UIImage+FlatUI.m
================================================
//
//  UIImage+Color.m
//  FlatUI
//
//  Created by Jack Flintermann on 5/3/13.
//  Copyright (c) 2013 Jack Flintermann. All rights reserved.
//

#import "UIImage+FlatUI.h"

@implementation UIImage (FlatUI)

static CGFloat edgeSizeFromCornerRadius(CGFloat cornerRadius) {
    return cornerRadius * 2 + 1;
}

+ (UIImage *)imageWithColor:(UIColor *)color
               cornerRadius:(CGFloat)cornerRadius {
    CGFloat minEdgeSize = edgeSizeFromCornerRadius(cornerRadius);
    CGRect rect = CGRectMake(0, 0, minEdgeSize, minEdgeSize);
    UIBezierPath *roundedRect = [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:cornerRadius];
    roundedRect.lineWidth = 0;
    UIGraphicsBeginImageContextWithOptions(rect.size, NO, 0.0f);
    [color setFill];
    [roundedRect fill];
    [roundedRect stroke];
    [roundedRect addClip];
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return [image resizableImageWithCapInsets:UIEdgeInsetsMake(cornerRadius, cornerRadius, cornerRadius, cornerRadius)];
}

+ (UIImage *) buttonImageWithColor:(UIColor *)color
                      cornerRadius:(CGFloat)cornerRadius
                       shadowColor:(UIColor *)shadowColor
                      shadowInsets:(UIEdgeInsets)shadowInsets {
    UIImage *topImage = [self imageWithColor:color cornerRadius:cornerRadius];
    UIImage *bottomImage = [self imageWithColor:shadowColor cornerRadius:cornerRadius];
    CGFloat totalHeight = edgeSizeFromCornerRadius(cornerRadius) + shadowInsets.top + shadowInsets.bottom;
    CGFloat totalWidth = edgeSizeFromCornerRadius(cornerRadius) + shadowInsets.left + shadowInsets.right;
    CGFloat topWidth = edgeSizeFromCornerRadius(cornerRadius);
    CGFloat topHeight = edgeSizeFromCornerRadius(cornerRadius);
    CGRect topRect = CGRectMake(shadowInsets.left, shadowInsets.top, topWidth, topHeight);
    CGRect bottomRect = CGRectMake(0, 0, totalWidth, totalHeight);
    UIGraphicsBeginImageContextWithOptions(CGSizeMake(totalWidth, totalHeight), NO, 0.0f);
    if (!CGRectEqualToRect(bottomRect, topRect)) {
        [bottomImage drawInRect:bottomRect];
    }
    [topImage drawInRect:topRect];
    UIImage *buttonImage = UIGraphicsGetImageFromCurrentImageContext();
    UIEdgeInsets resizeableInsets = UIEdgeInsetsMake(cornerRadius + shadowInsets.top,
                                                     cornerRadius + shadowInsets.left,
                                                     cornerRadius + shadowInsets.bottom,
                                                     cornerRadius + shadowInsets.right);
    UIGraphicsEndImageContext();
    return [buttonImage resizableImageWithCapInsets:resizeableInsets];
    
}

+ (UIImage *) circularImageWithColor:(UIColor *)color
                                size:(CGSize)size {
    CGRect rect = CGRectMake(0, 0, size.width, size.height);
    UIBezierPath *circle = [UIBezierPath bezierPathWithOvalInRect:rect];
    UIGraphicsBeginImageContextWithOptions(rect.size, NO, 0.0f);
    [color setFill];
    [color setStroke];
    [circle addClip];
    [circle fill];
    [circle stroke];
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return image;
}

- (UIImage *) imageWithMinimumSize:(CGSize)size {
    CGRect rect = CGRectMake(0, 0, size.width, size.height);
    UIGraphicsBeginImageContextWithOptions(CGSizeMake(size.width, size.height), NO, 0.0f);
    [self drawInRect:rect];
    UIImage *resized = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return [resized resizableImageWithCapInsets:UIEdgeInsetsMake(size.height/2, size.width/2, size.height/2, size.width/2)];
}

+ (UIImage *) stepperPlusImageWithColor:(UIColor *)color {
    CGFloat iconEdgeSize = 15;
    CGFloat iconInternalEdgeSize = 3;
    UIGraphicsBeginImageContextWithOptions(CGSizeMake(iconEdgeSize, iconEdgeSize), NO, 0.0f);
    CGContextRef context = UIGraphicsGetCurrentContext();
    [color setFill];
    CGFloat padding = (iconEdgeSize - iconInternalEdgeSize) / 2;
    CGContextFillRect(context, CGRectMake(padding, 0, iconInternalEdgeSize, iconEdgeSize));
    CGContextFillRect(context, CGRectMake(0, padding, iconEdgeSize, iconInternalEdgeSize));
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return image;
}

+ (UIImage *) stepperMinusImageWithColor:(UIColor *)color {
    CGFloat iconEdgeSize = 15;
    CGFloat iconInternalEdgeSize = 3;
    UIGraphicsBeginImageContextWithOptions(CGSizeMake(iconEdgeSize, iconEdgeSize), NO, 0.0f);
    CGContextRef context = UIGraphicsGetCurrentContext();
    [color setFill];
    CGFloat padding = (iconEdgeSize - iconInternalEdgeSize) / 2;
    CGContextFillRect(context, CGRectMake(0, padding, iconEdgeSize, iconInternalEdgeSize));
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return image;
}

+ (UIImage *) backButtonImageWithColor:(UIColor *)color
                            barMetrics:(UIBarMetrics) metrics
                          cornerRadius:(CGFloat)cornerRadius {
    CGSize size;
    if (metrics == UIBarMetricsDefault) {
        size = CGSizeMake(50, 30);
    } else {
        size = CGSizeMake(60, 23);
    }
    UIBezierPath *path = [self bezierPathForBackButtonInRect:CGRectMake(0, 0, size.width, size.height) cornerRadius:cornerRadius];
    UIGraphicsBeginImageContextWithOptions(size, NO, 0.0f);
    [color setFill];
    [path addClip];
    [path fill];
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
	
	if ([image respondsToSelector:@selector(resizableImageWithCapInsets:resizingMode:)]) {
		return [image resizableImageWithCapInsets:UIEdgeInsetsMake(cornerRadius, 15, cornerRadius, cornerRadius) resizingMode:UIImageResizingModeStretch];
	}else{
		return [image resizableImageWithCapInsets:UIEdgeInsetsMake(cornerRadius, 15, cornerRadius, cornerRadius)];
	}
}

+ (UIBezierPath *) bezierPathForBackButtonInRect:(CGRect)rect cornerRadius:(CGFloat)radius {
    UIBezierPath *path = [UIBezierPath bezierPath];
    CGPoint mPoint = CGPointMake(CGRectGetMaxX(rect) - radius, rect.origin.y);
    CGPoint ctrlPoint = mPoint;
    [path moveToPoint:mPoint];
    
    ctrlPoint.y += radius;
    mPoint.x += radius;
    mPoint.y += radius;
    if (radius > 0) [path addArcWithCenter:ctrlPoint radius:radius startAngle:(float)M_PI + (float)M_PI_2 endAngle:0 clockwise:YES];
    
    mPoint.y = CGRectGetMaxY(rect) - radius;
    [path addLineToPoint:mPoint];
    
    ctrlPoint = mPoint;
    mPoint.y += radius;
    mPoint.x -= radius;
    ctrlPoint.x -= radius;
    if (radius > 0) [path addArcWithCenter:ctrlPoint radius:radius startAngle:0 endAngle:(float)M_PI_2 clockwise:YES];
    
    mPoint.x = rect.origin.x + (10.0f);
    [path addLineToPoint:mPoint];
    
    [path addLineToPoint:CGPointMake(rect.origin.x, CGRectGetMidY(rect))];
    
    mPoint.y = rect.origin.y;
    [path addLineToPoint:mPoint];
    
    [path closePath];
    return path;
}

@end


================================================
FILE: Classes/ios/UINavigationBar+FlatUI.h
================================================
//
//  UINavigationBar+FlatUI.h
//  FlatUI
//
//  Created by Jack Flintermann on 5/3/13.
//  Copyright (c) 2013 Jack Flintermann. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface UINavigationBar (FlatUI)

- (void) configureFlatNavigationBarWithColor:(UIColor *)color UI_APPEARANCE_SELECTOR;

@end


================================================
FILE: Classes/ios/UINavigationBar+FlatUI.m
================================================
//
//  UINavigationBar+FlatUI.m
//  FlatUI
//
//  Created by Jack Flintermann on 5/3/13.
//  Copyright (c) 2013 Jack Flintermann. All rights reserved.
//

#import "UINavigationBar+FlatUI.h"
#import "UIImage+FlatUI.h"

@implementation UINavigationBar (FlatUI)

- (void) configureFlatNavigationBarWithColor:(UIColor *)color {
    [self setBackgroundImage:[UIImage imageWithColor:color cornerRadius:0]
               forBarMetrics:UIBarMetricsDefault & UIBarMetricsLandscapePhone];
    NSMutableDictionary *titleTextAttributes = [[self titleTextAttributes] mutableCopy];
    if (!titleTextAttributes) {
        titleTextAttributes = [NSMutableDictionary dictionary];
    }
    
    if ([[[UIDevice currentDevice] systemVersion] compare:@"6.0" options:NSNumericSearch] != NSOrderedAscending) {
        // iOS6 methods
        NSShadow *shadow = [[NSShadow alloc] init];
        [shadow setShadowOffset:CGSizeZero];
        [shadow setShadowColor:[UIColor clearColor]];
        [titleTextAttributes setObject:shadow forKey:NSShadowAttributeName];
    } else {
        // Pre-iOS6 methods
        [titleTextAttributes setValue:[UIColor clearColor] forKey:UITextAttributeTextShadowColor];
        [titleTextAttributes setValue:[NSValue valueWithUIOffset:UIOffsetZero] forKey:UITextAttributeTextShadowOffset];

    }
    
    [self setTitleTextAttributes:titleTextAttributes];
    if ([self respondsToSelector:@selector(setShadowImage:)]) {
        [self setShadowImage:[UIImage imageWithColor:[UIColor clearColor] cornerRadius:0]];
    }
}

@end


================================================
FILE: Classes/ios/UIPopoverController+FlatUI.h
================================================
//
//  UIPopoverController+FlatUI.h
//  FlatUIKit
//
//  Created by Jack Flintermann on 6/29/13.
//  Copyright (c) 2013 Jack Flintermann. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface UIPopoverController (FlatUI)

- (void) configureFlatPopoverWithBackgroundColor:(UIColor *)backgroundColor
                                    cornerRadius:(CGFloat)cornerRadius;

@end


================================================
FILE: Classes/ios/UIPopoverController+FlatUI.m
================================================
//
//  UIPopoverController+FlatUI.m
//  FlatUIKit
//
//  Created by Jack Flintermann on 6/29/13.
//  Copyright (c) 2013 Jack Flintermann. All rights reserved.
//

#import "UIPopoverController+FlatUI.h"
#import "FUIPopoverBackgroundView.h"

@implementation UIPopoverController (FlatUI)

- (void) configureFlatPopoverWithBackgroundColor:(UIColor *)backgroundColor
                                    cornerRadius:(CGFloat)cornerRadius {
    [FUIPopoverBackgroundView setBackgroundColor:backgroundColor];
    [FUIPopoverBackgroundView setCornerRadius:cornerRadius];
    [self setPopoverLayoutMargins:[FUIPopoverBackgroundView contentViewInsets]];
    [self setPopoverBackgroundViewClass:[FUIPopoverBackgroundView class]];
}

@end


================================================
FILE: Classes/ios/UIProgressView+FlatUI.h
================================================
//
//  UIProgressView+FlatUI.h
//  FlatUITestProj
//
//  Created by Alex Medearis on 5/16/13.
//  Copyright (c) 2013 Alex Medearis. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface UIProgressView (FlatUI)

- (void)configureFlatProgressViewWithTrackColor:(UIColor *)trackColor UI_APPEARANCE_SELECTOR;
- (void)configureFlatProgressViewWithProgressColor:(UIColor *)progressColor UI_APPEARANCE_SELECTOR;

- (void) configureFlatProgressViewWithTrackColor:(UIColor *)trackColor
                             progressColor:(UIColor *)progressColor;

@end


================================================
FILE: Classes/ios/UIProgressView+FlatUI.m
================================================
//
//  UIProgressView+FlatUI.h
//  FlatUITestProj
//
//  Created by Alex Medearis on 5/16/13.
//  Copyright (c) 2013 Alex Medearis. All rights reserved.
//

#import "UIImage+FlatUI.h"

@implementation UIProgressView (FlatUI)

- (void)configureFlatProgressViewWithTrackColor:(UIColor *)trackColor {
	UIImage *trackImage = [UIImage imageWithColor:trackColor cornerRadius:4.0];
    trackImage = [trackImage imageWithMinimumSize:CGSizeMake(10.0f, 10.0f)];
    [self setTrackImage:trackImage];

	if ([[[UIDevice currentDevice] systemVersion] compare:@"7.0" options:NSNumericSearch] != NSOrderedAscending) {
		[self setTintColor:trackColor];
	}

}

- (void)configureFlatProgressViewWithProgressColor:(UIColor *)progressColor {
    UIImage *progressImage = [UIImage imageWithColor:progressColor cornerRadius:4.0];
    [self setProgressImage:progressImage];
	
	if ([[[UIDevice currentDevice] systemVersion] compare:@"7.1" options:NSNumericSearch] != NSOrderedAscending) {
		[self setTintColor:progressColor];
	}

}

- (void) configureFlatProgressViewWithTrackColor:(UIColor *)trackColor
                                   progressColor:(UIColor *)progressColor {
    [self configureFlatProgressViewWithTrackColor:trackColor];
    [self configureFlatProgressViewWithProgressColor:progressColor];
}

@end


================================================
FILE: Classes/ios/UISlider+FlatUI.h
================================================
//
//  UISlider+FlatUI.h
//  FlatUI
//
//  Created by Jack Flintermann on 5/3/13.
//  Copyright (c) 2013 Jack Flintermann. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface UISlider (FlatUI)

- (void) configureFlatSliderWithTrackColor:(UIColor *)trackColor
                             progressColor:(UIColor *)progressColor
                                thumbColor:(UIColor *)thumbColor;

- (void) configureFlatSliderWithTrackColor:(UIColor *)trackColor
                             progressColor:(UIColor *)progressColor
                          thumbColorNormal:(UIColor *)thumbColorNormal
                     thumbColorHighlighted:(UIColor *)highlightedThumbColor;

@end


================================================
FILE: Classes/ios/UISlider+FlatUI.m
================================================
//
//  UISlider+FlatUI.m
//  FlatUI
//
//  Created by Jack Flintermann on 5/3/13.
//  Copyright (c) 2013 Jack Flintermann. All rights reserved.
//

#import "UISlider+FlatUI.h"
#import "UIImage+FlatUI.h"

@implementation UISlider (FlatUI)

- (void) configureFlatSliderWithTrackColor:(UIColor *)trackColor
                             progressColor:(UIColor *)progressColor
                                thumbColor:(UIColor *)thumbColor {
    
    [self configureFlatSliderWithTrackColor:trackColor
                              progressColor:progressColor
                           thumbColorNormal:thumbColor
                      thumbColorHighlighted:thumbColor];
}

- (void) configureFlatSliderWithTrackColor:(UIColor *)trackColor
                             progressColor:(UIColor *)progressColor
                          thumbColorNormal:(UIColor *)normalThumbColor
                     thumbColorHighlighted:(UIColor *)highlightedThumbColor
{
    UIImage *progressImage = [[UIImage imageWithColor:progressColor cornerRadius:5.0]
                              imageWithMinimumSize:CGSizeMake(10, 10)];
    UIImage *trackImage = [[UIImage imageWithColor:trackColor cornerRadius:5.0]
                           imageWithMinimumSize:CGSizeMake(10, 10)];
    
    [self setMinimumTrackImage:progressImage forState:UIControlStateNormal];
    [self setMaximumTrackImage:trackImage forState:UIControlStateNormal];
    
    UIImage *normalSliderImage = [UIImage circularImageWithColor:normalThumbColor size:CGSizeMake(24, 24)];
    [self setThumbImage:normalSliderImage forState:UIControlStateNormal];
    
    UIImage *highlighedSliderImage = [UIImage circularImageWithColor:highlightedThumbColor size:CGSizeMake(24, 24)];
    [self setThumbImage:highlighedSliderImage forState:UIControlStateHighlighted];
}

@end


================================================
FILE: Classes/ios/UIStepper+FlatUI.h
================================================
//
//  UIStepper+FlatUI.h
//  FlatUI
//
//  Created by Jack Flintermann on 5/3/13.
//  Copyright (c) 2013 Jack Flintermann. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface UIStepper (FlatUI)

- (void) configureFlatStepperWithColor:(UIColor *)color
                      highlightedColor:(UIColor *)highlightedColor
                         disabledColor:(UIColor *)disabledColor
                             iconColor:(UIColor *)iconColor;

@end


================================================
FILE: Classes/ios/UIStepper+FlatUI.m
================================================
//
//  UIStepper+FlatUI.m
//  FlatUI
//
//  Created by Jack Flintermann on 5/3/13.
//  Copyright (c) 2013 Jack Flintermann. All rights reserved.
//

#import "UIStepper+FlatUI.h"
#import "UIImage+FlatUI.h"
#import <CoreText/CoreText.h>

@implementation UIStepper (FlatUI)

- (void) configureFlatStepperWithColor:(UIColor *)color
                      highlightedColor:(UIColor *)highlightedColor
                         disabledColor:(UIColor *)disabledColor
                             iconColor:(UIColor *)iconColor {
    
    // iOS 6 compat check
    if ([self respondsToSelector:@selector(setBackgroundImage:forState:)]) {
        UIImage *normalImage = [UIImage imageWithColor:color cornerRadius:2.0];
        UIImage *highlightedImage = [UIImage imageWithColor:highlightedColor cornerRadius:2.0];
        UIImage *disabledImage = [UIImage imageWithColor:disabledColor cornerRadius:2.0];
        [self setBackgroundImage:normalImage forState:UIControlStateNormal];
        [self setBackgroundImage:highlightedImage forState:UIControlStateHighlighted];
        [self setBackgroundImage:disabledImage forState:UIControlStateDisabled];
        [self setDividerImage:[UIImage imageWithColor:highlightedColor cornerRadius:0]
          forLeftSegmentState:UIControlStateNormal
            rightSegmentState:UIControlStateNormal];
        [self setDividerImage:[UIImage imageWithColor:highlightedColor cornerRadius:0]
          forLeftSegmentState:UIControlStateHighlighted
            rightSegmentState:UIControlStateNormal];
        [self setDividerImage:[UIImage imageWithColor:highlightedColor cornerRadius:0]
          forLeftSegmentState:UIControlStateNormal
            rightSegmentState:UIControlStateHighlighted];
        
        UIImage *plusImage = [UIImage stepperPlusImageWithColor:iconColor];
        UIImage *minusImage = [UIImage stepperMinusImageWithColor:iconColor];
        [self setIncrementImage:plusImage forState:UIControlStateNormal];
        [self setIncrementImage:plusImage forState:UIControlStateDisabled];
        [self setDecrementImage:minusImage forState:UIControlStateNormal];
        [self setDecrementImage:minusImage forState:UIControlStateDisabled];
    }
	
	if ([[[UIDevice currentDevice] systemVersion] compare:@"7.1" options:NSNumericSearch] != NSOrderedAscending) {
		[self setTintColor:iconColor];
	}

}

@end


================================================
FILE: Classes/ios/UITabBar+FlatUI.h
================================================
//
//  UITabBar+FlatUI.h
//  FlatUI
//
//  Created by Jack Flintermann on 5/3/13.
//  Copyright (c) 2013 Jack Flintermann. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface UITabBar (FlatUI)

- (void)configureFlatTabBarWithColor:(UIColor *)color UI_APPEARANCE_SELECTOR;
- (void)configureFlatTabBarWithSelectedColor:(UIColor *)selectedColor UI_APPEARANCE_SELECTOR;

- (void)configureFlatTabBarWithColor:(UIColor *)color
                       selectedColor:(UIColor *)selectedColor;

@end


================================================
FILE: Classes/ios/UITabBar+FlatUI.m
================================================
//
//  UITabBar+FlatUI.m
//  FlatUI
//
//  Created by Jack Flintermann on 5/3/13.
//  Copyright (c) 2013 Jack Flintermann. All rights reserved.
//

#import "UITabBar+FlatUI.h"
#import "UIImage+FlatUI.h"

@implementation UITabBar (FlatUI)

- (void)configureFlatTabBarWithColor:(UIColor *)color {
    [self setBackgroundImage:[UIImage imageWithColor:color cornerRadius:0]];
}

- (void)configureFlatTabBarWithSelectedColor:(UIColor *)selectedColor {
    [self setSelectionIndicatorImage:[UIImage imageWithColor:selectedColor cornerRadius:6.0]];
}

- (void)configureFlatTabBarWithColor:(UIColor *)color
                       selectedColor:(UIColor *)selectedColor {
    [self configureFlatTabBarWithColor:color];
    [self configureFlatTabBarWithSelectedColor:selectedColor];
}

@end


================================================
FILE: Classes/ios/UITableViewCell+FlatUI.h
================================================
//
//  UITableViewCell+FlatUI.h
//  FlatUIKitExample
//
//  Created by Maciej Swic on 2013-05-31.
//
//

#import <UIKit/UIKit.h>

@interface UITableViewCell (FlatUI)

@property (nonatomic) CGFloat cornerRadius;
@property (nonatomic) CGFloat separatorHeight;

- (void) configureFlatCellWithColor:(UIColor *)color
                      selectedColor:(UIColor *)selectedColor;

- (void) configureFlatCellWithColor:(UIColor *)color
                      selectedColor:(UIColor *)selectedColor
                    roundingCorners:(UIRectCorner)corners;

- (void)setCornerRadius:(CGFloat)cornerRadius;
- (void)setSeparatorHeight:(CGFloat)separatorHeight;

@end


================================================
FILE: Classes/ios/UITableViewCell+FlatUI.m
================================================
//
//  UITableViewCell+FlatUI.m
//  FlatUIKitExample
//
//  Created by Maciej Swic on 2013-05-31.
//
//

#import "UITableViewCell+FlatUI.h"
#import "FUICellBackgroundView.h"
#import <objc/runtime.h>

@implementation UITableViewCell (FlatUI)

@dynamic cornerRadius, separatorHeight;

- (void) configureFlatCellWithColor:(UIColor *)color
                      selectedColor:(UIColor *)selectedColor {
    [self configureFlatCellWithColor:color
                       selectedColor:selectedColor
                     roundingCorners:0];
}

- (void) configureFlatCellWithColor:(UIColor *)color
                      selectedColor:(UIColor *)selectedColor
                    roundingCorners:(UIRectCorner)corners {
    FUICellBackgroundView* backgroundView = [FUICellBackgroundView new];
    backgroundView.backgroundColor = color;
    backgroundView.roundedCorners = corners;
    self.backgroundView = backgroundView;
    
    FUICellBackgroundView* selectedBackgroundView = [FUICellBackgroundView new];
    selectedBackgroundView.roundedCorners = corners;
    selectedBackgroundView.backgroundColor = selectedColor;
    self.selectedBackgroundView = selectedBackgroundView;
    
    //The labels need a clear background color or they will look very funky
    self.textLabel.backgroundColor = [UIColor clearColor];
    if ([self respondsToSelector:@selector(detailTextLabel)])
        self.detailTextLabel.backgroundColor = [UIColor clearColor];
    
    //Guess some good text colors
    self.textLabel.textColor = selectedColor;
    self.textLabel.highlightedTextColor = color;
    if ([self respondsToSelector:@selector(detailTextLabel)]) {
        self.detailTextLabel.textColor = selectedColor;
        self.detailTextLabel.highlightedTextColor = color;
    }
}

- (void)setCornerRadius:(CGFloat)cornerRadius {
    [(FUICellBackgroundView*)self.backgroundView setCornerRadius:cornerRadius];
    [(FUICellBackgroundView*)self.selectedBackgroundView setCornerRadius:cornerRadius];
}

- (void)setSeparatorHeight:(CGFloat)separatorHeight {
    [(FUICellBackgroundView*)self.backgroundView setSeparatorHeight:separatorHeight];
    [(FUICellBackgroundView*)self.selectedBackgroundView setSeparatorHeight:separatorHeight];
}

@end


================================================
FILE: Classes/ios/UIToolbar+FlatUI.h
================================================
//
// Created by Jonathon Hibbard on 6/13/13.
// Copyright (c) 2013 Integrated Events. All rights reserved.
//
// To change the template use AppCode | Preferences | File Templates.
//

#import <UIKit/UIKit.h>

@interface UIToolbar (FlatUI)

- (void)configureFlatToolbarWithColor:(UIColor *)color UI_APPEARANCE_SELECTOR;

@end

================================================
FILE: Classes/ios/UIToolbar+FlatUI.m
================================================
//
// Created by Jonathon Hibbard on 6/13/13.
// Copyright (c) 2013 Integrated Events. All rights reserved.
//
// To change the template use AppCode | Preferences | File Templates.
//

#import "UIToolbar+FlatUI.h"
#import "UIImage+FlatUI.h"

@implementation UIToolbar (FlatUI)

- (void)configureFlatToolbarWithColor:(UIColor *)color {
    [self setBackgroundImage:[UIImage imageWithColor:color cornerRadius:0]
          forToolbarPosition:UIToolbarPositionAny
                  barMetrics:UIBarMetricsDefault];
    
    if ([self respondsToSelector:@selector(setShadowImage:forToolbarPosition:)]) {
        UIImage *clearShadowImage = [UIImage imageWithColor:[UIColor clearColor] cornerRadius:0];
        [self setShadowImage:clearShadowImage forToolbarPosition:UIToolbarPositionAny];
    }
}

@end


================================================
FILE: Example/.gitignore
================================================
.DS_Store
*.swp
*~.nib
.idea
build/
bin/
.idea/
*.pbxuser
*.perspective
*.perspectivev3

*.xcodeproj/xcuserdata/*
*.xcodeproj/project.xcworkspace/xcuserdata/*
objects
Settings.bundle



================================================
FILE: Example/FlatUIKitExample/AppDelegate.h
================================================
//
//  AppDelegate.h
//  FlatUIKitExample
//
//  Created by Alejandro Benito Santos on 5/16/13.
//
//

#import <UIKit/UIKit.h>

@class ViewController;

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;

@property (strong, nonatomic) ViewController *viewController;

@end


================================================
FILE: Example/FlatUIKitExample/AppDelegate.m
================================================
//
//  AppDelegate.m
//  FlatUIKitExample
//
//  Created by Alejandro Benito Santos on 5/16/13.
//
//

#import "AppDelegate.h"
#import "ViewController.h"

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
        self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_iPhone" bundle:nil];
    } else {
        self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_iPad" bundle:nil];
    }
    
    UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:self.viewController];
    self.window.rootViewController = navController;
    [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:.
}

@end


================================================
FILE: Example/FlatUIKitExample/FlatUIKitExample-Info.plist
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>UIAppFonts</key>
	<array>
		<string>flat-ui-icons-regular.ttf</string>
	</array>
	<key>CFBundleDevelopmentRegion</key>
	<string>en</string>
	<key>CFBundleDisplayName</key>
	<string>${PRODUCT_NAME}</string>
	<key>CFBundleExecutable</key>
	<string>${EXECUTABLE_NAME}</string>
	<key>CFBundleIdentifier</key>
	<string>com.joingrouper.${PRODUCT_NAME:rfc1034identifier}</string>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundleName</key>
	<string>${PRODUCT_NAME}</string>
	<key>CFBundlePackageType</key>
	<string>APPL</string>
	<key>CFBundleShortVersionString</key>
	<string>1.0</string>
	<key>CFBundleSignature</key>
	<string>????</string>
	<key>CFBundleVersion</key>
	<string>1.0</string>
	<key>LSRequiresIPhoneOS</key>
	<true/>
	<key>UIRequiredDeviceCapabilities</key>
	<array>
		<string>armv7</string>
	</array>
	<key>UISupportedInterfaceOrientations</key>
	<array>
		<string>UIInterfaceOrientationPortrait</string>
		<string>UIInterfaceOrientationLandscapeLeft</string>
		<string>UIInterfaceOrientationLandscapeRight</string>
	</array>
</dict>
</plist>


================================================
FILE: Example/FlatUIKitExample/FlatUIKitExample-Prefix.pch
================================================
//
// Prefix header for all source files of the 'FlatUIKitExample' target in the 'FlatUIKitExample' project
//

#import <Availability.h>

#ifndef __IPHONE_4_0
#warning "This project uses features only available in iOS SDK 4.0 and later."
#endif

#ifdef __OBJC__
    #import <UIKit/UIKit.h>
    #import <Foundation/Foundation.h>
#endif


================================================
FILE: Example/FlatUIKitExample/IconViewController.h
================================================
//
//  IconViewController.h
//  FlatUIKitExample
//
//  Created by Jamie Matthews on 12/24/14.
//
//

#import <UIKit/UIKit.h>

@interface IconViewController : UIViewController <UICollectionViewDataSource,UICollectionViewDelegateFlowLayout>

@end


================================================
FILE: Example/FlatUIKitExample/IconViewController.m
================================================
//
//  IconViewController.m
//  FlatUIKitExample
//
//  Created by Jamie Matthews on 12/24/14.
//
//

#import "IconViewController.h"
#import "FlatUIKit.h"
#import "NSString+Icons.h"

@implementation IconViewController{
    UICollectionView *_collectionView;
    NSArray *unicodeStrings;
    NSArray *colorArray;
}

-(void)viewDidLoad{
    [super viewDidLoad];
    
    self.view.backgroundColor = [UIColor cloudsColor];
    self.title = @"Icons";
    self.navigationController.navigationBar.translucent = NO;
    UICollectionViewFlowLayout *layout=[[UICollectionViewFlowLayout alloc] init];
    _collectionView=[[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout];
    [_collectionView setDataSource:self];
    [_collectionView setDelegate:self];
    [_collectionView setTranslatesAutoresizingMaskIntoConstraints:NO];
    
    [_collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"cellIdentifier"];
    [_collectionView setBackgroundColor:[UIColor clearColor]];
    [self.view addSubview:_collectionView];
    
    [self.view addConstraints:[NSLayoutConstraint
                               constraintsWithVisualFormat:@"H:|-0-[_collectionView]-0-|"
                               options:NSLayoutFormatDirectionLeadingToTrailing
                               metrics:nil
                               views:NSDictionaryOfVariableBindings(_collectionView)]];
    [self.view addConstraints:[NSLayoutConstraint
                               constraintsWithVisualFormat:@"V:|-0-[_collectionView]-0-|"
                               options:NSLayoutFormatDirectionLeadingToTrailing
                               metrics:nil
                               views:NSDictionaryOfVariableBindings(_collectionView)]];
    
    // loop over all of the icon string values
    unicodeStrings = [NSString iconUnicodeStrings];
    // use a few different colors to show how these icons can be styled
    colorArray = @[[UIColor turquoiseColor], [UIColor emerlandColor], [UIColor peterRiverColor], [UIColor amethystColor], [UIColor sunflowerColor], [UIColor carrotColor], [UIColor alizarinColor]];
}


- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
    return [unicodeStrings count];
}

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
    UICollectionViewCell *cell=[collectionView dequeueReusableCellWithReuseIdentifier:@"cellIdentifier" forIndexPath:indexPath];
    if(!cell){
        
    }
    else{
        [[cell.contentView viewWithTag:100] removeFromSuperview];
    }

    UILabel *title = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, cell.bounds.size.width, cell.bounds.size.height)];
    title.font = [UIFont iconFontWithSize:16];
    title.textAlignment = NSTextAlignmentCenter;
    title.text = [unicodeStrings objectAtIndex:indexPath.row];
    title.tag = 100;
    title.textColor = [colorArray objectAtIndex:indexPath.row%[colorArray count]];
    [cell.contentView addSubview:title];
    
    return cell;
}

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
    return CGSizeMake(50, 50);
}

@end


================================================
FILE: Example/FlatUIKitExample/TableViewController.h
================================================
//
//  TableViewController.h
//  FlatUIKitExample
//
//  Created by Maciej Swic on 2013-05-31.
//
//

#import <UIKit/UIKit.h>

@interface TableViewController : UITableViewController

@end


================================================
FILE: Example/FlatUIKitExample/TableViewController.m
================================================
//
//  TableViewController.m
//  FlatUIKitExample
//
//  Created by Maciej Swic on 2013-05-31.
//
//

#import "TableViewController.h"

#import "UITableViewCell+FlatUI.h"
#import "UIColor+FlatUI.h"

static NSString * const FUITableViewControllerCellReuseIdentifier = @"FUITableViewControllerCellReuseIdentifier";

@implementation TableViewController

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.title = @"Table View";
    
    //Set the separator color
    self.tableView.separatorColor = [UIColor cloudsColor];
    
    //Set the background color
    self.tableView.backgroundColor = [UIColor cloudsColor];
    self.tableView.backgroundView = nil;
    [self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:FUITableViewControllerCellReuseIdentifier];
}

#pragma mark - Table view data source

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 7;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    if (section % 2)
        return 3;
    else
        return 1;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UIRectCorner corners = 0;
    if (tableView.style == UITableViewStyleGrouped) {
        if ([tableView numberOfRowsInSection:indexPath.section] == 1) {
            corners = UIRectCornerAllCorners;
        } else if (indexPath.row == 0) {
            corners = UIRectCornerTopLeft | UIRectCornerTopRight;
        } else if (indexPath.row == [tableView numberOfRowsInSection:indexPath.section] - 1) {
            corners = UIRectCornerBottomLeft | UIRectCornerBottomRight;
        }
    }
    UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:FUITableViewControllerCellReuseIdentifier];
    [cell configureFlatCellWithColor:[UIColor greenSeaColor]
                       selectedColor:[UIColor cloudsColor]
                     roundingCorners:corners];
    
    cell.cornerRadius = 5.f; //Optional
    if (self.tableView.style == UITableViewStyleGrouped) {
        cell.separatorHeight = 2.f; //Optional
    } else {
        cell.separatorHeight = 0.;
    }
    
    cell.textLabel.text = [NSString stringWithFormat:@"Section %ld Row %ld", (long)indexPath.section, (long)indexPath.row];
    
    return cell;
}

#pragma mark - Table view delegate

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
}

@end


================================================
FILE: Example/FlatUIKitExample/ViewController.h
================================================
//
//  ViewController.h
//  FlatUI
//
//  Created by Jack Flintermann on 5/3/13.
//  Copyright (c) 2013 Jack Flintermann. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "FUIAlertView.h"

@interface ViewController : UIViewController <UIPopoverControllerDelegate, UIActionSheetDelegate, FUIAlertViewDelegate>

@end


================================================
FILE: Example/FlatUIKitExample/ViewController.m
================================================
//
//  ViewController.m
//  FlatUI
//
//  Created by Jack Flintermann on 5/3/13.
//  Copyright (c) 2013 Jack Flintermann. All rights reserved.
//

#import "ViewController.h"
#import "TableViewController.h"
#import "UIColor+FlatUI.h"
#import "UISlider+FlatUI.h"
#import "UIStepper+FlatUI.h"
#import "UITabBar+FlatUI.h"
#import "UINavigationBar+FlatUI.h"
#import "FUIButton.h"
#import "FUISwitch.h"
#import "UIFont+FlatUI.h"
#import "FUIAlertView.h"
#import "UIBarButtonItem+FlatUI.h"
#import "UIProgressView+FlatUI.h"
#import "FUISegmentedControl.h"
#import "UIPopoverController+FlatUI.h"
#import "NSString+Icons.h"
#import "IconViewController.h"

#define SYSTEM_VERSION_EQUAL_TO(v)                  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedSame)
#define SYSTEM_VERSION_GREATER_THAN(v)              ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedDescending)
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v)  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN(v)                 ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN_OR_EQUAL_TO(v)     ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedDescending)

@interface ViewController () {
    UIPopoverController *_popoverController;
}
@property (weak, nonatomic) IBOutlet FUIButton *alertViewButton;
@property (weak, nonatomic) IBOutlet FUIButton *popoverButton;
@property (weak, nonatomic) IBOutlet UISlider *slider;
@property (weak, nonatomic) IBOutlet UIStepper *stepper;
@property (weak, nonatomic) IBOutlet FUISwitch *flatSwitch;
@property (strong, nonatomic) IBOutletCollection(UILabel) NSArray *labels;
@property (weak, nonatomic) IBOutlet UIProgressView *flatProgress;
@property (weak, nonatomic) IBOutlet FUISegmentedControl *flatSegmentedControl;
@property (weak, nonatomic) IBOutlet FUIButton *iconsButton;

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    if ([UIDevice currentDevice].systemVersion.floatValue >= 7) {
        self.edgesForExtendedLayout = UIRectEdgeNone;
    }
    
    self.title = @"Flat UI";
    self.view.backgroundColor = [UIColor cloudsColor];
    NSDictionary *attrs = @{NSForegroundColorAttributeName: [UIColor whiteColor]};
    [[UIBarItem appearance] setTitleTextAttributes:attrs
                                                forState:UIControlStateNormal];
    [UIBarButtonItem configureFlatButtonsWithColor:[UIColor peterRiverColor]
                                  highlightedColor:[UIColor belizeHoleColor]
                                      cornerRadius:3
                                   whenContainedIn:[UINavigationBar class], nil];
    
    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Plain Table"
                                                                              style:UIBarButtonItemStylePlain
                                                                             target:self
                                                                             action:@selector(showPlainTableView:)];
    [self.navigationItem.rightBarButtonItem removeTitleShadow];
    
    self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Grouped Table"
                                                                              style:UIBarButtonItemStylePlain
                                                                             target:self
                                                                            action:@selector(showTableView:)];
    [self.navigationItem.leftBarButtonItem removeTitleShadow];
    
    [self.navigationItem.leftBarButtonItem configureFlatButtonWithColor:[UIColor alizarinColor]
                                                       highlightedColor:[UIColor pomegranateColor]
                                                           cornerRadius:3];
    
    self.alertViewButton.buttonColor = [UIColor turquoiseColor];
    self.alertViewButton.shadowColor = [UIColor greenSeaColor];
    self.alertViewButton.shadowHeight = 3.0f;
    self.alertViewButton.cornerRadius = 6.0f;
    self.alertViewButton.titleLabel.font = [UIFont boldFlatFontOfSize:16];
    [self.alertViewButton setTitleColor:[UIColor cloudsColor] forState:UIControlStateNormal];
    [self.alertViewButton setTitleColor:[UIColor cloudsColor] forState:UIControlStateHighlighted];

    self.iconsButton.titleLabel.font = [UIFont iconFontWithSize:16];
    self.iconsButton.buttonColor = [UIColor turquoiseColor];
    self.iconsButton.shadowColor = [UIColor greenSeaColor];
    self.iconsButton.shadowHeight = 3.0f;
    self.iconsButton.cornerRadius = 6.0f;
    [self.iconsButton setTitle:[NSString stringWithFormat:@"%@ Icons", [NSString iconStringForEnum:FUIListBulleted]] forState:UIControlStateNormal];
    
    [self.iconsButton setTitleColor:[UIColor cloudsColor] forState:UIControlStateNormal];
    [self.iconsButton addTarget:self action:@selector(iconsButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
    
    [self.slider configureFlatSliderWithTrackColor:[UIColor silverColor]
                                     progressColor:[UIColor alizarinColor]
                                        thumbColor:[UIColor pomegranateColor]];
    
    [self.stepper configureFlatStepperWithColor:[UIColor wisteriaColor]
                               highlightedColor:[UIColor amethystColor]
                                  disabledColor:[UIColor silverColor]
                                      iconColor:[UIColor cloudsColor]];
    
    if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0")) {
        self.navigationController.navigationBar.titleTextAttributes = @{NSFontAttributeName:[UIFont boldFlatFontOfSize:18],
                                                                    NSForegroundColorAttributeName: [UIColor whiteColor]};
    } else {
        // Pre-iOS7 methods
        self.navigationController.navigationBar.titleTextAttributes = @{UITextAttributeFont: [UIFont boldFlatFontOfSize:18],
                                                                    UITextAttributeTextColor: [UIColor whiteColor]};
    }
    
    [self.navigationController.navigationBar configureFlatNavigationBarWithColor:[UIColor midnightBlueColor]];
    
    self.flatSwitch.onColor = [UIColor turquoiseColor];
    self.flatSwitch.offColor = [UIColor cloudsColor];
    self.flatSwitch.onBackgroundColor = [UIColor midnightBlueColor];
    self.flatSwitch.offBackgroundColor = [UIColor silverColor];
    self.flatSwitch.offLabel.font = [UIFont boldFlatFontOfSize:14];
    self.flatSwitch.onLabel.font = [UIFont boldFlatFontOfSize:14];
    
    [self.labels enumerateObjectsUsingBlock:^(UILabel *label, NSUInteger idx, BOOL *stop) {
        label.font = [UIFont flatFontOfSize:16];
        label.textColor = [UIColor midnightBlueColor];
    }];
    
    [self.flatProgress configureFlatProgressViewWithTrackColor:[UIColor silverColor] progressColor:[UIColor wisteriaColor]];
    
    self.flatSegmentedControl.selectedFont = [UIFont boldFlatFontOfSize:16];
    self.flatSegmentedControl.selectedFontColor = [UIColor cloudsColor];
    self.flatSegmentedControl.deselectedFont = [UIFont flatFontOfSize:16];
    self.flatSegmentedControl.deselectedFontColor = [UIColor cloudsColor];
    self.flatSegmentedControl.selectedColor = [UIColor pumpkinColor];
    self.flatSegmentedControl.deselectedColor = [UIColor tangerineColor];
    self.flatSegmentedControl.disabledColor = [UIColor silverColor];
    self.flatSegmentedControl.dividerColor = [UIColor silverColor];
    self.flatSegmentedControl.cornerRadius = 5.0;
   
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
        self.popoverButton.buttonColor = [UIColor carrotColor];
        self.popoverButton.shadowColor = [UIColor alizarinColor];
        self.popoverButton.shadowHeight = 3.0f;
        self.popoverButton.cornerRadius = 6.0f;
        self.popoverButton.titleLabel.font = [UIFont boldFlatFontOfSize:16];
        [self.popoverButton setTitleColor:[UIColor cloudsColor] forState:UIControlStateNormal];
        [self.popoverButton setTitleColor:[UIColor cloudsColor] forState:UIControlStateHighlighted];
    }
}

- (IBAction)showAlertView:(id)sender {
    FUIAlertView *alertView = [[FUIAlertView alloc] initWithTitle:@"Hello" message:@"This is an alert view" delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles:@"Do Something", nil];
    alertView.alertViewStyle = FUIAlertViewStylePlainTextInput;
    [@[[alertView textFieldAtIndex:0], [alertView textFieldAtIndex:1]] enumerateObjectsUsingBlock:^(FUITextField *textField, NSUInteger idx, BOOL *stop) {
        [textField setTextFieldColor:[UIColor cloudsColor]];
        [textField setBorderColor:[UIColor asbestosColor]];
        [textField setCornerRadius:4];
        [textField setFont:[UIFont flatFontOfSize:14]];
        [textField setTextColor:[UIColor midnightBlueColor]];
    }];
    [[alertView textFieldAtIndex:0] setPlaceholder:@"Text here!"];
    
    alertView.delegate = self;
    alertView.titleLabel.textColor = [UIColor cloudsColor];
    alertView.titleLabel.font = [UIFont boldFlatFontOfSize:16];
    alertView.messageLabel.textColor = [UIColor cloudsColor];
    alertView.messageLabel.font = [UIFont flatFontOfSize:14];
    alertView.backgroundOverlay.backgroundColor = [[UIColor cloudsColor] colorWithAlphaComponent:0.8];
    alertView.alertContainer.backgroundColor = [UIColor midnightBlueColor];
    alertView.defaultButtonColor = [UIColor cloudsColor];
    alertView.defaultButtonShadowColor = [UIColor asbestosColor];
    alertView.defaultButtonFont = [UIFont boldFlatFontOfSize:16];
    alertView.defaultButtonTitleColor = [UIColor asbestosColor];
    [alertView show];
}

- (IBAction)showPopover:(id)sender {
    UIButton *button = (UIButton *)sender;
    
    UIViewController *vc = [[UIViewController alloc] init];
    vc.view.backgroundColor = [UIColor whiteColor];
    vc.title = @"FUIPopoverController";
    
    if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0")) {
        vc.preferredContentSize = CGSizeMake(320, 480);
        self.navigationController.navigationBar.titleTextAttributes = @{NSFontAttributeName:[UIFont boldFlatFontOfSize:18],
                                                                        NSForegroundColorAttributeName: [UIColor whiteColor]};
    } else {
        // Pre-iOS7 methods
        vc.contentSizeForViewInPopover = CGSizeMake(320, 480);
        vc.navigationController.navigationBar.titleTextAttributes = @{UITextAttributeFont: [UIFont boldFlatFontOfSize:18],
                                                                  UITextAttributeTextColor: [UIColor whiteColor]};
    }
    
    UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController:vc];
    
    _popoverController = [[UIPopoverController alloc] initWithContentViewController:nc];
    [_popoverController configureFlatPopoverWithBackgroundColor:[UIColor turquoiseColor] cornerRadius:9.0];
    _popoverController.delegate = self;
    
    [_popoverController presentPopoverFromRect:button.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}

- (void)showTableView:(id)sender {
    TableViewController* tableViewController = [[TableViewController alloc] initWithStyle:UITableViewStyleGrouped];
    [self.navigationController pushViewController:tableViewController animated:YES];
}

- (void)showPlainTableView:(id)sender {
    TableViewController* tableViewController = [[TableViewController alloc] initWithStyle:UITableViewStylePlain];
    [self.navigationController pushViewController:tableViewController animated:YES];
}

-(void)iconsButtonPressed:(UIButton*)button {
    IconViewController *iconViewController = [[IconViewController alloc]init];
    [self.navigationController pushViewController:iconViewController animated:YES];
}

#pragma mark - UIPopoverControllerDelegate Methods

- (BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController
{
    return YES;
}

- (void) popoverControllerDidDismissPopover:(UIPopoverController *)popoverController {
    _popoverController = nil;
}

@end


================================================
FILE: Example/FlatUIKitExample/ViewController_iPad.xib
================================================
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="6254" systemVersion="14A389" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none">
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6247"/>
    </dependencies>
    <objects>
        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="ViewController">
            <connections>
                <outlet property="alertViewButton" destination="56" id="166"/>
                <outlet property="flatProgress" destination="63" id="167"/>
                <outlet property="flatSegmentedControl" destination="193" id="202"/>
                <outlet property="flatSwitch" destination="55" id="169"/>
                <outlet property="iconsButton" destination="cXO-Xn-awn" id="ZHj-z8-Vox"/>
                <outlet property="popoverButton" destination="452" id="459"/>
                <outlet property="slider" destination="53" id="170"/>
                <outlet property="stepper" destination="54" id="171"/>
                <outlet property="view" destination="2" id="165"/>
                <outletCollection property="labels" destination="59" id="445"/>
                <outletCollection property="labels" destination="61" id="446"/>
                <outletCollection property="labels" destination="60" id="447"/>
                <outletCollection property="labels" destination="131" id="448"/>
                <outletCollection property="labels" destination="58" id="449"/>
                <outletCollection property="labels" destination="57" id="450"/>
                <outletCollection property="labels" destination="62" id="451"/>
            </connections>
        </placeholder>
        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
        <view contentMode="scaleToFill" id="2">
            <rect key="frame" x="0.0" y="0.0" width="768" height="1024"/>
            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
            <subviews>
                <slider opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" value="0.5" minValue="0.0" maxValue="1" id="53">
                    <rect key="frame" x="243" y="314" width="284" height="29"/>
                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
                </slider>
                <stepper opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" maximumValue="100" id="54">
                    <rect key="frame" x="500" y="77" width="94" height="23"/>
                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
                </stepper>
                <view contentMode="scaleToFill" id="55" customClass="FUISwitch">
                    <rect key="frame" x="665" y="69" width="79" height="35"/>
                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
                    <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
                </view>
                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="56" customClass="FUIButton">
                    <rect key="frame" x="244" y="781" width="280" height="44"/>
                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES"/>
                    <state key="normal" title="SHOW ALERT VIEW">
                        <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
                    </state>
                    <connections>
                        <action selector="showAlertView:" destination="-1" eventType="touchUpInside" id="172"/>
                    </connections>
                </button>
                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="452" customClass="FUIButton">
                    <rect key="frame" x="244" y="833" width="280" height="44"/>
                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES"/>
                    <state key="normal" title="SHOW POPOVER">
                        <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
                    </state>
                    <connections>
                        <action selector="showPopover:" destination="-1" eventType="touchUpInside" id="460"/>
                    </connections>
                </button>
                <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Sliders" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="57">
                    <rect key="frame" x="244" y="343" width="281" height="21"/>
                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
                    <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
                    <nil key="highlightedColor"/>
                </label>
                <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Progress Views" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="58">
                    <rect key="frame" x="245" y="221" width="281" height="21"/>
                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
                    <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
                    <nil key="highlightedColor"/>
                </label>
                <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Navigation Items/Bars" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="59">
                    <rect key="frame" x="245" y="20" width="281" height="21"/>
                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
                    <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
                    <nil key="highlightedColor"/>
                </label>
                <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Switches" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="60">
                    <rect key="frame" x="664" y="112" width="84" height="21"/>
                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
                    <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
                    <nil key="highlightedColor"/>
                </label>
                <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Steppers" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="131">
                    <rect key="frame" x="500" y="112" width="94" height="21"/>
                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
                    <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
                    <nil key="highlightedColor"/>
                </label>
                <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Segmented Control" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="61">
                    <rect key="frame" x="20" y="120" width="277" height="24"/>
                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
                    <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
                    <nil key="highlightedColor"/>
                </label>
                <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Buttons" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="62">
                    <rect key="frame" x="245" y="752" width="280" height="21"/>
                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES"/>
                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
                    <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
                    <nil key="highlightedColor"/>
                </label>
                <progressView opaque="NO" contentMode="scaleToFill" progress="0.5" id="63">
                    <rect key="frame" x="247" y="204" width="280" height="2"/>
                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
                </progressView>
                <segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="0" id="193" customClass="FUISegmentedControl">
                    <rect key="frame" x="20" y="69" width="277" height="29"/>
                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                    <segments>
                        <segment title="First"/>
                        <segment title="Second"/>
                        <segment title="Third" enabled="NO"/>
                    </segments>
                </segmentedControl>
                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="cXO-Xn-awn" customClass="FUIButton">
                    <rect key="frame" x="246" y="885" width="279" height="39"/>
                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES"/>
                    <state key="normal" title="Icons">
                        <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
                    </state>
                </button>
            </subviews>
            <color key="backgroundColor" white="0.75" alpha="1" colorSpace="calibratedWhite"/>
            <simulatedStatusBarMetrics key="simulatedStatusBarMetrics" statusBarStyle="blackOpaque"/>
            <simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/>
        </view>
    </objects>
    <simulatedMetricsContainer key="defaultSimulatedMetrics">
        <simulatedStatusBarMetrics key="statusBar"/>
        <simulatedOrientationMetrics key="orientation"/>
        <simulatedScreenMetrics key="destination"/>
    </simulatedMetricsContainer>
</document>


================================================
FILE: Example/FlatUIKitExample/ViewController_iPhone.xib
================================================
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7531" systemVersion="14A389" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
    <dependencies>
        <deployment identifier="iOS"/>
        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7520"/>
    </dependencies>
    <objects>
        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="ViewController">
            <connections>
                <outlet property="alertViewButton" destination="64" id="67"/>
                <outlet property="flatProgress" destination="85" id="87"/>
                <outlet property="flatSegmentedControl" destination="90" id="91"/>
                <outlet property="flatSwitch" destination="60" id="62"/>
                <outlet property="iconsButton" destination="NUD-s0-Waz" id="b3M-KA-s3v"/>
                <outlet property="slider" destination="36" id="44"/>
                <outlet property="stepper" destination="37" id="45"/>
                <outlet property="view" destination="6" id="7"/>
                <outletCollection property="labels" destination="74" id="80"/>
                <outletCollection property="labels" destination="73" id="81"/>
                <outletCollection property="labels" destination="72" id="82"/>
                <outletCollection property="labels" destination="71" id="83"/>
                <outletCollection property="labels" destination="75" id="84"/>
                <outletCollection property="labels" destination="86" id="89"/>
                <outletCollection property="labels" destination="92" id="93"/>
            </connections>
        </placeholder>
        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
        <view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="6">
            <rect key="frame" x="0.0" y="0.0" width="320" height="480"/>
            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
            <subviews>
                <stepper opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" maximumValue="10" id="37">
                    <rect key="frame" x="207" y="123" width="94" height="23"/>
                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
                </stepper>
                <view contentMode="scaleToFill" id="60" customClass="FUISwitch">
                    <rect key="frame" x="24" y="123" width="79" height="35"/>
                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                    <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
                </view>
                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="64" customClass="FUIButton">
                    <rect key="frame" x="20" y="406" width="280" height="44"/>
                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
                    <state key="normal" title="SHOW ALERT VIEW">
                        <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
                    </state>
                    <connections>
                        <action selector="showAlertView:" destination="-1" eventType="touchUpInside" id="69"/>
                    </connections>
                </button>
                <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Steppers" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="71">
                    <rect key="frame" x="207" y="166" width="94" height="21"/>
                    <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
                    <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
                    <nil key="highlightedColor"/>
                </label>
                <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Navigation Items/Bars" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="74">
                    <rect key="frame" x="20" y="6" width="281" height="21"/>
                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
                    <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
                    <nil key="highlightedColor"/>
                </label>
                <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Switches" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="72">
                    <rect key="frame" x="21" y="166" width="84" height="21"/>
                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
                    <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
                    <nil key="highlightedColor"/>
                </label>
                <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Segmented Control" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="92">
                    <rect key="frame" x="20" y="91" width="280" height="24"/>
                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
                    <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
                    <nil key="highlightedColor"/>
                </label>
                <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Buttons" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="75">
                    <rect key="frame" x="20" y="457" width="280" height="21"/>
                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
                    <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
                    <nil key="highlightedColor"/>
                </label>
                <segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="0" id="90" customClass="FUISegmentedControl">
                    <rect key="frame" x="22" y="40" width="277" height="29"/>
                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                    <segments>
                        <segment title="First"/>
                        <segment title="Second"/>
                        <segment title="Disabled" enabled="NO"/>
                    </segments>
                </segmentedControl>
                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="NUD-s0-Waz" customClass="FUIButton">
                    <rect key="frame" x="20" y="354" width="280" height="44"/>
                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
                    <state key="normal" title="Icons">
                        <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
                    </state>
                </button>
                <slider opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" value="0.5" minValue="0.0" maxValue="1" id="36">
                    <rect key="frame" x="20" y="241" width="284" height="29"/>
                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
                </slider>
                <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Sliders" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="73">
                    <rect key="frame" x="19" y="277" width="281" height="21"/>
                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
                    <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
                    <nil key="highlightedColor"/>
                </label>
                <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Progress Views" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="86">
                    <rect key="frame" x="20" y="212" width="281" height="21"/>
                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
                    <fontDescription key="fontDescription" type="system" pointSize="17"/>
                    <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
                    <nil key="highlightedColor"/>
                </label>
                <progressView opaque="NO" contentMode="scaleToFill" progress="0.5" id="85">
                    <rect key="frame" x="22" y="195" width="280" height="2"/>
                    <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                </progressView>
            </subviews>
            <color key="backgroundColor" white="0.75" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
            <simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/>
            <simulatedScreenMetrics key="simulatedDestinationMetrics"/>
        </view>
    </objects>
    <simulatedMetricsContainer key="defaultSimulatedMetrics">
        <simulatedStatusBarMetrics key="statusBar"/>
        <simulatedOrientationMetrics key="orientation"/>
        <simulatedScreenMetrics key="destination" type="retina4"/>
    </simulatedMetricsContainer>
</document>


================================================
FILE: Example/FlatUIKitExample/en.lproj/InfoPlist.strings
================================================
/* Localized versions of Info.plist keys */



================================================
FILE: Example/FlatUIKitExample/main.m
================================================
//
//  main.m
//  FlatUIKitExample
//
//  Created by Alejandro Benito Santos on 5/16/13.
//
//

#import <UIKit/UIKit.h>

#import "AppDelegate.h"

int main(int argc, char *argv[])
{
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }
}


================================================
FILE: Example/FlatUIKitExample.xcodeproj/project.pbxproj
================================================
// !$*UTF8*$!
{
	archiveVersion = 1;
	classes = {
	};
	objectVersion = 46;
	objects = {

/* Begin PBXBuildFile section */
		4F560ED517599BBE00AE48E7 /* ViewController_iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4F560ED417599BBE00AE48E7 /* ViewController_iPad.xib */; };
		53C750241811DAD60059CDC6 /* FUITextField.m in Sources */ = {isa = PBXBuildFile; fileRef = 53C750211811DAD60059CDC6 /* FUITextField.m */; };
		53C750251811DAD60059CDC6 /* UIToolbar+FlatUI.m in Sources */ = {isa = PBXBuildFile; fileRef = 53C750231811DAD60059CDC6 /* UIToolbar+FlatUI.m */; };
		6F4F7CD41746884200D9F472 /* FUISegmentedControl.m in Sources */ = {isa = PBXBuildFile; fileRef = 6F4F7CD31746884200D9F472 /* FUISegmentedControl.m */; };
		6FF9CE3C1745476B004BEFAD /* UIProgressView+FlatUI.m in Sources */ = {isa = PBXBuildFile; fileRef = 6FF9CE3B1745476B004BEFAD /* UIProgressView+FlatUI.m */; };
		A04638721780F2BD00EF98AF /* UIPopoverController+FlatUI.m in Sources */ = {isa = PBXBuildFile; fileRef = A04638701780F2BD00EF98AF /* UIPopoverController+FlatUI.m */; };
		A09F8894175FB5D800AAC740 /* FUIPopoverBackgroundView.m in Sources */ = {isa = PBXBuildFile; fileRef = A09F8893175FB5D800AAC740 /* FUIPopoverBackgroundView.m */; };
		C1DA68331758953900926483 /* UITableViewCell+FlatUI.m in Sources */ = {isa = PBXBuildFile; fileRef = C1DA68321758953900926483 /* UITableViewCell+FlatUI.m */; };
		C1DA6839175895C500926483 /* FUICellBackgroundView.m in Sources */ = {isa = PBXBuildFile; fileRef = C1DA6838175895C500926483 /* FUICellBackgroundView.m */; };
		C1DA683C1758972C00926483 /* TableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C1DA683B1758972C00926483 /* TableViewController.m */; };
		F6172C9E1A4B21D30099EA30 /* NSString+Icons.m in Sources */ = {isa = PBXBuildFile; fileRef = F6172C9D1A4B21D30099EA30 /* NSString+Icons.m */; };
		F6172CA21A4B37B10099EA30 /* IconViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F6172CA11A4B37B10099EA30 /* IconViewController.m */; };
		F6172CA41A4B3F4F0099EA30 /* flat-ui-icons-regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = F6172CA31A4B3F420099EA30 /* flat-ui-icons-regular.ttf */; };
		FA5311501744C7C1002711E1 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA53114F1744C7C1002711E1 /* UIKit.framework */; };
		FA5311521744C7C1002711E1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA5311511744C7C1002711E1 /* Foundation.framework */; };
		FA5311541744C7C1002711E1 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA5311531744C7C1002711E1 /* CoreGraphics.framework */; };
		FA53115A1744C7C1002711E1 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = FA5311581744C7C1002711E1 /* InfoPlist.strings */; };
		FA53115C1744C7C1002711E1 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = FA53115B1744C7C1002711E1 /* main.m */; };
		FA5311601744C7C1002711E1 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = FA53115F1744C7C1002711E1 /* AppDelegate.m */; };
		FA5311621744C7C1002711E1 /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = FA5311611744C7C1002711E1 /* Default.png */; };
		FA5311641744C7C1002711E1 /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = FA5311631744C7C1002711E1 /* Default@2x.png */; };
		FA5311661744C7C1002711E1 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = FA5311651744C7C1002711E1 /* Default-568h@2x.png */; };
		FA5311691744C7C1002711E1 /* ViewController_iPhone.xib in Sources */ = {isa = PBXBuildFile; fileRef = FA5311681744C7C1002711E1 /* ViewController_iPhone.xib */; };
		FA53118D1744C920002711E1 /* FUIAlertView.m in Sources */ = {isa = PBXBuildFile; fileRef = FA5311781744C920002711E1 /* FUIAlertView.m */; };
		FA53118E1744C920002711E1 /* FUIButton.m in Sources */ = {isa = PBXBuildFile; fileRef = FA53117A1744C920002711E1 /* FUIButton.m */; };
		FA53118F1744C920002711E1 /* FUISwitch.m in Sources */ = {isa = PBXBuildFile; fileRef = FA53117C1744C920002711E1 /* FUISwitch.m */; };
		FA5311901744C920002711E1 /* UIBarButtonItem+FlatUI.m in Sources */ = {isa = PBXBuildFile; fileRef = FA53117E1744C920002711E1 /* UIBarButtonItem+FlatUI.m */; };
		FA5311911744C920002711E1 /* UIColor+FlatUI.m in Sources */ = {isa = PBXBuildFile; fileRef = FA5311801744C920002711E1 /* UIColor+FlatUI.m */; };
		FA5311921744C920002711E1 /* UIFont+FlatUI.m in Sources */ = {isa = PBXBuildFile; fileRef = FA5311821744C920002711E1 /* UIFont+FlatUI.m */; };
		FA5311931744C920002711E1 /* UIImage+FlatUI.m in Sources */ = {isa = PBXBuildFile; fileRef = FA5311841744C920002711E1 /* UIImage+FlatUI.m */; };
		FA5311941744C920002711E1 /* UINavigationBar+FlatUI.m in Sources */ = {isa = PBXBuildFile; fileRef = FA5311861744C920002711E1 /* UINavigationBar+FlatUI.m */; };
		FA5311951744C920002711E1 /* UISlider+FlatUI.m in Sources */ = {isa = PBXBuildFile; fileRef = FA5311881744C920002711E1 /* UISlider+FlatUI.m */; };
		FA5311961744C920002711E1 /* UIStepper+FlatUI.m in Sources */ = {isa = PBXBuildFile; fileRef = FA53118A1744C920002711E1 /* UIStepper+FlatUI.m */; };
		FA5311971744C920002711E1 /* UITabBar+FlatUI.m in Sources */ = {isa = PBXBuildFile; fileRef = FA53118C1744C920002711E1 /* UITabBar+FlatUI.m */; };
		FA6498991744CACB004B1A74 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = FA6498981744CACB004B1A74 /* ViewController.m */; };
		FA6498A71744CB0A004B1A74 /* Lato-Bold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = FA64989D1744CB0A004B1A74 /* Lato-Bold.ttf */; };
		FA6498AB1744CB0A004B1A74 /* Lato-Italic.ttf in Resources */ = {isa = PBXBuildFile; fileRef = FA6498A11744CB0A004B1A74 /* Lato-Italic.ttf */; };
		FA6498AC1744CB0A004B1A74 /* Lato-Light.ttf in Resources */ = {isa = PBXBuildFile; fileRef = FA6498A21744CB0A004B1A74 /* Lato-Light.ttf */; };
		FA6498AE1744CB0A004B1A74 /* Lato-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = FA6498A41744CB0A004B1A74 /* Lato-Regular.ttf */; };
		FA6498B01744CB83004B1A74 /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA6498AF1744CB83004B1A74 /* CoreText.framework */; };
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
		4F560ED417599BBE00AE48E7 /* ViewController_iPad.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ViewController_iPad.xib; sourceTree = "<group>"; };
		53C7501F1811DAD60059CDC6 /* FlatUIKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FlatUIKit.h; sourceTree = "<group>"; };
		53C750201811DAD60059CDC6 /* FUITextField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FUITextField.h; sourceTree = "<group>"; };
		53C750211811DAD60059CDC6 /* FUITextField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FUITextField.m; sourceTree = "<group>"; };
		53C750221811DAD60059CDC6 /* UIToolbar+FlatUI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIToolbar+FlatUI.h"; sourceTree = "<group>"; };
		53C750231811DAD60059CDC6 /* UIToolbar+FlatUI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIToolbar+FlatUI.m"; sourceTree = "<group>"; };
		6F4F7CD21746884200D9F472 /* FUISegmentedControl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FUISegmentedControl.h; sourceTree = "<group>"; };
		6F4F7CD31746884200D9F472 /* FUISegmentedControl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FUISegmentedControl.m; sourceTree = "<group>"; };
		6FF9CE3A1745476B004BEFAD /* UIProgressView+FlatUI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIProgressView+FlatUI.h"; sourceTree = "<group>"; };
		6FF9CE3B1745476B004BEFAD /* UIProgressView+FlatUI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIProgressView+FlatUI.m"; sourceTree = "<group>"; };
		A04638701780F2BD00EF98AF /* UIPopoverController+FlatUI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIPopoverController+FlatUI.m"; sourceTree = "<group>"; };
		A04638711780F2BD00EF98AF /* UIPopoverController+FlatUI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIPopoverController+FlatUI.h"; sourceTree = "<group>"; };
		A09F8892175FB5D800AAC740 /* FUIPopoverBackgroundView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FUIPopoverBackgroundView.h; sourceTree = "<group>"; };
		A09F8893175FB5D800AAC740 /* FUIPopoverBackgroundView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FUIPopoverBackgroundView.m; sourceTree = "<group>"; };
		C1DA68311758953900926483 /* UITableViewCell+FlatUI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UITableViewCell+FlatUI.h"; sourceTree = "<group>"; };
		C1DA68321758953900926483 /* UITableViewCell+FlatUI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UITableViewCell+FlatUI.m"; sourceTree = "<group>"; };
		C1DA6837175895C500926483 /* FUICellBackgroundView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FUICellBackgroundView.h; sourceTree = "<group>"; };
		C1DA6838175895C500926483 /* FUICellBackgroundView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FUICellBackgroundView.m; sourceTree = "<group>"; };
		C1DA683A1758972C00926483 /* TableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TableViewController.h; sourceTree = "<group>"; };
		C1DA683B1758972C00926483 /* TableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TableViewController.m; sourceTree = "<group>"; };
		F6172C9C1A4B21D30099EA30 /* NSString+Icons.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+Icons.h"; sourceTree = "<group>"; };
		F6172C9D1A4B21D30099EA30 /* NSString+Icons.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+Icons.m"; sourceTree = "<group>"; };
		F6172CA01A4B37B10099EA30 /* IconViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IconViewController.h; sourceTree = "<group>"; };
		F6172CA11A4B37B10099EA30 /* IconViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IconViewController.m; sourceTree = "<group>"; };
		F6172CA31A4B3F420099EA30 /* flat-ui-icons-regular.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "flat-ui-icons-regular.ttf"; sourceTree = "<group>"; };
		FA53114C1744C7C1002711E1 /* FlatUIKitExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = FlatUIKitExample.app; sourceTree = BUILT_PRODUCTS_DIR; };
		FA53114F1744C7C1002711E1 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
		FA5311511744C7C1002711E1 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
		FA5311531744C7C1002711E1 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
		FA5311571744C7C1002711E1 /* FlatUIKitExample-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "FlatUIKitExample-Info.plist"; sourceTree = "<group>"; };
		FA5311591744C7C1002711E1 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
		FA53115B1744C7C1002711E1 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
		FA53115D1744C7C1002711E1 /* FlatUIKitExample-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "FlatUIKitExample-Prefix.pch"; sourceTree = "<group>"; };
		FA53115E1744C7C1002711E1 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
		FA53115F1744C7C1002711E1 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
		FA5311611744C7C1002711E1 /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = "<group>"; };
		FA5311631744C7C1002711E1 /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default@2x.png"; sourceTree = "<group>"; };
		FA5311651744C7C1002711E1 /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = "<group>"; };
		FA5311671744C7C1002711E1 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
		FA5311681744C7C1002711E1 /* ViewController_iPhone.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ViewController_iPhone.xib; sourceTree = "<group>"; };
		FA5311771744C920002711E1 /* FUIAlertView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FUIAlertView.h; sourceTree = "<group>"; };
		FA5311781744C920002711E1 /* FUIAlertView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FUIAlertView.m; sourceTree = "<group>"; };
		FA5311791744C920002711E1 /* FUIButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FUIButton.h; sourceTree = "<group>"; };
		FA53117A1744C920002711E1 /* FUIButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FUIButton.m; sourceTree = "<group>"; };
		FA53117B1744C920002711E1 /* FUISwitch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FUISwitch.h; sourceTree = "<group>"; };
		FA53117C1744C920002711E1 /* FUISwitch.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FUISwitch.m; sourceTree = "<group>"; };
		FA53117D1744C920002711E1 /* UIBarButtonItem+FlatUI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIBarButtonItem+FlatUI.h"; sourceTree = "<group>"; };
		FA53117E1744C920002711E1 /* UIBarButtonItem+FlatUI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIBarButtonItem+FlatUI.m"; sourceTree = "<group>"; };
		FA53117F1744C920002711E1 /* UIColor+FlatUI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIColor+FlatUI.h"; sourceTree = "<group>"; };
		FA5311801744C920002711E1 /* UIColor+FlatUI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIColor+FlatUI.m"; sourceTree = "<group>"; };
		FA5311811744C920002711E1 /* UIFont+FlatUI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIFont+FlatUI.h"; sourceTree = "<group>"; };
		FA5311821744C920002711E1 /* UIFont+FlatUI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIFont+FlatUI.m"; sourceTree = "<group>"; };
		FA5311831744C920002711E1 /* UIImage+FlatUI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImage+FlatUI.h"; sourceTree = "<group>"; };
		FA5311841744C920002711E1 /* UIImage+FlatUI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIImage+FlatUI.m"; sourceTree = "<group>"; };
		FA5311851744C920002711E1 /* UINavigationBar+FlatUI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UINavigationBar+FlatUI.h"; sourceTree = "<group>"; };
		FA5311861744C920002711E1 /* UINavigationBar+FlatUI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UINavigationBar+FlatUI.m"; sourceTree = "<group>"; };
		FA5311871744C920002711E1 /* UISlider+FlatUI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UISlider+FlatUI.h"; sourceTree = "<group>"; };
		FA5311881744C920002711E1 /* UISlider+FlatUI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UISlider+FlatUI.m"; sourceTree = "<group>"; };
		FA5311891744C920002711E1 /* UIStepper+FlatUI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIStepper+FlatUI.h"; sourceTree = "<group>"; };
		FA53118A1744C920002711E1 /* UIStepper+FlatUI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIStepper+FlatUI.m"; sourceTree = "<group>"; };
		FA53118B1744C920002711E1 /* UITabBar+FlatUI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UITabBar+FlatUI.h"; sourceTree = "<group>"; };
		FA53118C1744C920002711E1 /* UITabBar+FlatUI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UITabBar+FlatUI.m"; sourceTree = "<group>"; };
		FA6498981744CACB004B1A74 /* ViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; };
		FA64989D1744CB0A004B1A74 /* Lato-Bold.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Lato-Bold.ttf"; sourceTree = "<group>"; };
		FA6498A11744CB0A004B1A74 /* Lato-Italic.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Lato-Italic.ttf"; sourceTree = "<group>"; };
		FA6498A21744CB0A004B1A74 /* Lato-Light.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Lato-Light.ttf"; sourceTree = "<group>"; };
		FA6498A41744CB0A004B1A74 /* Lato-Regular.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Lato-Regular.ttf"; sourceTree = "<group>"; };
		FA6498AF1744CB83004B1A74 /* CoreText.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = System/Library/Frameworks/CoreText.framework; sourceTree = SDKROOT; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		FA5311491744C7C1002711E1 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				FA6498B01744CB83004B1A74 /* CoreText.framework in Frameworks */,
				FA5311501744C7C1002711E1 /* UIKit.framework in Frameworks */,
				FA5311521744C7C1002711E1 /* Foundation.framework in Frameworks */,
				FA5311541744C7C1002711E1 /* CoreGraphics.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		FA5311431744C7C1002711E1 = {
			isa = PBXGroup;
			children = (
				FA5311551744C7C1002711E1 /* FlatUIKitExample */,
				FA53114E1744C7C1002711E1 /* Frameworks */,
				FA53114D1744C7C1002711E1 /* Products */,
				FA5311731744C8FC002711E1 /* Vendor */,
				FA64989A1744CB0A004B1A74 /* Resources */,
			);
			sourceTree = "<group>";
		};
		FA53114D1744C7C1002711E1 /* Products */ = {
			isa = PBXGroup;
			children = (
				FA53114C1744C7C1002711E1 /* FlatUIKitExample.app */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		FA53114E1744C7C1002711E1 /* Frameworks */ = {
			isa = PBXGroup;
			children = (
				FA6498AF1744CB83004B1A74 /* CoreText.framework */,
				FA53114F1744C7C1002711E1 /* UIKit.framework */,
				FA5311511744C7C1002711E1 /* Foundation.framework */,
				FA5311531744C7C1002711E1 /* CoreGraphics.framework */,
			);
			name = Frameworks;
			sourceTree = "<group>";
		};
		FA5311551744C7C1002711E1 /* FlatUIKitExample */ = {
			isa = PBXGroup;
			children = (
				FA53115E1744C7C1002711E1 /* AppDelegate.h */,
				FA53115F1744C7C1002711E1 /* AppDelegate.m */,
				FA5311671744C7C1002711E1 /* ViewController.h */,
				FA6498981744CACB004B1A74 /* ViewController.m */,
				FA5311681744C7C1002711E1 /* ViewController_iPhone.xib */,
				4F560ED417599BBE00AE48E7 /* ViewController_iPad.xib */,
				C1DA683A1758972C00926483 /* TableViewController.h */,
				C1DA683B1758972C00926483 /* TableViewController.m */,
				F6172CA01A4B37B10099EA30 /* IconViewController.h */,
				F6172CA11A4B37B10099EA30 /* IconViewController.m */,
				FA5311561744C7C1002711E1 /* Supporting Files */,
			);
			path = FlatUIKitExample;
			sourceTree = "<group>";
		};
		FA5311561744C7C1002711E1 /* Supporting Files */ = {
			isa = PBXGroup;
			children = (
				FA5311571744C7C1002711E1 /* FlatUIKitExample-Info.plist */,
				FA5311581744C7C1002711E1 /* InfoPlist.strings */,
				FA53115B1744C7C1002711E1 /* main.m */,
				FA53115D1744C7C1002711E1 /* FlatUIKitExample-Prefix.pch */,
				FA5311611744C7C1002711E1 /* Default.png */,
				FA5311631744C7C1002711E1 /* Default@2x.png */,
				FA5311651744C7C1002711E1 /* Default-568h@2x.png */,
			);
			name = "Supporting Files";
			sourceTree = "<group>";
		};
		FA5311731744C8FC002711E1 /* Vendor */ = {
			isa = PBXGroup;
			children = (
				FA5311741744C910002711E1 /* FlatUIKit */,
			);
			name = Vendor;
			sourceTree = "<group>";
		};
		FA5311741744C910002711E1 /* FlatUIKit */ = {
			isa = PBXGroup;
			children = (
				FA5311751744C920002711E1 /* Classes */,
			);
			name = FlatUIKit;
			sourceTree = "<group>";
		};
		FA5311751744C920002711E1 /* Classes */ = {
			isa = PBXGroup;
			children = (
				FA5311761744C920002711E1 /* ios */,
			);
			name = Classes;
			path = ../Classes;
			sourceTree = "<group>";
		};
		FA5311761744C920002711E1 /* ios */ = {
			isa = PBXGroup;
			children = (
				53C7501F1811DAD60059CDC6 /* FlatUIKit.h */,
				53C750201811DAD60059CDC6 /* FUITextField.h */,
				53C750211811DAD60059CDC6 /* FUITextField.m */,
				53C750221811DAD60059CDC6 /* UIToolbar+FlatUI.h */,
				53C750231811DAD60059CDC6 /* UIToolbar+FlatUI.m */,
				A09F8892175FB5D800AAC740 /* FUIPopoverBackgroundView.h */,
				A09F8893175FB5D800AAC740 /* FUIPopoverBackgroundView.m */,
				6FF9CE3A1745476B004BEFAD /* UIProgressView+FlatUI.h */,
				6FF9CE3B1745476B004BEFAD /* UIProgressView+FlatUI.m */,
				FA5311771744C920002711E1 /* FUIAlertView.h */,
				FA5311781744C920002711E1 /* FUIAlertView.m */,
				FA5311791744C920002711E1 /* FUIButton.h */,
				FA53117A1744C920002711E1 /* FUIButton.m */,
				C1DA6837175895C500926483 /* FUICellBackgroundView.h */,
				C1DA6838175895C500926483 /* FUICellBackgroundView.m */,
				FA53117B1744C920002711E1 /* FUISwitch.h */,
				FA53117C1744C920002711E1 /* FUISwitch.m */,
				FA53117D1744C920002711E1 /* UIBarButtonItem+FlatUI.h */,
				FA53117E1744C920002711E1 /* UIBarButtonItem+FlatUI.m */,
				FA53117F1744C920002711E1 /* UIColor+FlatUI.h */,
				FA5311801744C920002711E1 /* UIColor+FlatUI.m */,
				FA5311811744C920002711E1 /* UIFont+FlatUI.h */,
				FA5311821744C920002711E1 /* UIFont+FlatUI.m */,
				FA5311831744C920002711E1 /* UIImage+FlatUI.h */,
				FA5311841744C920002711E1 /* UIImage+FlatUI.m */,
				FA5311851744C920002711E1 /* UINavigationBar+FlatUI.h */,
				FA5311861744C920002711E1 /* UINavigationBar+FlatUI.m */,
				FA5311871744C920002711E1 /* UISlider+FlatUI.h */,
				FA5311881744C920002711E1 /* UISlider+FlatUI.m */,
				FA5311891744C920002711E1 /* UIStepper+FlatUI.h */,
				FA53118A1744C920002711E1 /* UIStepper+FlatUI.m */,
				FA53118B1744C920002711E1 /* UITabBar+FlatUI.h */,
				FA53118C1744C920002711E1 /* UITabBar+FlatUI.m */,
				6F4F7CD21746884200D9F472 /* FUISegmentedControl.h */,
				6F4F7CD31746884200D9F472 /* FUISegmentedControl.m */,
				C1DA68311758953900926483 /* UITableViewCell+FlatUI.h */,
				C1DA68321758953900926483 /* UITableViewCell+FlatUI.m */,
				A04638711780F2BD00EF98AF /* UIPopoverController+FlatUI.h */,
				A04638701780F2BD00EF98AF /* UIPopoverController+FlatUI.m */,
				F6172C9C1A4B21D30099EA30 /* NSString+Icons.h */,
				F6172C9D1A4B21D30099EA30 /* NSString+Icons.m */,
			);
			path = ios;
			sourceTree = "<group>";
		};
		FA64989A1744CB0A004B1A74 /* Resources */ = {
			isa = PBXGroup;
			children = (
				F6172CA31A4B3F420099EA30 /* flat-ui-icons-regular.ttf */,
				FA64989D1744CB0A004B1A74 /* Lato-Bold.ttf */,
				FA6498A11744CB0A004B1A74 /* Lato-Italic.ttf */,
				FA6498A21744CB0A004B1A74 /* Lato-Light.ttf */,
				FA6498A41744CB0A004B1A74 /* Lato-Regular.ttf */,
			);
			name = Resources;
			path = ../Resources;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		FA53114B1744C7C1002711E1 /* FlatUIKitExample */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = FA53116F1744C7C1002711E1 /* Build configuration list for PBXNativeTarget "FlatUIKitExample" */;
			buildPhases = (
				FA5311481744C7C1002711E1 /* Sources */,
				FA5311491744C7C1002711E1 /* Frameworks */,
				FA53114A1744C7C1002711E1 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = FlatUIKitExample;
			productName = FlatUIKitExample;
			productReference = FA53114C1744C7C1002711E1 /* FlatUIKitExample.app */;
			productType = "com.apple.product-type.application";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		FA5311441744C7C1002711E1 /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastUpgradeCheck = 0460;
			};
			buildConfigurationList = FA5311471744C7C1002711E1 /* Build configuration list for PBXProject "FlatUIKitExample" */;
			compatibilityVersion = "Xcode 3.2";
			developmentRegion = English;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
			);
			mainGroup = FA5311431744C7C1002711E1;
			productRefGroup = FA53114D1744C7C1002711E1 /* Products */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				FA53114B1744C7C1002711E1 /* FlatUIKitExample */,
			);
		};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
		FA53114A1744C7C1002711E1 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				FA53115A1744C7C1002711E1 /* InfoPlist.strings in Resources */,
				FA5311621744C7C1002711E1 /* Default.png in Resources */,
				FA5311641744C7C1002711E1 /* Default@2x.png in Resources */,
				F6172CA41A4B3F4F0099EA30 /* flat-ui-icons-regular.ttf in Resources */,
				FA5311661744C7C1002711E1 /* Default-568h@2x.png in Resources */,
				FA6498A71744CB0A004B1A74 /* Lato-Bold.ttf in Resources */,
				FA6498AB1744CB0A004B1A74 /* Lato-Italic.ttf in Resources */,
				FA6498AC1744CB0A004B1A74 /* Lato-Light.ttf in Resources */,
				FA6498AE1744CB0A004B1A74 /* Lato-Regular.ttf in Resources */,
				4F560ED517599BBE00AE48E7 /* ViewController_iPad.xib in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		FA5311481744C7C1002711E1 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				53C750241811DAD60059CDC6 /* FUITextField.m in Sources */,
				FA53115C1744C7C1002711E1 /* main.m in Sources */,
				FA5311601744C7C1002711E1 /* AppDelegate.m in Sources */,
				FA5311691744C7C1002711E1 /* ViewController_iPhone.xib in Sources */,
				FA53118D1744C920002711E1 /* FUIAlertView.m in Sources */,
				FA53118E1744C920002711E1 /* FUIButton.m in Sources */,
				FA53118F1744C920002711E1 /* FUISwitch.m in Sources */,
				FA5311901744C920002711E1 /* UIBarButtonItem+FlatUI.m in Sources */,
				FA5311911744C920002711E1 /* UIColor+FlatUI.m in Sources */,
				F6172CA21A4B37B10099EA30 /* IconViewController.m in Sources */,
				FA5311921744C920002711E1 /* UIFont+FlatUI.m in Sources */,
				FA5311931744C920002711E1 /* UIImage+FlatUI.m in Sources */,
				FA5311941744C920002711E1 /* UINavigationBar+FlatUI.m in Sources */,
				FA5311951744C920002711E1 /* UISlider+FlatUI.m in Sources */,
				FA5311961744C920002711E1 /* UIStepper+FlatUI.m in Sources */,
				53C750251811DAD60059CDC6 /* UIToolbar+FlatUI.m in Sources */,
				FA5311971744C920002711E1 /* UITabBar+FlatUI.m in Sources */,
				FA6498991744CACB004B1A74 /* ViewController.m in Sources */,
				6FF9CE3C1745476B004BEFAD /* UIProgressView+FlatUI.m in Sources */,
				6F4F7CD41746884200D9F472 /* FUISegmentedControl.m in Sources */,
				C1DA68331758953900926483 /* UITableViewCell+FlatUI.m in Sources */,
				C1DA6839175895C500926483 /* FUICellBackgroundView.m in Sources */,
				C1DA683C1758972C00926483 /* TableViewController.m in Sources */,
				A09F8894175FB5D800AAC740 /* FUIPopoverBackgroundView.m in Sources */,
				A04638721780F2BD00EF98AF /* UIPopoverController+FlatUI.m in Sources */,
				F6172C9E1A4B21D30099EA30 /* NSString+Icons.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXVariantGroup section */
		FA5311581744C7C1002711E1 /* InfoPlist.strings */ = {
			isa = PBXVariantGroup;
			children = (
				FA5311591744C7C1002711E1 /* en */,
			);
			name = InfoPlist.strings;
			sourceTree = "<group>";
		};
/* End PBXVariantGroup section */

/* Begin XCBuildConfiguration section */
		FA53116D1744C7C1002711E1 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				COPY_PHASE_STRIP = NO;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PREPROCESSOR_DEFINITIONS = (
					"DEBUG=1",
					"$(inherited)",
				);
				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				IPHONEOS_DEPLOYMENT_TARGET = 6.1;
				ONLY_ACTIVE_ARCH = YES;
				SDKROOT = iphoneos;
			};
			name = Debug;
		};
		FA53116E1744C7C1002711E1 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				COPY_PHASE_STRIP = YES;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				IPHONEOS_DEPLOYMENT_TARGET = 6.1;
				OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
				SDKROOT = iphoneos;
				VALIDATE_PRODUCT = YES;
			};
			name = Release;
		};
		FA5311701744C7C1002711E1 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = "FlatUIKitExample/FlatUIKitExample-Prefix.pch";
				INFOPLIST_FILE = "FlatUIKitExample/FlatUIKitExample-Info.plist";
				IPHONEOS_DEPLOYMENT_TARGET = 6.1;
				PRODUCT_NAME = "$(TARGET_NAME)";
				TARGETED_DEVICE_FAMILY = "1,2";
				WRAPPER_EXTENSION = app;
			};
			name = Debug;
		};
		FA5311711744C7C1002711E1 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = "FlatUIKitExample/FlatUIKitExample-Prefix.pch";
				INFOPLIST_FILE = "FlatUIKitExample/FlatUIKitExample-Info.plist";
				IPHONEOS_DEPLOYMENT_TARGET = 6.1;
				PRODUCT_NAME = "$(TARGET_NAME)";
				TARGETED_DEVICE_FAMILY = "1,2";
				WRAPPER_EXTENSION = app;
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		FA5311471744C7C1002711E1 /* Build configuration list for PBXProject "FlatUIKitExample" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				FA53116D1744C7C1002711E1 /* Debug */,
				FA53116E1744C7C1002711E1 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		FA53116F1744C7C1002711E1 /* Build configuration list for PBXNativeTarget "FlatUIKitExample" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				FA5311701744C7C1002711E1 /* Debug */,
				FA5311711744C7C1002711E1 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = FA5311441744C7C1002711E1 /* Project object */;
}


================================================
FILE: FlatUIKit.podspec
================================================
Pod::Spec.new do |s|
  s.name         = "FlatUIKit"
  s.version      = "1.6.2"
  s.summary      = "A collection of awesome flat UI components for iOS."
  s.homepage     = "https://github.com/Grouper/FlatUIKit"
  s.license      = 'MIT'
  s.authors      = { "Jamie Matthews" => "jmatthews08@gmail.com" }
  s.source       = { :git => "https://github.com/Grouper/FlatUIKit.git", :tag => "1.6.2" }
  s.platform     = :ios, '6.0'
  s.source_files = 'Classes', 'Classes/**/*.{h,m}'

  s.resources    = "Resources/*"
  s.frameworks   = 'QuartzCore', 'CoreText'
  s.requires_arc = true
end


================================================
FILE: LICENSE
================================================
The MIT License (MIT)

Copyright (c) 2013 Grouper, Inc

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

================================================
FILE: README.markdown
================================================
Background
======
FlatUIKit was originally 
Download .txt
gitextract__euyavku/

├── .gitignore
├── .travis.yml
├── Classes/
│   └── ios/
│       ├── FUIAlertView.h
│       ├── FUIAlertView.m
│       ├── FUIButton.h
│       ├── FUIButton.m
│       ├── FUICellBackgroundView.h
│       ├── FUICellBackgroundView.m
│       ├── FUIPopoverBackgroundView.h
│       ├── FUIPopoverBackgroundView.m
│       ├── FUISegmentedControl.h
│       ├── FUISegmentedControl.m
│       ├── FUISwitch.h
│       ├── FUISwitch.m
│       ├── FUITextField.h
│       ├── FUITextField.m
│       ├── FlatUIKit.h
│       ├── NSString+Icons.h
│       ├── NSString+Icons.m
│       ├── UIBarButtonItem+FlatUI.h
│       ├── UIBarButtonItem+FlatUI.m
│       ├── UIColor+FlatUI.h
│       ├── UIColor+FlatUI.m
│       ├── UIFont+FlatUI.h
│       ├── UIFont+FlatUI.m
│       ├── UIImage+FlatUI.h
│       ├── UIImage+FlatUI.m
│       ├── UINavigationBar+FlatUI.h
│       ├── UINavigationBar+FlatUI.m
│       ├── UIPopoverController+FlatUI.h
│       ├── UIPopoverController+FlatUI.m
│       ├── UIProgressView+FlatUI.h
│       ├── UIProgressView+FlatUI.m
│       ├── UISlider+FlatUI.h
│       ├── UISlider+FlatUI.m
│       ├── UIStepper+FlatUI.h
│       ├── UIStepper+FlatUI.m
│       ├── UITabBar+FlatUI.h
│       ├── UITabBar+FlatUI.m
│       ├── UITableViewCell+FlatUI.h
│       ├── UITableViewCell+FlatUI.m
│       ├── UIToolbar+FlatUI.h
│       └── UIToolbar+FlatUI.m
├── Example/
│   ├── .gitignore
│   ├── FlatUIKitExample/
│   │   ├── AppDelegate.h
│   │   ├── AppDelegate.m
│   │   ├── FlatUIKitExample-Info.plist
│   │   ├── FlatUIKitExample-Prefix.pch
│   │   ├── IconViewController.h
│   │   ├── IconViewController.m
│   │   ├── TableViewController.h
│   │   ├── TableViewController.m
│   │   ├── ViewController.h
│   │   ├── ViewController.m
│   │   ├── ViewController_iPad.xib
│   │   ├── ViewController_iPhone.xib
│   │   ├── en.lproj/
│   │   │   └── InfoPlist.strings
│   │   └── main.m
│   └── FlatUIKitExample.xcodeproj/
│       └── project.pbxproj
├── FlatUIKit.podspec
├── LICENSE
├── README.markdown
├── Rakefile
└── Tests/
    ├── FUIKitTests/
    │   ├── FUIAppDelegate.h
    │   ├── FUIAppDelegate.m
    │   ├── FUIKitTests-Info.plist
    │   ├── FUIKitTests-Prefix.pch
    │   ├── en.lproj/
    │   │   └── InfoPlist.strings
    │   └── main.m
    ├── FUIKitTests.xcodeproj/
    │   ├── project.pbxproj
    │   └── xcshareddata/
    │       └── xcschemes/
    │           └── FUIKitTests.xcscheme
    ├── FUIKitTestsTests/
    │   ├── FUIAlertViewTests.m
    │   ├── FUIKitTestsTests-Info.plist
    │   ├── FUITableViewCellTests.m
    │   ├── SenTestCase+FUITestHelpers.h
    │   ├── SenTestCase+FUITestHelpers.m
    │   └── en.lproj/
    │       └── InfoPlist.strings
    ├── Podfile
    └── Schemes/
        └── FUIKitTests.xcscheme
Download .txt
SYMBOL INDEX (1 symbols across 1 files)

FILE: Classes/ios/NSString+Icons.h
  type FUITriangleUp (line 10) | typedef NS_ENUM(NSInteger, FlatUIIcon) {
Condensed preview — 79 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (274K chars).
[
  {
    "path": ".gitignore",
    "chars": 155,
    "preview": ".DS_Store\n*.swp\n*~.nib\n.idea\nbuild/\nbin/\n.idea/\n*.pbxuser\n*.perspective\n*.perspectivev3\nxcuserdata\nobjects\nSettings.bund"
  },
  {
    "path": ".travis.yml",
    "chars": 184,
    "preview": "language: objective-c\nbefore_install:\n  - brew update\n  - brew install xctool --HEAD\n  - gem install cocoapods\n  - cd Te"
  },
  {
    "path": "Classes/ios/FUIAlertView.h",
    "chars": 5342,
    "preview": "//\n//  FUIAlertView.h\n//  FlatUI\n//\n//  Created by Jack Flintermann on 5/7/13.\n//  Copyright (c) 2013 Jack Flintermann. "
  },
  {
    "path": "Classes/ios/FUIAlertView.m",
    "chars": 18101,
    "preview": "//\n//  FUIAlertView.m\n//  FlatUI\n//\n//  Created by Jack Flintermann on 5/7/13.\n//  Copyright (c) 2013 Jack Flintermann. "
  },
  {
    "path": "Classes/ios/FUIButton.h",
    "chars": 800,
    "preview": "//\n//  FUIButton.h\n//  FlatUI\n//\n//  Created by Jack Flintermann on 5/7/13.\n//  Copyright (c) 2013 Jack Flintermann. All"
  },
  {
    "path": "Classes/ios/FUIButton.m",
    "chars": 3839,
    "preview": "//\n//  FUIButton.m\n//  FlatUI\n//\n//  Created by Jack Flintermann on 5/7/13.\n//  Copyright (c) 2013 Jack Flintermann. All"
  },
  {
    "path": "Classes/ios/FUICellBackgroundView.h",
    "chars": 542,
    "preview": "//\n//  UACellBackgroundView.h\n//  FlatUI\n//\n//  Created by Maciej Swic on 2013-05-30.\n//  Licensed under the MIT license"
  },
  {
    "path": "Classes/ios/FUICellBackgroundView.m",
    "chars": 1860,
    "preview": "//\n//  UACellBackgroundView.m\n//  FlatUI\n//\n//  Created by Maciej Swic on 2013-05-30.\n//  Licensed under the MIT license"
  },
  {
    "path": "Classes/ios/FUIPopoverBackgroundView.h",
    "chars": 306,
    "preview": "//\n//  FUIPopoverBackgroundView.h\n//  FlatUIKitExample\n//\n//  Created by Jack Flintermann on 6/5/13.\n//\n//\n\n#import <UIK"
  },
  {
    "path": "Classes/ios/FUIPopoverBackgroundView.m",
    "chars": 5287,
    "preview": "//\n//  FUIPopoverBackgroundView.m\n//  FlatUIKitExample\n//\n//  Created by Jack Flintermann on 6/5/13.\n//  Partial impleme"
  },
  {
    "path": "Classes/ios/FUISegmentedControl.h",
    "chars": 1576,
    "preview": "//\n//  FUISegmentedControl.h\n//  FlatUIKitExample\n//\n//  Created by Alex Medearis on 5/17/13.\n//\n//\n\n#import <UIKit/UIKi"
  },
  {
    "path": "Classes/ios/FUISegmentedControl.m",
    "chars": 14071,
    "preview": "//\n//  FUISegmentedControl.m\n//  FlatUIKitExample\n//\n//  Created by Alex Medearis on 5/17/13.\n//\n//\n\n#import \"FUISegment"
  },
  {
    "path": "Classes/ios/FUISwitch.h",
    "chars": 1005,
    "preview": "//\n//  FUISwitch.h\n//  FlatUI\n//\n//  Created by Jack Flintermann on 5/3/13.\n//  Copyright (c) 2013 Jack Flintermann. All"
  },
  {
    "path": "Classes/ios/FUISwitch.m",
    "chars": 7013,
    "preview": "//\n//  FUISwitch.m\n//  FlatUI\n//\n//  Created by Jack Flintermann on 5/3/13.\n//  Copyright (c) 2013 Jack Flintermann. All"
  },
  {
    "path": "Classes/ios/FUITextField.h",
    "chars": 594,
    "preview": "//\n//  FUITextField.h\n//  FlatUI\n//\n//  Created by Andrej Mihajlov on 8/25/13.\n//  Copyright (c) 2013 Andrej Mihajlov. A"
  },
  {
    "path": "Classes/ios/FUITextField.m",
    "chars": 3511,
    "preview": "//\n//  FUITextField.m\n//  FlatUI\n//\n//  Created by Andrej Mihajlov on 8/25/13.\n//  Copyright (c) 2013 Andrej Mihajlov. A"
  },
  {
    "path": "Classes/ios/FlatUIKit.h",
    "chars": 780,
    "preview": "//\n//  FlatUIKit.h\n//  FlatUI\n//\n//  Created by Keisuke Kimura on 6/8/13.\n//  Copyright (c) 2013 Keisuke Kimura. All rig"
  },
  {
    "path": "Classes/ios/NSString+Icons.h",
    "chars": 1986,
    "preview": "//\n//  NSString+Icons.h\n//  FlatUIKitExample\n//\n//  Created by Jamie Matthews on 12/24/14.\n//\n//\n\n#import <Foundation/Fo"
  },
  {
    "path": "Classes/ios/NSString+Icons.m",
    "chars": 1730,
    "preview": "//\n//  NSString+Icons.m\n//  FlatUIKitExample\n//\n//  Created by Jamie Matthews on 12/24/14.\n//\n// Credit to https://githu"
  },
  {
    "path": "Classes/ios/UIBarButtonItem+FlatUI.h",
    "chars": 1289,
    "preview": "//\n//  UIBarButtonItem+FlatUI.h\n//  FlatUI\n//\n//  Created by Jack Flintermann on 5/8/13.\n//  Copyright (c) 2013 Jack Fli"
  },
  {
    "path": "Classes/ios/UIBarButtonItem+FlatUI.m",
    "chars": 5494,
    "preview": "//\n//  UIBarButtonItem+FlatUI.m\n//  FlatUI\n//\n//  Created by Jack Flintermann on 5/8/13.\n//  Copyright (c) 2013 Jack Fli"
  },
  {
    "path": "Classes/ios/UIColor+FlatUI.h",
    "chars": 1068,
    "preview": "//\n//  UIColor+FlatUI.h\n//  FlatUI\n//\n//  Created by Jack Flintermann on 5/3/13.\n//  Copyright (c) 2013 Jack Flintermann"
  },
  {
    "path": "Classes/ios/UIColor+FlatUI.m",
    "chars": 7434,
    "preview": "//\n//  UIColor+FlatUI.m\n//  FlatUI\n//\n//  Created by Jack Flintermann on 5/3/13.\n//  Copyright (c) 2013 Jack Flintermann"
  },
  {
    "path": "Classes/ios/UIFont+FlatUI.h",
    "chars": 431,
    "preview": "//\n//  UIFont+FlatUI.h\n//  FlatUI\n//\n//  Created by Jack Flintermann on 5/7/13.\n//  Copyright (c) 2013 Jack Flintermann."
  },
  {
    "path": "Classes/ios/UIFont+FlatUI.m",
    "chars": 1367,
    "preview": "//\n//  UIFont+FlatUI.m\n//  FlatUI\n//\n//  Created by Jack Flintermann on 5/7/13.\n//  Copyright (c) 2013 Jack Flintermann."
  },
  {
    "path": "Classes/ios/UIImage+FlatUI.h",
    "chars": 988,
    "preview": "//\n//  UIImage+Color.h\n//  FlatUI\n//\n//  Created by Jack Flintermann on 5/3/13.\n//  Copyright (c) 2013 Jack Flintermann."
  },
  {
    "path": "Classes/ios/UIImage+FlatUI.m",
    "chars": 7079,
    "preview": "//\n//  UIImage+Color.m\n//  FlatUI\n//\n//  Created by Jack Flintermann on 5/3/13.\n//  Copyright (c) 2013 Jack Flintermann."
  },
  {
    "path": "Classes/ios/UINavigationBar+FlatUI.h",
    "chars": 309,
    "preview": "//\n//  UINavigationBar+FlatUI.h\n//  FlatUI\n//\n//  Created by Jack Flintermann on 5/3/13.\n//  Copyright (c) 2013 Jack Fli"
  },
  {
    "path": "Classes/ios/UINavigationBar+FlatUI.m",
    "chars": 1539,
    "preview": "//\n//  UINavigationBar+FlatUI.m\n//  FlatUI\n//\n//  Created by Jack Flintermann on 5/3/13.\n//  Copyright (c) 2013 Jack Fli"
  },
  {
    "path": "Classes/ios/UIPopoverController+FlatUI.h",
    "chars": 383,
    "preview": "//\n//  UIPopoverController+FlatUI.h\n//  FlatUIKit\n//\n//  Created by Jack Flintermann on 6/29/13.\n//  Copyright (c) 2013 "
  },
  {
    "path": "Classes/ios/UIPopoverController+FlatUI.m",
    "chars": 727,
    "preview": "//\n//  UIPopoverController+FlatUI.m\n//  FlatUIKit\n//\n//  Created by Jack Flintermann on 6/29/13.\n//  Copyright (c) 2013 "
  },
  {
    "path": "Classes/ios/UIProgressView+FlatUI.h",
    "chars": 559,
    "preview": "//\n//  UIProgressView+FlatUI.h\n//  FlatUITestProj\n//\n//  Created by Alex Medearis on 5/16/13.\n//  Copyright (c) 2013 Ale"
  },
  {
    "path": "Classes/ios/UIProgressView+FlatUI.m",
    "chars": 1295,
    "preview": "//\n//  UIProgressView+FlatUI.h\n//  FlatUITestProj\n//\n//  Created by Alex Medearis on 5/16/13.\n//  Copyright (c) 2013 Ale"
  },
  {
    "path": "Classes/ios/UISlider+FlatUI.h",
    "chars": 690,
    "preview": "//\n//  UISlider+FlatUI.h\n//  FlatUI\n//\n//  Created by Jack Flintermann on 5/3/13.\n//  Copyright (c) 2013 Jack Flinterman"
  },
  {
    "path": "Classes/ios/UISlider+FlatUI.m",
    "chars": 1817,
    "preview": "//\n//  UISlider+FlatUI.m\n//  FlatUI\n//\n//  Created by Jack Flintermann on 5/3/13.\n//  Copyright (c) 2013 Jack Flinterman"
  },
  {
    "path": "Classes/ios/UIStepper+FlatUI.h",
    "chars": 459,
    "preview": "//\n//  UIStepper+FlatUI.h\n//  FlatUI\n//\n//  Created by Jack Flintermann on 5/3/13.\n//  Copyright (c) 2013 Jack Flinterma"
  },
  {
    "path": "Classes/ios/UIStepper+FlatUI.m",
    "chars": 2353,
    "preview": "//\n//  UIStepper+FlatUI.m\n//  FlatUI\n//\n//  Created by Jack Flintermann on 5/3/13.\n//  Copyright (c) 2013 Jack Flinterma"
  },
  {
    "path": "Classes/ios/UITabBar+FlatUI.h",
    "chars": 499,
    "preview": "//\n//  UITabBar+FlatUI.h\n//  FlatUI\n//\n//  Created by Jack Flintermann on 5/3/13.\n//  Copyright (c) 2013 Jack Flinterman"
  },
  {
    "path": "Classes/ios/UITabBar+FlatUI.m",
    "chars": 781,
    "preview": "//\n//  UITabBar+FlatUI.m\n//  FlatUI\n//\n//  Created by Jack Flintermann on 5/3/13.\n//  Copyright (c) 2013 Jack Flinterman"
  },
  {
    "path": "Classes/ios/UITableViewCell+FlatUI.h",
    "chars": 655,
    "preview": "//\n//  UITableViewCell+FlatUI.h\n//  FlatUIKitExample\n//\n//  Created by Maciej Swic on 2013-05-31.\n//\n//\n\n#import <UIKit/"
  },
  {
    "path": "Classes/ios/UITableViewCell+FlatUI.m",
    "chars": 2226,
    "preview": "//\n//  UITableViewCell+FlatUI.m\n//  FlatUIKitExample\n//\n//  Created by Maciej Swic on 2013-05-31.\n//\n//\n\n#import \"UITabl"
  },
  {
    "path": "Classes/ios/UIToolbar+FlatUI.h",
    "chars": 325,
    "preview": "//\n// Created by Jonathon Hibbard on 6/13/13.\n// Copyright (c) 2013 Integrated Events. All rights reserved.\n//\n// To cha"
  },
  {
    "path": "Classes/ios/UIToolbar+FlatUI.m",
    "chars": 799,
    "preview": "//\n// Created by Jonathon Hibbard on 6/13/13.\n// Copyright (c) 2013 Integrated Events. All rights reserved.\n//\n// To cha"
  },
  {
    "path": "Example/.gitignore",
    "chars": 184,
    "preview": ".DS_Store\n*.swp\n*~.nib\n.idea\nbuild/\nbin/\n.idea/\n*.pbxuser\n*.perspective\n*.perspectivev3\n\n*.xcodeproj/xcuserdata/*\n*.xcod"
  },
  {
    "path": "Example/FlatUIKitExample/AppDelegate.h",
    "chars": 331,
    "preview": "//\n//  AppDelegate.h\n//  FlatUIKitExample\n//\n//  Created by Alejandro Benito Santos on 5/16/13.\n//\n//\n\n#import <UIKit/UI"
  },
  {
    "path": "Example/FlatUIKitExample/AppDelegate.m",
    "chars": 2554,
    "preview": "//\n//  AppDelegate.m\n//  FlatUIKitExample\n//\n//  Created by Alejandro Benito Santos on 5/16/13.\n//\n//\n\n#import \"AppDeleg"
  },
  {
    "path": "Example/FlatUIKitExample/FlatUIKitExample-Info.plist",
    "chars": 1259,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "Example/FlatUIKitExample/FlatUIKitExample-Prefix.pch",
    "chars": 335,
    "preview": "//\n// Prefix header for all source files of the 'FlatUIKitExample' target in the 'FlatUIKitExample' project\n//\n\n#import "
  },
  {
    "path": "Example/FlatUIKitExample/IconViewController.h",
    "chars": 246,
    "preview": "//\n//  IconViewController.h\n//  FlatUIKitExample\n//\n//  Created by Jamie Matthews on 12/24/14.\n//\n//\n\n#import <UIKit/UIK"
  },
  {
    "path": "Example/FlatUIKitExample/IconViewController.m",
    "chars": 3315,
    "preview": "//\n//  IconViewController.m\n//  FlatUIKitExample\n//\n//  Created by Jamie Matthews on 12/24/14.\n//\n//\n\n#import \"IconViewC"
  },
  {
    "path": "Example/FlatUIKitExample/TableViewController.h",
    "chars": 188,
    "preview": "//\n//  TableViewController.h\n//  FlatUIKitExample\n//\n//  Created by Maciej Swic on 2013-05-31.\n//\n//\n\n#import <UIKit/UIK"
  },
  {
    "path": "Example/FlatUIKitExample/TableViewController.m",
    "chars": 2519,
    "preview": "//\n//  TableViewController.m\n//  FlatUIKitExample\n//\n//  Created by Maciej Swic on 2013-05-31.\n//\n//\n\n#import \"TableView"
  },
  {
    "path": "Example/FlatUIKitExample/ViewController.h",
    "chars": 323,
    "preview": "//\n//  ViewController.h\n//  FlatUI\n//\n//  Created by Jack Flintermann on 5/3/13.\n//  Copyright (c) 2013 Jack Flintermann"
  },
  {
    "path": "Example/FlatUIKitExample/ViewController.m",
    "chars": 12429,
    "preview": "//\n//  ViewController.m\n//  FlatUI\n//\n//  Created by Jack Flintermann on 5/3/13.\n//  Copyright (c) 2013 Jack Flintermann"
  },
  {
    "path": "Example/FlatUIKitExample/ViewController_iPad.xib",
    "chars": 11978,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB\" "
  },
  {
    "path": "Example/FlatUIKitExample/ViewController_iPhone.xib",
    "chars": 11070,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" versi"
  },
  {
    "path": "Example/FlatUIKitExample/en.lproj/InfoPlist.strings",
    "chars": 45,
    "preview": "/* Localized versions of Info.plist keys */\n\n"
  },
  {
    "path": "Example/FlatUIKitExample/main.m",
    "chars": 303,
    "preview": "//\n//  main.m\n//  FlatUIKitExample\n//\n//  Created by Alejandro Benito Santos on 5/16/13.\n//\n//\n\n#import <UIKit/UIKit.h>\n"
  },
  {
    "path": "Example/FlatUIKitExample.xcodeproj/project.pbxproj",
    "chars": 33332,
    "preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 46;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
  },
  {
    "path": "FlatUIKit.podspec",
    "chars": 581,
    "preview": "Pod::Spec.new do |s|\n  s.name         = \"FlatUIKit\"\n  s.version      = \"1.6.2\"\n  s.summary      = \"A collection of aweso"
  },
  {
    "path": "LICENSE",
    "chars": 1078,
    "preview": "The MIT License (MIT)\n\nCopyright (c) 2013 Grouper, Inc\n\nPermission is hereby granted, free of charge, to any person obta"
  },
  {
    "path": "README.markdown",
    "chars": 11122,
    "preview": "Background\n======\nFlatUIKit was originally written by Jack Flintermann in March of 2013, before iOS7 had even come out. "
  },
  {
    "path": "Rakefile",
    "chars": 900,
    "preview": "desc 'Setup the schemes required to run iOS tests'\ntask :prepare do\n  system(%Q{mkdir -p \"Tests/FUIKitTests.xcodeproj/xc"
  },
  {
    "path": "Tests/FUIKitTests/FUIAppDelegate.h",
    "chars": 144,
    "preview": "#import <UIKit/UIKit.h>\n\n@interface FUIAppDelegate : UIResponder <UIApplicationDelegate>\n\n@property (strong, nonatomic) "
  },
  {
    "path": "Tests/FUIKitTests/FUIAppDelegate.m",
    "chars": 195,
    "preview": "#import \"FUIAppDelegate.h\"\n\n@implementation FUIAppDelegate\n\n- (BOOL)application:(UIApplication *)application didFinishLa"
  },
  {
    "path": "Tests/FUIKitTests/FUIKitTests-Info.plist",
    "chars": 1164,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "Tests/FUIKitTests/FUIKitTests-Prefix.pch",
    "chars": 325,
    "preview": "//\n// Prefix header for all source files of the 'FUIKitTests' target in the 'FUIKitTests' project\n//\n\n#import <Availabil"
  },
  {
    "path": "Tests/FUIKitTests/en.lproj/InfoPlist.strings",
    "chars": 45,
    "preview": "/* Localized versions of Info.plist keys */\n\n"
  },
  {
    "path": "Tests/FUIKitTests/main.m",
    "chars": 342,
    "preview": "//\n//  main.m\n//  FUIKitTests\n//\n//  Created by Adam Fraser on 8/06/13.\n//  Copyright (c) 2013 Grouper. All rights reser"
  },
  {
    "path": "Tests/FUIKitTests.xcodeproj/project.pbxproj",
    "chars": 33985,
    "preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 46;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
  },
  {
    "path": "Tests/FUIKitTests.xcodeproj/xcshareddata/xcschemes/FUIKitTests.xcscheme",
    "chars": 4196,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"0460\"\n   version = \"1.3\">\n   <BuildAction\n      "
  },
  {
    "path": "Tests/FUIKitTestsTests/FUIAlertViewTests.m",
    "chars": 6000,
    "preview": "//\n//  FUIKitTestsTests.m\n//  FUIKitTestsTests\n//\n//  Copyright (c) 2013 Grouper. All rights reserved.\n//\n\n#import <SenT"
  },
  {
    "path": "Tests/FUIKitTestsTests/FUIKitTestsTests-Info.plist",
    "chars": 687,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
  },
  {
    "path": "Tests/FUIKitTestsTests/FUITableViewCellTests.m",
    "chars": 1474,
    "preview": "//\n//  FUITableViewCellTests.m\n//  FUIKitTestsTests\n//\n//  Copyright (c) 2013 Grouper. All rights reserved.\n//\n\n#import "
  },
  {
    "path": "Tests/FUIKitTestsTests/SenTestCase+FUITestHelpers.h",
    "chars": 230,
    "preview": "//\n//  SenTestCase+FUIKitTestHelpers.h\n//  FUIKitTests\n//\n//  Copyright (c) 2013 Grouper. All rights reserved.\n//\n\n#impo"
  },
  {
    "path": "Tests/FUIKitTestsTests/SenTestCase+FUITestHelpers.m",
    "chars": 491,
    "preview": "//\n//  SenTestCase+FUIKitTestHelpers.m\n//  FUIKitTests\n//\n//  Copyright (c) 2013 Grouper. All rights reserved.\n//\n\n#impo"
  },
  {
    "path": "Tests/FUIKitTestsTests/en.lproj/InfoPlist.strings",
    "chars": 45,
    "preview": "/* Localized versions of Info.plist keys */\n\n"
  },
  {
    "path": "Tests/Podfile",
    "chars": 34,
    "preview": "platform :ios, 5.0\n\npod 'Expecta'\n"
  },
  {
    "path": "Tests/Schemes/FUIKitTests.xcscheme",
    "chars": 4196,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"0460\"\n   version = \"1.3\">\n   <BuildAction\n      "
  }
]

About this extraction

This page contains the full source code of the Grouper/FlatUIKit GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 79 files (250.9 KB), approximately 68.9k tokens, and a symbol index with 1 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!