This is DrawingView.h in view mode; [Download] [Up]
/* * (a) (C) 1990 by Adobe Systems Incorporated. All rights reserved. * * (b) If this Sample Code is distributed as part of the Display PostScript * System Software Development Kit from Adobe Systems Incorporated, * then this copy is designated as Development Software and its use is * subject to the terms of the License Agreement attached to such Kit. * * (c) If this Sample Code is distributed independently, then the following * terms apply: * * (d) This file may be freely copied and redistributed as long as: * 1) Parts (a), (d), (e) and (f) continue to be included in the file, * 2) If the file has been modified in any way, a notice of such * modification is conspicuously indicated. * * (e) PostScript, Display PostScript, and Adobe are registered trademarks of * Adobe Systems Incorporated. * * (f) THE INFORMATION BELOW IS FURNISHED AS IS, IS SUBJECT TO * CHANGE WITHOUT NOTICE, AND SHOULD NOT BE CONSTRUED * AS A COMMITMENT BY ADOBE SYSTEMS INCORPORATED. * ADOBE SYSTEMS INCORPORATED ASSUMES NO RESPONSIBILITY * OR LIABILITY FOR ANY ERRORS OR INACCURACIES, MAKES NO * WARRANTY OF ANY KIND (EXPRESS, IMPLIED OR STATUTORY) * WITH RESPECT TO THIS INFORMATION, AND EXPRESSLY * DISCLAIMS ANY AND ALL WARRANTIES OF MERCHANTABILITY, * FITNESS FOR PARTICULAR PURPOSES AND NONINFRINGEMENT * OF THIRD PARTY RIGHTS. */ /* * DrawingView.h * * This view represents the page that the bezier is drawn onto. It is * a subview of the doc view and can be zoomed and reduced. * * The buffers are used to allow for fast redrawing and moving. The * drawing is performed in the alpha buffer and then this is * composited into the buffered window. When the bezier is * selected and changed, the drawing of the new bezier * occurs in the buffered window. With each mouse drag the * old image in alpha is first composited into the window and * then the new bezier drawn atop the old image. * * When the image is moved, it is first drawn into the beta * buffer and then simply composited to a new location. If * the image is larger than the beta buffer, then the image * is redrawn instead of using the buffer. * * Version: 2.0 * Author: Ken Fromm * History: * 03-07-91 Added this comment. */ #import "DetectApp.h" #import <appkit/View.h> #import <appkit/timer.h> #define PTS_UPATH_BUFFER 100 #define OPS_UPATH_BUFFER 100 #define NUM_POINTS_HIT 12 #define NUM_OPS_HIT 6 #define COLORGRID NX_LTGRAY #define WIDTHGRID 2.0 #define SIZEGRID 36 typedef struct _UPath { float * pts; int num_pts; char *ops; int num_ops; } UPath; @interface DrawingView:View { id objectId, /* id of the bezier */ bufferAlpha, /* id of the main drawing buffer */ bufferBeta; /* id of the buffer used when moving */ BOOL scrolling, /* YES if need to update bufferAlpha */ selected, /* YES if the bezier has been selected */ tracedetect, /* YES if tracing the hit detection */ tracedraw, /* YES if tracing the drawing */ drawgrid; /* YES if drawing the grid */ int timermask, gridUpath; UPath hitPoint, /* User path descriptions that will be used */ drawUpath; /* for the hit detection point and the graphics. */ NXTrackingTimer *timer; } - initFrame:(NXRect *) frm; - initializeHitPoint; - createGrid; - createObject; - free; - traceDetect:sender; - traceDraw:sender; - drawGrid:sender; - compositeBufferAlpha:(NXRect *) r; - moveTo:(NXCoord)x :(NXCoord)y; - scale:(NXCoord)x :(NXCoord)y; - sizeTo:(NXCoord)x :(NXCoord)y; - constrainPoint:(NXPoint *)aPt withOffset:(const NXSize*)llOffset :(const NXSize*)urOffset; - constrainRect:(NXRect *)aRect; - (BOOL) isScrolling; - scrollToRect:(const NXRect *)toRect; - redrawObject:(int) pt_num :(NXRect *)redrawRect; - moveObject:(NXEvent *)event :(NXRect *)redrawRect; - (BOOL) checkControl:(const NXPoint *) p :(int *) pt_num; - (BOOL) checkObject:(const NXPoint *) p; - mouseDown:(NXEvent *)event; - drawObject:(NXRect *)r for:object withUcache:(BOOL)flag; - drawControl:(NXRect *)r for:object; - drawSelf:(NXRect *)r :(int) count; @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.