Prettified

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@8820 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
nico 2001-01-27 00:03:42 +00:00
parent 81e836c107
commit a45805a59e

View file

@ -7,10 +7,14 @@
Author: Scott Christley <scottc@net-community.com> Author: Scott Christley <scottc@net-community.com>
Date: 1996 Date: 1996
Modified: Fred Kiefer <FredKiefer@gmx.de> Modified: Fred Kiefer <FredKiefer@gmx.de>
Date: Febuary 2000 Date: Febuary 2000
Almost complete rewrite. Almost complete rewrite.
Nicola Pero <n.pero@mi.flashnet.it>
Date: January 2001 - sizings and resizings
This file is part of the GNUstep GUI Library. This file is part of the GNUstep GUI Library.
This library is free software; you can redistribute it and/or This library is free software; you can redistribute it and/or
@ -40,11 +44,34 @@
#include <AppKit/NSBrowserCell.h> #include <AppKit/NSBrowserCell.h>
#include <AppKit/NSTextView.h> #include <AppKit/NSTextView.h>
#include <AppKit/NSTextField.h> #include <AppKit/NSTextField.h>
#include <AppKit/NSTextFieldCell.h>
#include <AppKit/NSColor.h> #include <AppKit/NSColor.h>
#include <AppKit/NSPanel.h> #include <AppKit/NSPanel.h>
#include <AppKit/NSButton.h> #include <AppKit/NSButton.h>
#include <AppKit/NSBox.h> #include <AppKit/NSBox.h>
static inline void _setFloatValue (NSTextField *field, float size)
{
/* If casting size to int and then back to float we get no change,
it means it's an integer */
if ((float)((int)size) == size)
{
/* We prefer using this if it's an int, so that it's
displayed like in `8' rather than like in
`8.0000000000'. Yes - when NSCell's formatters are
finished we won't need this. */
[field setIntValue: (int)size];
}
else
{
[field setFloatValue: size];
}
}
/* Implemented in NSBrowser */
@interface GSBrowserTitleCell : NSTextFieldCell
@end
float sizes[] = {4.0, 6.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, float sizes[] = {4.0, 6.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0,
14.0, 16.0, 18.0, 24.0, 36.0, 48.0, 64.0}; 14.0, 16.0, 18.0, 24.0, 36.0, 48.0, 64.0};
@ -141,16 +168,20 @@ float sizes[] = {4.0, 6.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0,
/* /*
* Setting the Font * Setting the Font
*/ */
- (void) setPanelFont: (NSFont*)fontObject - (void) setPanelFont: (NSFont *)fontObject
isMultiple: (BOOL)flag isMultiple: (BOOL)flag
{ {
NSTextField *previewArea = [[self contentView] viewWithTag: NSFPPreviewField]; NSTextField *previewArea;
previewArea = [[self contentView] viewWithTag: NSFPPreviewField];
ASSIGN(_panelFont, fontObject); ASSIGN(_panelFont, fontObject);
_multiple = flag; _multiple = flag;
if (fontObject == nil) if (fontObject == nil)
return; {
return;
}
[previewArea setFont: fontObject]; [previewArea setFont: fontObject];
@ -203,11 +234,13 @@ float sizes[] = {4.0, 6.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0,
face = [[_faceList objectAtIndex: i] objectAtIndex: 1]; face = [[_faceList objectAtIndex: i] objectAtIndex: 1];
} }
// show point size and select the row if there is one // show point size and select the row if there is one
[sizeField setFloatValue: size]; _setFloatValue (sizeField, size);
for (i = 0; i < sizeof(sizes)/sizeof(float); i++) for (i = 0; i < sizeof(sizes)/sizeof(float); i++)
{ {
if (size == sizes[i]) if (size == sizes[i])
[sizeBrowser selectRow: i inColumn: 0]; {
[sizeBrowser selectRow: i inColumn: 0];
}
} }
[previewArea setStringValue: [NSString stringWithFormat: @"%@ %@ %d PT", [previewArea setStringValue: [NSString stringWithFormat: @"%@ %@ %d PT",
@ -218,7 +251,7 @@ float sizes[] = {4.0, 6.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0,
/* /*
* Converting * Converting
*/ */
- (NSFont*) panelConvertFont: (NSFont*)fontObject - (NSFont *) panelConvertFont: (NSFont *)fontObject
{ {
NSFont *newFont; NSFont *newFont;
@ -236,8 +269,10 @@ float sizes[] = {4.0, 6.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0,
} }
if (newFont == nil) if (newFont == nil)
newFont = fontObject; {
newFont = fontObject;
}
return newFont; return newFont;
} }
@ -262,7 +297,9 @@ float sizes[] = {4.0, 6.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0,
// FIXME: We have to resize // FIXME: We have to resize
// Perhaps we could copy the code from NSSavePanel over to here // Perhaps we could copy the code from NSSavePanel over to here
if (_accessoryView != nil) if (_accessoryView != nil)
[_accessoryView removeFromSuperview]; {
[_accessoryView removeFromSuperview];
}
ASSIGN(_accessoryView, aView); ASSIGN(_accessoryView, aView);
[[self contentView] addSubview: aView]; [[self contentView] addSubview: aView];
@ -297,22 +334,22 @@ float sizes[] = {4.0, 6.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0,
- (id) _initWithoutGModel - (id) _initWithoutGModel
{ {
NSRect pf = {{100,100}, {300,300}}; NSRect contentRect = {{100, 100}, {300, 300}};
NSRect ta = {{0,50}, {300,250}}; NSRect topAreaRect = {{0, 42}, {300, 258}};
NSRect sv = {{0,5}, {300,245}}; NSRect splitViewRect = {{8, 8}, {284, 243}};
NSRect ts = {{0,200}, {297,40}}; NSRect topSplitRect = {{0, 0}, {284, 45}};
NSRect pa = {{6,0}, {285,50}}; NSRect previewAreaRect = {{0, 1}, {284, 44}};
NSRect bs = {{0,0}, {297,188}}; NSRect bottomSplitRect = {{0, 0}, {284, 190}};
NSRect s1 = {{6,5}, {110,183}}; NSRect familyBrowserRect = {{0, 0}, {111, 189}};
NSRect s2 = {{122,5}, {110,183}}; NSRect typefaceBrowserRect = {{113, 0}, {111, 189}};
NSRect s3 = {{237,5}, {56,135}}; NSRect sizeBrowserRect = {{226, 0}, {58, 143}};
NSRect sl = {{237,142}, {56,21}}; NSRect sizeLabelRect = {{226, 145}, {58, 21}};
NSRect l3 = {{237,166}, {56,22}}; NSRect sizeTitleRect = {{226, 168}, {58, 21}};
NSRect ba = {{0,0}, {300,50}}; NSRect bottomAreaRect = {{0, 0}, {300, 42}};
NSRect sb = {{0,45}, {300,2}}; NSRect slashRect = {{0, 40}, {300, 2}};
NSRect rb = {{56,8}, {72,24}}; NSRect revertButtonRect = {{63, 8}, {71, 24}};
NSRect pb = {{137,8}, {72,24}}; NSRect previewButtonRect = {{142, 8}, {71, 24}};
NSRect db = {{217,8}, {72,24}}; NSRect setButtonRect = {{221, 8}, {71, 24}};
NSView *v; NSView *v;
NSView *topArea; NSView *topArea;
NSView *bottomArea; NSView *bottomArea;
@ -333,7 +370,7 @@ float sizes[] = {4.0, 6.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0,
unsigned int style = NSTitledWindowMask | NSClosableWindowMask unsigned int style = NSTitledWindowMask | NSClosableWindowMask
| NSMiniaturizableWindowMask | NSResizableWindowMask; | NSMiniaturizableWindowMask | NSResizableWindowMask;
self = [super initWithContentRect: pf self = [super initWithContentRect: contentRect
styleMask: style styleMask: style
backing: NSBackingStoreRetained backing: NSBackingStoreRetained
defer: NO defer: NO
@ -343,18 +380,18 @@ float sizes[] = {4.0, 6.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0,
v = [self contentView]; v = [self contentView];
// preview and selection // preview and selection
topArea = [[NSView alloc] initWithFrame: ta]; topArea = [[NSView alloc] initWithFrame: topAreaRect];
[topArea setAutoresizingMask: (NSViewWidthSizable | NSViewHeightSizable)]; [topArea setAutoresizingMask: (NSViewWidthSizable | NSViewHeightSizable)];
splitView = [[NSSplitView alloc] initWithFrame: sv]; splitView = [[NSSplitView alloc] initWithFrame: splitViewRect];
[splitView setVertical: NO]; [splitView setVertical: NO];
[splitView setAutoresizingMask: (NSViewWidthSizable | NSViewHeightSizable)]; [splitView setAutoresizingMask: (NSViewWidthSizable | NSViewHeightSizable)];
topSplit = [[NSView alloc] initWithFrame: ts]; topSplit = [[NSView alloc] initWithFrame: topSplitRect];
[topSplit setAutoresizingMask: (NSViewWidthSizable | NSViewHeightSizable)]; [topSplit setAutoresizingMask: (NSViewWidthSizable | NSViewHeightSizable)];
// Display for the font example // Display for the font example
previewArea = [[NSTextField alloc] initWithFrame: pa]; previewArea = [[NSTextField alloc] initWithFrame: previewAreaRect];
[previewArea setBackgroundColor: [NSColor textBackgroundColor]]; [previewArea setBackgroundColor: [NSColor textBackgroundColor]];
[previewArea setDrawsBackground: YES]; [previewArea setDrawsBackground: YES];
[previewArea setEditable: NO]; [previewArea setEditable: NO];
@ -362,16 +399,18 @@ float sizes[] = {4.0, 6.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0,
//[previewArea setUsesFontPanel: NO]; //[previewArea setUsesFontPanel: NO];
[previewArea setAlignment: NSCenterTextAlignment]; [previewArea setAlignment: NSCenterTextAlignment];
[previewArea setStringValue: @"Font preview"]; [previewArea setStringValue: @"Font preview"];
[previewArea setAutoresizingMask: (NSViewWidthSizable|NSViewHeightSizable)]; [previewArea setAutoresizingMask: (NSViewWidthSizable|NSViewHeightSizable)];
[previewArea setTag: NSFPPreviewField]; [previewArea setTag: NSFPPreviewField];
[topSplit addSubview: previewArea]; [topSplit addSubview: previewArea];
RELEASE(previewArea); RELEASE(previewArea);
bottomSplit = [[NSView alloc] initWithFrame: bs]; bottomSplit = [[NSView alloc] initWithFrame: bottomSplitRect];
[bottomSplit setAutoresizingMask: NSViewWidthSizable | NSViewHeightSizable];
// Selection of the font family // Selection of the font family
// We use a browser with one column to get a selection list // We use a browser with one column to get a selection list
familyBrowser = [[NSBrowser alloc] initWithFrame: s1]; familyBrowser = [[NSBrowser alloc] initWithFrame: familyBrowserRect];
[familyBrowser setDelegate: self]; [familyBrowser setDelegate: self];
[familyBrowser setMaxVisibleColumns: 1]; [familyBrowser setMaxVisibleColumns: 1];
[familyBrowser setAllowsMultipleSelection: NO]; [familyBrowser setAllowsMultipleSelection: NO];
@ -381,14 +420,16 @@ float sizes[] = {4.0, 6.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0,
[familyBrowser setTakesTitleFromPreviousColumn: NO]; [familyBrowser setTakesTitleFromPreviousColumn: NO];
[familyBrowser setTarget: self]; [familyBrowser setTarget: self];
[familyBrowser setDoubleAction: @selector(familySelected:)]; [familyBrowser setDoubleAction: @selector(familySelected:)];
[familyBrowser setAutoresizingMask: (NSViewWidthSizable|NSViewHeightSizable)]; [familyBrowser setAutoresizingMask: (NSViewWidthSizable
| NSViewMaxXMargin
| NSViewHeightSizable)];
[familyBrowser setTag: NSFPFamilyBrowser]; [familyBrowser setTag: NSFPFamilyBrowser];
[bottomSplit addSubview: familyBrowser]; [bottomSplit addSubview: familyBrowser];
RELEASE(familyBrowser); RELEASE(familyBrowser);
// selection of type face // selection of type face
// We use a browser with one column to get a selection list // We use a browser with one column to get a selection list
faceBrowser = [[NSBrowser alloc] initWithFrame: s2]; faceBrowser = [[NSBrowser alloc] initWithFrame: typefaceBrowserRect];
[faceBrowser setDelegate: self]; [faceBrowser setDelegate: self];
[faceBrowser setMaxVisibleColumns: 1]; [faceBrowser setMaxVisibleColumns: 1];
[faceBrowser setAllowsMultipleSelection: NO]; [faceBrowser setAllowsMultipleSelection: NO];
@ -398,40 +439,41 @@ float sizes[] = {4.0, 6.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0,
[faceBrowser setTakesTitleFromPreviousColumn: NO]; [faceBrowser setTakesTitleFromPreviousColumn: NO];
[faceBrowser setTarget: self]; [faceBrowser setTarget: self];
[faceBrowser setDoubleAction: @selector(faceSelected:)]; [faceBrowser setDoubleAction: @selector(faceSelected:)];
[faceBrowser setAutoresizingMask: (NSViewWidthSizable|NSViewHeightSizable)]; [faceBrowser setAutoresizingMask: (NSViewWidthSizable
| NSViewMinXMargin
| NSViewHeightSizable)];
[faceBrowser setTag: NSFPFaceBrowser]; [faceBrowser setTag: NSFPFaceBrowser];
[bottomSplit addSubview: faceBrowser]; [bottomSplit addSubview: faceBrowser];
RELEASE(faceBrowser); RELEASE(faceBrowser);
// label for selection of size // label for selection of size
label = [[NSTextField alloc] initWithFrame: l3]; label = [[NSTextField alloc] initWithFrame: sizeTitleRect];
[label setFont: [NSFont titleBarFontOfSize: 0]]; [label setCell: [GSBrowserTitleCell new]];
[label setFont: [NSFont boldSystemFontOfSize: 0]];
[label setAlignment: NSCenterTextAlignment]; [label setAlignment: NSCenterTextAlignment];
[label setDrawsBackground: YES]; [label setDrawsBackground: YES];
[label setBezeled: YES];
[label setEditable: NO]; [label setEditable: NO];
[label setSelectable: NO];
[label setTextColor: [NSColor windowFrameTextColor]]; [label setTextColor: [NSColor windowFrameTextColor]];
[label setBackgroundColor: [NSColor controlShadowColor]]; [label setBackgroundColor: [NSColor controlShadowColor]];
[label setStringValue: @"Size"]; [label setStringValue: @"Size"];
[label setAutoresizingMask: (NSViewWidthSizable | NSViewMinYMargin)]; [label setAutoresizingMask: NSViewMinXMargin | NSViewMinYMargin];
[label setTag: NSFPSizeTitle]; [label setTag: NSFPSizeTitle];
[bottomSplit addSubview: label]; [bottomSplit addSubview: label];
RELEASE(label); RELEASE(label);
// this is the size input field // this is the size input field
sizeField = [[NSTextField alloc] initWithFrame: sl]; sizeField = [[NSTextField alloc] initWithFrame: sizeLabelRect];
[sizeField setDrawsBackground: YES]; [sizeField setDrawsBackground: YES];
[sizeField setEditable: YES]; [sizeField setEditable: YES];
//[sizeField setAllowsEditingTextAttributes: NO]; //[sizeField setAllowsEditingTextAttributes: NO];
[sizeField setAlignment: NSCenterTextAlignment]; [sizeField setAlignment: NSCenterTextAlignment];
[sizeField setBackgroundColor: [NSColor windowFrameTextColor]]; [sizeField setBackgroundColor: [NSColor windowFrameTextColor]];
[sizeField setAutoresizingMask: (NSViewWidthSizable|NSViewMinYMargin)]; [sizeField setAutoresizingMask: NSViewMinXMargin | NSViewMinYMargin];
[sizeField setTag: NSFPSizeField]; [sizeField setTag: NSFPSizeField];
[bottomSplit addSubview: sizeField]; [bottomSplit addSubview: sizeField];
RELEASE(sizeField); RELEASE(sizeField);
sizeBrowser = [[NSBrowser alloc] initWithFrame: s3]; sizeBrowser = [[NSBrowser alloc] initWithFrame: sizeBrowserRect];
[sizeBrowser setDelegate: self]; [sizeBrowser setDelegate: self];
[sizeBrowser setMaxVisibleColumns: 1]; [sizeBrowser setMaxVisibleColumns: 1];
[sizeBrowser setAllowsMultipleSelection: NO]; [sizeBrowser setAllowsMultipleSelection: NO];
@ -441,54 +483,65 @@ float sizes[] = {4.0, 6.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0,
[sizeBrowser setTakesTitleFromPreviousColumn: NO]; [sizeBrowser setTakesTitleFromPreviousColumn: NO];
[sizeBrowser setTarget: self]; [sizeBrowser setTarget: self];
[sizeBrowser setDoubleAction: @selector(sizeSelected:)]; [sizeBrowser setDoubleAction: @selector(sizeSelected:)];
[sizeBrowser setAutoresizingMask: (NSViewWidthSizable|NSViewHeightSizable)]; [sizeBrowser setAutoresizingMask: NSViewMinXMargin | NSViewHeightSizable];
[sizeBrowser setTag: NSFPSizeBrowser]; [sizeBrowser setTag: NSFPSizeBrowser];
[bottomSplit addSubview: sizeBrowser]; [bottomSplit addSubview: sizeBrowser];
RELEASE(sizeBrowser); RELEASE(sizeBrowser);
[splitView addSubview: topSplit]; [splitView addSubview: topSplit];
// reset the size
[topSplit setFrame: ts];
RELEASE(topSplit); RELEASE(topSplit);
[splitView addSubview: bottomSplit]; [splitView addSubview: bottomSplit];
RELEASE(bottomSplit); RELEASE(bottomSplit);
/* NSSplitView is tricky so we use this little workaround to force
the sizes right. */
[topSplit setFrame: topSplitRect];
[bottomSplit setFrame: bottomSplitRect];
[splitView adjustSubviews];
[splitView setDelegate: self];
[topArea addSubview: splitView]; [topArea addSubview: splitView];
RELEASE(splitView); RELEASE(splitView);
// action buttons // action buttons
bottomArea = [[NSView alloc] initWithFrame: ba]; bottomArea = [[NSView alloc] initWithFrame: bottomAreaRect];
slash = [[NSBox alloc] initWithFrame: sb]; slash = [[NSBox alloc] initWithFrame: slashRect];
[slash setBorderType: NSGrooveBorder]; [slash setBorderType: NSGrooveBorder];
[slash setTitlePosition: NSNoTitle]; [slash setTitlePosition: NSNoTitle];
[slash setAutoresizingMask: NSViewWidthSizable];
[bottomArea addSubview: slash]; [bottomArea addSubview: slash];
RELEASE(slash); RELEASE(slash);
// cancle button // cancel button
revertButton = [[NSButton alloc] initWithFrame: rb]; revertButton = [[NSButton alloc] initWithFrame: revertButtonRect];
[revertButton setStringValue: @"Revert"]; [revertButton setStringValue: @"Revert"];
[revertButton setAction: @selector(cancel:)]; [revertButton setAction: @selector(cancel:)];
[revertButton setTarget: self]; [revertButton setTarget: self];
[revertButton setTag: NSFPRevertButton]; [revertButton setTag: NSFPRevertButton];
[revertButton setAutoresizingMask: NSViewMinXMargin];
[bottomArea addSubview: revertButton]; [bottomArea addSubview: revertButton];
RELEASE(revertButton); RELEASE(revertButton);
// toggle button for preview // toggle button for preview
previewButton = [[NSButton alloc] initWithFrame: pb]; previewButton = [[NSButton alloc] initWithFrame: previewButtonRect];
[previewButton setStringValue: @"Preview"]; [previewButton setStringValue: @"Preview"];
[previewButton setButtonType: NSOnOffButton]; [previewButton setButtonType: NSOnOffButton];
[previewButton setAction: @selector(_togglePreview:)]; [previewButton setAction: @selector(_togglePreview:)];
[previewButton setTarget: self]; [previewButton setTarget: self];
[previewButton setTag: NSFPPreviewButton]; [previewButton setTag: NSFPPreviewButton];
[previewButton setAutoresizingMask: NSViewMinXMargin];
[bottomArea addSubview: previewButton]; [bottomArea addSubview: previewButton];
RELEASE(previewButton); RELEASE(previewButton);
// button to set the font // button to set the font
setButton = [[NSButton alloc] initWithFrame: db]; setButton = [[NSButton alloc] initWithFrame: setButtonRect];
[setButton setStringValue: @"Set"]; [setButton setStringValue: @"Set"];
[setButton setAction: @selector(ok:)]; [setButton setAction: @selector(ok:)];
[setButton setTarget: self]; [setButton setTarget: self];
[setButton setTag: NSFPSetButton]; [setButton setTag: NSFPSetButton];
[setButton setAutoresizingMask: NSViewMinXMargin];
[bottomArea addSubview: setButton]; [bottomArea addSubview: setButton];
// make it the default button // make it the default button
//[self setDefaultButtonCell: [setButton cell]]; //[self setDefaultButtonCell: [setButton cell]];
@ -499,11 +552,16 @@ float sizes[] = {4.0, 6.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0,
// Add the accessory view, if there is one // Add the accessory view, if there is one
if (_accessoryView != nil) if (_accessoryView != nil)
[v addSubview: _accessoryView]; {
[v addSubview: _accessoryView];
}
[bottomArea setAutoresizingMask: NSViewWidthSizable];
[v addSubview: bottomArea]; [v addSubview: bottomArea];
RELEASE(bottomArea); RELEASE(bottomArea);
[self setMinSize: [self frame].size];
return self; return self;
} }
@ -560,6 +618,8 @@ float sizes[] = {4.0, 6.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0,
- (void) cancel: (id)sender - (void) cancel: (id)sender
{ {
// FIXME/TODO
/* /*
* The cancel button has been pushed * The cancel button has been pushed
* we should reset the items in the panel * we should reset the items in the panel
@ -568,7 +628,7 @@ float sizes[] = {4.0, 6.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0,
isMultiple: _multiple]; isMultiple: _multiple];
} }
- (NSFont*) _fontForSelection: (NSFont*)fontObject - (NSFont *) _fontForSelection: (NSFont *)fontObject
{ {
float size; float size;
NSString *fontName; NSString *fontName;
@ -615,30 +675,37 @@ float sizes[] = {4.0, 6.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0,
selectRow: (int)row selectRow: (int)row
inColumn: (int)column inColumn: (int)column
{ {
if ([sender tag] == NSFPFamilyBrowser) switch ([sender tag])
{ {
NSFontManager *fm = [NSFontManager sharedFontManager]; case NSFPFamilyBrowser:
NSBrowser *faceBrowser = [[self contentView] viewWithTag: NSFPFaceBrowser]; {
NSFontManager *fm = [NSFontManager sharedFontManager];
NSBrowser *faceBrowser = [[self contentView] viewWithTag: NSFPFaceBrowser];
ASSIGN(_faceList, [fm availableMembersOfFontFamily:
[_familyList objectAtIndex: row]]);
_family = row;
[faceBrowser validateVisibleColumns];
_face = -1;
break;
}
case NSFPFaceBrowser:
{
_face = row;
break;
}
case NSFPSizeBrowser:
default:
{
NSTextField *sizeField;
ASSIGN(_faceList, [fm availableMembersOfFontFamily: sizeField = [[self contentView] viewWithTag: NSFPSizeField];
[_familyList objectAtIndex: row]]); _setFloatValue (sizeField, sizes[row]);
break;
_family = row; }
[faceBrowser validateVisibleColumns];
_face = -1;
} }
else if ([sender tag] == NSFPFaceBrowser)
{
_face = row;
}
else if ([sender tag] == NSFPSizeBrowser)
{
float size = sizes[row];
NSTextField *sizeField = [[self contentView] viewWithTag: NSFPSizeField];
[sizeField setFloatValue: size];
}
if (_preview) if (_preview)
{ {
[self _togglePreview: nil]; [self _togglePreview: nil];
@ -647,62 +714,100 @@ float sizes[] = {4.0, 6.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0,
return YES; return YES;
} }
- (int) browser: (NSBrowser*)sender numberOfRowsInColumn: (int)column - (int) browser: (NSBrowser*)sender numberOfRowsInColumn: (int)column
{ {
if ([sender tag] == NSFPFamilyBrowser) switch ([sender tag])
return [_familyList count]; {
else if ([sender tag] == NSFPFaceBrowser) case NSFPFamilyBrowser:
return [_faceList count]; {
else if ([sender tag] == NSFPSizeBrowser) return [_familyList count];
return sizeof(sizes)/sizeof(float); }
case NSFPFaceBrowser:
return 0; {
return [_faceList count];
}
case NSFPSizeBrowser:
{
return sizeof (sizes) / sizeof (float);
}
default:
{
return 0;
}
}
} }
- (NSString*) browser: (NSBrowser*)sender titleOfColumn: (int)column - (NSString*) browser: (NSBrowser*)sender titleOfColumn: (int)column
{ {
if ([sender tag] == NSFPFamilyBrowser) switch ([sender tag])
return @"Family"; {
else if ([sender tag] == NSFPFaceBrowser) case NSFPFamilyBrowser:
return @"Typeface"; {
return @"Family";
return @""; }
case NSFPFaceBrowser:
{
return @"Typeface";
}
default:
{
return @"";
}
}
} }
- (void) browser: (NSBrowser*)sender - (void) browser: (NSBrowser *)sender
willDisplayCell: (id)cell willDisplayCell: (id)cell
atRow: (int)row atRow: (int)row
column: (int)column column: (int)column
{ {
NSString *value = nil; NSString *value = nil;
if ([sender tag] == NSFPFamilyBrowser) switch ([sender tag])
{ {
if ([_familyList count] > row) case NSFPFamilyBrowser:
{ {
value = [_familyList objectAtIndex: row]; if ([_familyList count] > row)
} {
} value = [_familyList objectAtIndex: row];
else if ([sender tag] == NSFPFaceBrowser) }
{ break;
if ([_faceList count] > row) }
{ case NSFPFaceBrowser:
value = [[_faceList objectAtIndex: row] objectAtIndex: 1]; {
} if ([_faceList count] > row)
} {
else if ([sender tag] == NSFPSizeBrowser) value = [[_faceList objectAtIndex: row] objectAtIndex: 1];
{ }
value = [NSString stringWithFormat: @"%d", (int) sizes[row]]; break;
}
case NSFPSizeBrowser:
default:
{
value = [NSString stringWithFormat: @"%d", (int) sizes[row]];
}
} }
[cell setStringValue: value]; [cell setStringValue: value];
[cell setLeaf: YES]; [cell setLeaf: YES];
} }
- (BOOL) browser: (NSBrowser*)sender - (BOOL) browser: (NSBrowser *)sender
isColumnValid: (int)column; isColumnValid: (int)column;
{ {
return NO; return NO;
} }
@end @end
@implementation NSFontPanel (NSSplitViewDelegate)
- (void) splitView: (NSSplitView *)splitView
constrainMinCoordinate: (float *)min
maxCoordinate: (float *)max
ofSubviewAt: (int)offset
{
*max = *max - 100;
}
@end