This is Alert.m in view mode; [Download] [Up]
/* File: Alert.m - (Interactive) Unix shell version of NXRunAlertPanel * * By: Christopher Lane (lane@sumex-aim.stanford.edu) * * Date: 10 November 1992 * * Modified: * [12-Jul-95 TRH==Tom Hageman <Tom_Hageman@RnA.nl>], added -t, -i options. * [17-Feb-96 TRH] Fix for Application option munching (like -NXHost); * allow % signs in message. * [12-Mar-96 TRH] add -V -H -A options; add EditMenu keyEquiv support. * * Copyright: 1990, 1991 & 1992 by The Leland Stanford Junior University. * This program may be distributed without restriction for non-commercial use. */ #define EXIT_USAGE (-1) // overrides definition in ShellPanel.h #define USES_APPICON #define USES_KEYEQUIV #import "ShellPanel.h" #define USAGE "\ usage: %s [-A] [-t title] [-i icon] [-V] [-H] [message] [button1] [button2] [button3]\n" #define HELP "\ options:\n\ -t title set title (default \"%s\")\n\ -i iconfile pathname of application icon to use (default none)\n\ -A do NOT activate, for less intrusive alerts (default activate)\n\ -V print version string and exit\n\ -H this help\n\ " // int NXRunAlertPanel(const char *title, const char *msg, const char *defaultButton, // const char *alternateButton, const char *otherButton, ...) typedef enum {TITLE, MESSAGE, DEFAULT, ALTERNATE, OTHER, ARGC} ARGUMENTS; typedef enum {ALERTDEFAULT = EXIT_SUCCESS, ALERTALTERNATE, ALERTOTHER, ALERTERROR} RESULTS; void main(int argc, char *argv[]) { int result, context; const char *title, *iconFile; BOOL activate = YES; int option; NXApp = [Application new]; argc = NXArgc, argv = NXArgv; // Application may munch options. result = EXIT_SUCCESS; title = [NXApp appName]; iconFile = NULL; while ((option = getopt(argc, argv, "t:i:AVH")) != EOF) { switch (option) { case 't': title = optarg; break; case 'i': iconFile = optarg; break; case 'A': activate = NO; break; case 'V': result = EXIT_VERSION; break; case 'H': result = EXIT_HELP; break; default: result = EXIT_USAGE; } } HandleUsageHelpVersion(result, USAGE, HELP); SetAppIconToFile(iconFile); ProvideKeyEquivalents(); context = [NXApp activateSelf:activate]; argc -= optind - 1; argv += optind - 1; result = NXRunAlertPanel( (argc > TITLE) ? title : NULL, (argc > MESSAGE) ? "%s" : NULL, (argc > DEFAULT) ? argv[DEFAULT] : NULL, (argc > ALTERNATE) ? argv[ALTERNATE] : NULL, (argc > OTHER) ? argv[OTHER] : NULL, (argc > MESSAGE) ? argv[MESSAGE] : NULL ); if (context) (void) [NXApp activate:context]; [NXApp free]; switch (result) { case NX_ALERTDEFAULT: exit(ALERTDEFAULT); case NX_ALERTALTERNATE: exit(ALERTALTERNATE); case NX_ALERTOTHER: exit(ALERTOTHER); } exit(ALERTERROR); }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.