This is MiscThreeStateButtonCell.h in view mode; [Download] [Up]
//
// MiscThreeStateButtonCell.h -- cell class for the three state button
// Written by Don Yacktman Copyright (c) 1993 by Don Yacktman.
// Version 1.0. All rights reserved.
//
// This notice may not be removed from this source code.
//
// This is a free object! Contact the author for the latest version.
// Don Yacktman, 4279 N. Ivy Lane, Provo, UT, 84604
// e-mail: Don_Yacktman@byu.edu
//
// 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>
// The three state button...
// the values of these are arbitrary and chosen to avoid conflict
// with the NeXT #defines in ButtonCell.h... use them with -setType:
#define MISC_CYCLIC_THREE_STATE 100 // cycles through three states
#define MISC_PLAIN_THREE_STATE 101 // alt click for third state
@interface MiscThreeStateButtonCell:ButtonCell
{
char *thirdTitle; // title for the third state
id _thirdImage; // image for the third state
char *trueAltTitle; // title for the third state
id _trueAltImage; // image for the third state
BOOL isCyclic; // if not, ALT click gives third state.
BOOL thirdState; // if we're in the third state.
BOOL altClicked;
BOOL dontIncrement;
}
// the basics
- init;
- copyFromZone:(NXZone *)zone;
- free;
// override to set the "true" instance variables...
- (const char *)altTitle;
- setAltTitle:(const char *)aString;
- (const char *)altIcon;
- setAltIcon:(const char *)iconName;
- altImage;
- setAltImage:image;
// setting and getting the third image/title
- (const char *)thirdTitle;
- setThirdTitle:(const char *)aString;
- (const char *)thirdIcon;
- setThirdIcon:(const char *)iconName;
- thirdImage;
- setThirdImage:image;
- setType:(int)aType;
- (BOOL)isCyclic;
// Need to override these to provide for the third state
- (const char *)stringValue;
- setStringValue:(const char *)aString;
- setStringValueNoCopy:(const char *)aString;
- (int)intValue;
- setIntValue:(int)anInt;
- (float)floatValue;
- setFloatValue:(float)aFloat;
- (double)doubleValue;
- setDoubleValue:(double)aDouble;
// these override the drawing to deal with the extra
// image/icon and title
- getDrawRect:(NXRect *)theRect;
- getTitleRect:(NXRect *)theRect;
- getIconRect:(NXRect *)theRect;
- calcCellSize:(NXSize *)theSize inRect:(const NXRect *)aRect;
- drawInside:(const NXRect *)aRect inView:controlView;
- highlight:(const NXRect *)cellFrame inView:controlView lit:(BOOL)flag;
- (BOOL)trackMouse:(NXEvent *)theEvent inRect:(const NXRect *)cellFrame
ofView:controlView;
- performClick:sender;
- performAltClick:sender;
- write:(NXTypedStream *)stream;
- read:(NXTypedStream *)stream;
- replaceAltTitle:(const char *)aString;
- replaceTitle:(const char *)aString;
- incrementState;
- setHighlightsBy:(int)aType;
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.