mirror of
https://github.com/gnustep/apps-gorm.git
synced 2025-02-24 20:11:20 +00:00
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/apps/gorm/trunk@5667 72102866-910b-0410-8b05-ffd578937521
567 lines
14 KiB
Objective-C
567 lines
14 KiB
Objective-C
/* main.m
|
||
|
||
Copyright (C) 1999,2000 Free Software Foundation, Inc.
|
||
|
||
Author: Richard frith-Macdonald (richard@brainstorm.co.uk>
|
||
Date: 1999
|
||
|
||
This file is part of GNUstep.
|
||
|
||
This program is free software; you can redistribute it and/or modify
|
||
it under the terms of the GNU General Public License as published by
|
||
the Free Software Foundation; either version 2 of the License, or
|
||
(at your option) any later version.
|
||
|
||
This program is distributed in the hope that it will be useful,
|
||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
GNU General Public License for more details.
|
||
|
||
You should have received a copy of the GNU General Public License
|
||
along with this program; if not, write to the Free Software
|
||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||
*/
|
||
#include <Foundation/Foundation.h>
|
||
#include <AppKit/AppKit.h>
|
||
#include "../../GormPrivate.h"
|
||
|
||
@interface MenusPalette: IBPalette
|
||
{
|
||
}
|
||
@end
|
||
|
||
@implementation MenusPalette
|
||
|
||
- (void) finishInstantiate
|
||
{
|
||
NSView *contents;
|
||
NSMenuItem *i;
|
||
NSMenu *m;
|
||
NSMenu *s;
|
||
NSButton *b;
|
||
|
||
window = [[NSWindow alloc] initWithContentRect: NSMakeRect(0, 0, 272, 192)
|
||
styleMask: NSBorderlessWindowMask
|
||
backing: NSBackingStoreRetained
|
||
defer: NO];
|
||
contents = [window contentView];
|
||
|
||
|
||
/*
|
||
* The Info menu
|
||
*/
|
||
m = [NSMenu new];
|
||
[m addItemWithTitle: @"Info Panel..."
|
||
action: @selector(infoPanel:)
|
||
keyEquivalent: @""];
|
||
[m addItemWithTitle: @"Preferences..."
|
||
action: NULL
|
||
keyEquivalent: @""];
|
||
[m addItemWithTitle: @"Help..."
|
||
action: NULL
|
||
keyEquivalent: @"?"];
|
||
[m setTitle: @"Info"];
|
||
i = [[NSMenuItem alloc] initWithTitle: @"Info"
|
||
action: @selector(submenuAction:)
|
||
keyEquivalent: @""];
|
||
[i setSubmenu: m];
|
||
|
||
b = [[NSButton alloc] initWithFrame: NSMakeRect(30, 140, 100, 20)];
|
||
[b setImage: [NSImage imageNamed: @"common_3DArrowRight"]];
|
||
[b setAlignment: NSLeftTextAlignment];
|
||
[b setImagePosition: NSImageRight];
|
||
[b setTitle: @" Info"];
|
||
[contents addSubview: b];
|
||
[self associateObject: m
|
||
type: IBMenuPboardType
|
||
with: i];
|
||
RELEASE(b);
|
||
RELEASE(i);
|
||
RELEASE(m);
|
||
|
||
|
||
/*
|
||
* The Font menu
|
||
*/
|
||
m = [NSMenu new];
|
||
[m addItemWithTitle: @"Font Panel..."
|
||
action: @selector(orderFrontFontPanel:)
|
||
keyEquivalent: @"t"];
|
||
[m addItemWithTitle: @"Bold"
|
||
action: @selector(addFontTrait:)
|
||
keyEquivalent: @"b"];
|
||
[m addItemWithTitle: @"Italic"
|
||
action: @selector(addFontTrait:)
|
||
keyEquivalent: @"i"];
|
||
[m addItemWithTitle: @"Underline"
|
||
action: @selector(underline:)
|
||
keyEquivalent: @""];
|
||
[m addItemWithTitle: @"Superscript"
|
||
action: @selector(superscript:)
|
||
keyEquivalent: @""];
|
||
[m addItemWithTitle: @"Subscript"
|
||
action: @selector(subscript:)
|
||
keyEquivalent: @""];
|
||
[m addItemWithTitle: @"Unscript"
|
||
action: @selector(unscript:)
|
||
keyEquivalent: @""];
|
||
[m addItemWithTitle: @"Copy Font"
|
||
action: @selector(copyFont:)
|
||
keyEquivalent: @"3"];
|
||
[m addItemWithTitle: @"Paste Font"
|
||
action: @selector(pasteFont:)
|
||
keyEquivalent: @"4"];
|
||
[m setTitle: @"Font"];
|
||
i = [[NSMenuItem alloc] initWithTitle: @"Font"
|
||
action: @selector(submenuAction:)
|
||
keyEquivalent: @""];
|
||
[i setSubmenu: m];
|
||
|
||
b = [[NSButton alloc] initWithFrame: NSMakeRect(145, 140, 100, 20)];
|
||
[b setImage: [NSImage imageNamed: @"common_3DArrowRight"]];
|
||
[b setAlignment: NSLeftTextAlignment];
|
||
[b setImagePosition: NSImageRight];
|
||
[b setTitle: @" Font"];
|
||
[contents addSubview: b];
|
||
[self associateObject: i
|
||
type: IBMenuPboardType
|
||
with: b];
|
||
RELEASE(b);
|
||
RELEASE(i);
|
||
RELEASE(m);
|
||
|
||
|
||
/*
|
||
* The Document menu
|
||
*/
|
||
m = [NSMenu new];
|
||
[m addItemWithTitle: @"Open..."
|
||
action: @selector(open:)
|
||
keyEquivalent: @"o"];
|
||
[m addItemWithTitle: @"New"
|
||
action: @selector(new:)
|
||
keyEquivalent: @"n"];
|
||
[m addItemWithTitle: @"Save..."
|
||
action: @selector(save:)
|
||
keyEquivalent: @"s"];
|
||
[m addItemWithTitle: @"Save As..."
|
||
action: @selector(saveAs:)
|
||
keyEquivalent: @"S"];
|
||
[m addItemWithTitle: @"Save To..."
|
||
action: @selector(saveTo:)
|
||
keyEquivalent: @""];
|
||
[m addItemWithTitle: @"Save All"
|
||
action: @selector(saveAll:)
|
||
keyEquivalent: @""];
|
||
[m addItemWithTitle: @"revert To Saved"
|
||
action: @selector(revertToSaved:)
|
||
keyEquivalent: @""];
|
||
[m addItemWithTitle: @"Close"
|
||
action: @selector(close:)
|
||
keyEquivalent: @""];
|
||
[m setTitle: @"Document"];
|
||
i = [[NSMenuItem alloc] initWithTitle: @"Document"
|
||
action: @selector(submenuAction:)
|
||
keyEquivalent: @""];
|
||
[i setSubmenu: m];
|
||
|
||
b = [[NSButton alloc] initWithFrame: NSMakeRect(30, 120, 100, 20)];
|
||
[b setImage: [NSImage imageNamed: @"common_3DArrowRight"]];
|
||
[b setAlignment: NSLeftTextAlignment];
|
||
[b setImagePosition: NSImageRight];
|
||
[b setTitle: @" Document"];
|
||
[contents addSubview: b];
|
||
[self associateObject: i
|
||
type: IBMenuPboardType
|
||
with: b];
|
||
RELEASE(b);
|
||
RELEASE(i);
|
||
RELEASE(m);
|
||
|
||
|
||
/*
|
||
* The Text menu
|
||
*/
|
||
m = [NSMenu new];
|
||
[m addItemWithTitle: @"Align Left"
|
||
action: @selector(alignSelLeft:)
|
||
keyEquivalent: @""];
|
||
[m addItemWithTitle: @"Center"
|
||
action: @selector(alignSelCenter:)
|
||
keyEquivalent: @""];
|
||
[m addItemWithTitle: @"Align Right"
|
||
action: @selector(alignSelRight:)
|
||
keyEquivalent: @""];
|
||
[m addItemWithTitle: @"Show Ruler"
|
||
action: @selector(toggleRuler:)
|
||
keyEquivalent: @""];
|
||
[m addItemWithTitle: @"Copy Ruler"
|
||
action: @selector(copyRuler:)
|
||
keyEquivalent: @"1"];
|
||
[m addItemWithTitle: @"Paste Ruler"
|
||
action: @selector(pasteRuler:)
|
||
keyEquivalent: @"2"];
|
||
[m setTitle: @"Text"];
|
||
i = [[NSMenuItem alloc] initWithTitle: @"Text"
|
||
action: @selector(submenuAction:)
|
||
keyEquivalent: @""];
|
||
[i setSubmenu: m];
|
||
|
||
b = [[NSButton alloc] initWithFrame: NSMakeRect(145, 120, 100, 20)];
|
||
[b setImage: [NSImage imageNamed: @"common_3DArrowRight"]];
|
||
[b setAlignment: NSLeftTextAlignment];
|
||
[b setImagePosition: NSImageRight];
|
||
[b setTitle: @" Text"];
|
||
[contents addSubview: b];
|
||
[self associateObject: i
|
||
type: IBMenuPboardType
|
||
with: b];
|
||
RELEASE(b);
|
||
RELEASE(i);
|
||
RELEASE(m);
|
||
|
||
|
||
/*
|
||
* The Edit menu
|
||
*/
|
||
m = [NSMenu new];
|
||
[m addItemWithTitle: @"Cut"
|
||
action: @selector(cut:)
|
||
keyEquivalent: @"x"];
|
||
[m addItemWithTitle: @"Copy"
|
||
action: @selector(copy:)
|
||
keyEquivalent: @"c"];
|
||
[m addItemWithTitle: @"Paste"
|
||
action: @selector(paste:)
|
||
keyEquivalent: @"v"];
|
||
[m addItemWithTitle: @"Select All"
|
||
action: @selector(selectAll:)
|
||
keyEquivalent: @"a"];
|
||
[m setTitle: @"Edit"];
|
||
i = [[NSMenuItem alloc] initWithTitle: @"Edit"
|
||
action: @selector(submenuAction:)
|
||
keyEquivalent: @""];
|
||
[i setSubmenu: m];
|
||
|
||
b = [[NSButton alloc] initWithFrame: NSMakeRect(30, 100, 100, 20)];
|
||
[b setImage: [NSImage imageNamed: @"common_3DArrowRight"]];
|
||
[b setAlignment: NSLeftTextAlignment];
|
||
[b setImagePosition: NSImageRight];
|
||
[b setTitle: @" Edit"];
|
||
[contents addSubview: b];
|
||
[self associateObject: i
|
||
type: IBMenuPboardType
|
||
with: b];
|
||
RELEASE(b);
|
||
RELEASE(i);
|
||
RELEASE(m);
|
||
|
||
|
||
/*
|
||
* The Find menu
|
||
*/
|
||
m = [NSMenu new];
|
||
[m addItemWithTitle: @"Find Panel..."
|
||
action: NULL
|
||
keyEquivalent: @"f"];
|
||
[m addItemWithTitle: @"Find Next"
|
||
action: NULL
|
||
keyEquivalent: @"g"];
|
||
[m addItemWithTitle: @"Find Previous"
|
||
action: NULL
|
||
keyEquivalent: @"d"];
|
||
[m addItemWithTitle: @"Enter Selection"
|
||
action: NULL
|
||
keyEquivalent: @"e"];
|
||
[m addItemWithTitle: @"Jump To Selection"
|
||
action: NULL
|
||
keyEquivalent: @"j"];
|
||
[m setTitle: @"Find"];
|
||
i = [[NSMenuItem alloc] initWithTitle: @"Find"
|
||
action: @selector(submenuAction:)
|
||
keyEquivalent: @""];
|
||
[i setSubmenu: m];
|
||
|
||
b = [[NSButton alloc] initWithFrame: NSMakeRect(145, 100, 100, 20)];
|
||
[b setImage: [NSImage imageNamed: @"common_3DArrowRight"]];
|
||
[b setAlignment: NSLeftTextAlignment];
|
||
[b setImagePosition: NSImageRight];
|
||
[b setTitle: @" Find"];
|
||
[contents addSubview: b];
|
||
[self associateObject: i
|
||
type: IBMenuPboardType
|
||
with: b];
|
||
RELEASE(b);
|
||
RELEASE(i);
|
||
RELEASE(m);
|
||
|
||
|
||
/*
|
||
* The Format menu
|
||
*/
|
||
m = [NSMenu new];
|
||
/*
|
||
* Font submenu
|
||
*/
|
||
i = [m addItemWithTitle: @"Font"
|
||
action: NULL
|
||
keyEquivalent: @""];
|
||
s = [NSMenu new];
|
||
[s addItemWithTitle: @"Font Panel..."
|
||
action: @selector(orderFrontFontPanel:)
|
||
keyEquivalent: @"t"];
|
||
[s addItemWithTitle: @"Bold"
|
||
action: @selector(addFontTrait:)
|
||
keyEquivalent: @"b"];
|
||
[s addItemWithTitle: @"Italic"
|
||
action: @selector(addFontTrait:)
|
||
keyEquivalent: @"i"];
|
||
[s addItemWithTitle: @"Underline"
|
||
action: @selector(underline:)
|
||
keyEquivalent: @""];
|
||
[s addItemWithTitle: @"Superscript"
|
||
action: @selector(superscript:)
|
||
keyEquivalent: @""];
|
||
[s addItemWithTitle: @"Subscript"
|
||
action: @selector(subscript:)
|
||
keyEquivalent: @""];
|
||
[s addItemWithTitle: @"Unscript"
|
||
action: @selector(unscript:)
|
||
keyEquivalent: @""];
|
||
[s addItemWithTitle: @"Copy Font"
|
||
action: @selector(copyFont:)
|
||
keyEquivalent: @"3"];
|
||
[s addItemWithTitle: @"Paste Font"
|
||
action: @selector(pasteFont:)
|
||
keyEquivalent: @"4"];
|
||
[s setTitle: @"Font"];
|
||
[m setSubmenu: s forItem: i];
|
||
|
||
/*
|
||
* Text submenu
|
||
*/
|
||
i = [m addItemWithTitle: @"Text"
|
||
action: NULL
|
||
keyEquivalent: @""];
|
||
s = [NSMenu new];
|
||
[s addItemWithTitle: @"Align Left"
|
||
action: @selector(alignSelLeft:)
|
||
keyEquivalent: @""];
|
||
[s addItemWithTitle: @"Center"
|
||
action: @selector(alignSelCenter:)
|
||
keyEquivalent: @""];
|
||
[s addItemWithTitle: @"Align Right"
|
||
action: @selector(alignSelRight:)
|
||
keyEquivalent: @""];
|
||
[s addItemWithTitle: @"Show Ruler"
|
||
action: @selector(toggleRuler:)
|
||
keyEquivalent: @""];
|
||
[s addItemWithTitle: @"Copy Ruler"
|
||
action: @selector(copyRuler:)
|
||
keyEquivalent: @"1"];
|
||
[s addItemWithTitle: @"Paste Ruler"
|
||
action: @selector(pasteRuler:)
|
||
keyEquivalent: @"2"];
|
||
[s setTitle: @"Text"];
|
||
[m setSubmenu: s forItem: i];
|
||
|
||
[m addItemWithTitle: @"Page Layout..."
|
||
action: @selector(runPageLayout:)
|
||
keyEquivalent: @"P"];
|
||
[m setTitle: @"Format"];
|
||
i = [[NSMenuItem alloc] initWithTitle: @"Format"
|
||
action: @selector(submenuAction:)
|
||
keyEquivalent: @""];
|
||
[i setSubmenu: m];
|
||
|
||
b = [[NSButton alloc] initWithFrame: NSMakeRect(30, 80, 100, 20)];
|
||
[b setImage: [NSImage imageNamed: @"common_3DArrowRight"]];
|
||
[b setAlignment: NSLeftTextAlignment];
|
||
[b setImagePosition: NSImageRight];
|
||
[b setTitle: @" Format"];
|
||
[contents addSubview: b];
|
||
[self associateObject: i
|
||
type: IBMenuPboardType
|
||
with: b];
|
||
RELEASE(b);
|
||
RELEASE(i);
|
||
RELEASE(m);
|
||
|
||
|
||
/*
|
||
* The Colors item
|
||
*/
|
||
i = [[NSMenuItem alloc] initWithTitle: @"Colors..."
|
||
action: @selector(orderFrontColorPanel:)
|
||
keyEquivalent: @""];
|
||
|
||
b = [[NSButton alloc] initWithFrame: NSMakeRect(145, 80, 100, 20)];
|
||
[b setAlignment: NSLeftTextAlignment];
|
||
[b setTitle: @" Colors..."];
|
||
[contents addSubview: b];
|
||
[self associateObject: i
|
||
type: IBMenuPboardType
|
||
with: b];
|
||
RELEASE(b);
|
||
RELEASE(i);
|
||
|
||
|
||
/*
|
||
* The Windows menu
|
||
*/
|
||
m = [NSMenu new];
|
||
[m addItemWithTitle: @"Arrange In Front"
|
||
action: @selector(arrangeInFront:)
|
||
keyEquivalent: @""];
|
||
[m addItemWithTitle: @"Miniaturize Window"
|
||
action: @selector(performMiniaturize:)
|
||
keyEquivalent: @"m"];
|
||
[m addItemWithTitle: @"Close Window"
|
||
action: @selector(performClose:)
|
||
keyEquivalent: @"w"];
|
||
[m setTitle: @"Windows"];
|
||
i = [[NSMenuItem alloc] initWithTitle: @"Windows"
|
||
action: @selector(submenuAction:)
|
||
keyEquivalent: @""];
|
||
[i setSubmenu: m];
|
||
|
||
b = [[NSButton alloc] initWithFrame: NSMakeRect(30, 60, 100, 20)];
|
||
[b setImage: [NSImage imageNamed: @"common_3DArrowRight"]];
|
||
[b setAlignment: NSLeftTextAlignment];
|
||
[b setImagePosition: NSImageRight];
|
||
[b setTitle: @" Windows"];
|
||
[contents addSubview: b];
|
||
[self associateObject: i
|
||
type: IBMenuPboardType
|
||
with: b];
|
||
RELEASE(b);
|
||
RELEASE(i);
|
||
RELEASE(m);
|
||
|
||
|
||
/*
|
||
* The general item
|
||
*/
|
||
i = [[NSMenuItem alloc] initWithTitle: @"Item"
|
||
action: NULL
|
||
keyEquivalent: @""];
|
||
|
||
b = [[NSButton alloc] initWithFrame: NSMakeRect(145, 60, 100, 20)];
|
||
[b setAlignment: NSLeftTextAlignment];
|
||
[b setTitle: @" Item"];
|
||
[contents addSubview: b];
|
||
[self associateObject: i
|
||
type: IBMenuPboardType
|
||
with: b];
|
||
RELEASE(b);
|
||
RELEASE(i);
|
||
|
||
|
||
/*
|
||
* The Services menu
|
||
*/
|
||
m = [NSMenu new];
|
||
[m setTitle: @"Services"];
|
||
i = [[NSMenuItem alloc] initWithTitle: @"Services"
|
||
action: @selector(submenuAction:)
|
||
keyEquivalent: @""];
|
||
[i setSubmenu: m];
|
||
|
||
b = [[NSButton alloc] initWithFrame: NSMakeRect(30, 40, 100, 20)];
|
||
[b setImage: [NSImage imageNamed: @"common_3DArrowRight"]];
|
||
[b setAlignment: NSLeftTextAlignment];
|
||
[b setImagePosition: NSImageRight];
|
||
[b setTitle: @" Services"];
|
||
[contents addSubview: b];
|
||
[self associateObject: i
|
||
type: IBMenuPboardType
|
||
with: b];
|
||
RELEASE(b);
|
||
RELEASE(i);
|
||
RELEASE(m);
|
||
|
||
|
||
/*
|
||
* The general submenu
|
||
*/
|
||
m = [NSMenu new];
|
||
[m addItemWithTitle: @"Item"
|
||
action: NULL
|
||
keyEquivalent: @""];
|
||
[m setTitle: @"Submenu"];
|
||
i = [[NSMenuItem alloc] initWithTitle: @"Submenu"
|
||
action: @selector(submenuAction:)
|
||
keyEquivalent: @""];
|
||
[i setSubmenu: m];
|
||
|
||
b = [[NSButton alloc] initWithFrame: NSMakeRect(145, 40, 100, 20)];
|
||
[b setImage: [NSImage imageNamed: @"common_3DArrowRight"]];
|
||
[b setAlignment: NSLeftTextAlignment];
|
||
[b setImagePosition: NSImageRight];
|
||
[b setTitle: @" Submenu"];
|
||
[contents addSubview: b];
|
||
[self associateObject: i
|
||
type: IBMenuPboardType
|
||
with: b];
|
||
RELEASE(b);
|
||
RELEASE(i);
|
||
RELEASE(m);
|
||
|
||
}
|
||
@end
|
||
|
||
@implementation NSMenu (IBInspectorClassNames)
|
||
- (NSString*) inspectorClassName
|
||
{
|
||
return @"GormMenuAttributesInspector";
|
||
}
|
||
@end
|
||
|
||
|
||
|
||
@interface GormMenuAttributesInspector : IBInspector
|
||
{
|
||
}
|
||
@end
|
||
|
||
@implementation GormMenuAttributesInspector
|
||
- (void) dealloc
|
||
{
|
||
RELEASE(window);
|
||
[super dealloc];
|
||
}
|
||
|
||
- (id) init
|
||
{
|
||
self = [super init];
|
||
if (self != nil)
|
||
{
|
||
NSView *contents;
|
||
NSBox *box;
|
||
|
||
window = [[NSWindow alloc] initWithContentRect: NSMakeRect(0, 0, 272, 360)
|
||
styleMask: NSBorderlessWindowMask
|
||
backing: NSBackingStoreRetained
|
||
defer: NO];
|
||
contents = [window contentView];
|
||
|
||
box = [[NSBox alloc] initWithFrame: NSMakeRect(10, 10, 210, 250)];
|
||
[box setTitle: @"Options"];
|
||
[box setBorderType: NSGrooveBorder];
|
||
[contents addSubview: box];
|
||
RELEASE(box);
|
||
|
||
}
|
||
return self;
|
||
}
|
||
|
||
- (void) ok: (id)sender
|
||
{
|
||
}
|
||
|
||
- (void) setObject: (id)anObject
|
||
{
|
||
}
|
||
|
||
@end
|
||
|