cocoaTouch/PopoverMenuViewController.m
author koda
Thu, 17 Jun 2010 19:57:51 +0200
changeset 3513 f589230fa21b
parent 3490 016b3172b645
permissions -rw-r--r--
now it's possible to select the scheme file in the ifrontendfix a type about loading an image (iphone file system IS case senstive) add rotation for iphone build too make the ifrontend work again with 3.0 sdk reworked openalbridge following most of an old implementation by Smaxx and making it more modular -- now sources are limited but the memory extension and cleanup is todo nil'd many variables in engine that were causing intialization problems
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3305
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
     1
    //
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
     2
//  popupMenuViewController.m
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
     3
//  HedgewarsMobile
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
     4
//
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
     5
//  Created by Vittorio on 25/03/10.
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
     6
//  Copyright 2010 __MyCompanyName__. All rights reserved.
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
     7
//
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
     8
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
     9
#import "SDL_uikitappdelegate.h"
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    10
#import "PopoverMenuViewController.h"
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    11
#import "PascalImports.h"
3340
96dd168b080b fix all of what was committed before
koda
parents: 3335
diff changeset
    12
#import "CommodityFunctions.h"
3463
23c50be687a9 update sdl functions to latest revision
koda
parents: 3357
diff changeset
    13
#import "SDL_sysvideo.h"
3305
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    14
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    15
@implementation PopoverMenuViewController
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    16
@synthesize menuList;
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    17
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    18
3335
2520ee7a5484 new manager for handling (future) rotations
koda
parents: 3308
diff changeset
    19
-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation {
2520ee7a5484 new manager for handling (future) rotations
koda
parents: 3308
diff changeset
    20
	return rotationManager(interfaceOrientation);
3305
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    21
}
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    22
3335
2520ee7a5484 new manager for handling (future) rotations
koda
parents: 3308
diff changeset
    23
3305
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    24
-(void) didReceiveMemoryWarning {
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    25
    // Releases the view if it doesn't have a superview.
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    26
    [super didReceiveMemoryWarning];
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    27
}
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    28
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    29
-(void) viewDidLoad {
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    30
    isPaused = NO;
3357
3836a31879e7 draw a hedgehog when presenting hats
koda
parents: 3340
diff changeset
    31
3305
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    32
    menuList = [[NSArray alloc] initWithObjects:
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    33
                NSLocalizedString(@"Pause Game", @""),
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    34
                NSLocalizedString(@"Chat", @""),
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    35
                NSLocalizedString(@"End Game", @""),
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    36
                nil];
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    37
    [super viewDidLoad];
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    38
}
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    39
3490
016b3172b645 a bunch of minor stuff
koda
parents: 3463
diff changeset
    40
