diff options
Diffstat (limited to 'uialert.mm')
-rw-r--r-- | uialert.mm | 37 |
1 files changed, 34 insertions, 3 deletions
@@ -7,25 +7,51 @@ int argc_; char **argv_; -@interface AlertSheet : UIApplication { +@interface AlertSheet : UIApplication +#ifdef __OBJC2__ +<UIModalViewDelegate> +#endif +{ } +#ifdef __OBJC2__ +- (void) modalView:(UIModalView *)modalView didDismissWithButtonIndex:(NSInteger)buttonIndex; +#else - (void) alertSheet:(UIAlertSheet *)sheet buttonClicked:(int)button; +#endif + - (void) applicationDidFinishLaunching:(id)unused; @end @implementation AlertSheet -- (void) alertSheet:(UIAlertSheet *)sheet buttonClicked:(int)button { - [sheet dismiss]; +#ifdef __OBJC2__ +- (void) modalView:(UIModalView *)modalView didDismissWithButtonIndex:(NSInteger)buttonIndex { + exit(buttonIndex); +} +#else +- (void) alertSheet:(UIAlertSheet *)alertSheet buttonClicked:(int)button { + [alertSheet dismiss]; exit(button); } +#endif - (void) applicationDidFinishLaunching:(id)unused { NSMutableArray *buttons = [NSMutableArray arrayWithCapacity:(argc_ - 3)]; for (size_t i(0); i != argc_ - 3; ++i) [buttons addObject:[NSString stringWithCString:argv_[i + 3]]]; +#ifdef __OBJC2__ + UIAlertView *alert = [[[UIAlertView alloc] + initWithTitle:[NSString stringWithCString:argv_[1]] + message:[NSString stringWithCString:argv_[2]] + delegate:self + cancelButtonTitle:nil + otherButtonTitles:nil + ] autorelease]; + + [alert show]; +#else UIAlertSheet *sheet = [[[UIAlertSheet alloc] initWithTitle:[NSString stringWithCString:argv_[1]] buttons:buttons @@ -38,6 +64,7 @@ char **argv_; [sheet setShowsOverSpringBoardAlerts:YES]; [sheet popupAlertAnimated:YES]; +#endif } @end @@ -51,7 +78,11 @@ int main(int argc, char *argv[]) { }; NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; +#ifdef __OBJC2__ + UIApplicationMain(1, args, nil, @"AlertSheet"); +#else UIApplicationMain(1, args, [AlertSheet class]); +#endif [pool release]; return 0; } |