This is MiscPathField.m in view mode; [Download] [Up]
//
// MiscPathField.h -- a MiscClipTextField subclass for displaying long
// pathnames
// Written and Copyright (c) 1995 by Balazs Pataki.
// Version 1.0. All rights reserved.
//
// This notice may not be removed from this source code.
//
// This object is included in the MiscKit by permission from the author
// and its use is governed by the MiscKit license, found in the file
// "LICENSE.rtf" in the MiscKit distribution. Please refer to that file
// for a list of all applicable permissions and restrictions.
//
#import <appkit/appkit.h>
#import <misckit/MiscString.h>
#import <objc/objc-runtime.h>
#import "MiscPathField.h"
#import "MiscClipTextFieldCell.h"
#define CLASS_NAME "MiscPathField"
#define CLASS_VERSION 1
/*
********************************
* *
* MiscPathField *
* *
********************************
*/
@implementation MiscPathField
+ initialize
// Set class version
{
if (self == objc_lookUpClass(CLASS_NAME)) {
[self setVersion:CLASS_VERSION];
}
return self;
}
- initFrame:(const NXRect *)rect
// Initializes a newly allocated MiscPathField for clipping its string value
// using '/' (slash) as clipping delimiter and sets clipping to happen on the
// left
{
[super initFrame:rect];
[self setClipDelimiters:"/"];
[self setClipOnRight:NO];
[[self cell] setDelegate:self];
shouldUseTilde = YES;
return self;
}
- stringWillBeClipped:theString
{
if ( shouldUseTilde )
[theString replaceHomeWithTilde];
return self;
}
- setReplaceHomeWithTilde:(BOOL) flag
// If flag is YES and the current string value is a user path, then replaces
// the home part of the path with a '~' (tilde)
{
shouldUseTilde = flag;
//[self setStringValue:[self fullStringValue]];
return self;
}
- (BOOL)doesReplacesHomeWithTilde
{
return shouldUseTilde;
}
- write:(NXTypedStream *)stream
{
[super write:stream];
NXWriteType(stream, @encode(BOOL), &shouldUseTilde);
return self;
}
- read:(NXTypedStream *)stream
{
[super read:stream];
NXReadType(stream, @encode(BOOL), &shouldUseTilde);
return self;
}
- awake
{
[[self cell] setDelegate:self];
return self;
}
@end
@implementation MiscPathField(IBStuff)
- (const char *)getInspectorClassName
{
return "MiscPathFieldInspector";
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.