mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			186 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
			
		
		
	
	
			186 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
| //
 | |
| // 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
 | |
| 
 |