-(void) viewDidUnload {
016b3172b645 a bunch of minor stuff
koda
parents: 3463
diff changeset
    41
    [super viewDidUnload];
016b3172b645 a bunch of minor stuff
koda
parents: 3463
diff changeset
    42
    MSG_DIDUNLOAD();
016b3172b645 a bunch of minor stuff
koda
parents: 3463
diff changeset
    43
}
3305
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    44
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    45
-(void) dealloc {
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    46
    [menuList release];
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    47
    [super dealloc];
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    48
}
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    49
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    50
#pragma mark -
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    51
#pragma mark tableView methods
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    52
-(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    53
	return 1;
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    54
}
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    55
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    56
-(NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    57
	return 3;
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    58
}
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    59
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    60
-(UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    61
	static NSString *cellIdentifier = @"CellIdentifier";
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    62
	
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    63
	UITableViewCell *cell = [aTableView dequeueReusableCellWithIdentifier:cellIdentifier];
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    64
    if (nil == cell) {
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    65
		cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    66
                                       reuseIdentifier:cellIdentifier] autorelease];
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    67
	}
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    68
    cell.textLabel.text = [menuList objectAtIndex:[indexPath row]];
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    69
	
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    70
	return cell;
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    71
}
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    72
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    73
-(void) tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    74
    UIActionSheet *actionSheet;
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    75
    
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    76
    switch ([indexPath row]) {
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    77
		case 0:
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    78
            HW_pause();
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    79
            isPaused = !isPaused;
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    80
            break;
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    81
        case 1:
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    82
			HW_chat();
3463
23c50be687a9 update sdl functions to latest revision
koda
parents: 3357
diff changeset
    83
            /*
23c50be687a9 update sdl functions to latest revision
koda
parents: 3357
diff changeset
    84
            SDL_VideoDevice *_this = SDL_GetVideoDevice();
23c50be687a9 update sdl functions to latest revision
koda
parents: 3357
diff changeset
    85
            SDL_VideoDisplay *display = &_this->displays[0];
23c50be687a9 update sdl functions to latest revision
koda
parents: 3357
diff changeset
    86
            SDL_Window *window = display->windows;
23c50be687a9 update sdl functions to latest revision
koda
parents: 3357
diff changeset
    87
            SDL_iPhoneKeyboardShow(window);
23c50be687a9 update sdl functions to latest revision
koda
parents: 3357
diff changeset
    88
            */
3305
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    89
            break;
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    90
        case 2:
3308
b6dcae4b6d2c make the tables work also on iphone
koda
parents: 3305
diff changeset
    91
            // expand the view (and table) so that the actionsheet can be selected on the iPhone
b6dcae4b6d2c make the tables work also on iphone
koda
parents: 3305
diff changeset
    92
            if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
b6dcae4b6d2c make the tables work also on iphone
koda
parents: 3305
diff changeset
    93
                [self.tableView deselectRowAtIndexPath:indexPath animated:NO];
b6dcae4b6d2c make the tables work also on iphone
koda
parents: 3305
diff changeset
    94
                [UIView beginAnimations:@"table width more" context:NULL];
b6dcae4b6d2c make the tables work also on iphone
koda
parents: 3305
diff changeset
    95
                [UIView setAnimationDuration:0.2];
b6dcae4b6d2c make the tables work also on iphone
koda
parents: 3305
diff changeset
    96
                self.view.frame = CGRectMake(0, 0, 480, 320);
b6dcae4b6d2c make the tables work also on iphone
koda
parents: 3305
diff changeset
    97
                [UIView commitAnimations];
b6dcae4b6d2c make the tables work also on iphone
koda
parents: 3305
diff changeset
    98
            }
3305
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
    99
			actionSheet = [[UIActionSheet alloc] initWithTitle:NSLocalizedString(@"Are you reeeeeally sure?", @"")
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   100
                                                      delegate:self
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   101
                                             cancelButtonTitle:NSLocalizedString(@"Well, maybe not...", @"")
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   102
                                        destructiveButtonTitle:NSLocalizedString(@"Of course!", @"")
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   103
                                             otherButtonTitles:nil];
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   104
            [actionSheet showInView:self.view];
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   105
            [actionSheet release];
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   106
            
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   107
            if (!isPaused) 
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   108
                HW_pause();
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   109
            break;
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   110
        default:
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   111
			NSLog(@"Warning: unset case value in section!");
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   112
			break;
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   113
    }
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   114
    
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   115
    [aTableView deselectRowAtIndexPath:indexPath animated:YES];
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   116
}
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   117
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   118
#pragma mark -
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   119
#pragma mark actionSheet methods
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   120
-(void) actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger) buttonIndex {
3308
b6dcae4b6d2c make the tables work also on iphone
koda
parents: 3305
diff changeset
   121
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone){
b6dcae4b6d2c make the tables work also on iphone
koda
parents: 3305
diff changeset
   122
        [UIView beginAnimations:@"table width less" context:NULL];
b6dcae4b6d2c make the tables work also on iphone
koda
parents: 3305
diff changeset
   123
        [UIView setAnimationDuration:0.2];
b6dcae4b6d2c make the tables work also on iphone
koda
parents: 3305
diff changeset
   124
        self.view.frame = CGRectMake(280, 0, 200, 170);
b6dcae4b6d2c make the tables work also on iphone
koda
parents: 3305
diff changeset
   125
        [UIView commitAnimations];
b6dcae4b6d2c make the tables work also on iphone
koda
parents: 3305
diff changeset
   126
    }
b6dcae4b6d2c make the tables work also on iphone
koda
parents: 3305
diff changeset
   127
    
3305
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   128
	if ([actionSheet cancelButtonIndex] != buttonIndex) {
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   129
        [[NSNotificationCenter defaultCenter] postNotificationName:@"dismissPopover" object:nil];
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   130
        HW_terminate(NO);
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   131
    }
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   132
	else
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   133
        if (!isPaused) 
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   134
            HW_pause();		
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   135
}
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   136
91074496d5c9 merged code from ipad and iphone frontends
koda
parents:
diff changeset
   137
@end