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
 | 
						|
 |