summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--makefile2
-rw-r--r--uialert.mm37
2 files changed, 35 insertions, 4 deletions
diff --git a/makefile b/makefile
index e5f9b02..4cf346e 100644
--- a/makefile
+++ b/makefile
@@ -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
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;
}