ftp.nice.ch/pub/next/tools/screen/Rulers_by_SW.1.2.s.tar.gz#/Rulers_by_SW/Rulers_by_SW-1.2/RulerView.h

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

//
// Time-stamp: <94/12/30 17:30:15 stephan>
//
// RulerView.h
// Project: Rulers
//
// Stephan Wacker
// 93-02-01


#import <appkit/appkit.h>



// Tick mark systems.

typedef struct TickMark
{
    NXCoord	distance;		// distance between ticks
    float	length;			// relative length of tick marks
    int		value;			// unit of numeric marks
					// negative values denote fractions
} TickMark;



@interface RulerView : View
{
    id			control;	// RulerControl
    
    NXPoint		origin;		// local coordinates
    NXPoint		screenOrigin;	// screen coordinates
    id			markFont;	// font for marking ticks
    NXRect		rubberRect;	// for rubberbanding
    NXCoord		off;		// exceeding movement during resizing

    NXImage		*cachedImage;	// off-screen image for fast rendering
    NXPoint		imageOrigin;	// in cachedImage coordinates
    NXRect		validRect;	// correctly rendered region
					// in cachedImage coordinates
}


// access: read
- getOrigin: (NXPoint *) point;

// access: write
- setOrigin: (const NXPoint *) point;

// inquiries
- (const TickMark *) tickMarkSystem;

#define Q_IsHorizontalRulerView(v)	[(v) respondsTo: @selector(sizeLeft:)]

// drawing
- drawMarks: (const NXRect *) aRect;
- drawBackground: (const NXRect *) aRect;

// control
- moveOrigin: (const NXSize *) delta;
- synchOrigin;
- synchScreenOrigin;
- setCacheInvalid;

// service
- trackMouseFor: target action: (SEL) action;
- showRubberband;
- hideRubberband;
- drawRubberband;

@end	// RulerView

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