2020-04-21 05:07:14 +00:00
|
|
|
/* All rights reserved */
|
2003-06-10 01:38:38 +00:00
|
|
|
|
|
|
|
#include <AppKit/AppKit.h>
|
2019-11-03 01:57:39 +00:00
|
|
|
|
2003-06-10 01:38:38 +00:00
|
|
|
#include "GormFontViewController.h"
|
|
|
|
|
2003-09-07 14:42:24 +00:00
|
|
|
static GormFontViewController *gorm_font_cont = nil;
|
2003-06-10 01:38:38 +00:00
|
|
|
|
2003-09-07 14:42:24 +00:00
|
|
|
@implementation GormFontViewController
|
2021-03-28 22:55:29 +00:00
|
|
|
|
2003-09-07 14:42:24 +00:00
|
|
|
+ (GormFontViewController *) sharedGormFontViewController
|
|
|
|
{
|
|
|
|
if (gorm_font_cont == nil)
|
|
|
|
{
|
|
|
|
gorm_font_cont = [[self alloc] init];
|
|
|
|
}
|
|
|
|
return gorm_font_cont;
|
|
|
|
}
|
2021-03-28 22:55:29 +00:00
|
|
|
|
2003-06-10 01:38:38 +00:00
|
|
|
- (id) init
|
|
|
|
{
|
|
|
|
self = [super init];
|
|
|
|
if (self != nil)
|
|
|
|
{
|
2023-06-14 07:40:51 +00:00
|
|
|
NSBundle *bundle = [NSBundle bundleForClass: [self class]];
|
|
|
|
|
2003-06-10 01:38:38 +00:00
|
|
|
// load the gui...
|
2023-06-14 07:40:51 +00:00
|
|
|
if (![bundle loadNibNamed: @"GormFontView"
|
|
|
|
owner: self
|
|
|
|
topLevelObjects: nil])
|
2003-06-10 01:38:38 +00:00
|
|
|
{
|
|
|
|
NSLog(@"Could not open gorm GormFontView");
|
|
|
|
return nil;
|
|
|
|
}
|
|
|
|
[[NSFontManager sharedFontManager] setDelegate: self];
|
|
|
|
}
|
|
|
|
return self;
|
|
|
|
}
|
2021-03-28 22:55:29 +00:00
|
|
|
|
2003-09-07 14:42:24 +00:00
|
|
|
- (NSFont *) convertFont: (NSFont *)aFont
|
2003-06-10 01:38:38 +00:00
|
|
|
{
|
2003-09-07 14:42:24 +00:00
|
|
|
float size;
|
|
|
|
NSFont *font;
|
|
|
|
|
|
|
|
// If aFont isn't nil and the button is off then set the size
|
|
|
|
// to the size of the passed in font.
|
|
|
|
|
|
|
|
size = (aFont && [encodeButton state] == NSOffState)
|
|
|
|
? [aFont pointSize] : 0.0;
|
2003-06-10 01:38:38 +00:00
|
|
|
|
|
|
|
switch([fontSelector indexOfSelectedItem])
|
|
|
|
{
|
2003-09-07 14:42:24 +00:00
|
|
|
default:
|
2003-06-10 01:38:38 +00:00
|
|
|
case 0: // selected font
|
2003-09-07 14:42:24 +00:00
|
|
|
font = (aFont) ? aFont :
|
|
|
|
[[NSFontManager sharedFontManager] selectedFont];
|
|
|
|
if (!font) font = [NSFont userFontOfSize: size];
|
2003-06-10 01:38:38 +00:00
|
|
|
break;
|
|
|
|
case 1: // bold system font
|
2003-09-07 14:42:24 +00:00
|
|
|
font = [NSFont boldSystemFontOfSize: size];
|
2003-06-10 01:38:38 +00:00
|
|
|
break;
|
|
|
|
case 2: // system font
|
2003-09-07 14:42:24 +00:00
|
|
|
font = [NSFont systemFontOfSize: size];
|
2003-06-10 01:38:38 +00:00
|
|
|
break;
|
|
|
|
case 3: // user fixed font
|
2003-09-07 14:42:24 +00:00
|
|
|
font = [NSFont userFixedPitchFontOfSize: size];
|
2003-06-10 01:38:38 +00:00
|
|
|
break;
|
|
|
|
case 4: // user font
|
2003-09-07 14:42:24 +00:00
|
|
|
font = [NSFont userFontOfSize: size];
|
2003-06-10 01:38:38 +00:00
|
|
|
break;
|
|
|
|
case 5: // title bar font
|
2003-09-07 14:42:24 +00:00
|
|
|
font = [NSFont titleBarFontOfSize: size];
|
2003-06-10 01:38:38 +00:00
|
|
|
break;
|
|
|
|
case 6: // menu font
|
2003-09-07 14:42:24 +00:00
|
|
|
font = [NSFont menuFontOfSize: size];
|
2003-06-10 01:38:38 +00:00
|
|
|
break;
|
|
|
|
case 7: // message font
|
2003-09-07 14:42:24 +00:00
|
|
|
font = [NSFont messageFontOfSize: size];
|
2003-06-10 01:38:38 +00:00
|
|
|
break;
|
|
|
|
case 8: // palette font
|
2003-09-07 14:42:24 +00:00
|
|
|
font = [NSFont paletteFontOfSize: size];
|
2003-06-10 01:38:38 +00:00
|
|
|
break;
|
|
|
|
case 9: // tooltops font
|
2003-09-07 14:42:24 +00:00
|
|
|
font = [NSFont toolTipsFontOfSize: size];
|
2003-06-10 01:38:38 +00:00
|
|
|
break;
|
|
|
|
case 10: // control content font
|
2003-09-07 14:42:24 +00:00
|
|
|
font = [NSFont controlContentFontOfSize: size];
|
2003-06-10 01:38:38 +00:00
|
|
|
break;
|
|
|
|
case 11:
|
2003-09-07 14:42:24 +00:00
|
|
|
font = [NSFont labelFontOfSize: size];
|
2003-06-10 01:38:38 +00:00
|
|
|
break;
|
|
|
|
}
|
2003-09-07 14:42:24 +00:00
|
|
|
|
|
|
|
return font;
|
|
|
|
}
|
2021-03-28 22:55:29 +00:00
|
|
|
|
2003-09-07 14:42:24 +00:00
|
|
|
- (void) selectFont: (id)sender
|
|
|
|
{
|
|
|
|
NSFontManager *fontManager = [NSFontManager sharedFontManager];
|
|
|
|
NSFont *font;
|
|
|
|
|
|
|
|
font = [self convertFont: nil];
|
2003-06-10 01:38:38 +00:00
|
|
|
|
2003-09-07 14:42:24 +00:00
|
|
|
[fontManager setSelectedFont: font isMultiple: NO];
|
|
|
|
|
|
|
|
if ([fontSelector indexOfSelectedItem] == 0)
|
2003-06-10 01:38:38 +00:00
|
|
|
{
|
2003-09-07 14:42:24 +00:00
|
|
|
[encodeButton setEnabled: NO];
|
|
|
|
[encodeButton setState: NSOffState];
|
2003-06-10 01:38:38 +00:00
|
|
|
}
|
2003-09-07 14:42:24 +00:00
|
|
|
else
|
|
|
|
{
|
|
|
|
[encodeButton setEnabled: YES];
|
2004-04-03 18:21:54 +00:00
|
|
|
[encodeButton setState: NSOffState];
|
|
|
|
}
|
2003-06-10 01:38:38 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
- (id) view
|
|
|
|
{
|
|
|
|
return view;
|
|
|
|
}
|
|
|
|
|
2003-06-27 02:48:09 +00:00
|
|
|
- (void) mouseDragged: (NSEvent *)event
|
|
|
|
{
|
|
|
|
// here to make certain we don't crash..
|
|
|
|
}
|
|
|
|
|
|
|
|
- (void) flagsChanged: (NSEvent *)event
|
|
|
|
{
|
|
|
|
// here to make certain we don't crash..
|
|
|
|
}
|
|
|
|
|
2003-06-10 01:38:38 +00:00
|
|
|
@end
|