This is MiscArrowButton.m in view mode; [Download] [Up]
// Copyright (C) 1995 Robert Todd Thomas
// Use is governed by the MiscKit license
/******************************************************************
* CLASS: MiscArrowButton
*
* See the header for more information on this class.
*
* 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 "MiscArrowButtonCell.h"
#import "MiscArrowButton.h"
static id myStoredCellClass;
@implementation MiscArrowButton
+ initialize
{
myStoredCellClass = [MiscArrowButtonCell class];
return self;
}
+ setCellClass: classId
{
myStoredCellClass = classId;
return self;
}
- init
{
NXRect frameRect;
// create some frame since none was specified
NXSetRect (&frameRect, 10.0, 10.0, 125.0, 25.0);
return [self initFrame: (const NXRect *)&frameRect title: "Left"
altTitle: "Right" tag: 0 target: nil action: NULL key: 0
enabled: YES];
}
- initFrame: (const NXRect *)frameRect
{
return [self initFrame: frameRect title: "Left" altTitle: "Right"
tag: 0 target: nil action: NULL key: 0 enabled: YES];
}
// The button class's designated initializer for text buttons, which
// now should just call mine (see next method).
- initFrame:(const NXRect *)frameRect title:(const char *)aString
tag:(int)anInt target:anObject action:(SEL)aSelector
key:(unsigned short)charCode enabled:(BOOL)flag
{
return [self initFrame: frameRect title: aString altTitle: "Right"
tag: anInt target: anObject action: aSelector
key: charCode enabled: flag];
}
// The designated initializer that merely adds the capability to set
// the altTitle (text on the right side of the arrow) while initializing
// the button.
- initFrame:(const NXRect *)frameRect title:(const char *)aString
altTitle: (const char *)altString tag:(int)anInt
target:anObject action:(SEL)aSelector
key:(unsigned short)charCode enabled:(BOOL)flag
{
[super initFrame: frameRect title: aString tag: anInt target: anObject
action: aSelector key: charCode enabled: flag];
[self setAltTitle: altString];
[self setType: NX_TOGGLE];
[ [self setCell: [ [myStoredCellClass alloc] init] ] free];
return self;
}
// Used to set arrow alignment. (In previous versions, setAlignment was used
// but I realized that I also needed those methods). Sorry for any
// inconvenience.
- setArrowAlignment: (int)alignment
{
[ [self cell] setArrowAlignment: alignment];
return self;
}
- (int)arrowAlignment
{
return [ [self cell] arrowAlignment];
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.