1 /*   picture.h
2 * ===========================================================================
3 *
4 *                            PUBLIC DOMAIN NOTICE
5 *            National Center for Biotechnology Information (NCBI)
6 *
7 *  This software/database is a "United States Government Work" under the
8 *  terms of the United States Copyright Act.  It was written as part of
9 *  the author's official duties as a United States Government employee and
10 *  thus cannot be copyrighted.  This software/database is freely available
11 *  to the public for use. The National Library of Medicine and the U.S.
12 *  Government do not place any restriction on its use or reproduction.
13 *  We would, however, appreciate having the NCBI and the author cited in
14 *  any work or product based on this material
15 *
16 *  Although all reasonable efforts have been taken to ensure the accuracy
17 *  and reliability of the software and data, the NLM and the U.S.
18 *  Government do not and cannot warrant the performance or results that
19 *  may be obtained by using this software or data. The NLM and the U.S.
20 *  Government disclaim all warranties, express or implied, including
21 *  warranties of performance, merchantability or fitness for any particular
22 *  purpose.
23 *
24 * ===========================================================================
25 *
26 * File Name:  picture.h
27 *
28 * Author:  Jonathan Kans, Alex Smirnov, Jill Shermer
29 *
30 * Version Creation Date:   10/23/92
31 *
32 * $Revision: 6.15 $
33 *
34 * File Description:
35 *
36 * Modifications:
37 * --------------------------------------------------------------------------
38 * $Log: picture.h,v $
39 * Revision 6.15  2004/02/17 19:22:54  johnson
40 * make segment ID consistly unsigned
41 *
42 * Revision 6.14  2003/03/18 17:00:10  kans
43 * Nlm_AddSilentSegRect does not absorb clicks, SegRect reverted to absorb clicks, so desktop click responsiveness is maintained
44 *
45 * Revision 6.13  2002/08/07 18:13:42  kans
46 * G/SetPrimitiveIDs, itemID is Uint4
47 *
48 * Revision 6.12  2002/03/07 15:53:45  kans
49 * added SetSegmentVisibleFlag to set/clear the visible flag before attaching to a viewer
50 *
51 * Revision 6.11  1999/10/13 17:45:46  kans
52 * added entityID, itemID, and itemtype to primitive internal structure, added Get and Set functions
53 *
54 * Revision 6.10  1999/10/04 19:39:09  kans
55 * include vibdefns.h
56 *
57 * Revision 6.9  1999/10/04 17:16:32  kans
58 * include ncbidraw.h instead of vibrant.h, a couple Nlm_ prefixes
59 *
60 * Revision 6.8  1998/07/01 18:27:43  vakatov
61 * Use "const" qualifier somewhere
62 *
63 * Revision 6.7  1998/06/30 00:32:03  vakatov
64 * Nlm_AddAttribute():  pass "color" as constant
65 *
66 * Revision 6.6  1998/06/01 17:29:20  vakatov
67 * Extended rounded rect. options -- let it roundup only two(adjacent)
68 * corners(see "flags" arg in Nlm_AddRoundedRectangle())
69 *
70 * Revision 6.5  1998/04/27 16:05:46  vakatov
71 * + AddRoundedRectangle()
72 *
73 * Revision 6.4  1997/12/16 18:38:36  kans
74 * sentinel draw callback has draw info context parameter
75 *
76 * Revision 6.3  1997/12/15 18:10:44  kans
77 * added cleanup data function to sentinel
78 *
79 * Revision 6.2  1997/11/13 21:41:34  vakatov
80 * Added "sentinel rectangle" primitive[Nlm_AddSntRectangle] which
81 * calls its callback procedure[Nlm_SntOnDrawProc] on each redraw
82 *
83 * Revision 6.1  1997/10/30 20:01:43  vakatov
84 * Added Nlm_PrimitiveBox()
85 *
86 * Revision 5.1  1997/07/02 18:35:53  vakatov
87 * Nlm_DeletePrim() redesigned/rewritten to guarantee prim. list consistency
88 *
89 * Revision 4.2  1996/03/18  20:41:36  vakatov
90 * ChangeAddPrimOrder(...) function allows one to specify the order of adding
91 * primitives(or segments) to a picture
92 *
93 * 022495   Alex
94 * ==========================================================================
95 */
96 
97 #ifndef _PICTURE_
98 #define _PICTURE_
99 
100 #ifndef _NCBIDRAW_
101 #include <ncbidraw.h>
102 #endif
103 
104 #ifndef _VIBDEFNS_
105 #include <vibdefns.h>
106 #endif
107 
108 #ifdef __cplusplus
109 extern "C" {
110 #endif
111 
112 /*****************************************************************************
113 *
114 *   STRUCTURE TYPEDEFS
115 *
116 *****************************************************************************/
117 
118 typedef struct Nlm_segment {
119   Nlm_VoidPtr  dummy;
120 } PNTR Nlm_SegmenT;
121 
122 typedef struct Nlm_primitive {
123   Nlm_VoidPtr  dummy;
124 } PNTR Nlm_PrimitivE;
125 
126 /*  BoxInfo stores the world coordinates of a rectangle */
127 
128 typedef struct Nlm_boxinfo {
129   Nlm_Int4  left;
130   Nlm_Int4  top;
131   Nlm_Int4  right;
132   Nlm_Int4  bottom;
133 } Nlm_BoxInfo, PNTR Nlm_BoxPtr;
134 
135 /*  PntInfo stores the world coordinates of a point */
136 
137 typedef struct Nlm_pntinfo {
138   Nlm_Int4  x;
139   Nlm_Int4  y;
140 } Nlm_PntInfo, PNTR Nlm_PntPtr;
141 
142 /*****************************************************************************
143 *
144 *   GENERIC PRIMITIVE DEFS
145 *
146 *****************************************************************************/
147 
148 typedef struct Nlm_primdrawctxt {
149   Nlm_VoidPtr  dummy;
150 } PNTR Nlm_PrimDrawContext;
151 
152 typedef struct Nlm_primhittestctxt {
153   Nlm_VoidPtr  dummy;
154 } PNTR Nlm_PrimHitContext;
155 
156 typedef void (*Nlm_PrimDrawProc) PROTO((Nlm_VoidPtr pextra,
157 Nlm_PrimDrawContext pdc));
158 typedef Nlm_Boolean (*Nlm_PrimHitTestProc) PROTO((Nlm_VoidPtr pextra,
159 Nlm_PrimHitContext phc));
160 typedef Nlm_Boolean (*Nlm_PrimOffsetProc) PROTO((Nlm_VoidPtr pextra,
161 Nlm_Int4 deltaX, Nlm_Int4 deltaY));
162 typedef Nlm_Boolean (*Nlm_PrimGetLimitsProc) PROTO(( Nlm_VoidPtr pextra,
163 Nlm_Int4 scaleX, Nlm_Int4 scaleY, Nlm_BoxPtr pLimits));
164 typedef void (*Nlm_PrimCleanupProc) PROTO((Nlm_VoidPtr pextra));
165 
166 /* The following struct may be changed with the next version.
167 Use functions ResetPrimDef(), Nlm_SetPrimDrawProc(), etc, instead
168 of Nlm_PrimDef = { values } */
169 
170 typedef struct Nlm_primdef {
171   Nlm_PrimDrawProc      draw;
172   Nlm_PrimHitTestProc   hittest;
173   Nlm_PrimOffsetProc    offset;
174   Nlm_PrimCleanupProc   cleanup;
175   Nlm_PrimGetLimitsProc getlimits;
176 } Nlm_PrimDef, PNTR Nlm_PrimDefPtr;
177 
178 extern void Nlm_ResetPrimDef PROTO((Nlm_PrimDefPtr));
179 extern void Nlm_SetPrimDrawProc PROTO((Nlm_PrimDrawProc));
180 extern void Nlm_SetPrimHitTestProc PROTO((Nlm_PrimHitTestProc));
181 extern void Nlm_SetPrimOffsetProc PROTO((Nlm_PrimOffsetProc));
182 extern void Nlm_SetPrimGetLimitsProc PROTO((Nlm_PrimGetLimitsProc));
183 extern void Nlm_SetPrimCleanupProc PROTO((Nlm_PrimCleanupProc));
184 
185 /* helper functions for callbacks */
186 
187 extern Nlm_BoxPtr  Nlm_GetWorldWindow PROTO((Nlm_PrimDrawContext pdc));
188 extern Nlm_Int4    Nlm_GetScaleX PROTO((Nlm_PrimDrawContext pdc));
189 extern Nlm_Int4    Nlm_GetScaleY PROTO((Nlm_PrimDrawContext pdc));
190 extern Nlm_Int4    Nlm_GetOffsetX PROTO((Nlm_PrimDrawContext pdc));
191 extern Nlm_Int4    Nlm_GetOffsetY PROTO((Nlm_PrimDrawContext pdc));
192 extern Nlm_Boolean Nlm_isPrimInWindow PROTO((Nlm_PrimDrawContext pdc));
193 extern Nlm_Int1    Nlm_GetPrimHligh PROTO((Nlm_PrimDrawContext pdc));
194 extern Nlm_BoxPtr  Nlm_GetHitWindow PROTO((Nlm_PrimHitContext phc));
195 extern void        Nlm_SetPrimAttribute PROTO((Nlm_PrimDrawContext pdc,
196                                                Nlm_Uint1 flags ));
197 extern void        Nlm_RestorePrimAttribute PROTO((Nlm_PrimDrawContext pdc));
198 
199 /*****************************************************************************
200 *
201 *   SYMBOL DEFINES
202 *
203 *****************************************************************************/
204 
205 /*  Attribute flag bits */
206 
207 #define NO_ATTS             0
208 #define COLOR_ATT           1
209 #define STYLE_ATT           2
210 #define SHADING_ATT         4
211 #define WIDTH_ATT           8
212 #define MODE_ATT           16
213 
214 /*  Color specifications */
215 
216 extern Uint1 BLACK_COLOR [3];
217 extern Uint1 WHITE_COLOR [3];
218 extern Uint1 RED_COLOR [3];
219 extern Uint1 GREEN_COLOR [3];
220 extern Uint1 BLUE_COLOR [3];
221 extern Uint1 YELLOW_COLOR [3];
222 extern Uint1 CYAN_COLOR [3];
223 extern Uint1 MAGENTA_COLOR [3];
224 
225 /*  Line styles */
226 
227 #define NO_LINE_STYLE          0
228 #define SOLID_LINE             1
229 #define DOTTED_LINE            2
230 #define DASHED_LINE            3
231 
232 /*  Shading styles */
233 
234 #define NO_SHADING             0
235 #define SOLID_SHADING          1
236 #define DARK_SHADING           2
237 #define MEDIUM_SHADING         3
238 #define LIGHT_SHADING          4
239 #define EMPTY_SHADING          5
240 
241 #define THIN_HORIZ_SHADING     6
242 #define THIN_VERT_SHADING      7
243 #define THICK_HORIZ_SHADING    8
244 #define THICK_VERT_SHADING     9
245 
246 #define THIN_NESW_SHADING     10
247 #define THIN_NWSE_SHADING     11
248 #define THICK_NESW_SHADING    12
249 #define THICK_NWSE_SHADING    13
250 
251 /*  Pen width */
252 
253 #define NO_PEN_WIDTH           0
254 #define STD_PEN_WIDTH          1
255 #define PEN_MAX                6
256 
257 /*  Mode specifications */
258 
259 #define NO_MODE                0
260 #define COPY_MODE              1
261 #define MERGE_MODE             2
262 #define INVERT_MODE            3
263 #define ERASE_MODE             4
264 
265 /*  Rectangle arrow direction */
266 
267 #define NO_ARROW               0
268 #define LEFT_ARROW             1
269 #define RIGHT_ARROW            2
270 #define UP_ARROW               3
271 #define DOWN_ARROW             4
272 
273 /*  Symbol types */
274 
275 #define RECT_SYMBOL            1
276 #define DIAMOND_SYMBOL         2
277 #define OVAL_SYMBOL            3
278 #define LEFT_TRIANGLE_SYMBOL   4
279 #define RIGHT_TRIANGLE_SYMBOL  5
280 #define UP_TRIANGLE_SYMBOL     6
281 #define DOWN_TRIANGLE_SYMBOL   7
282 
283 /*  Alignment specifications, relative to point */
284 
285 #define MIDDLE_CENTER          1
286 #define UPPER_LEFT             2
287 #define LOWER_LEFT             3
288 #define UPPER_RIGHT            4
289 #define LOWER_RIGHT            5
290 #define UPPER_CENTER           6
291 #define LOWER_CENTER           7
292 #define MIDDLE_LEFT            8
293 #define MIDDLE_RIGHT           9
294 
295 /*  Orientation specifications, relative to point */
296 
297 #define HORIZ_LEFT            11
298 #define HORIZ_CENTER          12
299 #define HORIZ_RIGHT           13
300 #define VERT_ABOVE            14
301 #define VERT_MIDDLE           15
302 #define VERT_BELOW            16
303 
304 /*  Text sizes */
305 
306 #define SMALL_TEXT             1
307 #define MEDIUM_TEXT            2
308 #define LARGE_TEXT             3
309 
310 /*  Segment highlight style */
311 
312 #define PLAIN_SEGMENT          0
313 #define FRAME_SEGMENT          1
314 #define FILL_SEGMENT           2
315 #define FRAME_CONTENTS         3
316 #define FILL_CONTENTS          4
317 #define OUTLINE_SEGMENT        5
318 #define OUTLINE_CONTENTS       6
319 
320 /*  Primitive highlight style */
321 
322 #define PLAIN_PRIMITIVE        0
323 #define FRAME_PRIMITIVE        1
324 #define FILL_PRIMITIVE         2
325 #define OUTLINE_PRIMITIVE      3
326 
327 typedef Nlm_Boolean (*Nlm_SegmentExploreProc) PROTO((Nlm_SegmenT seg,
328 Nlm_PrimitivE prim, Nlm_Uint2 segID, Nlm_Uint2 primID, Nlm_Uint2 primCt,
329 Nlm_VoidPtr userdata));
330 
331 /*****************************************************************************
332 *
333 *   FUNCTION PROTOTYPES
334 *
335 *****************************************************************************/
336 
337 extern Nlm_SegmenT   Nlm_CreatePicture  PROTO((void));
338 extern Nlm_SegmenT   Nlm_DeletePicture  PROTO((Nlm_SegmenT picture));
339 
340 extern Nlm_SegmenT   Nlm_CreateSegment  PROTO((Nlm_SegmenT parent,
341 Uint2 segID, Int4 maxScale));
342 extern Nlm_SegmenT   Nlm_ResetSegment   PROTO((Nlm_SegmenT segment));
343 extern Nlm_SegmenT   Nlm_DeleteSegment  PROTO((Nlm_SegmenT segment));
344 
345 extern Nlm_SegmenT   Nlm_ParentSegment  PROTO((Nlm_SegmenT segment));
346 extern Nlm_Uint2     Nlm_SegmentID      PROTO((Nlm_SegmenT segment));
347 extern Nlm_Boolean   Nlm_SegmentVisible PROTO((Nlm_SegmenT segment));
348 extern Nlm_Int1      Nlm_SegmentStyle   PROTO((Nlm_SegmenT segment));
349 extern void          Nlm_SegmentBox     PROTO((Nlm_SegmenT segment,
350 Nlm_BoxPtr box));
351 
352 extern void          Nlm_AddAttribute   PROTO((Nlm_SegmenT parent,
353 Nlm_Uint1 flags, const Nlm_Uint1* color, Nlm_Int1 linestyle, Nlm_Int1 shading,
354 Nlm_Int1 penwidth, Nlm_Int1 mode));
355 extern void          Nlm_SetDefArrowSize PROTO((Nlm_Int1 arrowSize));
356 extern Nlm_PrimitivE Nlm_AddPrimitive PROTO((Nlm_PrimDefPtr pdp,
357 Nlm_SegmenT parent, Nlm_Uint2 primID, Nlm_VoidPtr pextra, Nlm_Int2 extrasize));
358 extern Nlm_PrimitivE Nlm_AddInvFrame     PROTO((Nlm_SegmenT parent,
359 Nlm_Int4 left, Nlm_Int4 top, Nlm_Int4 right, Nlm_Int4 bottom, Nlm_Uint2 primID));
360 extern Nlm_PrimitivE Nlm_AddRectangle   PROTO((Nlm_SegmenT parent,
361 Nlm_Int4 left, Nlm_Int4 top, Nlm_Int4 right, Nlm_Int4 bottom, Nlm_Int2 arrow,
362 Nlm_Boolean fill, Nlm_Uint2 primID));
363 
364 #define ROREC_TOP    0x1
365 #define ROREC_BOTTOM 0x2
366 #define ROREC_LEFT   0x4
367 #define ROREC_RIGHT  0x8
368 extern Nlm_PrimitivE Nlm_AddRoundedRectangle PROTO((Nlm_SegmenT parent,
369 Nlm_Int4 left, Nlm_Int4 top, Nlm_Int4 right, Nlm_Int4 bottom,
370 Nlm_Int4 oval_w, Nlm_Int4 oval_h, Nlm_Boolean fill, Uint4 flags,
371 Nlm_Uint2 primID));
372 
373 extern Nlm_PrimitivE Nlm_AddSegRect     PROTO((Nlm_SegmenT parent,
374 Nlm_Boolean fill, Nlm_Uint2 primID));
375 extern Nlm_PrimitivE Nlm_AddSilentSegRect PROTO((Nlm_SegmenT parent,
376 Nlm_Boolean fill, Nlm_Uint2 primID));
377 extern Nlm_PrimitivE Nlm_AddLine        PROTO((Nlm_SegmenT parent,
378 Nlm_Int4 pnt1X, Nlm_Int4 pnt1Y, Nlm_Int4 pnt2X, Nlm_Int4 pnt2Y,
379 Nlm_Boolean arrow, Nlm_Uint2 primID));
380 extern Nlm_PrimitivE Nlm_AddSymbol      PROTO((Nlm_SegmenT parent,
381 Nlm_Int4 pntX, Nlm_Int4 pntY, Nlm_Int2 symbol, Nlm_Boolean fill,
382 Nlm_Int2 align, Nlm_Uint2 primID));
383 extern Nlm_PrimitivE Nlm_AddBitmap      PROTO((Nlm_SegmenT parent,
384 Nlm_Int4 pntX, Nlm_Int4 pntY, Nlm_Int2 width, Nlm_Int2 height,
385 Nlm_Uint1Ptr data, Nlm_Int2 align, Nlm_Uint2 primID));
386 extern Nlm_PrimitivE Nlm_AddMarker      PROTO((Nlm_SegmenT parent,
387 Nlm_Int4 pntX, Nlm_Int4 pntY, Nlm_Int2 length, Nlm_Int2 orient,
388 Nlm_Uint2 primID));
389 extern Nlm_PrimitivE Nlm_AddLabel       PROTO((Nlm_SegmenT parent,
390 Nlm_Int4 pntX, Nlm_Int4 pntY, const Nlm_Char* string, Nlm_Int2 size,
391 Nlm_Int2 offset, Nlm_Int2 align, Nlm_Uint2 primID));
392 extern Nlm_PrimitivE Nlm_AddTextLabel   PROTO((Nlm_SegmenT parent,
393 Nlm_Int4 pntX, Nlm_Int4 pntY, const Nlm_Char* string, Nlm_FonT font,
394 Nlm_Int2 offset, Nlm_Int2 align, Nlm_Uint2 primID));
395 extern Nlm_PrimitivE Nlm_AddPolygon     PROTO((Nlm_SegmenT parent,
396 Nlm_Int2 vernum, Nlm_PntPtr points, Nlm_Boolean fill, Nlm_Uint2 primID));
397 extern Nlm_PrimitivE Nlm_AddArc         PROTO((Nlm_SegmenT parent,
398 Nlm_Int4 pntX, Nlm_Int4 pntY, Nlm_Int4 radiusX, Nlm_Int4 radiusY,
399 Nlm_Int4 start, Nlm_Int4 end, Nlm_Boolean fill, Nlm_Uint2 primID));
400 extern Nlm_PrimitivE AddOval            PROTO((Nlm_SegmenT parent,
401 Nlm_Int4 pntX, Nlm_Int4 pntY, Nlm_Int4 radiusX, Nlm_Int4 radiusY,
402 Nlm_Boolean fill, Nlm_Uint2 primID));
403 
404 /* the pdc parameter in SntOnDrawProc is really Nlm_DrawInfoPtr from <mappingp.h> */
405 
406 typedef void (*Nlm_SntOnDrawProc)(BigScalar calldata, Nlm_PrimDrawContext pdc);
407 typedef void (*Nlm_SntOnCleanupProc)(BigScalar calldata);
408 extern Nlm_PrimitivE Nlm_AddSntRectangle PROTO((Nlm_SegmenT parent,
409  Nlm_Int4 left, Nlm_Int4 top, Nlm_Int4 right, Nlm_Int4 bottom,
410  Nlm_SntOnDrawProc callback, BigScalar calldata, Nlm_SntOnCleanupProc cleanup,
411  Nlm_Uint2 primID));
412 
413 
414 extern void          Nlm_RecalculateSegment PROTO((Nlm_SegmenT segment,
415 Nlm_Int4 scaleX, Nlm_Int4 scaleY));
416 extern void          Nlm_OffsetSegment      PROTO((Nlm_SegmenT segment,
417 Nlm_Int4 deltaX, Nlm_Int4 deltaY));
418 extern void          Nlm_LinkSegment        PROTO((Nlm_SegmenT parent,
419 Nlm_SegmenT child));
420 extern void          Nlm_UnlinkSegment      PROTO((Nlm_SegmenT child));
421 extern void          Nlm_ExploreSegment     PROTO((Nlm_SegmenT segment,
422 Nlm_VoidPtr userdata, Nlm_SegmentExploreProc callback));
423 
424 /* SetSegmentVisibleFlag does not change the display in the viewer - use ShowSegment and HideSegment */
425 extern void          Nlm_SetSegmentVisibleFlag (Nlm_SegmenT segment, Nlm_Boolean visible);
426 
427 /*Working with primitive */
428 
429 extern Nlm_PrimitivE Nlm_GetPrimitive PROTO((Nlm_SegmenT segment, Nlm_Uint2 primCt));
430 extern void Nlm_SetPrimitiveIDs PROTO((Nlm_PrimitivE prim, Nlm_Uint2 entityID, Nlm_Uint4 itemID, Nlm_Uint2 itemtype, Nlm_Uint2 primID));
431 extern void Nlm_GetPrimitiveIDs PROTO((Nlm_PrimitivE prim, Nlm_Uint2Ptr entityIDPtr, Nlm_Uint4Ptr itemIDPtr, Nlm_Uint2Ptr itemtypePtr, Nlm_Uint2Ptr primIDPtr));
432 extern void Nlm_GetPrimDrawAttribute PROTO((Nlm_PrimitivE prim,
433 Nlm_Uint1Ptr color, Nlm_Int1Ptr plinestyle, Nlm_Int1Ptr pshading,
434 Nlm_Int1Ptr ppenwidth, Nlm_Int1Ptr pmode, Nlm_Int1Ptr phighlight));
435 extern void Nlm_ChangePrimAttribute PROTO((Nlm_PrimitivE prim, Nlm_Uint1 flags, Nlm_Uint1Ptr color, Nlm_Int1 linestyle, Nlm_Int1 shading, Nlm_Int1 penwidth, Nlm_Int1 mode));
436 extern void Nlm_OffsetPrim PROTO((Nlm_PrimitivE prim, Nlm_Int4 deltaX, Nlm_Int4 deltaY));
437 extern void Nlm_DeletePrim PROTO((Nlm_SegmenT parent, Nlm_PrimitivE prim));
438 extern Nlm_Boolean Nlm_PrimitiveBox PROTO((Nlm_PrimitivE prim, Nlm_Int4 scaleX, Nlm_Int4 scaleY, Nlm_BoxPtr pLimits));
439 
440 /*
441  *  The primitive adding order
442  */
443 typedef enum
444 {
445   /* check actual primitive adding order */
446   WHAT_ORDER,
447   /* add all subsequent new primitives to the end of primitive list */
448   ADD_TO_TAIL,
449   /* .......... to the head ..... */
450   ADD_TO_HEAD,
451   /* change the inserting order for the next added primitive only */
452   ADD_TO_TAIL_ONCE,
453   ADD_TO_HEAD_ONCE
454 }  Nlm_enumPrimAddOrder;
455 
456 /*
457  *  Reset the primitive adding order;  return previous adding order
458  */
459 extern Nlm_enumPrimAddOrder Nlm_ChangeAddPrimOrder
460   PROTO((Nlm_enumPrimAddOrder prim_add_order));
461 
462 
463 
464 #define SegmenT Nlm_SegmenT
465 #define PrimitivE Nlm_PrimitivE
466 #define BoxInfo Nlm_BoxInfo
467 #define BoxPtr Nlm_BoxPtr
468 #define PntInfo Nlm_PntInfo
469 #define PntPtr Nlm_PntPtr
470 #define PrimDrawContext Nlm_PrimDrawContext
471 #define PrimHitContext Nlm_PrimHitContext
472 #define PrimDrawProc Nlm_PrimDrawProc
473 #define PrimPntHitTest Nlm_PrimPntHitTest
474 #define PrimHitTestProc Nlm_PrimHitTestProc
475 #define PrimOffsetProc Nlm_PrimOffsetProc
476 #define PrimGetLimitsProc Nlm_PrimGetLimitsProc
477 #define PrimCleanupProc Nlm_PrimCleanupProc
478 #define PrimDef Nlm_PrimDef
479 #define PrimDefPtr Nlm_PrimDefPtr
480 #define ResetPrimDef Nlm_ResetPrimDef
481 #define SetPrimDrawProc Nlm_SetPrimDrawProc
482 #define SetPrimHitTestProc Nlm_SetPrimHitTestProc
483 #define SetPrimOffsetProc Nlm_SetPrimOffsetProc
484 #define SetPrimGetLimitsProc Nlm_SetPrimGetLimitsProc
485 #define SetPrimCleanupProc Nlm_SetPrimCleanupProc
486 #define GetWorldWindow Nlm_GetWorldWindow
487 #define GetScaleX Nlm_GetScaleX
488 #define GetScaleY Nlm_GetScaleY
489 #define GetOffsetX Nlm_GetOffsetX
490 #define GetOffsetY Nlm_GetOffsetY
491 #define isPrimInWindow Nlm_isPrimInWindow
492 #define GetPrimHligh Nlm_GetPrimHligh
493 #define GetHitWindow Nlm_GetHitWindow
494 #define SetPrimAttribute Nlm_SetPrimAttribute
495 #define RestorePrimAttribute Nlm_RestorePrimAttribute
496 #define SegmentExploreProc Nlm_SegmentExploreProc
497 #define CreatePicture Nlm_CreatePicture
498 #define DeletePicture Nlm_DeletePicture
499 #define CreateSegment Nlm_CreateSegment
500 #define ResetSegment Nlm_ResetSegment
501 #define DeleteSegment Nlm_DeleteSegment
502 #define ParentSegment Nlm_ParentSegment
503 #define SegmentID Nlm_SegmentID
504 #define SegmentVisible Nlm_SegmentVisible
505 #define SegmentStyle Nlm_SegmentStyle
506 #define SegmentBox Nlm_SegmentBox
507 #define SetSegmentVisibleFlag Nlm_SetSegmentVisibleFlag
508 #define AddAttribute Nlm_AddAttribute
509 #define AddPrimitive Nlm_AddPrimitive
510 #define AddInvFrame Nlm_AddInvFrame
511 #define AddRectangle Nlm_AddRectangle
512 #define AddRoundedRectangle Nlm_AddRoundedRectangle
513 #define AddSegRect Nlm_AddSegRect
514 #define AddSilentSegRect Nlm_AddSilentSegRect
515 #define AddLine Nlm_AddLine
516 #define AddSymbol Nlm_AddSymbol
517 #define AddBitmap Nlm_AddBitmap
518 #define AddMarker Nlm_AddMarker
519 #define AddLabel Nlm_AddLabel
520 #define AddTextLabel Nlm_AddTextLabel
521 #define AddPolygon Nlm_AddPolygon
522 #define AddArc Nlm_AddArc
523 #define SntOnDrawProc Nlm_SntOnDrawProc
524 #define SntOnCleanupProc Nlm_SntOnCleanupProc
525 #define AddSntRectangle Nlm_AddSntRectangle
526 #define RecalculateSegment Nlm_RecalculateSegment
527 #define OffsetSegment Nlm_OffsetSegment
528 #define LinkSegment Nlm_LinkSegment
529 #define UnlinkSegment Nlm_UnlinkSegment
530 #define ExploreSegment Nlm_ExploreSegment
531 #define GetPrimitive Nlm_GetPrimitive
532 #define SetPrimitiveIDs Nlm_SetPrimitiveIDs
533 #define GetPrimitiveIDs Nlm_GetPrimitiveIDs
534 #define GetPrimDrawAttribute Nlm_GetPrimDrawAttribute
535 #define ChangePrimAttribute Nlm_ChangePrimAttribute
536 #define OffsetPrim Nlm_OffsetPrim
537 #define DeletePrim Nlm_DeletePrim
538 #define PrimitiveBox Nlm_PrimitiveBox
539 #define enumPrimAddOrder Nlm_enumPrimAddOrder
540 #define ChangeAddPrimOrder Nlm_ChangeAddPrimOrder
541 
542 #ifdef __cplusplus
543 }
544 #endif
545 
546 #endif
547