This is ScrollViewDeluxeForOOE.m in view mode; [Download] [Up]
#define OOE_BUTTON_WIDTH 16
#define OOE_BUTTON_HEIGHT 16
#import "ScrollViewDeluxeForOOE.h"
#import "wooddoc.h"
#import "ooe_server.h"
@implementation View (OOE_GUI)
- ooeStatusChanged:sender
{
[subviews makeObjectsPerform:_cmd with:sender];
return self;
}
@end
@interface ScrollViewOOEButton:Button
@end
@implementation ScrollViewOOEButton
- initFrame: (const NXRect *)rect for:view
{
[self initFrame: rect];
[self setAction: @selector(ooeSelected:)];
[self setTarget: view];
[self setBordered:NO];
[self setIconPosition:NX_ICONONLY];
[self setImage: [NXImage findImageNamed: "OOE_ScrollerButton"]];
[self setAltImage: [NXImage findImageNamed: "OOE_ScrollerButtonH"]];
[self setType: NX_MOMENTARYCHANGE];
[self setFrame: rect];
[self setEnabled: NO];
return self;
}
- ooeStatusChanged:sender
{
[self setEnabled: [sender isOOEServer]];
if(![self isEnabled])
[self setImage: [NXImage findImageNamed: "OOE_ScrollerButtonD"]];
else {
if([window isDocEdited])
[self setImage: [NXImage findImageNamed:
"OOE_ScrollerButtonE"]];
else
[self setImage: [NXImage findImageNamed:
"OOE_ScrollerButton"]];
}
return self;
}
@end
@implementation ScrollViewDeluxeForOOE
- theOOEButton
{
return theOOEButton;
}
- initFrame: (const NXRect *)rect
{
NXRect ooeButtonRect
= {0, 0, OOE_BUTTON_WIDTH, OOE_BUTTON_HEIGHT};
[super initFrame:rect];
// ooe button
theOOEButton = [[ScrollViewOOEButton allocFromZone:[self zone]]
initFrame: &ooeButtonRect
for:self];
[self addSubview: theOOEButton];
[self setVertScrollerRequired:YES];
[self setHorizScrollerRequired:YES];
[self addVertScrollerView:theOOEButton at:0];
[self tile];
return self;
}
- ooeSelected:sender
{
int altEvent;
id doc = [window delegate];
altEvent = (([NXApp currentEvent]->flags & NX_ALTERNATEMASK) > 0
? 1 : 0);
if([window isDocEdited]){
[doc save:nil];
} else {
[doc orderClientDocumentFront:nil];
}
if(!altEvent && ![window isDocEdited])
[window performClose:nil];
return self;
}
/*
- tile
{
NXRect vScrollRect;
NXRect ooeButtonRect;
[super tile];
[vScroller getFrame: &vScrollRect];
[theOOEButton getFrame: &ooeButtonRect];
// vertical
// ooe button
NX_X(&ooeButtonRect) = NX_X(&vScrollRect)+1;
NX_Y(&ooeButtonRect) = NX_Y(&vScrollRect);
[theOOEButton setFrame:&ooeButtonRect];
// v scroller
NX_HEIGHT(&vScrollRect) = NX_HEIGHT(&vScrollRect) -
(NX_HEIGHT(&ooeButtonRect));
NX_Y(&vScrollRect) = NX_MAXY(&ooeButtonRect);
[vScroller setFrame:&vScrollRect];
return self;
}
*/
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.