2000-09-20 08:50:08 +00:00
|
|
|
/* $Id$ */
|
|
|
|
|
2000-08-27 19:11:42 +00:00
|
|
|
#import <AppKit/AppKit.h>
|
2000-09-14 08:54:19 +00:00
|
|
|
#import "AppController.h"
|
|
|
|
|
|
|
|
#define APP_NAME @"GNUstep"
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Create the application's menu
|
|
|
|
*/
|
|
|
|
|
|
|
|
void createMenu();
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Initialise and go!
|
|
|
|
*/
|
2000-08-27 19:11:42 +00:00
|
|
|
|
|
|
|
int main(int argc, const char *argv[]) {
|
2000-09-20 08:50:08 +00:00
|
|
|
NSApplication *theApp;
|
|
|
|
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
|
|
|
|
AppController *controller;
|
2000-09-14 08:54:19 +00:00
|
|
|
|
|
|
|
#ifndef NX_CURRENT_COMPILER_RELEASE
|
|
|
|
initialize_gnustep_backend();
|
|
|
|
#endif
|
|
|
|
|
|
|
|
theApp = [NSApplication sharedApplication];
|
|
|
|
|
|
|
|
createMenu();
|
|
|
|
|
|
|
|
controller = [[AppController alloc] init];
|
|
|
|
[theApp setDelegate:controller];
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Go...
|
|
|
|
*/
|
|
|
|
|
|
|
|
[theApp run];
|
|
|
|
|
|
|
|
/*
|
|
|
|
* ...and finish!
|
|
|
|
*/
|
|
|
|
|
2000-09-20 08:50:08 +00:00
|
|
|
RELEASE(controller);
|
|
|
|
RELEASE(pool);
|
2000-09-14 08:54:19 +00:00
|
|
|
|
|
|
|
return 0;
|
2000-08-27 19:11:42 +00:00
|
|
|
}
|
2000-09-14 08:54:19 +00:00
|
|
|
|
|
|
|
void createMenu()
|
|
|
|
{
|
|
|
|
NSMenu *menu;
|
|
|
|
NSMenu *info;
|
|
|
|
NSMenu *edit;
|
|
|
|
NSMenu *services;
|
|
|
|
NSMenu *windows;
|
|
|
|
|
|
|
|
SEL action = @selector(method:);
|
|
|
|
|
|
|
|
menu = [[NSMenu alloc] initWithTitle:APP_NAME];
|
|
|
|
|
2000-10-15 12:36:06 +00:00
|
|
|
[menu addItemWithTitle:@"Info" action:@selector(showInfoPanel:) keyEquivalent:@""];
|
2000-09-14 08:54:19 +00:00
|
|
|
[menu addItemWithTitle:@"Edit" action:action keyEquivalent:@""];
|
|
|
|
[menu addItemWithTitle:@"Windows" action:action keyEquivalent:@""];
|
|
|
|
[menu addItemWithTitle:@"Services" action:action keyEquivalent:@""];
|
|
|
|
[menu addItemWithTitle:@"Hide" action:@selector(hide:) keyEquivalent:@"h"];
|
|
|
|
[menu addItemWithTitle:@"Quit" action:@selector(terminate:) keyEquivalent:@"q"];
|
|
|
|
|
2000-09-20 08:50:08 +00:00
|
|
|
info = AUTORELEASE([[NSMenu alloc] init]);
|
2000-09-14 08:54:19 +00:00
|
|
|
[menu setSubmenu:info forItem:[menu itemWithTitle:@"Info"]];
|
|
|
|
[info addItemWithTitle:@"Info Panel..." action:@selector(showInfoPanel:) keyEquivalent:@""];
|
|
|
|
[info addItemWithTitle:@"Preferences" action:@selector(showPrefPanel:) keyEquivalent:@""];
|
|
|
|
[info addItemWithTitle:@"Help" action:action keyEquivalent:@"?"];
|
|
|
|
|
2000-09-20 08:50:08 +00:00
|
|
|
edit = AUTORELEASE([[NSMenu alloc] init]);
|
2000-09-14 08:54:19 +00:00
|
|
|
[edit addItemWithTitle:@"Cut" action:action keyEquivalent:@"x"];
|
|
|
|
[edit addItemWithTitle:@"Copy" action:action keyEquivalent:@"c"];
|
|
|
|
[edit addItemWithTitle:@"Paste" action:action keyEquivalent:@"v"];
|
|
|
|
[edit addItemWithTitle:@"Delete" action:action keyEquivalent:@""];
|
|
|
|
[edit addItemWithTitle:@"Select All" action:action keyEquivalent:@"a"];
|
|
|
|
[menu setSubmenu:edit forItem:[menu itemWithTitle:@"Edit"]];
|
|
|
|
|
2000-09-20 08:50:08 +00:00
|
|
|
windows = AUTORELEASE([[NSMenu alloc] init]);
|
2000-09-14 08:54:19 +00:00
|
|
|
[windows addItemWithTitle:@"Arrange"
|
|
|
|
action:@selector(arrangeInFront:)
|
|
|
|
keyEquivalent:@""];
|
|
|
|
[windows addItemWithTitle:@"Miniaturize"
|
|
|
|
action:@selector(performMiniaturize:)
|
|
|
|
keyEquivalent:@"m"];
|
|
|
|
[windows addItemWithTitle:@"Close"
|
|
|
|
action:@selector(performClose:)
|
|
|
|
keyEquivalent:@"w"];
|
|
|
|
[menu setSubmenu:windows forItem:[menu itemWithTitle:@"Windows"]];
|
|
|
|
|
2000-09-20 08:50:08 +00:00
|
|
|
services = AUTORELEASE([[NSMenu alloc] init]);
|
2000-09-14 08:54:19 +00:00
|
|
|
[menu setSubmenu:services forItem:[menu itemWithTitle:@"Services"]];
|
|
|
|
|
|
|
|
[[NSApplication sharedApplication] setMainMenu:menu];
|
|
|
|
[[NSApplication sharedApplication] setServicesMenu: services];
|
|
|
|
|
|
|
|
[menu update];
|
|
|
|
[menu display];
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|