ftp.nice.ch/pub/next/developer/resources/palettesfor2.xx/IBLines.N.bs.tar.gz#/IBLines/ActionLine.h

This is ActionLine.h in view mode; [Download] [Up]

/*---------------------------------------------------------------------------------
   An abstract class for lines.
	 
	 This holds the basic ivars, which subclasses use to draw; eg, the existence
	 of line ending arrows, the width of the line, etc.
	 
	 This could be drawn at any angle without a whole lot of trouble, but right
	 now there are four subclasses for horizontal, vertical,uphill, and downhill
	 lines.
	 
	 This is a subclass of Button, so we can leverage off button's ability to do
	 things when clicked upon.  This makes the class useful for things like
	 UI, particularly state diagrams that you move within by clicking on arrows.
	 
	 This looks a lot better if you have your Edit width set to 120 or so and
	 have tab stops every 2 chars.
	 
	 HISTORY
	 	
			9Mar93	DM	New
		 22Mar93	DM	Works with color instead of just greyscale; additional subclasses

 ---------------------------------------------------------------------------------*/
#define HIT_TOLERANCE 2.0														// How close a mouseclick has to be

#import <appkit/Control.h>
#import <appkit/Button.h>
#import <appkit/NXColorWell.h>

@interface ActionLine:Button
{
	float		lineWidth;																// how wide theline is
	NXColor	enabledColor;															// What color it is when enabled
	NXColor	disabledColor;														// what color it is when disabled
	BOOL		endArrow;																	// YES=> draw an arrow at end of the line
	BOOL		startArrow;																// YES=> draw an arrow at start of the line
}

+ initialize;

-initFrame:(NXRect*)theFrame											// Designated initializer for buttons
	title:(const char *)aString
	tag:(int)anInt
	target:anObject
	action:(SEL)aSelector
	key:(unsigned short)charCode
	enabled:(BOOL)flag;

- (const char *)inspectorName;										// RETURN: our inspector's class name

- setLineWidth:(float)pLineWidth;									// INPUT: the desired line width
- setEnabledColor:(NXColor)pLineColor;						// INPUT: the desired color for the enabled state
- setDisabledColor:(NXColor)pLineColor;						// INPUT: the desired color for the disabled state
- setEndArrow:(BOOL)pOn;													// INPUT: end arrow YES=>draw one NO=>dont
- setStartArrow:(BOOL)pOn;												// INPUT: start arrow YES=>draw one NO=>don't

- (float)lineWidth;																// RETURN: the line width
- (NXColor)enabledColor;													// RETURN: the line color when enabled
- (NXColor)disabledColor;													// RETURN: the line color when disabled
- (BOOL)endArrow;																	// RETURN: arrow drawn YES=> it is
- (BOOL)startArrow;																// RETURN: arrow drawn YES=> it is

- passOnEvent:(NXEvent*)theEvent;									// Pass on the event if the mouseDown missed the line

- read:(NXTypedStream*)stream;										// Archiving (needed to get things dragged
- write:(NXTypedStream*)stream;										// correctly from IB.)

@end

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.