1/* All Rights reserved */ 2 3#include <AppKit/AppKit.h> 4#include "GormFontViewController.h" 5 6static GormFontViewController *gorm_font_cont = nil; 7 8@implementation GormFontViewController 9+ (GormFontViewController *) sharedGormFontViewController 10{ 11 if (gorm_font_cont == nil) 12 { 13 gorm_font_cont = [[self alloc] init]; 14 } 15 return gorm_font_cont; 16} 17- (id) init 18{ 19 self = [super init]; 20 if (self != nil) 21 { 22 // load the gui... 23 if (![NSBundle loadNibNamed: @"GormFontView" 24 owner: self]) 25 { 26 NSLog(@"Could not open gorm GormFontView"); 27 return nil; 28 } 29 [[NSFontManager sharedFontManager] setDelegate: self]; 30 } 31 return self; 32} 33- (NSFont *) convertFont: (NSFont *)aFont 34{ 35 float size; 36 NSFont *font; 37 38 // If aFont isn't nil and the button is off then set the size 39 // to the size of the passed in font. 40 41 size = (aFont && [encodeButton state] == NSOffState) 42 ? [aFont pointSize] : 0.0; 43 44 switch([fontSelector indexOfSelectedItem]) 45 { 46 default: 47 case 0: // selected font 48 font = (aFont) ? aFont : 49 [[NSFontManager sharedFontManager] selectedFont]; 50 if (!font) font = [NSFont userFontOfSize: size]; 51 break; 52 case 1: // bold system font 53 font = [NSFont boldSystemFontOfSize: size]; 54 break; 55 case 2: // system font 56 font = [NSFont systemFontOfSize: size]; 57 break; 58 case 3: // user fixed font 59 font = [NSFont userFixedPitchFontOfSize: size]; 60 break; 61 case 4: // user font 62 font = [NSFont userFontOfSize: size]; 63 break; 64 case 5: // title bar font 65 font = [NSFont titleBarFontOfSize: size]; 66 break; 67 case 6: // menu font 68 font = [NSFont menuFontOfSize: size]; 69 break; 70 case 7: // message font 71 font = [NSFont messageFontOfSize: size]; 72 break; 73 case 8: // palette font 74 font = [NSFont paletteFontOfSize: size]; 75 break; 76 case 9: // tooltops font 77 font = [NSFont toolTipsFontOfSize: size]; 78 break; 79 case 10: // control content font 80 font = [NSFont controlContentFontOfSize: size]; 81 break; 82 case 11: 83 font = [NSFont labelFontOfSize: size]; 84 break; 85 } 86 87 return font; 88} 89- (void) selectFont: (id)sender 90{ 91 NSFontManager *fontManager = [NSFontManager sharedFontManager]; 92 NSFont *font; 93 94 font = [self convertFont: nil]; 95 96 [fontManager setSelectedFont: font isMultiple: NO]; 97 98 if ([fontSelector indexOfSelectedItem] == 0) 99 { 100 [encodeButton setEnabled: NO]; 101 [encodeButton setState: NSOffState]; 102 } 103 else 104 { 105 [encodeButton setEnabled: YES]; 106 [encodeButton setState: NSOffState]; 107 } 108} 109 110- (id) view 111{ 112 return view; 113} 114 115- (void) mouseDragged: (NSEvent *)event 116{ 117 // here to make certain we don't crash.. 118} 119 120- (void) flagsChanged: (NSEvent *)event 121{ 122 // here to make certain we don't crash.. 123} 124 125@end 126