summaryrefslogtreecommitdiff
path: root/uialert.mm
diff options
context:
space:
mode:
Diffstat (limited to 'uialert.mm')
-rw-r--r--uialert.mm37
1 files changed, 34 insertions, 3 deletions
diff --git a/uialert.mm b/uialert.mm
index 403dbd2..a4b19ee 100644
--- a/uialert.mm
+++ b/uialert.mm
@@ -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;
}