]> git.saurik.com Git - uikittools.git/blobdiff - uialert.mm
We need to kill installd in order for uicache to work.
[uikittools.git] / uialert.mm
index 403dbd23a16c76268c5f16765ac738ca039ab69b..a4b19ee47eddab23ad31fd80f88db38023e8c249 100644 (file)
@@ -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;
 }