/******************************************************************************/ /** **/ /** Copyright (c) Digital Equipment Corporation, 1991 **/ /** All Rights Reserved. Unpublished rights reserved **/ /** under the copyright laws of the United States. **/ /** **/ /** The software contained on this media is proprietary **/ /** to and embodies the confidential technology of **/ /** Digital Equipment Corporation. Possession, use, **/ /** duplication or dissemination of the software and **/ /** media is authorized only pursuant to a valid written **/ /** license from Digital Equipment Corporation. **/ /** **/ /** RESTRICTED RIGHTS LEGEND Use, duplication, or **/ /** disclosure by the U.S. Government is subject to **/ /** restrictions as set forth in Subparagraph (c)(1)(ii) **/ /** of DFARS 252.227-7013, or in FAR 52.227-19, as **/ /** applicable. **/ /** **/ /******************************************************************************/ /******************************************************************************/ /* */ /* FACILITY: */ /* */ /* GObE display list widget */ /* */ /* ABSTRACT: */ /* */ /* External GObE definitions */ /* */ /******************************************************************************/ #ifndef _GOBE_DEF_H_ #define _GOBE_DEF_H_ /******************************************************************************/ /* */ /* pcc (default 'cc' on Ultrix) doesn't currently support function */ /* prototypes, whereas vcc (VAX C on VMS) does. Since GObE wants to use */ /* prototypes internally on VMS, and anyone using a C compiler which supports */ /* them likely will as well, we want to keep support generally available, */ /* without preventing use on compilers like pcc which don't support them. */ /* */ /* It should also be easy to specify prototype support for non-VAXC compilers */ /* in the future. Therefore, instead of making it conditional on "VAXC" */ /* directly, we'll define a new "GObEPROTOTYPE" symbol... which is by default */ /* defined if VAXC is true, and undefined otherwise. */ /* */ /******************************************************************************/ #ifdef VAXC #define GObEPROTOTYPE 1 #endif /******************************************************************************/ /* */ /* GObE tracks objects "geometrically"... among other implications, this */ /* means that a circle is different from a disk (a filled circle). When an */ /* object is created with a fill pattern, it's always considered to be */ /* "solid"... however you can also tell GObE to treat a hollow object as if */ /* it were solid by specifying GobeKtrackSolid. */ /* */ /******************************************************************************/ #define GobeKtrackDefault 0 /* use default tracking */ #define GobeKtrackSolid 1 /* track figure as solid */ /******************************************************************************/ /* */ /* For the enter-leave and hot events, GObE passes the application a value */ /* specifying whether the pointer is entering or leaving the region. That */ /* value will be one of the two constants defined here. */ /* */ /******************************************************************************/ #define GobeKareaLeave 0 /* leaving area */ #define GobeKareaEnter 1 /* entering area */ /******************************************************************************/ /* */ /* For the press/release events, GObE will pass one of these constants to */ /* indicate whether the button is going down or up */ /* */ /******************************************************************************/ #define GobeKpressPress 0 /* Press */ #define GobeKpressRelease 1 /* Release */ /******************************************************************************/ /* */ /* For interactive transformation events, GObE will pass one of these */ /* constants to specify whether the operation was completed normally, was */ /* cancelled, or that a ghost transformation completed. */ /* */ /******************************************************************************/ #define GobeKdragDone 0 /* Completed (release) */ #define GobeKdragCancelled 1 /* Cancelled (chord) */ #define GobeKghostDragDone 2 /* Ghost-completed (release) */ /******************************************************************************/ /* */ /* Each GObE object has a "location point" which defines where the object is; */ /* the location point must always be specified with absolute world */ /* coordinates. However, most objects have more than one point, and */ /* additional points can usually be specified in one of several ways: either */ /* with absolute coordinates (GobeKpointAbsolute), as X and Y axis offsets */ /* from the location point (GobeKpointOffset), or as a length and angle from */ /* the location point (GobeKpointPolar). */ /* */ /******************************************************************************/ #define GobeKpointAbsolute 0 /* Absolute point */ #define GobeKpointOffset 1 /* Offset from previous */ #define GobeKpointPolar 2 /* Angle and length */ /******************************************************************************/ /* */ /* Much like point style (above) except that it's customized for an arc. The */ /* location point for an arc is the center, however it's often convenient to */ /* specify an arc using a "bounding rectangle" (the smallest rectangle which */ /* would completely enclose the arc). If you choose to specify the arc using */ /* a bounding rectangle, then the values GobeKarcAbsolute, GobeKarcOffset, */ /* and GobeKarcPolar work just like their counterparts GobeKpointAbsolute, */ /* GobeKpointOffset, and GobeKpointPolar, and GObE will know that the */ /* initial point in the GobeDrawArc call or GobeObjectStruct structure is the */ /* lower left corner, rather than the figure's location point. */ /* Alternatively, the application can specify the actual location point */ /* (center), and use the GobeKarcRadii value to indicate that the second */ /* "point" is actually the X and Y radii of the arc. */ /* */ /******************************************************************************/ #define GobeKarcRadii 0 /* Center and radii */ #define GobeKarcAbsolute 1 /* Absolute point */ #define GobeKarcOffset 2 /* Offset from previous */ #define GobeKarcPolar 3 /* Angle and length */ /******************************************************************************/ /* */ /* Used to specify operations for the GobeGetRestrictions service. */ /* */ /******************************************************************************/ #define GobeKxformScale 1 /* Scale transform */ #define GobeKxformRotate 2 /* Rotation */ #define GobeKxformTranslate 3 /* Translation */ #define GobeKxformRubberband 4 /* Rubberband a point */ /******************************************************************************/ /* */ /* The following are possible values for field fill_outline in the */ /* GobeGgcValuesStruct structure when the user specifies the mask bit */ /* GobeMgbFillOutline in the mask word. */ /* */ /******************************************************************************/ #define GobeKoutline 0 /* Draw the object as outlined */ #define GobeKfill 1 /* Draw the object as filled */ #define GobeKfillAndOutline 2 /* Draw the object as filled and outlined */ /******************************************************************************/ /* */ /* Fill patterns */ /* */ /******************************************************************************/ #define GobeKfillNone 0 #define GobeKfillBackground 1 #define GobeKfillForeground 2 #define GobeKfillVert11 3 #define GobeKfillVert13 4 #define GobeKfillVert22 5 #define GobeKfillVert31 6 #define GobeKfillVert17 7 #define GobeKfillVert26 8 #define GobeKfillVert44 9 #define GobeKfillVert62 10 #define GobeKfillHoriz11 11 #define GobeKfillHoriz13 12 #define GobeKfillHoriz22 13 #define GobeKfillHoriz31 14 #define GobeKfillHoriz17 15 #define GobeKfillHoriz26 16 #define GobeKfillHoriz44 17 #define GobeKfillHoriz62 18 #define GobeKfillGrid4 19 #define GobeKfillGrid8 20 #define GobeKfillUpDiag13 21 #define GobeKfillUpDiag22 22 #define GobeKfillUpDiag31 23 #define GobeKfillUpDiag17 24 #define GobeKfillUpDiag26 25 #define GobeKfillUpDiag44 26 #define GobeKfillUpDiag62 27 #define GobeKfillDownDiag13 28 #define GobeKfillDownDiag22 29 #define GobeKfillDownDiag31 30 #define GobeKfillDownDiag17 31 #define GobeKfillDownDiag26 32 #define GobeKfillDownDiag44 33 #define GobeKfillDownDiag62 34 #define GobeKfillBrickHoriz 35 #define GobeKfillBrickVert 36 #define GobeKfillBrickDownDiag 37 #define GobeKfillBrickUpDiag 38 #define GobeKfillGrey416D 39 #define GobeKfillGrey1216D 40 #define GobeKfillBasketWeave 41 #define GobeKfillScaleDown 42 #define GobeKfillScaleUp 43 #define GobeKfillScaleRight 44 #define GobeKfillScaleLeft 45 #define GobeKfillFiller6 46 #define GobeKfillFiller7 47 #define GobeKfillGrey116 48 #define GobeKfillGrey216 49 #define GobeKfillGrey316 50 #define GobeKfillGrey416 51 #define GobeKfillGrey516 52 #define GobeKfillGrey616 53 #define GobeKfillGrey716 54 #define GobeKfillGrey816 55 #define GobeKfillGrey916 56 #define GobeKfillGrey1016 57 #define GobeKfillGrey1116 58 #define GobeKfillGrey1216 59 #define GobeKfillGrey1316 60 #define GobeKfillGrey1416 61 #define GobeKfillGrey1516 62 #define GobeKfillMax 62 /******************************************************************************/ /* */ /* Line style (solid or dashed). */ /* */ /******************************************************************************/ #define GobeKlineSolid 0 #define GobeKlineDashed 1 #define GobeKlineMax 1 /******************************************************************************/ /* */ /* Arc style */ /* */ /******************************************************************************/ #define GobeKarcPieSlice 0 #define GobeKarcChord 1 #define GobeKarcMax 1 /******************************************************************************/ /* */ /* Cap style. */ /* */ /******************************************************************************/ #define GobeKcapButt 0 /* X windows cap style aliases */ #define GobeKcapRound 1 #define GobeKcapSquare 2 #define GobeKcapMax 2 /******************************************************************************/ /* */ /* Arrowhead style. Lines, polylines, and curves can have an arrowhead drawn */ /* at either end or both ends. */ /* */ /******************************************************************************/ #define GobeKarrowNone 0 #define GobeKarrowBegin 1 #define GobeKarrowEnd 2 #define GobeKarrowBoth 3 #define GobeKarrowMax 3 /******************************************************************************/ /* */ /* Join style */ /* */ /******************************************************************************/ #define GobeKjoinMiter 0 #define GobeKjoinRound 1 #define GobeKjoinBevel 2 #define GobeKjoinMax 2 /******************************************************************************/ /* */ /* When a generic Object structure is passed (to GObE via GobeDraw, or to the */ /* application via GobeExtract), a field of this type defines the Shape of */ /* the object. */ /* */ /******************************************************************************/ #define GobeKshapeArc 1 /* Arc shape */ #define GobeKshapeCurve 2 /* Bezier curve shape */ #define GobeKshapeImage 3 /* Image shape */ #define GobeKshapeLine 4 /* Line shape */ #define GobeKshapePixmap 5 /* Pixmap shape */ #define GobeKshapePoint 6 /* Point shape */ #define GobeKshapePolyline 7 /* Polyline shape */ #define GobeKshapeRectangle 8 /* Rectangle shape */ #define GobeKshapeText 9 /* Text shape */ /******************************************************************************/ /* */ /* An arc is generally closed (a circle or ellipse); if the application */ /* desires to draw only part of the arc, there are two ways to specify the */ /* portion to be drawn. In either case, a beginning angle is specified. If */ /* the partial arc style is GobeKpartialTwoAngle, then the arc is terminated */ /* when the second angle is reached (i.e., both end points are absolute */ /* angles). If GobeKpartialExtent is specified, then the second angle */ /* specifies the angular length of the arc. */ /* */ /******************************************************************************/ #define GobeKpartialTwoAngle 0 /* Start & end angle */ #define GobeKpartialExtent 1 /* Start angle & extent */ /******************************************************************************/ /* */ /* GobePrint implementation modes... */ /* */ /******************************************************************************/ #define GobeKprintHighRes 0 /* High Resolution implementation */ /******************************************************************************/ /* */ /* GobeEndPrint modes... */ /* */ /******************************************************************************/ #define GobeKprintOK 0 /* flag value to complete print sequence */ #define GobeKprintCancel 1 /* flag value to cancel print sequence */ /******************************************************************************/ /* */ /* Define GObE status codes */ /* */ /******************************************************************************/ #define GobeSCsuccess ( 0<<3 | 1) #define GobeSCadjusted ( 1<<3 | 3) #define GobeSCbusyggc ( 2<<3 | 3) #define GobeSCdisabled ( 3<<3 | 3) #define GobeSCnomore ( 4<<3 | 3) #define GobeSCnoparent ( 5<<3 | 3) #define GobeSCshrunk ( 6<<3 | 3) #define GobeSCinuse ( 7<<3 | 0) #define GobeSCrestricted ( 8<<3 | 0) #define GobeSCunkddif ( 9<<3 | 0) #define GobeSCbadastyle ( 10<<3 | 2) #define GobeSCbadattr ( 11<<3 | 2) #define GobeSCbadcharset ( 12<<3 | 2) #define GobeSCbadcode ( 13<<3 | 2) #define GobeSCbadctx ( 14<<3 | 2) #define GobeSCbadevent ( 15<<3 | 2) #define GobeSCbadggc ( 16<<3 | 2) #define GobeSCbadggcbits ( 17<<3 | 2) #define GobeSCbadggcfield ( 18<<3 | 3) #define GobeSCbadindex ( 19<<3 | 2) #define GobeSCbadmode ( 20<<3 | 2) #define GobeSCbadobject ( 21<<3 | 2) #define GobeSCbadparent ( 22<<3 | 2) #define GobeSCbadpastyle ( 23<<3 | 2) #define GobeSCbadpstyle ( 24<<3 | 2) #define GobeSCbadrange ( 25<<3 | 2) #define GobeSCbadscrstyle ( 26<<3 | 2) #define GobeSCbadshape ( 27<<3 | 2) #define GobeSCbadstring ( 28<<3 | 2) #define GobeSCbadtransform ( 29<<3 | 2) #define GobeSCintern ( 30<<3 | 2) #define GobeSCisdescendant ( 31<<3 | 2) #define GobeSCisroot ( 32<<3 | 2) #define GobeSCnoextract ( 33<<3 | 2) #define GobeSCnonesel ( 34<<3 | 2) #define GobeSCnopoints ( 35<<3 | 2) #define GobeSCnosource ( 36<<3 | 2) #define GobeSCnotcubic ( 37<<3 | 2) #define GobeSCnotindispwind ( 38<<3 | 2) #define GobeSCnotingobe ( 39<<3 | 2) #define GobeSCnottext ( 40<<3 | 2) #define GobeSCreqparam ( 41<<3 | 2) #define GobeSCtoofewpoints ( 42<<3 | 2) #define GobeSCunimp ( 43<<3 | 2) #define GobeSCbadhighggc ( 44<<3 | 2) #define GobeSCbadhandle ( 45<<3 | 2) #define GobeSCinsfmem ( 46<<3 | 2) #define GobeSCprintinprog ( 47<<3 | 2) #define GobeSCbadprintmode ( 48<<3 | 2) #define GobeSCnoinit ( 49<<3 | 2) #define GobeSCzoomrefused ( 50<<3 | 2) #define GobeSCxformunavail ( 51<<3 | 0) #define GobeSCredundant ( 52<<3 | 3) #define GobeSCbadupdateflag ( 53<<3 | 2) /******************************************************************************/ /* */ /* Define the events supported by GObE. */ /* */ /******************************************************************************/ #define GobeKeventEnterLeave 0 #define GobeKeventResize 1 #define GobeKeventGrid 2 #define GobeKeventDragBegin 3 #define GobeKeventDragTrack 4 #define GobeKeventHelp 5 #define GobeKeventHot 6 #define GobeKeventRestriction 7 #define GobeKeventClick 8 #define GobeKeventDouble 9 #define GobeKeventPress 10 #define GobeKeventRotate 11 #define GobeKeventRubberband 12 #define GobeKeventScale 13 #define GobeKeventTranslate 14 #define GobeKeventScroll 15 #define GobeKeventZoom 16 /******************************************************************************/ /* */ /* Define the maximum event number for "window" events (no selection criteria */ /* or button state), "object" events (no button state---note that this */ /* includes the HELP event), and "button" events (which include the */ /* interactive transformation events). */ /* */ /******************************************************************************/ #define GobeKeventMaxWindow 2 #define GobeKeventMaxObject 7 #define GobeKeventMaxButton 14 /******************************************************************************/ /* */ /* Define the range of events which affect pointer tracking */ /* */ /******************************************************************************/ #define GobeKeventMinTrack 5 #define GobeKeventMaxTrack 14 /******************************************************************************/ /* */ /* Define the range of "drag" type events */ /* */ /******************************************************************************/ #define GobeKeventMinDrag 11 #define GobeKeventMaxDrag 14 /******************************************************************************/ /* */ /* Define two more constants for the maximum event number, and for the count */ /* of event numbers which were assigned above. */ /* */ /******************************************************************************/ #define GobeKeventMaxValue 16 #define GobeKeventCount 17 /******************************************************************************/ /* */ /* Define constants which can be passed to GobeEnableEvents to specify ANY, */ /* ALL, or EXACT mode for matching the selection criteria. */ /* */ /******************************************************************************/ #define GobeKmodeAny 0 /* if ANY bits match */ #define GobeKmodeAll 1 /* if ALL bits match */ #define GobeKmodeExact 2 /* If EXACT match */ /******************************************************************************/ /* */ /* Define X button state masks to support DECwindows Style Guide button */ /* syntax: SELECT, EXTEND, etc. */ /* */ /******************************************************************************/ #define GobeKbuttonSelect Button1Mask /* MB1 unshifted */ #define GobeKbuttonExtend (Button1Mask | ShiftMask) /* SHIFT/MB1 */ #define GobeKbuttonQuickCopy Button2Mask /* MB2 */ #define GobeKbuttonPopup Button3Mask /* MB3 unshifted */ /******************************************************************************/ /* */ /* Define constants which can be passed to GobeSetDisplayUpdate. */ /* */ /******************************************************************************/ #define GobeKupdateImmediate 0 #define GobeKupdateDeferred 1 /******************************************************************************/ /* */ /* Define some types for GObE objects */ /* */ /******************************************************************************/ typedef Widget GobeTwidgetId; /* Type for GObE widget */ typedef unsigned long int GobeTobjectId; /* Type for objects */ typedef unsigned long int GobeTattrId; /* Type for GGCs */ typedef unsigned long int GobeTcontextId; /* Type for traversal/locate context */ /******************************************************************************/ /* */ /* Define structure to be returned in gobe$get_event 'button' array: defines */ /* the button state and selection criteria for each button state in a button */ /* event. */ /* */ /******************************************************************************/ typedef struct { unsigned long int criteria[4]; /* Selection criteria for button state */ long int mode; /* Selection mode */ unsigned long int state; /* Button state mask */ } GobeButtonStruct; /******************************************************************************/ /* */ /* Define the pre-defined GObE selection bits. This structure maps to the */ /* high longword of the 4-longword selection criteria array. */ /* */ /******************************************************************************/ #define GobeMselectMb1 65536 #define GobeMselectMb2 131072 #define GobeMselectMb3 262144 #define GobeMselectMb4 524288 #define GobeMselectCurrent 1048576 #define GobeMselectDrawn 2097152 typedef struct { /* Reserved selection bits */ unsigned user_bits : 16; /* Available for application use */ unsigned mb1 : 1; /* Last selected by MB1 */ unsigned mb2 : 1; /* Last selected by MB2 */ unsigned mb3 : 1; /* Last selected by MB3 */ unsigned mb4 : 1; /* Last selected by MB4 */ unsigned current : 1; /* Currently under pointer */ unsigned drawn : 1; /* Last drawn or copied */ unsigned reserved : 10; /* Remaining bits are reserved for future use */ } GobeReservedSelectStruct; /******************************************************************************/ /* */ /* This structure is used within several other structures to specify a world */ /* coordinate point. */ /* */ /******************************************************************************/ typedef struct { float x; /* X coordinate */ float y; /* Y coordinate */ } GobePointStruct; /******************************************************************************/ /* */ /* This structure is used to specify a device coordinate (X) point. */ /* */ /******************************************************************************/ typedef struct { unsigned short int x; /* X coordinate */ unsigned short int y; /* Y coordinate */ } GobeXPointStruct; /******************************************************************************/ /* */ /* This defines a rectangle; it's used for specifying GObE display window */ /* regions, like the Display Window or Scrolling Region. The lower left */ /* corner and upper right corner are specified as absolute world coordinates. */ /* */ /******************************************************************************/ typedef struct { GobePointStruct ll; /* Lower left corner */ GobePointStruct ur; /* Upper right corner */ } GobeRectangleStruct; /******************************************************************************/ /* */ /* Structure that defines a range and center point for use in checking */ /* restrictions on interactive scale and rotation events. */ /* */ /******************************************************************************/ typedef struct { float high; /* Upper limit */ float low; /* Lower limit */ GobePointStruct center; /* x,y coord of center point */ } GobeRangeCenterStruct; /******************************************************************************/ /* */ /* This defines the bits used to define which fields of GobeGgcValuesStruct */ /* are valid when a GGC is created or modified by the application. */ /* */ /******************************************************************************/ #define GobeMgbForeground 1 #define GobeMgbLineWidth 2 #define GobeMgbLineStyle 4 #define GobeMgbCapStyle 8 #define GobeMgbJoinStyle 16 #define GobeMgbArcMode 32 #define GobeMgbFillPattern 64 #define GobeMgbFontList 128 #define GobeMgbDashes 256 #define GobeMgbTrackingStyle 512 #define GobeMgbPointHighlight 1024 #define GobeMgbClickHighlight 2048 #define GobeMgbCursor 4096 #define GobeMgbSelectMask 8192 #define GobeMgbInvisible 16384 #define GobeMgbFillOutline 32768 #define GobeMgbUserData 65536 #define GobeMgbInvisNav 131072 #define GobeMgbArrowheadWidth 262144 #define GobeMgbArrowheadStyle 524288 #define GobeMgbPermHighlight 1048576 /******************************************************************************/ /* */ /* This defines all the drawing attributes which can be applied to any GObE */ /* object. Note that it includes many of the fields from the X Window System */ /* XGCValues structure (though some have slightly different interpretation). */ /* */ /******************************************************************************/ typedef struct { Pixel foreground; /* foreground colormap index */ float line_width; /* width of line (world coordinates) */ float arrowhead_width; /* width of arrowhead line cap (world coordinates) */ unsigned long int arrowhead_style; /* type or arrowhead for lines, curves, polylines */ unsigned long int line_style; /* style of line */ unsigned long int cap_style; /* how to draw end of line */ unsigned long int join_style; /* how to join line segments */ unsigned long int arc_mode; /* How to join ends of partial arcs */ unsigned long int fill_pattern; /* fill pattern for filled figure */ XmFontList font_list; /* font list */ float dashes; /* dash pattern */ unsigned long int tracking_style; /* desired tracking style */ GobeTattrId point_highlight; /* GGC for highlighting on point */ GobeTattrId click_highlight; /* GGC for highlighting on button down */ Pixmap cursor; /* X cursor ID value */ unsigned long int select_mask[4]; /* Selection bitmask */ unsigned long int invisible; /* true (1) = invisible */ unsigned long int fill_outline; /* Draw an object as filled and/or outlined */ unsigned long int user_data; /* uninterpreted user data */ unsigned long int invis_nav; /* true (1) = invisible in navigation window */ GobeTattrId perm_highlight; /* GGC for permanent highlighting */ unsigned long int reserved[8]; /* reserve some fields for expansion */ } GobeGgcValuesStruct; /******************************************************************************/ /* */ /* Describe the shape of an arc. The location point is the center of the arc */ /* (i.e., the center of the smallest enclosing rectangle). The arc may be */ /* specified either as a center point and X and Y radii, or as a bounding */ /* rectangle. */ /* */ /* By default, an arc is a circle or ellipse; the application may also */ /* specify that only part of the arc is to be drawn, by specifying start and */ /* stop angles. Arcs are considered to be drawn counterclockwise; a full arc */ /* begins at 0 degrees (positive X axis) and rotates to 360 degrees. */ /* */ /******************************************************************************/ typedef struct { unsigned long int shape; /* shape type */ GobePointStruct point; /* location point (or lower left) */ unsigned long int style; /* radii, absolute, offset, polar */ unsigned long int partial_style; /* two_angle, extent */ union { GobePointStruct point2; /* top right point */ struct { float x_radius; /* X radius */ float y_radius; /* Y radius */ } radial; } other; float start_angle; /* beginning partial arc angle */ union { float stop_angle; /* ending absolute angle */ float extent; /* extent of partial arc */ } end_angle; } GobeArcShapeStruct; /******************************************************************************/ /* */ /* Describe the shape of a connected set of cubic Bezier curves. The */ /* location point is just the first point (index 0). Additional points are */ /* specified by a separate array, each of which may be relative to the */ /* location point. */ /* */ /******************************************************************************/ typedef struct { unsigned long int shape; /* shape type */ unsigned long int style; /* Absolute, offset, polar */ long int count; /* Count of points */ GobePointStruct *points; /* Pointer to array of points */ } GobeCurveShapeStruct; /******************************************************************************/ /* */ /* Describe the shape of an image. An image is an array of pixel values, */ /* which may be formatted in a number of ways (see the X Window System */ /* documentation for a description of the XImage structure). GObE will */ /* transmit the image to the server in order to display it (this consumes a */ /* minimum of server resources, but is less efficient than using a Pixmap */ /* maintained by the application). The location point of an image is the */ /* lower left corner. */ /* */ /******************************************************************************/ typedef struct { unsigned long int shape; /* shape type */ GobePointStruct point; /* Location point */ XImage *data; /* Address of X Image structure */ } GobeImageShapeStruct; /******************************************************************************/ /* */ /* Describe the shape of a line. The location point and the location of the */ /* other end of the line (which may be relative to the first). */ /* */ /******************************************************************************/ typedef struct { unsigned long int shape; /* shape type */ GobePointStruct point; /* Location point */ unsigned long int style; /* absolute, offset, polar */ GobePointStruct point2; /* Other end of line */ } GobeLineShapeStruct; /******************************************************************************/ /* */ /* Describe the shape of a pixmap. A Pixmap is an X Window System server */ /* resource ID, which refers to a bitmap or image maintained within the */ /* server. GObE can display this much more efficiently than an image shape, */ /* since the contents do not need to be transmitted to the server; however it */ /* requires offscreen memory, which may be a scarce resource on some servers. */ /* */ /******************************************************************************/ typedef struct { unsigned long int shape; /* shape type */ GobePointStruct point; /* Location point */ unsigned long int id; /* X Pixmap ID */ } GobePixmapShapeStruct; /******************************************************************************/ /* */ /* Describe the shape of a point... it's just the location point */ /* */ /******************************************************************************/ typedef struct { unsigned long int shape; /* shape type */ GobePointStruct point; /* Location point */ } GobePointShapeStruct; /******************************************************************************/ /* */ /* Describe the shape of a polyline. The location point is just the first */ /* point (index 0). Additional points are specified by a separate array, */ /* each of which may be relative to the location point. */ /* */ /******************************************************************************/ typedef struct { unsigned long int shape; /* shape type */ unsigned long int style; /* Absolute, offset, polar */ long int count; /* Count of points */ GobePointStruct *points; /* Pointer to array of points */ } GobePolylineShapeStruct; /******************************************************************************/ /* */ /* Describe the shape of a rectangle. The location point is the lower left */ /* corner of the box. The upper right corner may be specified with any point */ /* style semantics. */ /* */ /******************************************************************************/ typedef struct { unsigned long int shape; /* shape type */ GobePointStruct point; /* Location point (lower left) */ unsigned long int style; /* Absolute, offset, polar */ GobePointStruct point2; /* Upper right point */ } GobeRectangleShapeStruct; /******************************************************************************/ /* */ /* Describe the shape of a text figure. The location point is the left */ /* baseline of the text. The string is described by a length and a pointer */ /* to an array of characters (bytes or words, depending on the value of the */ /* fontsize field). */ /* */ /******************************************************************************/ typedef struct { unsigned long int shape; /* shape type */ GobePointStruct point; /* Location point */ XmString string; /* Pointer to compound string */ } GobeTextShapeStruct; /******************************************************************************/ /* */ /* A generic "shape" which defines the shape type field */ /* */ /******************************************************************************/ typedef struct { unsigned long int shape; /* shape type */ } GobeGenericShapeStruct; /******************************************************************************/ /* */ /* A union of all the various Shape types, for convenience. */ /* */ /******************************************************************************/ typedef union { GobeGenericShapeStruct generic; GobeArcShapeStruct arc; GobeCurveShapeStruct curve; GobeImageShapeStruct image; GobeLineShapeStruct line; GobePixmapShapeStruct pixmap; GobePointShapeStruct point; GobePolylineShapeStruct polyline; GobeRectangleShapeStruct rectangle; GobeTextShapeStruct text; } GobeShapeStruct; /******************************************************************************/ /* */ /* The external representation of a GObE object, as returned by GobeExtract, */ /* or as passed to GobeDraw. */ /* */ /* Several of the fields in this structure are "overrides" for values within */ /* the GGC. In each such field, the GGC provides default values when an */ /* object is created, but the values reside within the object itself. */ /* Therefore, GobeExtract must save the object's actual values, independent */ /* of the GGC which was used. */ /* */ /* These fields are the invisible and solid bits, the select vector, and the */ /* user_data longword. If the override bit is set (GobeExtract will always */ /* set it), then the values contained in the other named fields will be used */ /* by GobeDraw: otherwise, GobeDraw will use the defaults in the specified */ /* GGC. */ /* */ /******************************************************************************/ #define GobeMobjOverride 1 #define GobeMobjInvisible 2 #define GobeMobjSolid 4 #define GobeMobjRoot 8 #define GobeMobjInvisNav 16 typedef struct _GobeObjectStruct { struct _GobeObjectStruct *next; /* link to next sibling */ struct _GobeObjectStruct *child; /* link to first child */ unsigned long int attributes; /* Attributes of shape(s) (GGC ID) */ unsigned long int select[4]; /* Four longwords of select bits */ union { /* Flags */ unsigned long int f_long; /* reference as longword */ struct { unsigned override : 1; /* override GGC defaults (invis, solid, etc.) */ unsigned invisible : 1; /* object is invisible */ unsigned solid : 1; /* track as solid, regardless of fill */ unsigned root : 1; /* object is the GObE root object */ unsigned invis_nav : 1; /* object is invisible in navigation window */ unsigned reserved : 27; /* fill remainder of longword */ } f_bits; } flags; unsigned long int user_data; /* Object user data */ float xform [3][3]; /* Matrix (3 x 3) of F float values */ GobeShapeStruct shape; /* Object's shape */ } GobeObjectStruct; /******************************************************************************/ /* */ /* Selection criteria (or selection mask) structure. Just a vector of 4 */ /* longwords... no attempt is made to define individual bits. */ /* */ /******************************************************************************/ typedef struct { unsigned long int criteria [4]; /* Four longwords */ } GobeSelectionStruct; /******************************************************************************/ /* */ /* Define the structures which GObE will pass to the application for the */ /* various callback routines. */ /* */ /******************************************************************************/ /******************************************************************************/ /* */ /* Passed for drag-begin event... gives the type of callback, the object ID, */ /* the default transformation code, button state, and current pointer */ /* location. */ /* */ /* This signals that GObE has detected pointer motion while a button syntax */ /* enabled for some transformation event is in effect. If there is a current */ /* object, the ID will be passed, and the first transformation event which is */ /* enabled for the current button syntax and the current object. If there is */ /* no current object, the first transformation event enabled for the button */ /* syntax is passed, and the object ID is 0. */ /* */ /* The callback routine may modify both the object ID and the transformation */ /* code. The transformation will not be initiated unless the specified */ /* transformation event is enabled for the current button syntax and the */ /* specified object. */ /* */ /******************************************************************************/ typedef struct { unsigned long int type; /* Type of event */ Time time; /* X server event time */ GobeTobjectId object; /* Object ID (0 if none) */ unsigned long int xform; /* Code of default transformation */ unsigned long int button; /* Button syntax in effect */ float x; /* Current X pointer location */ float y; /* Current Y pointer location */ unsigned char ghost_drag; /* Performing ghost transformation? */ unsigned char drag_bounds; /* Drag bounding rectangle */ } GobeEventDragBeginStruct; /******************************************************************************/ /* */ /* Passed for drag-track event... gives the type of callback, the object ID, */ /* the code for the current transformation, the button state, and the pointer */ /* location */ /* */ /******************************************************************************/ typedef struct { unsigned long int type; /* Type of event */ GobeTobjectId object; /* OBJECT_ID of object */ unsigned long int xform; /* Code of transformation in-progress */ unsigned long int button; /* X Window System button state */ float x; /* X coordinate of pointer */ float y; /* Y coordinate of pointer */ } GobeEventDragTrackStruct; /******************************************************************************/ /* */ /* Passed for enter-and-leave event... gives the type of callback, the */ /* object-id (only if transformation is in-progress), a flag which is TRUE */ /* (1) if entering and FALSE (0) if exiting, the code for the current */ /* transformation (if any), the button state, and the pointer location. */ /* */ /******************************************************************************/ typedef struct { unsigned long int type; /* Type of event */ unsigned long int flag; /* TRUE if entering, FALSE if leaving */ GobeTobjectId object; /* OBJECT_ID if transforming one */ unsigned long int xform; /* Code of transformation in-progress */ unsigned long int button; /* X Window System button state */ float scroll_x; /* X coord to scroll ghost object fully into window */ float scroll_y; /* Y coord to scroll ghost object fully into window */ float delta_x; /* X offset to scroll ghost fully into window */ float delta_y; /* Y offset to scroll ghost fully into window */ float x; /* X coordinate of pointer */ float y; /* Y coordinate of pointer */ } GobeEventEnterLeaveStruct; /******************************************************************************/ /* */ /* Passed for grid event... gives the type of callback, the integer grid */ /* coordinates, and the actual world coordinates of the pointer device. */ /* */ /******************************************************************************/ typedef struct { unsigned long int type; /* Type of event */ long int gx; /* Grid X */ long int gy; /* Grid Y */ float x; /* World X */ float y; /* World Y */ } GobeEventGridStruct; /******************************************************************************/ /* */ /* Passed for hot event... gives the type of callback, the object-id, a flag */ /* which is TRUE (1) if entering and FALSE (0) if exiting, and the pointer */ /* location. */ /* */ /******************************************************************************/ typedef struct { unsigned long int type; /* Type of event */ GobeTobjectId object; /* OBJECT_ID of hot object */ unsigned long int flag; /* TRUE if entering, FALSE if leaving */ float x; /* World X */ float y; /* World Y */ } GobeEventHotStruct; /******************************************************************************/ /* */ /* Passed for button events... gives the type of callback, the button state, */ /* the pointer location, and the object-id (if any). */ /* */ /******************************************************************************/ typedef struct { unsigned long int type; /* Type of event */ Time time; /* X server event time */ unsigned long int flag; /* Press/Release (Press event only!) */ GobeTobjectId object; /* OBJECT_ID (if any) */ unsigned long int button; /* Button state */ float x; /* World X */ float y; /* World Y */ } GobeEventButtonStruct; /******************************************************************************/ /* */ /* Passed for restriction events... gives the type of callback, the */ /* object-id, and the transformation code. */ /* */ /******************************************************************************/ typedef struct { unsigned long int type; /* Type of event */ GobeTobjectId object; /* OBJECT_ID */ unsigned long int xform; /* Code for transform type */ } GobeEventRestrictionStruct; /******************************************************************************/ /* */ /* Passed for rotate events... gives the type of callback, the object-id, the */ /* button state, and the final angle of rotation. */ /* */ /******************************************************************************/ typedef struct { unsigned long int type; /* Type of event */ Time time; /* X server event time */ unsigned long int flag; /* done/cancelled flag */ GobeTobjectId object; /* OBJECT_ID */ unsigned long int button; /* Button state */ float x; /* Pointer coord */ float y; int status; /* completion status */ float angle; /* Final angle of rotation */ } GobeEventRotateStruct; /******************************************************************************/ /* */ /* Passed for rubberband events... gives the type of callback, the object-id, */ /* the button state, the point index, and the final location of the point. */ /* */ /******************************************************************************/ typedef struct { unsigned long int type; /* Type of event */ Time time; /* X server event time */ unsigned long int flag; /* done/cancelled flag */ GobeTobjectId object; /* OBJECT_ID */ unsigned long int button; /* Button state */ float x; /* World X of point */ float y; /* World Y of point */ int status; /* completion status */ unsigned long int index; /* Index of target point */ } GobeEventRubberbandStruct; /******************************************************************************/ /* */ /* Passed for scale events... gives the type of callback, the object-id, the */ /* button state, and the final scale factor of the object. */ /* */ /******************************************************************************/ typedef struct { unsigned long int type; /* Type of event */ Time time; /* X server event time */ unsigned long int flag; /* done/cancelled flag */ GobeTobjectId object; /* OBJECT_ID */ unsigned long int button; /* Button state */ float x; /* Pointer coord */ float y; int status; /* completion status */ float scale; /* Final scale factor */ } GobeEventScaleStruct; /******************************************************************************/ /* */ /* Passed for translate events... gives the type of callback, the object-id, */ /* the button state, and the final location point of the object. */ /* */ /******************************************************************************/ typedef struct { unsigned long int type; /* Type of event */ Time time; /* X server event time */ unsigned long int flag; /* done/cancelled flag */ GobeTobjectId object; /* OBJECT_ID */ unsigned long int button; /* Button state */ float x; /* Pointer coord */ float y; int status; /* completion status */ float loc_x; /* World X of location point */ float loc_y; /* World Y of location point */ } GobeEventTranslateStruct; /******************************************************************************/ /* */ /* A "generic" drag event structure for convenience; the common fields from */ /* rotate, rubberband, scale, and translate events. */ /* */ /******************************************************************************/ typedef struct { unsigned long int type; /* Type of event */ Time time; /* X server event time */ unsigned long int flag; /* done/cancelled flag */ GobeTobjectId object; /* OBJECT_ID */ unsigned long int button; /* Button state */ float x; /* Pointer coord */ float y; int status; /* completion status */ } GobeEventGenericDragStruct; /******************************************************************************/ /* */ /* A union of all the drag structures */ /* */ /******************************************************************************/ typedef union { GobeEventGenericDragStruct generic; GobeEventRotateStruct rotate; GobeEventRubberbandStruct rubberband; GobeEventScaleStruct scale; GobeEventTranslateStruct translate; } GobeEventDragStruct; /******************************************************************************/ /* */ /* Passed for resize events... gives the type of callback and the new display */ /* window rectangle (the zoom factor is retained, but a smaller area of the */ /* virtual display will be visible). */ /* */ /******************************************************************************/ typedef struct { unsigned long int type; /* Type of event */ float low_x; /* X of lower left */ float low_y; /* Y of lower left */ float high_x; /* X of upper right */ float high_y; /* Y of upper right */ } GobeEventResizeStruct; /******************************************************************************/ /* */ /* Passed for scroll events... gives the type of callback and the final */ /* display window rectangle. */ /* */ /******************************************************************************/ typedef struct { unsigned long int type; /* Type of event */ float low_x; /* X of lower left */ float low_y; /* Y of lower left */ float high_x; /* X of upper right */ float high_y; /* Y of upper right */ } GobeEventScrollStruct; /******************************************************************************/ /* */ /* Passed for zoom events... gives the type of callback and the final display */ /* window rectangle. */ /* */ /******************************************************************************/ typedef struct { unsigned long int type; /* Type of event */ float zoom; /* Zoom factor */ float low_x; /* X of lower left */ float low_y; /* Y of lower left */ float high_x; /* X of upper right */ float high_y; /* Y of upper right */ } GobeEventZoomStruct; /******************************************************************************/ /* */ /* A "generic" event to access the type field without assuming any specific */ /* event type. */ /* */ /******************************************************************************/ typedef struct { unsigned long int type; /* Type of event */ } GobeEventGenericStruct; /******************************************************************************/ /* */ /* Union of all the callback structures, for convenience (particularly should */ /* an application wish to handle all types with a single callback). */ /* */ /******************************************************************************/ typedef union { GobeEventGenericStruct generic; /* generic event structure */ GobeEventDragBeginStruct drag_begin; /* drag begin event */ GobeEventDragTrackStruct drag; /* drag track event */ GobeEventEnterLeaveStruct enter_leave; /* enter-leave event */ GobeEventGridStruct grid; /* grid event */ GobeEventHotStruct hot; /* hot event */ GobeEventButtonStruct button; /* all button events */ GobeEventRestrictionStruct restriction; /* restriction event */ GobeEventRotateStruct rotate; /* rotate event */ GobeEventRubberbandStruct rubberband; /* rubberband event */ GobeEventScaleStruct scale; /* scale event */ GobeEventTranslateStruct translate; /* translate event */ GobeEventResizeStruct resize; /* resize event */ GobeEventScrollStruct scroll; /* scroll event */ GobeEventZoomStruct zoom; /* zoom event */ } GobeEventsStruct; /******************************************************************************/ /* */ /* Define GObE entry points */ /* */ /******************************************************************************/ /******************************************************************************/ /* */ /* "Low level" creation routine... specify parent, name, and standard */ /* Xtoolkit argument list. */ /* */ /******************************************************************************/ GobeTwidgetId GobeCreateWidget ( #ifdef GObEPROTOTYPE Widget parent_widget, char *name, ArgList override_arglist, int override_argcount #endif ); /******************************************************************************/ /* */ /* "High level" creation routine... specify parent, name, location and size */ /* of viewport, display window rectangle, and whether scroll bars are */ /* desired. */ /* */ /******************************************************************************/ GobeTwidgetId GobeWidget ( #ifdef GObEPROTOTYPE Widget parent_widget, char *name, int x, int y, int width, int height, GobeRectangleStruct *display_window, int scroll #endif ); /******************************************************************************/ /* */ /* Implicit scroll operation (non-interactive) to center a specific object */ /* within the display viewport. */ /* */ /******************************************************************************/ unsigned long int GobeCenter ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId object #endif ); /******************************************************************************/ /* */ /* Set the scroll region to application-specified rectangle . */ /* */ /******************************************************************************/ unsigned long int GobeSetScrollRegion ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeRectangleStruct *request_region #endif ); /******************************************************************************/ /* */ /* Scroll the Display Window */ /* */ /******************************************************************************/ unsigned long int GobeScroll ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, double x, double y, float *x_realized, float *y_realized #endif ); /******************************************************************************/ /* */ /* Unzoom the Display Window */ /* */ /******************************************************************************/ unsigned long int GobeUnzoom ( #ifdef GObEPROTOTYPE GobeTwidgetId widget #endif ); /******************************************************************************/ /* */ /* Zoom the Display Window */ /* */ /******************************************************************************/ unsigned long int GobeZoom ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, double zoom, float *zoom_realized #endif ); /******************************************************************************/ /* */ /* Draw an arc. */ /* */ /******************************************************************************/ unsigned long int GobeDrawArc ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId parent, GobeTattrId attributes, double x, double y, double v1, double v2, int arc_style, double a1, double a2, int partial_style, GobeTobjectId *object #endif ); /******************************************************************************/ /* */ /* Draw a cubic Bezier curve */ /* */ /******************************************************************************/ unsigned long int GobeDrawCurve ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId parent, GobeTattrId attributes, GobePointStruct points[], int count, int point_style, GobeTobjectId *object #endif ); /******************************************************************************/ /* */ /* Draw a image. */ /* */ /******************************************************************************/ unsigned long int GobeDrawImage ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId parent, GobeTattrId attributes, double x, double y, XImage *image, GobeTobjectId *object #endif ); /******************************************************************************/ /* */ /* Draw a line. */ /* */ /******************************************************************************/ unsigned long int GobeDrawLine ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId parent, GobeTattrId attributes, double x, double y, double v1, double v2, int point_style, GobeTobjectId *object #endif ); /******************************************************************************/ /* */ /* Draw a pixmap. */ /* */ /******************************************************************************/ unsigned long int GobeDrawPixmap ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId parent, GobeTattrId attributes, double x, double y, Pixmap pixmap, GobeTobjectId *object #endif ); /******************************************************************************/ /* */ /* Draw a point. */ /* */ /******************************************************************************/ unsigned long int GobeDrawPoint ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId parent, GobeTattrId attributes, double x, double y, GobeTobjectId *object #endif ); /******************************************************************************/ /* */ /* Draw a polyline. */ /* */ /******************************************************************************/ unsigned long int GobeDrawPolyline ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId parent, GobeTattrId attributes, GobePointStruct points[], int count, int point_style, GobeTobjectId *object #endif ); /******************************************************************************/ /* */ /* Draw a rectangle. */ /* */ /******************************************************************************/ unsigned long int GobeDrawRectangle ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId parent, GobeTattrId attributes, double x, double y, double v1, double v2, int point_style, GobeTobjectId *object #endif ); /******************************************************************************/ /* */ /* Draw text. */ /* */ /******************************************************************************/ unsigned long int GobeDrawText ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId parent, GobeTattrId attributes, double x, double y, XmString string, GobeTobjectId *object #endif ); /******************************************************************************/ /* */ /* Generic draw (accepting arbitrary tree of object structures). */ /* */ /******************************************************************************/ unsigned long int GobeDraw ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId parent, GobeObjectStruct *object_struct, GobeTobjectId *object #endif ); /******************************************************************************/ /* */ /* Make a copy of an existing object. */ /* */ /******************************************************************************/ unsigned long int GobeCopy ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId object, GobeTobjectId parent, double x, double y, GobeTobjectId *new_object #endif ); /******************************************************************************/ /* */ /* Make a copy of an existing object from another widget ("import" it). */ /* */ /******************************************************************************/ unsigned long int GobeImport ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTwidgetId foreign_widget, GobeTobjectId object, GobeTobjectId parent, double x, double y, GobeTobjectId *new_object #endif ); /******************************************************************************/ /* */ /* Delete an object. */ /* */ /******************************************************************************/ unsigned long int GobeDelete ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId object #endif ); /******************************************************************************/ /* */ /* Give an object a new parent. */ /* */ /******************************************************************************/ unsigned long int GobeChangeParent ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId object, GobeTobjectId parent #endif ); /******************************************************************************/ /* */ /* Get parent object of object. */ /* */ /******************************************************************************/ unsigned long int GobeGetParent ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId object, GobeTobjectId *parent #endif ); /******************************************************************************/ /* */ /* Get the root object of a widget instance. */ /* */ /******************************************************************************/ unsigned long int GobeGetRoot ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId *object #endif ); /******************************************************************************/ /* */ /* Step through child objects of a parent. */ /* */ /******************************************************************************/ unsigned long int GobeTraverse ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTcontextId *ctx, GobeTobjectId parent, GobeTobjectId *object #endif ); /******************************************************************************/ /* */ /* Terminate GobeTraverse sequence, release GObE context information. */ /* */ /******************************************************************************/ unsigned long int GobeEndTraverse ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTcontextId *ctx #endif ); /******************************************************************************/ /* */ /* Pop an object on top of others in parent. */ /* */ /******************************************************************************/ unsigned long int GobePop ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId object #endif ); /******************************************************************************/ /* */ /* Push an object behind others in parent. */ /* */ /******************************************************************************/ unsigned long int GobePush ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId object #endif ); /******************************************************************************/ /* */ /* Rotate an object (non-interactively). */ /* */ /******************************************************************************/ unsigned long int GobeRotate ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId object, double angle, double anchor_x, double anchor_y #endif ); /******************************************************************************/ /* */ /* Scale an object (non-interactively). */ /* */ /******************************************************************************/ unsigned long int GobeScale ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId object, double scale, double anchor_x, double anchor_y #endif ); /******************************************************************************/ /* */ /* General transformation, with standard 3 by 3 transformation matrix */ /* */ /******************************************************************************/ unsigned long int GobeTransform ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId object, float matrix[3][3] #endif ); /******************************************************************************/ /* */ /* Translate an object (non-interactively). */ /* */ /******************************************************************************/ unsigned long int GobeTranslate ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId object, double delta_x, double delta_y #endif ); /******************************************************************************/ /* */ /* Modify the attributes of a specific object using a mask which specifies */ /* which fields NOT to modify. */ /* */ /******************************************************************************/ unsigned long int GobeModify ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId object, GobeTattrId attributes, unsigned int restrict_mask #endif ); /******************************************************************************/ /* */ /* Rubberband an object's point (non-interactively). */ /* */ /******************************************************************************/ unsigned long int GobeRubberband ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId object, int index, double new_x, double new_y #endif ); /******************************************************************************/ /* */ /* Set text string. */ /* */ /******************************************************************************/ unsigned long int GobeSetText ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId object, XmString string #endif ); /******************************************************************************/ /* */ /* Extract an object (or a subtree) */ /* */ /******************************************************************************/ unsigned long int GobeExtract ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId object, int hierarchical, GobeObjectStruct **object_struct, GobeObjectStruct *buffer #endif ); /******************************************************************************/ /* */ /* Extract a single point from an object. Index 0 is the location point. */ /* Index 1 is the top right of a box, text string, image, or pixmap; the */ /* other end of a line; the X radius of an arc, or the second point of a */ /* Bezier curve or polyline. Index 2 is the Y radius of an arc (0.0 means */ /* the arc is circular). */ /* */ /******************************************************************************/ unsigned long int GobeExtractPoint ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId object, int index, float *x, float *y #endif ); /******************************************************************************/ /* */ /* Release storage returned by GobeExtract. */ /* */ /******************************************************************************/ unsigned long int GobeFreeExtract ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeObjectStruct *object_struct #endif ); /******************************************************************************/ /* */ /* Extract a set of objects into a DDIF Toolkit document (in-memory). */ /* */ /******************************************************************************/ unsigned long int GobeExtractDDIFDocument ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId object, unsigned long int *buffer, unsigned long int *buffer_len, char *title #endif ); /******************************************************************************/ /* */ /* Write subtree to DDIF file */ /* */ /******************************************************************************/ unsigned long int GobeWriteDDIFFile ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId object, char *filename, char *title #endif ); /******************************************************************************/ /* */ /* Initiate the Print Process. */ /* */ /******************************************************************************/ unsigned long int GobeInitPrint( #ifdef GObEPROTOTYPE GobeTwidgetId widget, char *title, char *filename #endif ); /******************************************************************************/ /* */ /* Print a set of objects into a DDIF file. */ /* */ /******************************************************************************/ unsigned long int GobePrint( #ifdef GObEPROTOTYPE GobeTwidgetId widget, double x, double y, double width, double height, unsigned int mode #endif ); /******************************************************************************/ /* */ /* Complete the Print process. */ /* */ /******************************************************************************/ unsigned long int GobeEndPrint( #ifdef GObEPROTOTYPE GobeTwidgetId widget, int flag #endif ); /******************************************************************************/ /* */ /* Paste a set of objects into GObE from a DDIF document (in-memory). */ /* */ /******************************************************************************/ unsigned long int GobePasteDDIFDocument( #ifdef GObEPROTOTYPE GobeTwidgetId widget, unsigned long int buffer, unsigned long int buffer_len, GobeTobjectId object #endif ); /******************************************************************************/ /* */ /* Read a set of objects into GObE from a DDIF file. */ /* */ /******************************************************************************/ unsigned long int GobeReadDDIFFile( #ifdef GObEPROTOTYPE GobeTwidgetId widget, char *filename, GobeTobjectId object #endif ); /******************************************************************************/ /* */ /* Locate one or more objects within a region. */ /* */ /******************************************************************************/ unsigned long int GobeLocate ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTcontextId *ctx, unsigned int criteria[4], int mode, double x, double y, double x_in_tolerance, double y_in_tolerance, GobeTobjectId *object #endif ); /******************************************************************************/ /* */ /* Terminate GobeLocate sequence, release GObE context information. */ /* */ /******************************************************************************/ unsigned long int GobeEndLocate ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTcontextId *ctx #endif ); /******************************************************************************/ /* */ /* Get text string. */ /* */ /******************************************************************************/ unsigned long int GobeGetText ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId object, XmString *string #endif ); /******************************************************************************/ /* */ /* Get object's transformation matrix */ /* */ /******************************************************************************/ unsigned long int GobeGetTransformation ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId object, float matrix[3][3] #endif ); /******************************************************************************/ /* */ /* Measure the rectangular extent of an object */ /* */ /******************************************************************************/ unsigned long int GobeMeasure ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId object, float *x, float *y, float *width, float *height #endif ); /******************************************************************************/ /* */ /* Measure the size of an image (in world coordinates) */ /* */ /******************************************************************************/ unsigned long int GobeMeasureImage ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, XImage *image, float *width, float *height #endif ); /******************************************************************************/ /* */ /* Measure the size of a pixmap (in world coordinates) */ /* */ /******************************************************************************/ unsigned long int GobeMeasurePixmap ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, Pixmap pixmap, float *width, float *height #endif ); /******************************************************************************/ /* */ /* Measure the size of a text string (in world coordinates) */ /* */ /******************************************************************************/ unsigned long int GobeMeasureText ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTattrId attributes, XmString string, float *width, float *ascent, float *descent #endif ); /******************************************************************************/ /* */ /* Get current select mask for object */ /* */ /******************************************************************************/ unsigned long int GobeGetSelect ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId object, unsigned int select[4] #endif ); /******************************************************************************/ /* */ /* Set select mask for object */ /* */ /******************************************************************************/ unsigned long int GobeSetSelect ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId object, unsigned int select[4] #endif ); /******************************************************************************/ /* */ /* Get current visibility of object ("visible" is set to TRUE (1) if the */ /* object is visible, FALSE (0) otherwise). */ /* */ /******************************************************************************/ unsigned long int GobeGetVisibility ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId object, unsigned int *visible #endif ); /******************************************************************************/ /* */ /* Set visibility of object ("visible" is set to TRUE (1) if the object is to */ /* be visible, FALSE (0) otherwise). */ /* */ /******************************************************************************/ unsigned long int GobeSetVisibility ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId object, unsigned int visible #endif ); /******************************************************************************/ /* */ /* Get current user_data of object. */ /* */ /******************************************************************************/ unsigned long int GobeGetUserData ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId object, unsigned int *user_data #endif ); /******************************************************************************/ /* */ /* Set user_data of object. */ /* */ /******************************************************************************/ unsigned long int GobeSetUserData ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId object, unsigned long user_data #endif ); /******************************************************************************/ /* */ /* Get type code associated with object ID. */ /* */ /******************************************************************************/ unsigned long int GobeGetObjectType ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId object, unsigned int *type #endif ); /******************************************************************************/ /* */ /* Set drag limits for interactive transformation. */ /* */ /******************************************************************************/ unsigned long int GobeSetDrag ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, double low_x, double low_y, double high_x, double high_y #endif ); /******************************************************************************/ /* */ /* Get drag limits for interactive transformation. */ /* */ /******************************************************************************/ unsigned long int GobeGetDrag ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, float *low_x, float *low_y, float *high_x, float *high_y #endif ); /******************************************************************************/ /* */ /* Set scale limits for interactive transformation. */ /* */ /******************************************************************************/ unsigned long int GobeSetScale ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, double lower, double upper, double cx, double cy #endif ); /******************************************************************************/ /* */ /* Get scale limits for interactive transformation. */ /* */ /******************************************************************************/ unsigned long int GobeGetScale ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, float *lower, float *upper, float *cx, float *cy #endif ); /******************************************************************************/ /* */ /* Set rotate limits for interactive transformation. */ /* */ /******************************************************************************/ unsigned long int GobeSetRotate ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, double clock, double counter, double cx, double cy #endif ); /******************************************************************************/ /* */ /* Get rotate limits for interactive transformation. */ /* */ /******************************************************************************/ unsigned long int GobeGetRotate ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, float *clock, float *counter, float *cx, float *cy #endif ); /******************************************************************************/ /* */ /* Set rubberband index point for interactive transformation. */ /* */ /******************************************************************************/ unsigned long int GobeSetRubberbandPoint ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, int index #endif ); /******************************************************************************/ /* */ /* Get rubberband index point for interactive transformation. */ /* */ /******************************************************************************/ unsigned long int GobeGetRubberbandPoint ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, int *index #endif ); /******************************************************************************/ /* */ /* Set limits for interactive scrolling operation. Scroll bars are enabled */ /* by a separate attribute, and are not affected in any way by this service. */ /* */ /******************************************************************************/ unsigned long int GobeSetScroll ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, double low_x, double low_y, double high_x, double high_y #endif ); /******************************************************************************/ /* */ /* Get limits for interactive scrolling operation. */ /* */ /******************************************************************************/ unsigned long int GobeGetScroll ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, float *low_x, float *low_y, float *high_x, float *high_y #endif ); /******************************************************************************/ /* */ /* Set limits for interactive zoom operation. */ /* */ /******************************************************************************/ unsigned long int GobeSetZoom ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, double lower, double upper #endif ); /******************************************************************************/ /* */ /* Get limits for interactive zoom operation. */ /* */ /******************************************************************************/ unsigned long int GobeGetZoom ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, float *lower, float *upper #endif ); /******************************************************************************/ /* */ /* Find out if transformation is restricted on an object. */ /* */ /******************************************************************************/ unsigned long int GobeGetRestriction ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId object, int transformation #endif ); /******************************************************************************/ /* */ /* Find out where cursor is (if in GObE window). */ /* */ /******************************************************************************/ unsigned long int GobeGetCursorPosition ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, float *x, float *y #endif ); /******************************************************************************/ /* */ /* Move cursor to specified position in GObE window. */ /* */ /******************************************************************************/ unsigned long int GobeSetCursorPosition ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, double x, double y #endif ); /******************************************************************************/ /* */ /* Find out current state of update deferral flag (if TRUE, GObE will not */ /* refresh the display, except through X Window System exposure events). */ /* */ /******************************************************************************/ unsigned long int GobeGetDeferred ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, int *defer #endif ); /******************************************************************************/ /* */ /* Set the current state of the deferral flag. If set to TRUE (1), future */ /* changes to the display list will not be reflected on the display (except */ /* through X Window System exposure events) until the flag is restored to */ /* FALSE (0). */ /* */ /******************************************************************************/ unsigned long int GobeSetDeferred ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, int defer #endif ); /******************************************************************************/ /* */ /* This routine sets the deferred update attribute status of the Gobe widget. */ /* Update flag may be GobeKupdateImmediate (=0) or GobeKupdateDeferred (=1). */ /* */ /******************************************************************************/ unsigned long GobeSetDisplayUpdate( #ifdef GObEPROTOTYPE GobeTwidgetId widget, int update_flag #endif ); /******************************************************************************/ /* */ /* This routine gets the deferred update count of the Gobe widget. */ /* Deferred_count is the current deferral count. If it is greater than 0, */ /* output is deferred. */ /* */ /******************************************************************************/ unsigned long GobeGetDisplayUpdate( #ifdef GObEPROTOTYPE GobeTwidgetId widget, int *deferred_count #endif ); /******************************************************************************/ /* */ /* Register the GObE widget class with the resource manager. */ /* */ /******************************************************************************/ unsigned long GobeInitializeForMrm (); /******************************************************************************/ /* */ /* Get the permanent highlight state of an object. */ /* */ /******************************************************************************/ unsigned long int GobeGetPermHighlight( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId object, unsigned int *perm #endif ); /******************************************************************************/ /* */ /* Sets the permanent highlight state of an object. */ /* */ /******************************************************************************/ unsigned long int GobeSetPermHighlight( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTobjectId object, unsigned int perm #endif ); /******************************************************************************/ /* */ /* Retrieves the value of the widget userdata field in the widget. */ /* */ /******************************************************************************/ unsigned long int GobeGetWidgetUserData( #ifdef GObEPROTOTYPE GobeTwidgetId widget, int *user_data #endif ); /******************************************************************************/ /* */ /* Stores the value of the widget userdata field in the widget. */ /* */ /******************************************************************************/ unsigned long int GobeSetWidgetUserData( #ifdef GObEPROTOTYPE GobeTwidgetId widget, int user_data #endif ); /******************************************************************************/ /* */ /* Return current GObE version (as string descriptor and length) */ /* */ /******************************************************************************/ unsigned long int GobeGetVersion ( #ifdef GObEPROTOTYPE char **string, unsigned short int *length, char *letter, unsigned long int *majorv, unsigned long int *minorv, unsigned long int *build #endif ); /******************************************************************************/ /* */ /* Translate GObE world coordinate position to X Window System (root window) */ /* coordinate position. */ /* */ /******************************************************************************/ unsigned long int GobeGetDCPosition ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, double wx, double wy, int *dx, int *dy #endif ); /******************************************************************************/ /* */ /* Return Widget ID of GObE's work region... */ /* */ /******************************************************************************/ Widget GobeGetWorkWidget ( #ifdef GObEPROTOTYPE GobeTwidgetId widget #endif ); /******************************************************************************/ /* */ /* Enable event. */ /* */ /******************************************************************************/ unsigned long int GobeEnableEvent ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, int event, unsigned int criteria[4], int mode, unsigned int button #endif ); /******************************************************************************/ /* */ /* Disable event. */ /* */ /******************************************************************************/ unsigned long int GobeDisableEvent ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, int event, unsigned int button #endif ); /******************************************************************************/ /* */ /* Find mode and criteria for an event. */ /* */ /******************************************************************************/ unsigned long int GobeGetEvent ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, int event, unsigned int criteria[4], int *mode, GobeButtonStruct **buttons, int *button_count #endif ); /******************************************************************************/ /* */ /* Create a GGC */ /* */ /******************************************************************************/ unsigned long int GobeCreateAttributes ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTattrId source, unsigned int ggcbits, GobeGgcValuesStruct *attr, GobeTattrId *new_ggc #endif ); /******************************************************************************/ /* */ /* Import a GGC from another GObE widget */ /* */ /******************************************************************************/ unsigned long int GobeImportAttributes ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTwidgetId foreign_widget, GobeTattrId source, GobeTattrId *new_ggc #endif ); /******************************************************************************/ /* */ /* Modify a GGC */ /* */ /******************************************************************************/ unsigned long int GobeModifyAttributes ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTattrId attributes, unsigned int ggcbits, GobeGgcValuesStruct *attr #endif ); /******************************************************************************/ /* */ /* Pop up the navigation window. */ /* */ /******************************************************************************/ unsigned long int GobePopupNavWind ( #ifdef GObEPROTOTYPE GobeTwidgetId widget #endif ); /******************************************************************************/ /* */ /* Popdown the navigation window. */ /* */ /******************************************************************************/ unsigned long int GobePopdownNavWind ( #ifdef GObEPROTOTYPE GobeTwidgetId widget #endif ); /******************************************************************************/ /* */ /* Delete a GGC */ /* */ /******************************************************************************/ unsigned long int GobeDeleteAttributes ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTattrId attributes #endif ); /******************************************************************************/ /* */ /* Get a GGC */ /* */ /******************************************************************************/ unsigned long int GobeGetAttributes ( #ifdef GObEPROTOTYPE GobeTwidgetId widget, GobeTattrId attributes, GobeGgcValuesStruct *attr, int size #endif ); /******************************************************************************/ /* */ /* Define GObE resource names */ /* */ /* The naming follows the Xlib and Xtoolkit conventions: */ /* */ /* GobeNname is a resource */ /* */ /* GobeCName is a class */ /* */ /* GobeRName is a representation */ /* */ /******************************************************************************/ /******************************************************************************/ /* */ /* Define resource names for GObE. String names for resources start with a */ /* lowercase and the first letter of each subsequent descriptive word */ /* in the resource name is in uppercase. */ /* */ /******************************************************************************/ #define GobeNxGridSize "GobexGridSize" /* Width of tracking grid */ #define GobeNyGridSize "GobeyGridSize" /* Height of tracking grid */ #define GobeNscrollbars "Gobescrollbars" /* Set to 1 for horizontal scroll bar */ #define GobeNdefaultCursor "GobedefaultCursor" /* default GObE cursor */ #define GobeNdispWind "GobedisplayWindow" /* Display window */ #define GobeNscrollRegion "GobescrollRegion" /* scroll region */ #define GobeNnavWindSize "GobenavigationWindowSize" /* Max width/height of navigation window */ #define GobeNnavWindPos "GobenavigationWindowPosition" /* Position of navigation window */ #define GobeNnavWindTitle "GobenavigationWindowTitle" /* Title for navigation window */ #define GobeNxScrollIncr "GobexScrollinc" /* X increment (scrollbar arrow) */ #define GobeNyScrollIncr "GobeyScrollinc" /* Y increment (scrollbar arrow) */ #define GobeNrubberbandIndex "GoberubberbandIndex" /* Control point for rubberband */ #define GobeNdragRange "GobedragRange" /* Drag operation region */ #define GobeNscaleRange "GobescaleRange" /* scale operation region and center */ #define GobeNrotateRange "GoberotateRange" /* Rotate operation region and center */ #define GobeNscrollRange "GobescrollRange" /* Scroll operation region */ #define GobeNlowZoom "GobelowZoom" /* Lower scale factor for zoom operation (0 none) */ #define GobeNhighZoom "GobehighZoom" /* Upper scale factor for zoom operation (0 none) */ #define GobeNdeferUpdate "GobedeferUpdate" /* Set to 1 to defer updates */ #define GobeNscrollbarSize "GobescrollbarSize" /* Size of widget scrollbars */ #define GobeNshrinkPixmap "GobeshrinkPixmap" /* Pixmap for shrunken nav. window */ #define GobeNexpandPixmap "GobeexpandPixmap" /* Pixmap for expanded nav. window */ #define GobeNautoscrolling "Gobeautoscrolling" /* Set to 1 for autoscrolling */ #define GobeNautoscrollTimer "GobeautoscrollTimer" /* Time between autoscrolls (milliseconds) */ #define GobeNneedXformMatrix "GobeneedXformMatrix" /* Does application need xform matrix? */ #define GobeNdoubleBufRefresh "GobedoubleBufRefresh" /* Use double buffering display refresh ? */ /******************************************************************************/ /* */ /* Callback resources */ /* */ /******************************************************************************/ #define GobeNdragBeginCallback "GobedragBeginCallback" /* Drag initialization */ #define GobeNdragTrackCallback "GobedragTrackCallback" /* Drag tracking */ #define GobeNenterLeaveCallback "GobeenterLeaveCallback" /* Enter and Leave widget */ #define GobeNgridCallback "GobegridCallback" /* Grid crossing */ #define GobeNhotCallback "GobehotCallback" /* Hot object */ #define GobeNhelpCallback "GobehelpCallback" /* Help/MBx */ #define GobeNclickCallback "GobeclickCallback" /* click */ #define GobeNdoubleCallback "GobedoubleCallback" /* double-click */ #define GobeNpressCallback "GobepressCallback" /* press */ #define GobeNrotateCallback "GoberotateCallback" /* rotate object */ #define GobeNrubberbandCallback "GoberubberbandCallback" /* rubberband object */ #define GobeNscaleCallback "GobescaleCallback" /* scale object */ #define GobeNtranslateCallback "GobetranslateCallback" /* translate completion */ #define GobeNrestrictionCallback "GoberestrictionCallback" /* restriction */ #define GobeNscrollCallback "GobescrollCallback" /* scroll completion */ #define GobeNzoomCallback "GobezoomCallback" /* zoom completion */ #define GobeNresizeCallback "GoberesizeCallback" /* resize completed */ /******************************************************************************/ /* */ /* Define resource classes for GObE resources. By convention, resource */ /* classes are always spelled starting with a capital letter. */ /* */ /******************************************************************************/ #define GobeCXGridSize "GobeXGridSize" /* Width of tracking grid */ #define GobeCYGridSize "GobeYGridSize" /* Height of tracking grid */ #define GobeCScrollbars "GobeScrollbars" /* Set to 1 for scroll bars */ #define GobeCDefaultCursor "GobeDefaultCursor" /* default GObE cursor */ #define GobeCDispWind "GobeDisplayWindow" /* Display window */ #define GobeCScrollRegion "GobeScrollRegion" /* scroll region */ #define GobeCNavWindSize "GobeNavigationWindowSize" /* Max width/height of navigation window */ #define GobeCNavWindPos "GobeNavigationWindowPosition" /* Position of navigation window */ #define GobeCNavWindTitle "GobeNavigationWindowTitle" /* Title for navigation window */ #define GobeCXScrollIncr "GobeXScrollinc" /* X increment (scrollbar arrow) */ #define GobeCYScrollIncr "GobeYScrollinc" /* Y increment (scrollbar arrow) */ #define GobeCRubberbandIndex "GobeRubberbandIndex" /* Control point for rubberband */ #define GobeCDragRange "GobeDragRange" /* Drag operation region */ #define GobeCScaleRange "GobeScaleRange" /* Scale operation region and center */ #define GobeCRotateRange "GobeRotateRange" /* Rotate operation region and center */ #define GobeCScrollRange "GobeScrollRange" /* Scroll operation region */ #define GobeCLowZoom "GobeLowZoom" /* Lower scale factor for zoom operation (0 none) */ #define GobeCHighZoom "GobeHighZoom" /* Upper scale factor for zoom operation (0 none) */ #define GobeCDeferUpdate "GobeDeferUpdate" /* Set to 1 to defer updates */ #define GobeCScrollbarSize "GobeScrollbarSize" /* Size of widget scrollbars */ #define GobeCShrinkPixmap "GobeShrinkPixmap" /* Pixmap for shrunken nav. window */ #define GobeCExpandPixmap "GobeExpandPixmap" /* Pixmap for expanded nav. window */ #define GobeCAutoscrolling "GobeAutoscrolling" /* Set to 1 for autoscrolling */ #define GobeCAutoscrollTimer "GobeAutoscrollTimer" /* Time between autoscrolls (milliseconds) */ #define GobeCNeedXformMatrix "GobeNeedXformMatrix" /* Does application need xform matrix? */ #define GobeCDoubleBufRefresh "GobeDoubleBufRefresh" /* Use double buffering display refresh ? */ /******************************************************************************/ /* */ /* resource representation types */ /* */ /******************************************************************************/ #define GobeRRectangle "GobeRectangle" #define GobeRXpoint "GobeXPoint" #define GobeRRangeCenter "GobeRangeAndCenter" #define GobeRFloat "GobeFloat" /******************************************************************************/ /* */ /* End of GOBE.H */ /* */ /******************************************************************************/ #undef GObEPROTOTYPE #endif /* _GOBE_DEF_H_ */