diff options
-rw-r--r-- | makefile | 2 | ||||
-rw-r--r-- | uialert.mm | 37 |
2 files changed, 35 insertions, 4 deletions
@@ -1,4 +1,4 @@ all: uialert %: %.mm - $${PKG_TARG}-g++ -o $@ $< -framework CoreFoundation -framework Foundation -framework UIKit -lobjc + $${PKG_TARG}-g++ -o $@ $< -framework Foundation -framework CoreFoundation -framework UIKit -lobjc @@ -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; } |