aboutsummaryrefslogtreecommitdiff
path: root/samples/Objective-C/StyleViewController.m
diff options
context:
space:
mode:
Diffstat (limited to 'samples/Objective-C/StyleViewController.m')
-rw-r--r--samples/Objective-C/StyleViewController.m185
1 files changed, 185 insertions, 0 deletions
diff --git a/samples/Objective-C/StyleViewController.m b/samples/Objective-C/StyleViewController.m
new file mode 100644
index 0000000..7018b5e
--- /dev/null
+++ b/samples/Objective-C/StyleViewController.m
@@ -0,0 +1,185 @@
+//
+// Copyright 2009-2011 Facebook
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+#import "StyleViewController.h"
+
+#import "StyleView.h"
+
+NSString* kTextStyleType = @"text";
+NSString* kViewStyleType = @"view";
+NSString* kImageStyleType = @"image";
+
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////////////////////////
+@implementation StyleViewController
+
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+- (id)initWithStyleName:(NSString*)name styleType:(NSString*)styleType {
+ if (self = [super initWithNibName:nil bundle:nil]) {
+ self.title = name;
+
+ _style = [[[TTStyleSheet globalStyleSheet] styleWithSelector:name] retain];
+ _styleHighlight = [[[TTStyleSheet globalStyleSheet]
+ styleWithSelector: name
+ forState: UIControlStateHighlighted] retain];
+ _styleDisabled = [[[TTStyleSheet globalStyleSheet]
+ styleWithSelector: name
+ forState: UIControlStateDisabled] retain];
+ _styleSelected = [[[TTStyleSheet globalStyleSheet]
+ styleWithSelector: name
+ forState: UIControlStateSelected] retain];
+
+ _styleType = [styleType copy];
+ }
+
+ return self;
+}
+
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+- (void)dealloc {
+ TT_RELEASE_SAFELY(_style);
+ TT_RELEASE_SAFELY(_styleHighlight);
+ TT_RELEASE_SAFELY(_styleDisabled);
+ TT_RELEASE_SAFELY(_styleSelected);
+ TT_RELEASE_SAFELY(_styleType);
+
+ [super dealloc];
+}
+
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////////////////////////
+#pragma mark -
+#pragma mark UIViewController
+
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+- (void)addTextView:(NSString*)title frame:(CGRect)frame style:(TTStyle*)style {
+ CGRect textFrame = TTRectInset(frame, UIEdgeInsetsMake(20, 20, 20, 20));
+ StyleView* text = [[StyleView alloc]
+ initWithFrame:textFrame];
+ text.text = title;
+ TTStyleContext* context = [[TTStyleContext alloc] init];
+ context.frame = frame;
+ context.delegate = text;
+ context.font = [UIFont systemFontOfSize:[UIFont systemFontSize]];
+ CGSize size = [style addToSize:CGSizeZero context:context];
+ TT_RELEASE_SAFELY(context);
+
+ size.width += 20;
+ size.height += 20;
+ textFrame.size = size;
+ text.frame = textFrame;
+
+ text.style = style;
+ text.backgroundColor = [UIColor colorWithRed:0.9 green:0.9 blue:1 alpha:1];
+ text.autoresizingMask =
+ UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin;
+
+ [self.view addSubview:text];
+ TT_RELEASE_SAFELY(text);
+}
+
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+- (void)addView:(CGRect)frame style:(TTStyle*)style {
+ CGRect viewFrame = TTRectInset(frame, UIEdgeInsetsMake(20, 20, 20, 20));
+ StyleView* view = [[StyleView alloc]
+ initWithFrame:viewFrame];
+
+ view.style = style;
+ view.backgroundColor = [UIColor colorWithRed:0.9 green:0.9 blue:1 alpha:1];
+ view.autoresizingMask =
+ UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin;
+
+ [self.view addSubview:view];
+ TT_RELEASE_SAFELY(view);
+}
+
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+- (void)addImageView:(CGRect)frame style:(TTStyle*)style {
+ CGRect viewFrame = TTRectInset(frame, UIEdgeInsetsMake(20, 20, 20, 20));
+ TTImageView* view = [[TTImageView alloc]
+ initWithFrame:viewFrame];
+
+ view.urlPath = @"bundle://Icon.png";
+ view.style = style;
+ view.backgroundColor = [UIColor colorWithRed:0.9 green:0.9 blue:1 alpha:1];
+ view.autoresizingMask =
+ UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin;
+ CGRect imageFrame = view.frame;
+ imageFrame.size = view.image.size;
+ view.frame = imageFrame;
+
+ [self.view addSubview:view];
+ TT_RELEASE_SAFELY(view);
+}
+
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+- (void)loadView {
+ [super loadView];
+
+ CGRect frame = self.view.bounds;
+ frame.size.height /= 4;
+
+ if ([_styleType isEqualToString:kTextStyleType]) {
+ [self addTextView:@"UIControlStateNormal" frame:frame style:_style];
+
+ frame.origin.y += frame.size.height;
+ [self addTextView:@"UIControlStateHighlighted" frame:frame style:_styleHighlight];
+
+ frame.origin.y += frame.size.height;
+ [self addTextView:@"UIControlStateDisabled" frame:frame style:_styleDisabled];
+
+ frame.origin.y += frame.size.height;
+ [self addTextView:@"UIControlStateSelected" frame:frame style:_styleSelected];
+
+ } else if ([_styleType isEqualToString:kViewStyleType]) {
+ [self addView:frame style:_style];
+
+ frame.origin.y += frame.size.height;
+ [self addView:frame style:_styleHighlight];
+
+ frame.origin.y += frame.size.height;
+ [self addView:frame style:_styleDisabled];
+
+ frame.origin.y += frame.size.height;
+ [self addView:frame style:_styleSelected];
+
+ } else if ([_styleType isEqualToString:kImageStyleType]) {
+ [self addImageView:frame style:_style];
+
+ frame.origin.y += frame.size.height;
+ [self addImageView:frame style:_styleHighlight];
+
+ frame.origin.y += frame.size.height;
+ [self addImageView:frame style:_styleDisabled];
+
+ frame.origin.y += frame.size.height;
+ [self addImageView:frame style:_styleSelected];
+
+ }
+}
+
+
+@end
+