X-Git-Url: https://git.saurik.com/uikittools.git/blobdiff_plain/a60b86de5fbe121d51d756c166eac49e1832e007..1bd75e96ee074964a2d7c4fd1d9bc8ddb0c2be7e:/uialert.mm diff --git a/uialert.mm b/uialert.mm index a72cbd4..db88ea7 100644 --- a/uialert.mm +++ b/uialert.mm @@ -1,28 +1,96 @@ -#include +/* UIKit Tools - command-line utilities for UIKit + * Copyright (C) 2008-2012 Jay Freeman (saurik) +*/ + +/* Modified BSD License {{{ */ +/* + * Redistribution and use in source and binary + * forms, with or without modification, are permitted + * provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the + * above copyright notice, this list of conditions + * and the following disclaimer. + * 2. Redistributions in binary form must reproduce the + * above copyright notice, this list of conditions + * and the following disclaimer in the documentation + * and/or other materials provided with the + * distribution. + * 3. The name of the author may not be used to endorse + * or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +/* }}} */ + +#import +#import + #include +#include int argc_; char **argv_; -@interface AlertSheet : UIApplication { +@interface AlertSheet : UIApplication +#ifdef __OBJC2__ + +#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 @@ -35,6 +103,7 @@ char **argv_; [sheet setShowsOverSpringBoardAlerts:YES]; [sheet popupAlertAnimated:YES]; +#endif } @end @@ -44,11 +113,15 @@ int main(int argc, char *argv[]) { argv_ = argv; char *args[] = { - "AlertSheet", NULL + (char *) "AlertSheet", NULL }; NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; +#ifdef __OBJC2__ + UIApplicationMain(1, args, nil, @"AlertSheet"); +#else UIApplicationMain(1, args, [AlertSheet class]); +#endif [pool release]; return 0; }