This is PasswordField.m in view mode; [Download] [Up]
#import "PasswordField.h"
#import "PasswordFieldCell.h"
#import <appkit/appkit.h>
@implementation PasswordField
+ initialize
{
[super setCellClass: [PasswordFieldCell class]];
return self;
}
- (const char *) hiddenString
{
return [(PasswordFieldCell *)cell hiddenString];
}
- initFrame:(const NXRect *) frameRect
{
Font *simpleFont;
const char *fontSize;
float size;
[super initFrame: frameRect];
fontSize = NXGetDefaultValue("GLOBAL", "NXFontSize");
size = 12.0;
if( fontSize != 0 )
size = atof(fontSize);
simpleFont = [Font newFont: "Courier" size: size];
[super setFont: simpleFont];
[(PasswordFieldCell *)cell setIsVisible: NO];
return self;
}
- setHiddenChar:(unsigned short) value
{
[(PasswordFieldCell *)cell setHiddenChar: value];
return self;
}
- setStringValue:(const char *) aString visible:(BOOL) flag
{
[(PasswordFieldCell *)cell setIsVisible: flag];
return [self setStringValue: aString];
}
- setStringValue:(const char *) aString
{
[(PasswordFieldCell *)cell setStringValue: aString];
[self display];
return self;
}
- setIsVisible: sender
{
Text *fieldEditor;
BOOL state = [sender state];
fieldEditor = [cell editor];
if( [(PasswordFieldCell *)cell isVisible] != state )
{
[(PasswordFieldCell *)cell setIsVisible: state];
if( fieldEditor != nil )
[fieldEditor display];
else
[self display];
}
return self;
}
- (BOOL) isVisible
{
return [(PasswordFieldCell *)cell isVisible];
}
- (unsigned short) hiddenChar
{
return [(PasswordFieldCell *)cell hiddenChar];
}
- (BOOL) acceptsFirstResponder
{
return [super acceptsFirstResponder];
}
- selectText: sender
{
return [super selectText: sender];
}
- textDidEnd: textObject endChar:(unsigned short) whyEnd
{
char password[128];
[textObject getSubstring: password start: 0 length: 127];
password[127] = 0;
[cell setStringValue: password];
return [super textDidEnd: textObject endChar: whyEnd];
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.