set up the next key view chain; init panel with defer=YES; set initial

first responder; use a custom field editor which doesn't use font panel
to avoid strange changes of fonts when editing the size


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@10191 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Nicola Pero 2001-06-16 11:08:30 +00:00
parent f71b4bf6d2
commit f0038aa66a

View file

@ -69,6 +69,8 @@ static inline void _setFloatValue (NSTextField *field, float size)
}
NSText *sizeFieldText = nil;
/* Implemented in NSBrowser */
@interface GSBrowserTitleCell : NSTextFieldCell
@end
@ -328,6 +330,29 @@ float sizes[] = {4.0, 6.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0,
return self;
}
/*
* Overriding fieldEditor:forObject: because we don't want the field
* editor (which is used when you type in the size browser) to use the
* font panel, otherwise typing in the size browser can modify the
* currently selected font in unexpected ways ! */
- (NSText *) fieldEditor: (BOOL)createFlag
forObject: (id)anObject
{
if (([anObject respondsToSelector: @selector(tag)])
&& ([anObject tag] == NSFPSizeField))
{
if ((sizeFieldText == nil) && createFlag)
{
sizeFieldText = [NSText new];
[sizeFieldText setUsesFontPanel: NO];
[sizeFieldText setFieldEditor: YES];
}
return sizeFieldText;
}
return [super fieldEditor: createFlag forObject: anObject];
}
@end
@implementation NSFontPanel (Privat)
@ -373,7 +398,7 @@ float sizes[] = {4.0, 6.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0,
self = [super initWithContentRect: contentRect
styleMask: style
backing: NSBackingStoreRetained
defer: NO
defer: YES
screen: nil];
[self setTitle: @"Font Panel"];
@ -541,6 +566,15 @@ float sizes[] = {4.0, 6.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0,
//[self setDefaultButtonCell: [setButton cell]];
RELEASE(setButton);
// set up the next key view chain
[familyBrowser setNextKeyView: faceBrowser];
[faceBrowser setNextKeyView: sizeField];
[sizeField setNextKeyView: sizeBrowser];
[sizeBrowser setNextKeyView: revertButton];
[revertButton setNextKeyView: previewButton];
[previewButton setNextKeyView: setButton];
[setButton setNextKeyView: familyBrowser];
[v addSubview: topArea];
RELEASE(topArea);
@ -555,6 +589,8 @@ float sizes[] = {4.0, 6.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0,
RELEASE(bottomArea);
[self setMinSize: [self frame].size];
[self setInitialFirstResponder: setButton];
return self;
}