home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
NeXTSTEP 3.0
/
NeXTSTEP3.0.iso
/
NextDeveloper
/
Examples
/
AppKit
/
ColorTest
/
RedPicker.m
< prev
Wrap
Text File
|
1992-06-17
|
2KB
|
91 lines
// You may freely copy, distribute and reuse the code in this example.
// NeXT disclaims any warranty of any kind, expressed or implied,
// as to its fitness for any particular use.
// RedPicker.m written by Keith Bernstein.
#import <appkit/appkit.h>
#import "RedPicker.h"
extern float insertionPoint; // Set in Controller.m
#define MYMASK 0x0100 // Anything you want, just not 'kit supplied.
#define MYMODE 10 // Anything you want, just not 'kit supplied.
@implementation RedPicker : NXColorPicker
// Normally you would be able to simply use NXColorPicker's implementation
// of this method (which always returns "YES"), as that will cause your custom
// picker to *always* be added. In this example program, the RedPicker is
// only added if the user has that checkbox selected, so we need to do this so
// it is not always added automatically.
- initFromPickerMask:(int)mask withColorPanel:owningColorPanel
{
[super initFromPickerMask:mask withColorPanel:owningColorPanel];
return((mask & MYMASK) ? self : nil);
}
// This method is part of the "NXColo)king" protocol, and it will
// provide the ColorPanel with the view we want inserted into the ColorPanel.
- provideNewView:(BOOL)initialRequest
{
if (initialRequest) {
char newPathBuffer[MAXPATHLEN+1];
char resourcePath[MAXPATHLEN+1];
// Then this is our first time here...
strcpy(resourcePath, [[NXBundle mainBundle] directory]);
strcat(resourcePath, "/ColorPickers/RedPicker.bundle");
// Load up our .nib file...
if ([NXBundle getPath:newPathBuffer
forResource:[self name]
ofType:"nib"
inDirectory:resourcePath
withVersion:0]) {
if (![NXApp loadNibFile:newPathBuffer
owner:self withNames:NO
fromZone:[self zone]]) {
NXLogError("%s error. Couldn't load %s.nib\n", [self name], [self name]);
}
} else {
NXLogError("%s error. Couldn't find %s.nib\n", [self name], [self name]);
}
}
return(button);
}
- (float)insertionOrder
{
return(insertionPoint);
}
// Return NO if "mode" not supported.
- (BOOL)supportsMode:(int)mode
{
if (mode == MYMODE)
return(YES);
else
return(NO);
}
- (int)currentMode
{
return(MYMODE);
}
- setColor:(NXColor)newColor
{
return(self);
}
- button:sender
{
[colorPanel setColor:NX_COLORRED];
return(self);
}
@end