ftp.nice.ch/pub/next/science/mathematics/HippoDraw.2.0.s.tar.gz#/HippoDraw/Hippo.bproj/Draw.subproj/SyncScrollView.h

This is SyncScrollView.h in view mode; [Download] [Up]

/*
 * Any View that responds to these messages can be a "ruler".
 * This is a nice way to make an object which works in concert
 * with another object, but isn't hardwired into the implementation
 * of that object and, instead, publishes a minimal interface
 * which it expects another object to respond to.
 */

@protocol Ruler
- setFlipped:(BOOL)flag;		/* if YES, coordinates go right->left or top->bottom */
- hidePosition;				/* hide any positioning markers */
- showPosition:(NXCoord)p :(NXCoord)q;	/* put the positioning markers at p and q */
@end

typedef enum {
    LowerLeft = 0, LowerRight, UpperLeft, UpperRight
} RulerOrigin;

@interface SyncScrollView : ScrollView
{
    ClipView *hClipRuler;
    ClipView *vClipRuler;
    id rulerClass;
    NXCoord horizontalRulerWidth;
    NXCoord verticalRulerWidth;
    RulerOrigin rulerOrigin;
    BOOL verticalRulerIsVisible;
    BOOL horizontalRulerIsVisible;
    BOOL rulersMade;
}

/* Setting up the rulers */

- (BOOL)bothRulersAreVisible;
- (BOOL)eitherRulerIsVisible;
- (BOOL)verticalRulerIsVisible;
- (BOOL)horizontalRulerIsVisible;

- setRulerClass:factoryId;
- setRulerWidths:(NXCoord)horizontal :(NXCoord)vertical;
- setRulerOrigin:(RulerOrigin)origin;

- showHorizontalRuler:(BOOL)flag;
- showVerticalRuler:(BOOL)flag;

- updateRuler;

/* Comes up the responder chain to us */

- updateRulers:(const NXRect *)rect;
- showHideRulers:sender;

/* Overridden from superclass */

- reflectScroll:cView;
- tile;
- scrollClip:(ClipView *)aClipView to:(const NXPoint *)aPoint;
- descendantFrameChanged:sender;

@end

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.