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