00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #import "OFObject.h"
00013
00014 @class OFString;
00015 @class OFArray;
00016 @class OFMutableArray;
00017
00018 #define OF_APPLICATION_DELEGATE(cls) \
00019 int \
00020 main(int argc, char *argv[]) \
00021 { \
00022 return of_application_main(argc, argv, [cls class]); \
00023 }
00024
00028 @protocol OFApplicationDelegate
00033 - (void)applicationDidFinishLaunching;
00034
00038 - (void)applicationWillTerminate;
00039 @end
00040
00044 @interface OFApplication: OFObject
00045 {
00046 OFString *programName;
00047 OFMutableArray *arguments;
00048 id delegate;
00049 }
00050
00051 #ifdef OF_HAVE_PROPERTIES
00052 @property (readonly, retain) OFString *programName;
00053 @property (readonly, retain) OFArray *arguments;
00054 @property (retain) id delegate;
00055 #endif
00056
00060 + sharedApplication;
00061
00065 + (OFString*)programName;
00066
00070 + (OFArray*)arguments;
00071
00075 + (void)terminate;
00076
00082 + (void)terminateWithStatus: (int)status;
00083
00092 - (void)setArgumentCount: (int)argc
00093 andArgumentValues: (char**)argv;
00094
00098 - (OFString*)programName;
00099
00103 - (OFArray*)arguments;
00104
00108 - (id)delegate;
00109
00115 - (void)setDelegate: (id)delegate;
00116
00120 - (void)run;
00121
00125 - (void)terminate;
00126
00132 - (void)terminateWithStatus: (int)status;
00133 @end
00134
00135 @interface OFObject (OFApplicationDelegate) <OFApplicationDelegate>
00136 @end
00137
00138 extern int of_application_main(int, char*[], Class);