home *** CD-ROM | disk | FTP | other *** search
- // 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
-