ftp.nice.ch/peanuts/GeneralData/Documents/adobe/DPS.Purple.ImportAdv.tar.gz#/NX_ImportAdv/GraphicImport.h

This is GraphicImport.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.
 */

/*
*	GraphicImport.h
*
*	This subclass of handles much of the overhead for imported
*	files such as tiff files and EPS files. Subclasses of this object
*	provide the specific methods that differeniate the two.
*
*	Version:	2.0
*	Author:	Ken Fromm
*	History:
*			03-20-91		Created the file.
*/

#import <objc/Object.h>
#import "ImportApp.h"
#import "epsfstruct.h"

#import <appkit/graphics.h>
#import <objc/hashtable.h>

#define  PTS_GRAPHIC		8
#define  SIZE_MIN				16
#define  IMAGE_MAX			1500		/* Maximum size for using an NXImage */

#define  LEFT					0
#define  MIDDLE				1
#define  RIGHT				2
#define  TOP					0
#define  BOTTOM				2

#define  XPOS				18
#define  YPOS				49

/*
*	The image variable holds the NXImage (the offscreen buffer
*	the file. The imagerep variable holds the NXEPSImageRepSub.
*	This class retains the original dimensions of the file as
*	an instance variable. The rotation stores the rotation of
*	the file and the bounds holds the position and dimensions
*	of the file in the document.(The dimensions are in unrotated
*	space.
*/
@interface GraphicImport : Object
{
	NXAtom		filename;			/* the name of the file */

	id			image,			/* id of the NXImage that serves as the bit cache */
				imagerep;		/* id of the NXImage rep that draws the file */

	float			rotation;			/* the angle of rotation */

	NXRect		bounds;			/* the non-rotated bounding box in the document */

	struct _gflags {
		unsigned char  new:1;			/* constrained to original aspect when new */
		unsigned char  selected:1;		/* selected or not */
		unsigned char  dirty:1;			/* needs to be redrawn */
		unsigned char  unimageable:1;	/* cannot be imaged - (path not valid) */
		unsigned char  error:1;			/* error when imaging */
		unsigned char  filler:3;
	} gflags;

}

- initFromFile:(const char *) file;
- initFromStream:(NXStream *) stream;

- (BOOL) listUnavailableResources:(ResourceList *) resourceList;
- addResources:(Resource *) resourceDoc  for:(NXRect *) r;

- free;
- freeTemp;
- copyTemp; 

- setFilename:(const char *) file;
- setImage:anImage;
- setImageRep:anImageRep;

- setSelected:(BOOL) flag;
- (BOOL) selected;
- setImageable:(BOOL) flag;
- (BOOL) imageable;
- (BOOL) error;

- setPoint:(int) pt_num  :(const NXPoint *) pt;
- setSize:(const NXSize *) aSize;
- setOrigin:(const NXPoint *) pt;
- setBounds:(const NXRect *) aRect;

- setOriginalSize;
- setOriginalRatio;

- rotateAboutPoint:(NXPoint *) aPoint  withAngle:(float) angle;
- moveAll:(const NXPoint *) pt;

- getPoint:(int) pt_num  :(NXPoint *) pt;
- getBounds:(NXRect *)aRect;
- getScrollRect:(NXRect *)aRect  forPtNum:(int) pt_num;

- constrainAngle:(float *)angle  withFlags:(int) flags;
- constrainPoint:(NXPoint *)aPt  forPtNum:(int *) pt_num
		inRect:(const NXRect *) viewRect  withFlags:(int) flags;

- hitControl:(const NXRect *) hitRect  :(int *) pt_num  forSize:(float) size;
- hitObject:(UPath *) hitUpath  ifNotSelected:(BOOL) flag;

- putControlPoints:(UPath *)buffer  forRect:(NXRect *)r  :(NXPoint *) lastPoint;

- drawBoxforRect:(NXRect *) r  imaging:(BOOL) imageFlag;
- drawObject:(NXRect *) r  withFlags:(int) flags  inView:view;

- write:(NXTypedStream *)stream;
- read:(NXTypedStream *)stream;
- awake;

- displayError;

@end

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