mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			201 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
			
		
		
	
	
			201 lines
		
	
	
		
			6.9 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 "PlaygroundViewController.h"
 | 
						|
 | 
						|
#import <Three20Core/NSDataAdditions.h>
 | 
						|
 | 
						|
static const CGFloat kFramePadding    = 10;
 | 
						|
static const CGFloat kElementSpacing  = 5;
 | 
						|
static const CGFloat kGroupSpacing    = 10;
 | 
						|
 | 
						|
 | 
						|
///////////////////////////////////////////////////////////////////////////////////////////////////
 | 
						|
///////////////////////////////////////////////////////////////////////////////////////////////////
 | 
						|
///////////////////////////////////////////////////////////////////////////////////////////////////
 | 
						|
@implementation PlaygroundViewController
 | 
						|
 | 
						|
 | 
						|
///////////////////////////////////////////////////////////////////////////////////////////////////
 | 
						|
- (CGFloat) addHeader:(NSString*)text yOffset:(CGFloat)yOffset {
 | 
						|
  UILabel* label = [[UILabel alloc] initWithFrame:CGRectZero];
 | 
						|
  label.text = text;
 | 
						|
  label.font = [UIFont systemFontOfSize:20];
 | 
						|
  label.numberOfLines = 0;
 | 
						|
 | 
						|
  CGRect frame = label.frame;
 | 
						|
  frame.origin.x = kFramePadding;
 | 
						|
  frame.origin.y = yOffset;
 | 
						|
  frame.size.width = 320 - kFramePadding * 2;
 | 
						|
  frame.size.height = [text sizeWithFont:label.font
 | 
						|
                       constrainedToSize:CGSizeMake(frame.size.width, 10000)].height;
 | 
						|
  label.frame = frame;
 | 
						|
 | 
						|
  [_scrollView addSubview:label];
 | 
						|
 | 
						|
  yOffset += label.frame.size.height + kElementSpacing;
 | 
						|
 | 
						|
  TT_RELEASE_SAFELY(label);
 | 
						|
 | 
						|
  return yOffset;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
///////////////////////////////////////////////////////////////////////////////////////////////////
 | 
						|
- (CGFloat) addText:(NSString*)text yOffset:(CGFloat)yOffset {
 | 
						|
  UILabel* label = [[UILabel alloc] initWithFrame:CGRectZero];
 | 
						|
  label.text = text;
 | 
						|
  label.numberOfLines = 0;
 | 
						|
 | 
						|
  CGRect frame = label.frame;
 | 
						|
  frame.origin.x = kFramePadding;
 | 
						|
  frame.origin.y = yOffset;
 | 
						|
  frame.size.width = 320 - kFramePadding * 2;
 | 
						|
  frame.size.height = [text sizeWithFont:label.font
 | 
						|
                       constrainedToSize:CGSizeMake(frame.size.width, 10000)].height;
 | 
						|
  label.frame = frame;
 | 
						|
 | 
						|
  [_scrollView addSubview:label];
 | 
						|
 | 
						|
  yOffset += label.frame.size.height + kElementSpacing;
 | 
						|
 | 
						|
  TT_RELEASE_SAFELY(label);
 | 
						|
 | 
						|
  return yOffset;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
///////////////////////////////////////////////////////////////////////////////////////////////////
 | 
						|
- (void) loadView {
 | 
						|
  [super loadView];
 | 
						|
 | 
						|
  _scrollView = [[UIScrollView alloc] initWithFrame:self.view.bounds];
 | 
						|
  _scrollView.autoresizingMask =
 | 
						|
    UIViewAutoresizingFlexibleWidth
 | 
						|
    | UIViewAutoresizingFlexibleHeight;
 | 
						|
 | 
						|
  [self.view addSubview:_scrollView];
 | 
						|
 | 
						|
  CGFloat yOffset = kFramePadding;
 | 
						|
 | 
						|
  yOffset = [self addHeader:NSLocalizedString(@"TTDebug", @"") yOffset:yOffset];
 | 
						|
 | 
						|
  {
 | 
						|
    UIButton* button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
 | 
						|
    [button setTitle:NSLocalizedString(@"Debug test", @"") forState:UIControlStateNormal];
 | 
						|
    [button addTarget: self
 | 
						|
               action: @selector(debugTestAction)
 | 
						|
     forControlEvents: UIControlEventTouchUpInside];
 | 
						|
    [button sizeToFit];
 | 
						|
 | 
						|
    CGRect frame = button.frame;
 | 
						|
    frame.origin.x = kFramePadding;
 | 
						|
    frame.origin.y = yOffset;
 | 
						|
    button.frame = frame;
 | 
						|
 | 
						|
    [_scrollView addSubview:button];
 | 
						|
 | 
						|
    yOffset += frame.size.height;
 | 
						|
  }
 | 
						|
 | 
						|
  yOffset += kGroupSpacing;
 | 
						|
 | 
						|
  yOffset = [self addHeader:NSLocalizedString(@"TTGlobalCoreLocale", @"") yOffset:yOffset];
 | 
						|
  yOffset = [self addText:[NSString stringWithFormat:NSLocalizedString(@"Current locale: %@", @""),
 | 
						|
                           [TTCurrentLocale()
 | 
						|
                            displayNameForKey:NSLocaleIdentifier
 | 
						|
                                        value:[TTCurrentLocale() localeIdentifier]]]
 | 
						|
                  yOffset:yOffset];
 | 
						|
  yOffset += kGroupSpacing;
 | 
						|
 | 
						|
  yOffset = [self addHeader:NSLocalizedString(@"TTGlobalCorePaths", @"") yOffset:yOffset];
 | 
						|
  yOffset = [self addText:[NSString stringWithFormat:NSLocalizedString(@"Bundle path: %@", @""),
 | 
						|
                           TTPathForBundleResource(@"Icon.png")]
 | 
						|
                  yOffset:yOffset];
 | 
						|
  yOffset = [self addText:[NSString stringWithFormat:NSLocalizedString(@"Document path: %@", @""),
 | 
						|
                           TTPathForDocumentsResource(@"document.pdf")]
 | 
						|
                  yOffset:yOffset];
 | 
						|
  yOffset += kGroupSpacing;
 | 
						|
 | 
						|
  yOffset = [self addHeader:NSLocalizedString(@"NSDataAdditions", @"") yOffset:yOffset];
 | 
						|
  yOffset = [self addText:[NSString stringWithFormat:NSLocalizedString(@"MD5 Hash of \"Three20\": %@", @""),
 | 
						|
                           [[@"Three20" dataUsingEncoding:NSUTF8StringEncoding] md5Hash]]
 | 
						|
                  yOffset:yOffset];
 | 
						|
  yOffset += kGroupSpacing;
 | 
						|
 | 
						|
  [_scrollView setContentSize:CGSizeMake(320, yOffset)];
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
///////////////////////////////////////////////////////////////////////////////////////////////////
 | 
						|
- (void) viewDidUnload {
 | 
						|
  [super viewDidUnload];
 | 
						|
 | 
						|
  TT_RELEASE_SAFELY(_scrollView);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
///////////////////////////////////////////////////////////////////////////////////////////////////
 | 
						|
- (void) viewDidAppear:(BOOL)animated {
 | 
						|
  [super viewDidAppear:animated];
 | 
						|
 | 
						|
  [_scrollView flashScrollIndicators];
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
///////////////////////////////////////////////////////////////////////////////////////////////////
 | 
						|
- (void) debugTestAction {
 | 
						|
#ifdef DEBUG
 | 
						|
  NSLog(@"Three20 debug logging is currently...ON");
 | 
						|
#else
 | 
						|
  NSLog(@"Three20 debug logging is currently...OFF");
 | 
						|
#endif
 | 
						|
 | 
						|
  // This will print the current method name.
 | 
						|
  TTDPRINTMETHODNAME();
 | 
						|
 | 
						|
  TTDPRINT(@"Showing TTDPRINT.");
 | 
						|
  TTDPRINT(@"-----------------");
 | 
						|
  TTDPRINT(@"Showing TTD log levels <= %d", TTMAXLOGLEVEL);
 | 
						|
  TTDERROR(@"This is TTDERROR, level %d.", TTLOGLEVEL_ERROR);
 | 
						|
  TTDWARNING(@"This is TTDWARNING, level %d.", TTLOGLEVEL_WARNING);
 | 
						|
  TTDINFO(@"This is TTDINFO, level %d.", TTLOGLEVEL_INFO);
 | 
						|
 | 
						|
  TTDPRINT(@"");
 | 
						|
  TTDPRINT(@"Showing TTDCONDITIONLOG.");
 | 
						|
  TTDPRINT(@"------------------------");
 | 
						|
  TTDCONDITIONLOG(true, @"This will always display because the condition is \"true\"");
 | 
						|
  TTDCONDITIONLOG(false, @"This will never display because the condition is \"false\"");
 | 
						|
  TTDCONDITIONLOG(rand()%2, @"This will randomly display because the condition is \"rand()%2\"");
 | 
						|
 | 
						|
  TTDPRINT(@"");
 | 
						|
  TTDPRINT(@"Showing TTDASSERT.");
 | 
						|
  TTDPRINT(@"------------------");
 | 
						|
  // Should do nothing at all.
 | 
						|
  TTDASSERT(true);
 | 
						|
 | 
						|
  // This will jump you into the debugger in the simulator.
 | 
						|
  // Note that this isn't a crash! Simply the equivalent of setting
 | 
						|
  // a breakpoint in the debugger, but programmatically. These TTDASSERTs
 | 
						|
  // will be completely stripped away from your final product, assuming
 | 
						|
  // you don't declare the DEBUG preprocessor macro (and you shouldn't in
 | 
						|
  // your final product).
 | 
						|
  TTDASSERT(false);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
@end
 |