This is Hit.h in view mode; [Download] [Up]
/* * $RCSfile: Hit.h,v $ * * Copyright (C) 1992 by Adobe Systems Incorporated. * All rights reserved. * * Permission to use, copy, modify, and distribute this software and its * documentation for any purpose and without fee is hereby granted, * provided that the above copyright notices appear in all copies and that * both those copyright notices and this permission notice appear in * supporting documentation and that the name of Adobe Systems * Incorporated not be used in advertising or publicity pertaining to * distribution of the software without specific, written prior * permission. If any portion of this software is changed, it cannot be * marketed under Adobe's trademarks and/or copyrights unless Adobe, in * its sole discretion, approves by a prior writing the quality of the * resulting implementation. * * ADOBE MAKES NO REPRESENTATIONS ABOUT THE SUITABILITY OF THE SOFTWARE FOR * ANY PURPOSE. IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY. * ADOBE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL * IMPLIED WARRANTIES OF MERCHANTABILITY FITNESS FOR A PARTICULAR PURPOSE AND * NON-INFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL ADOBE BE LIABLE * TO YOU OR ANY OTHER PARTY FOR ANY SPECIAL, INDIRECT, OR CONSEQUENTIAL * DAMAGES OR ANY DAMAGES WHATSOEVER WHETHER IN AN ACTION OF CONTRACT, * NEGLIGENCE, STRICT LIABILITY OR ANY OTHER ACTION ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ADOBE WILL NOT * PROVIDE ANY TRAINING OR OTHER SUPPORT FOR THE SOFTWARE. * * PostScript, Display PostScript, and Adobe are trademarks of Adobe Systems * Incorporated registered in the U.S.A. and other countries. * * Author: Adobe Systems Incorporated */ #ifndef _HIT__H #define _HIT__H /*************************************************************** ** ** INCLUDES ** ***************************************************************/ #include <stdio.h> #include <math.h> #include <sys/time.h> #include <X11/Intrinsic.h> #include <Xm/Text.h> #include <Xm/DialogS.h> #include <Xm/MwmUtil.h> #include <Mrm/MrmAppl.h> /* Motif Toolkit and MRM */ #include <DPS/dpsXclient.h> #include <DPS/dpsXshare.h> #include <DPS/dpsXuserpath.h> #include "HitWraps.h" /*************************************************************** ** ** CONSTANT DEFINITIONS ** ***************************************************************/ /* ** These numbers are matched with corresponding numbers in hit.uil */ #define cMainDrawArea 1 #define cMouseDrawArea 2 #define cBufferDrawArea0 3 #define cBufferDrawArea1 4 #define cDrawingToggle 5 #define cHitDetToggle 6 #define cZoomingToggle 7 #define cMainHorzSBar 8 #define cMainVertSBar 9 #define PTS_PER_INCH 72 #define PAGE_WIDTH (PTS_PER_INCH * 8.5) #define PAGE_HEIGHT (PTS_PER_INCH * 11.0) #define PTS_BEZIER 4 #define OPS_BEZIER 2 #define PTS_CURVE_BUFFER (PTS_BEZIER * 2) #define OPS_CURVE_BUFFER 3 #define LINEWIDTH 0.15 #define COLORGRID 0.75 #define WIDTHGRID 2.0 #define SIZEGRID 36 #define LLX(obj) ((obj)->bbox[0]) #define LLY(obj) ((obj)->bbox[1]) #define URX(obj) ((obj)->bbox[2]) #define URY(obj) ((obj)->bbox[3]) #define MIN(x, y) ((x) < (y) ? (x) : (y)) #define MAX(x, y) ((x) > (y) ? (x) : (y)) #define ABS(a) ((a) < 0 ? -(a) : (a)) #define A_COEFF 0 #define B_COEFF 1 #define C_COEFF 2 #define D_COEFF 3 #define TX_CONS 4 #define TY_CONS 5 /*************************************************************** ** ** TYPEDEF DECLARATIONS ** ***************************************************************/ typedef struct { float *pts; DPSUserPathOp *ops; float bbox[4]; int numPts; int numOps; } UserPath; typedef struct { float x; float y; } Point; typedef struct { Point ll; Point ur; } BBox; typedef struct { GC gc; /* our graphics context */ DPSContext dpsCtxt; /* DPS context */ Widget drawingArea; /* main drawing area */ Widget bufOrig; /* original buffer show window */ Widget bufComp; /* composite buffer show window */ Widget bufferBox; /* dialog box showing buffers */ Widget hScroll; /* horizontal scrollbar */ Widget vScroll; /* vertical scrollbar */ Widget mouseArea; /* hit point display area */ DPSGState origGState; /* gstate for original buffer */ DPSGState compGState; /* gstate for composite buffer */ DPSGState mouseGState; /* gstate for mouse display area */ int xOffset; /* x offset of device space origin */ int yOffset; /* y offset of device space origin */ float ctm[6]; /* current transformation matrix */ float invctm[6]; /* inverse ctm */ float origInvctm[6]; /* original inverse ctm */ int originX; /* where the origin is */ int originY; /* (relative to X offset */ float origXScale; float origYScale; Boolean drawTrace; /* drawing trace flag */ Boolean hitTrace; /* hit detection trace flag */ Boolean zoomTrace; /* zoom trace flag */ Boolean showBuffer; /* display buffers flag */ Boolean gridOn; /* display grid flag */ Boolean copyAll; /* copy whole pixmaps or bboxes */ Boolean desktop; /* page size <= view window */ Boolean selected; /* curve selected flag */ Boolean zooming; /* zooming in progress flag */ Boolean scrolling; /* scrolling in progress flag */ float hitSize; /* hit detect size in points */ int magnify; /* magnification percent */ float scale; /* magnification scale */ Dimension drawingHeight; /* height of view window */ Dimension drawingWidth; /* width of view window */ int scaledWidth; /* width of scaled page */ int scaledHeight; /* height of scaled page */ int scrollX; /* X location of scroll bar */ int scrollY; /* Y location of scroll bar */ Pixmap original; /* original curve pixmap */ Pixmap composite; /* composite curve pixmap */ } AppDataType, *AppDataTypePtr; extern void initDPSContext(); extern void graphicExpose(); extern void scrollProc(); extern void doScroll(); extern void convertToX(); extern void convertToDPS(); extern void convertToOrigDPS(); extern void positionDrawingArea(); extern void scaleDrawingArea(); extern void drawSelf(); extern void drawSelfAndUpdate(); extern void reshapeObject(); extern void moveObject(); extern void drawSensitivityCircle(); extern void setOrigin(); extern Boolean hitControl(); extern Boolean hitObject(); /*************************************************************** ** ** EXTERNAL DATA DECLARATIONS ** ***************************************************************/ /* ** Global pointers to the application name and data block */ extern AppDataType AppData; extern float CtlPtSize; extern char FontName[]; #endif /* _HIT_H -- Add nothing below this line */
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.