home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OpenStep 4.2J (Developer)
/
os42jdev.iso
/
NextDeveloper
/
Examples
/
AppKit
/
Rulers
/
ColorRect.m
< prev
next >
Wrap
Text File
|
1996-04-26
|
2KB
|
93 lines
/* ColorRect.m
*
* by Nik Gervae, Technical Publications, NeXT Software Inc.
*
* 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.
*/
#import "ColorRect.h"
@implementation ColorRect
- (id)initWithFrame:(NSRect)aRect color:(NSColor *)aColor
{
self = [super init];
if (!self) return nil;
frame = aRect;
color = [aColor copyWithZone:[self zone]];
return self;
}
- (void)setFrame:(NSRect)aRect
{
frame = aRect;
return;
}
- (NSRect)frame
{
return frame;
}
- (NSColor *)color
{
return color;
}
- (void)setLocked:(BOOL)flag
{
locked = flag;
return;
}
- (BOOL)isLocked
{
return locked;
}
- (void)drawRect:(NSRect)aRect selected:(BOOL)flag
{
NSRect dRect;
PSgsave();
NSRectClip(aRect);
dRect = NSIntersectionRect(aRect, frame);
[color set];
NSRectFill(dRect);
if (flag) {
[[NSColor blackColor] set];
PSsetlinewidth(4.0);
NSFrameRect(frame);
}
if (locked) {
float xSize;
[[NSColor blackColor] set];
PSsetlinewidth(3.0);
if (NSWidth(frame) > 10.0) xSize = 5.0;
else xSize = 2.0;
PSmoveto(NSMidX(frame) - xSize, NSMidY(frame) - xSize);
PSlineto(NSMidX(frame) + xSize, NSMidY(frame) + xSize);
PSmoveto(NSMidX(frame) - xSize, NSMidY(frame) + xSize);
PSlineto(NSMidX(frame) + xSize, NSMidY(frame) - xSize);
PSstroke();
}
PSgrestore();
return;
}
@end