250 lines
6.2 KiB
Objective-C
Executable File
250 lines
6.2 KiB
Objective-C
Executable File
#import "EAGLViewController.h"
|
|
#import "EAGLView.h"
|
|
|
|
@interface EAGLViewController (PrivateMethods)
|
|
- (NSString*)interfaceOrientationName:(UIInterfaceOrientation) interfaceOrientation;
|
|
- (NSString*)deviceOrientationName:(UIDeviceOrientation) deviceOrientation;
|
|
@end
|
|
|
|
@implementation EAGLViewController
|
|
|
|
@synthesize bannerIsVisible;
|
|
@synthesize eaglView;
|
|
@synthesize inputField;
|
|
|
|
#pragma mark initialization / deallocation methods
|
|
|
|
- (id)init {
|
|
self = [super init];
|
|
if (self) {
|
|
inputField = [[UITextField alloc] initWithFrame: CGRectMake(-50, -50, 25, 25)] ;
|
|
[self.inputField setEnablesReturnKeyAutomatically: YES];
|
|
[self.inputField setEnabled: YES];
|
|
[self.inputField setDelegate: self];
|
|
[inputField setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];
|
|
[inputField setAutocapitalizationType:UITextAutocapitalizationTypeNone];
|
|
[inputField setAutocorrectionType:UITextAutocorrectionTypeNo];
|
|
[inputField setKeyboardType: UIKeyboardTypeNamePhonePad];
|
|
|
|
CGRect frame = [[UIScreen mainScreen] applicationFrame];
|
|
eaglView = [[EAGLView alloc] initWithFrame:frame];
|
|
|
|
[self setView: eaglView];
|
|
[self.view addSubview: inputField];
|
|
|
|
[inputField release];
|
|
}
|
|
return self;
|
|
}
|
|
|
|
- (void)dealloc {
|
|
[eaglView setDelegate: nil];
|
|
[eaglView release], eaglView = nil;
|
|
[inputField release], inputField = nil;
|
|
[super dealloc];
|
|
}
|
|
|
|
|
|
- (void)viewDidLoad {
|
|
NSLog(@"EAGL ViewController - view Did Load");
|
|
|
|
[super viewDidLoad];
|
|
}
|
|
|
|
- (void)viewWillAppear:(BOOL)animated {
|
|
NSLog(@"EAGL ViewController - view Will Appear");
|
|
[(id)self.view resumeGame];
|
|
}
|
|
|
|
|
|
- (void)viewWillDisappear:(BOOL)animated
|
|
{
|
|
[(id)self.view pauseGame];
|
|
}
|
|
|
|
- (void)pauseGame
|
|
{
|
|
[(id)self.view pauseGame];
|
|
}
|
|
|
|
- (void)resumeGame
|
|
{
|
|
[(id)self.view resumeGame];
|
|
}
|
|
|
|
- (void)endGame
|
|
{
|
|
[(id)self.view endGame];
|
|
}
|
|
|
|
- (void)viewDidAppear:(BOOL)animated {
|
|
|
|
NSLog(@"EAGL ViewController - view Did Appear");
|
|
|
|
UIDeviceOrientation currentDeviceOrientation = [UIDevice currentDevice].orientation;
|
|
UIInterfaceOrientation currentInterfaceOrientation = self.interfaceOrientation;
|
|
|
|
NSLog(@"Current Interface: %@. Current Device: %@",
|
|
[self interfaceOrientationName:currentInterfaceOrientation],
|
|
[self deviceOrientationName:currentDeviceOrientation]);
|
|
}
|
|
|
|
|
|
|
|
- (void)didReceiveMemoryWarning {
|
|
// Releases the view if it doesn't have a superview.
|
|
[super didReceiveMemoryWarning];
|
|
|
|
// Release any cached data, images, etc. that aren't in use.
|
|
}
|
|
|
|
|
|
- (void)viewDidUnload {
|
|
[super viewDidUnload];
|
|
// Release any retained subviews of the main view.
|
|
// e.g. self.myOutlet = nil;
|
|
}
|
|
|
|
#pragma mark - device orientation handlers
|
|
- (NSUInteger)supportedInterfaceOrientations
|
|
{
|
|
//I want to support portrait in ABCView at iPhone only.
|
|
//and support all orientation in other views and iPad.
|
|
|
|
if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone)
|
|
{
|
|
return UIInterfaceOrientationMaskLandscape;
|
|
}
|
|
|
|
//support all
|
|
return UIInterfaceOrientationMaskAll;
|
|
}
|
|
|
|
|
|
-(BOOL)shouldAutorotate {
|
|
|
|
return YES;
|
|
}
|
|
|
|
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
|
|
// Overriden to allow any orientation.
|
|
bool isSmallScreen = (UI_USER_INTERFACE_IDIOM()) == UIUserInterfaceIdiomPhone;
|
|
|
|
if ( isSmallScreen && UIInterfaceOrientationIsPortrait(interfaceOrientation))
|
|
return NO;
|
|
|
|
return YES;
|
|
}
|
|
|
|
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
|
|
// [[eaglView adView] rotateToOrientation: toInterfaceOrientation];
|
|
}
|
|
|
|
|
|
#pragma mark -
|
|
#pragma mark Orientation Information
|
|
- (NSString*)interfaceOrientationName:(UIInterfaceOrientation) interfaceOrientation {
|
|
|
|
NSString* result = nil;
|
|
|
|
switch (interfaceOrientation) {
|
|
|
|
case UIInterfaceOrientationPortrait:
|
|
result = @"Portrait";
|
|
break;
|
|
case UIInterfaceOrientationPortraitUpsideDown:
|
|
result = @"Portrait UpsideDown";
|
|
break;
|
|
case UIInterfaceOrientationLandscapeLeft:
|
|
result = @"LandscapeLeft";
|
|
break;
|
|
case UIInterfaceOrientationLandscapeRight:
|
|
result = @"LandscapeRight";
|
|
break;
|
|
default:
|
|
result = @"Unknown Interface Orientation";
|
|
}
|
|
|
|
return result;
|
|
};
|
|
|
|
- (NSString*)deviceOrientationName:(UIDeviceOrientation) deviceOrientation {
|
|
|
|
NSString* result = nil;
|
|
|
|
switch (deviceOrientation) {
|
|
|
|
case UIDeviceOrientationUnknown:
|
|
result = @"Unknown";
|
|
break;
|
|
case UIDeviceOrientationPortrait:
|
|
result = @"Portrait";
|
|
break;
|
|
case UIDeviceOrientationPortraitUpsideDown:
|
|
result = @"Portrait UpsideDown";
|
|
break;
|
|
case UIDeviceOrientationLandscapeLeft:
|
|
result = @"LandscapeLeft";
|
|
break;
|
|
case UIDeviceOrientationLandscapeRight:
|
|
result = @"LandscapeRight";
|
|
break;
|
|
case UIDeviceOrientationFaceUp:
|
|
result = @"FaceUp";
|
|
break;
|
|
case UIDeviceOrientationFaceDown:
|
|
result = @"FaceDown";
|
|
break;
|
|
default:
|
|
result = @"Unknown Device Orientation";
|
|
}
|
|
|
|
return result;
|
|
};
|
|
|
|
#pragma mark -
|
|
|
|
#pragma mark UITextFieldDelegate methods
|
|
- (void)toggleKeyboardWithState: (NSString *) initialText
|
|
{
|
|
UIView *blockerView = [[[UIView alloc] initWithFrame: [self.view frame]] autorelease];
|
|
[blockerView setBackgroundColor: [UIColor clearColor]];
|
|
[self.view addSubview: blockerView];
|
|
if ([[self inputField] becomeFirstResponder])
|
|
{
|
|
[inputField setText: initialText];
|
|
// success in displaying the keyboard
|
|
}
|
|
}
|
|
|
|
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
|
|
{
|
|
if ([string isEqualToString:@" "])
|
|
[eaglView updateKeyboard: @"SPACE"];
|
|
else if ( (string == nil || [string isEqualToString: @""]) && (1 == range.length))
|
|
[eaglView updateKeyboard: @"DELETE"];
|
|
else if ( (string == nil || [string isEqualToString: @""]) && (range.location == (range.length-1)))
|
|
[eaglView updateKeyboard: @"CLEAR"];
|
|
else
|
|
[eaglView updateKeyboard: string];
|
|
|
|
return YES;
|
|
}
|
|
|
|
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
|
|
{
|
|
return YES;
|
|
}
|
|
|
|
|
|
- (BOOL) textFieldShouldReturn:(UITextField *)textField
|
|
{
|
|
[eaglView updateKeyboard: @"SAVE"];
|
|
[textField resignFirstResponder];
|
|
return YES;
|
|
}
|
|
|
|
|
|
#pragma mark -
|
|
@end
|