This is RuledScrollView.h in view mode; [Download] [Up]
// RuledScrollView.h
// RuledScrollView is intended as a general purpose class to make it
// easy to add all kinds of rulers to any view. This class is an
// extension of the tiledScrollView class, from "ScrollDoodScroll"
// (by Jayson Adams, NeXT Developer Support Team)
// This class is intended to be widely useful without needing to
// modify (or understand) its code, so it provides methods to setup
// the mainView and its rulerViews, rather than hardcoding the setup.
// Kevin Brain (ksbrain@zeus.UWaterloo.ca)
#import <appkit/ScrollView.h>
#import <appkit/ClipView.h>
#import "Ruler.h"
// These manifests indicate which edge a scaleView is added to.,
// Also, they give the 'slice' parameter of the NXDivideRect function.
// (See the documentation for the NXDivideRect function in the
// file NXFunctsStoZ.rtfd release 2)
#define LEFTEDGE 0
#define BOTTOMEDGE 1
#define RIGHTEDGE 2
#define TOPEDGE 3
#define BOTTOMLEFTCORNER 4
#define TOPLEFTCORNER 5
#define BOTTOMRIGHTCORNER 6
#define TOPRIGHTCORNER 7
#define TOPBOTTOM 1
#define LEFTRIGHT 2
@interface RuledScrollView:ScrollView
{
View *mainView,*printView;
id leftRuler;
id rightRuler;
id topRuler;
id bottomRuler;
id bottomLeftStub;
id topLeftStub;
id bottomRightStub;
id topRightStub;
ClipView *leftRulerClipView,*rightRulerClipView;
ClipView *topRulerClipView,*bottomRulerClipView;
// original rectangles of ClipViews before adjusting them for printing
NXRect oldMainClipRect,oldLeftRect, oldRightRect, oldTopRect, oldBottomRect;
NXRect oldRect;
// Connect popupListButton to a popUpList's button in Interface Builder
// if you want a popUpList in the horizontal scroller (eg. for zooming)
id hScrollerLeftEmbeddedView;
id hScrollerRightEmbeddedView;
id vScrollerTopEmbeddedView;
id vScrollerBottomEmbeddedView;
BOOL rulersOn;
int rulerVisible[4];
id printWindow;
ClipView *mainPrintClipView; // clipView that holds mainView
// while constructing the printView
NXPoint mainVisiblePoint; // point to scroll mainView to
int primaryRulers; // which rulers extend to edge
}
/* instance methods */
- initFrame:(NXRect *)theFrame;
- free;
- setLeftRuler:anObject;
- setRightRuler:anObject;
- setTopRuler:anObject;
- setBottomRuler:anObject;
- setBottomLeftStub:anObject;
- setTopLeftStub:anObject;
- setBottomRightStub:anObject;
- setTopRightStub:anObject;
- addRulerView:(Ruler *)theView toEdge:(int)edge;
- addStubView:(View *)theView toCorner:(int)corner;
- tile;
- reflectScroll:cView;
- scrollClip:aClipView to:(NXPoint *)aPoint;
- setSizeIfNeeded;
- setSize;
- setPrimaryRulers:(int)orientation;
- (int)primaryRulers;
- showRuler:(int)whichRuler;
- hideRuler:(int)whichRuler;
- (BOOL)isRulerVisible:(int)whichRuler;
- topRuler;
- bottomRuler;
- leftRuler;
- rightRuler;
- bottomLeftStub;
- topLeftStub;
- bottomRightStub;
- topRightStub;
- getMinSize:(NXSize *)theSize;
- printVisible:sender;
- writeToStream:(NXStream *)stream;
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.