Skip to content

Commit

Permalink
Defines NS_ENUM when building for iOS 5 SDK
Browse files Browse the repository at this point in the history
  • Loading branch information
rsobik committed Dec 7, 2012
1 parent 3c7d0d8 commit 0fa2d81
Showing 1 changed file with 35 additions and 30 deletions.
65 changes: 35 additions & 30 deletions POViewFrameBuilder/POViewFrameBuilder.m
Expand Up @@ -8,6 +8,11 @@
#import "POViewFrameBuilder.h"
#import "POGeometry.h"

// We define NS_ENUM in case we build for iOS 5
#ifndef NS_ENUM
#define NS_ENUM(_type, _name) enum _name : _type _name; enum _name : _type
#endif

typedef NS_ENUM(NSUInteger, POViewFrameBuilderEdge) {
POViewFrameBuilderEdgeTop,
POViewFrameBuilderEdgeBottom,
Expand Down Expand Up @@ -41,7 +46,7 @@ + (POViewFrameBuilder *)frameBuilderForView:(UIView *)view {

- (void)setFrame:(CGRect)frame {
_frame = frame;

if (self.automaticallyCommitChanges) {
[self commit];
}
Expand All @@ -59,43 +64,43 @@ - (void)reset {

- (POViewFrameBuilder *)performChangesInGroupWithBlock:(void (^)(void))block {
BOOL automaticCommitEnabled = self.automaticallyCommitChanges;

self.automaticallyCommitChanges = NO;
block();
self.automaticallyCommitChanges = automaticCommitEnabled;

if (self.automaticallyCommitChanges) {
[self commit];
}

return self;
}

#pragma mark - Configure

- (POViewFrameBuilder *)enableAutoCommit {
self.automaticallyCommitChanges = YES;

return self;
}

- (POViewFrameBuilder *)disableAutoCommit {
self.automaticallyCommitChanges = NO;

return self;
}

#pragma mark - Move

- (POViewFrameBuilder *)setX:(CGFloat)x {
self.frame = PORectWithX(self.frame, x);

return self;
}

- (POViewFrameBuilder *)setY:(CGFloat)y {
self.frame = PORectWithY(self.frame, y);

return self;
}

Expand All @@ -107,13 +112,13 @@ - (POViewFrameBuilder *)setOriginWithX:(CGFloat)x y:(CGFloat)y {

- (POViewFrameBuilder *)moveWithOffsetX:(CGFloat)offsetX {
self.frame = PORectWithX(self.frame, self.frame.origin.x + offsetX);

return self;
}

- (POViewFrameBuilder *)moveWithOffsetY:(CGFloat)offsetY {
self.frame = PORectWithY(self.frame, self.frame.origin.y + offsetY);

return self;
}

Expand All @@ -133,82 +138,82 @@ - (POViewFrameBuilder *)centerHorizontallyInSuperview {
if (!self.view.superview) {
return self;
}

self.frame = PORectWithX(self.frame, floorf((self.view.superview.bounds.size.width - self.frame.size.width) / 2));

return self;
}

- (POViewFrameBuilder *)centerVerticallyInSuperview {
if (!self.view.superview) {
return self;
}

self.frame = PORectWithY(self.frame, floorf((self.view.superview.bounds.size.height - self.frame.size.height) / 2));

return self;
}

- (POViewFrameBuilder *)alignToTopInSuperviewWithInset:(CGFloat)inset {
[self alignToTopInSuperviewWithInsets:UIEdgeInsetsMake(inset, 0.0f, 0.0f, 0.0f)];

return self;
}

- (POViewFrameBuilder *)alignToBottomInSuperviewWithInset:(CGFloat)inset {
[self alignToBottomInSuperviewWithInsets:UIEdgeInsetsMake(0.0f, 0.0f, inset, 0.0f)];

return self;
}

- (POViewFrameBuilder *)alignLeftInSuperviewWithInset:(CGFloat)inset {
[self alignLeftInSuperviewWithInsets:UIEdgeInsetsMake(0.0f, inset, 0.0f, 0.0f)];

return self;

}

- (POViewFrameBuilder *)alignRightInSuperviewWithInset:(CGFloat)inset {
[self alignRightInSuperviewWithInsets:UIEdgeInsetsMake(0.0f, 0.0f, 0.0f, inset)];

return self;
}

- (POViewFrameBuilder *)alignToTopInSuperviewWithInsets:(UIEdgeInsets)insets {
self.frame = PORectWithOrigin(self.frame,
self.frame.origin.x + insets.left - insets.right,
insets.top - insets.bottom);

return self;
}

- (POViewFrameBuilder *)alignToBottomInSuperviewWithInsets:(UIEdgeInsets)insets {
self.frame = PORectWithOrigin(self.frame,
self.frame.origin.x + insets.left - insets.right,
self.view.superview.bounds.size.height - self.frame.size.height + insets.top - insets.bottom);

return self;
}

- (POViewFrameBuilder *)alignLeftInSuperviewWithInsets:(UIEdgeInsets)insets {
self.frame = PORectWithOrigin(self.frame,
insets.left - insets.right,
self.frame.origin.y + insets.top - insets.bottom);

return self;
}

- (POViewFrameBuilder *)alignRightInSuperviewWithInsets:(UIEdgeInsets)insets {
self.frame = PORectWithOrigin(self.frame,
self.view.superview.bounds.size.width - self.frame.size.width + insets.left - insets.right,
self.frame.origin.y + insets.top - insets.bottom);

return self;
}

- (POViewFrameBuilder *)alignToView:(UIView *)view edge:(POViewFrameBuilderEdge)edge offset:(CGFloat)offset {
CGRect viewFrame = [view.superview convertRect:view.frame toView:self.view.superview];

switch (edge) {
case POViewFrameBuilderEdgeTop:
self.frame = PORectWithY(self.frame, viewFrame.origin.y - offset - self.frame.size.height);
Expand All @@ -225,7 +230,7 @@ - (POViewFrameBuilder *)alignToView:(UIView *)view edge:(POViewFrameBuilderEdge)
default:
break;
}

return self;
}

Expand Down Expand Up @@ -258,7 +263,7 @@ + (void)alignViewsVertically:(NSArray *)views spacingWithBlock:(CGFloat (^)(UIVi
CGFloat spacing = block != nil ? block(previousView, view) : 0.0f;
[[[self alloc] initWithView:view] alignToBottomOfView:previousView offset:spacing];
}

previousView = view;
}
}
Expand All @@ -276,7 +281,7 @@ + (void)alignViewsHorizontally:(NSArray *)views spacingWithBlock:(CGFloat (^)(UI
CGFloat spacing = block != nil ? block(previousView, view) : 0.0f;
[[[self alloc] initWithView:view] alignRightOfView:previousView offset:spacing];
}

previousView = view;
}
}
Expand All @@ -285,19 +290,19 @@ + (void)alignViewsHorizontally:(NSArray *)views spacingWithBlock:(CGFloat (^)(UI

- (POViewFrameBuilder *)setWidth:(CGFloat)width {
self.frame = PORectWithWidth(self.frame, width);

return self;
}

- (POViewFrameBuilder *)setHeight:(CGFloat)height {
self.frame = PORectWithHeight(self.frame, height);

return self;
}

- (POViewFrameBuilder *)setSize:(CGSize)size {
self.frame = PORectFromSize(size.width, size.height);

return self;
}

Expand All @@ -311,15 +316,15 @@ - (POViewFrameBuilder *)setSizeToFitWidth {
CGRect frame = self.frame;
frame.size.width = [self.view sizeThatFits:CGSizeMake(CGFLOAT_MAX, self.frame.size.height)].width;
self.frame = frame;

return self;
}

- (POViewFrameBuilder *)setSizeToFitHeight {
CGRect frame = self.frame;
frame.size.height = [self.view sizeThatFits:CGSizeMake(self.frame.size.width, CGFLOAT_MAX)].height;
self.frame = frame;

return self;
}

Expand Down

0 comments on commit 0fa2d81

Please sign in to comment.