This file is indexed.

/usr/include/ncbi/vibincld.h is in libvibrant6-dev 6.1.20170106-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
/*   vibincld.h
* ===========================================================================
*
*                            PUBLIC DOMAIN NOTICE
*            National Center for Biotechnology Information (NCBI)
*
*  This software/database is a "United States Government Work" under the
*  terms of the United States Copyright Act.  It was written as part of
*  the author's official duties as a United States Government employee and
*  thus cannot be copyrighted.  This software/database is freely available
*  to the public for use. The National Library of Medicine and the U.S.
*  Government do not place any restriction on its use or reproduction.
*  We would, however, appreciate having the NCBI and the author cited in
*  any work or product based on this material
*
*  Although all reasonable efforts have been taken to ensure the accuracy
*  and reliability of the software and data, the NLM and the U.S.
*  Government do not and cannot warrant the performance or results that
*  may be obtained by using this software or data. The NLM and the U.S.
*  Government disclaim all warranties, express or implied, including
*  warranties of performance, merchantability or fitness for any particular
*  purpose.
*
* ===========================================================================
*
* File Name:  vibincld.h
*
* Author:  Jonathan Kans
*
* Version Creation Date:   7/1/91
*
* $Revision: 6.8 $
*
* File Description: 
*       Vibrant inclusion of underlying windowing system toolbox functions,
*       definition of common internal data types, and miscellaneous functions
*       for internal use only.  Applications should avoid including this file.
*
* Modifications:  
* --------------------------------------------------------------------------
* Date     Name        Description of modification
* -------  ----------  -----------------------------------------------------
*
* ==========================================================================
*/

#ifndef _VIBINCLD_
#define _VIBINCLD_

#ifndef _NCBIWIN_
#include <ncbiwin.h>
#endif
#ifndef _NCBIPORT_
#include <ncbiport.h>
#endif

#ifdef __cplusplus
extern "C" {
#endif

/***  UNDERLYING TOOLBOX GRAPHIC PRIMITIVE OBJECT TYPES  ***/

#ifdef WIN_MAC
#define Nlm_HandleTool Handle
#define Nlm_PointTool Point
#define Nlm_RectTool Rect
	
#ifdef WIN_MAC_QUARTZ
#define Nlm_RgnTool HIMutableShapeRef
#else
#define Nlm_RgnTool RgnHandle
#endif

#endif

#ifdef WIN_MSWIN
#define Nlm_HandleTool HANDLE
#define Nlm_PointTool POINT
#define Nlm_RectTool RECT
#define Nlm_RgnTool HRGN
#endif

#ifdef WIN_MOTIF
#define Nlm_HandleTool Nlm_VoidPtr
#define Nlm_PointTool XPoint
#define Nlm_RectTool XRectangle
#define Nlm_RgnTool Region
#endif


/*
*  WARNING -- The various GetObjectData procedures use the
*  appropriate recentObject and recentObjectData variables,
*  to speed access by eliminating handle locking, copying,
*  and unlocking upon repeated access of an object.  The
*  remove and unlink procedures NULL out the variables, but
*  it could become a problem if some procedure destroys an
*  object other than by calling Remove.  This risky method
*  of data acquisition is controlled by the "NLM_RISKY" flag.
*  Defining NLM_RISKY as FALSE will prevent this caching and
*  force these procedures to always get a fresh copy of the
*  data from the object.
*/

#define NLM_RISKY TRUE

/*
*  WARNING -- The X windowing system is designed for use over
*  a network.  Sending queries during construction of Vibrant
*  windows can be very time consuming over long distances.
*  Defining the "NLM_QUIET" flag to TRUE will only realize
*  Motif widgets at creation time if their parent window has
*  already been shown.  Otherwise, it will realize all widgets
*  from the shell on down as soon as the window is first shown.
*/

#define NLM_QUIET TRUE



/* Workaround the bad memory management resulting in the double
 * memory deallocation when destroying cascade buttons or shells
 * containing those (some versions of Motif library)
 */
#ifdef WIN_MOTIF
#define NLM_MOTIF_CASCADEB_BUG
#endif


/***  ADDITIONAL INTERNAL INTERFACE OBJECT TYPES  ***/

typedef  struct  Nlm_menubar {
  Nlm_VoidPtr  dummy;
} HNDL Nlm_MenuBaR;

typedef  struct  Nlm_box {
  Nlm_VoidPtr  dummy;
} HNDL Nlm_BoX;

/***  MISCELLANEOUS DRAWING OBJECTS FOR INTERNAL USE  ***/

/*
*  This prompt object is for internal use only.  It does not link
*  in as a child of its parent in the normal way, so on the
*  Macintosh the parent must pass draw and click messages to it.
*  The parent also explicitly positions it, and must show, hide,
*  and remove it as necessary.
*/

Nlm_PrompT  Nlm_DependentPrompt PROTO((Nlm_GraphiC prnt, Nlm_RectPtr r, Nlm_CharPtr title, Nlm_FonT font, Nlm_Char just));

/*
*  These scroll bar objects are for internal use only.  They do not
*  link in as a child of its parent in the normal way, so on the
*  Macintosh the parent must pass draw and click messages to them.
*  The parent also explicitly positions them, and must show, hide,
*  and remove them as necessary.  The action callback procedure is
*  triggered by SetValue if the setting of the scroll bar changes.
*/

Nlm_BaR  Nlm_HorizScrollBar4 PROTO((Nlm_GraphiC slave, Nlm_RectPtr r, Nlm_BarScrlProc4 actn));
Nlm_BaR  Nlm_VertScrollBar4  PROTO((Nlm_GraphiC slave, Nlm_RectPtr r, Nlm_BarScrlProc4 actn));

Nlm_BaR  Nlm_HorizScrollBar PROTO((Nlm_GraphiC slave, Nlm_RectPtr r, Nlm_BarScrlProc actn));
Nlm_BaR  Nlm_VertScrollBar  PROTO((Nlm_GraphiC slave, Nlm_RectPtr r, Nlm_BarScrlProc actn));

/***  STRUCTURE DEFINITIONS FOR INTERFACE OBJECTS  ***/

/*
*  The GraphiC object is the base of all other objects.  It contains
*  linkage information, the class and callback pointers, a position
*  rectangle, and enabled and visible flags.
*/

typedef  struct  Nlm_graphicrec {
  Nlm_GraphiC   next;
  Nlm_GraphiC   parent;
  Nlm_GraphiC   children;
  Nlm_GraphiC   lastChild;
  Nlm_GphPrcs   PNTR classptr;
  Nlm_ActnProc  action;
  Nlm_RecT      rect;
  Nlm_Boolean   enabled;
  Nlm_Boolean   visible;
  Nlm_VoidPtr   data;
  Nlm_FreeProc  cleanup;
  Nlm_Boolean   realized;
  Nlm_VoidPtr   thisobject; /* <<<add to hold DObjectPtr dgg++ */
} Nlm_GraphicRec, Nlm_GraphicData, PNTR Nlm_GphPtr;

/*
*  The BoX object has positioning parameters to nicely organize
*  internal objects.
*/

typedef  struct  Nlm_boxdata {
  Nlm_PoinT  nextPoint;
  Nlm_PoinT  limitPoint;
  Nlm_PoinT  resetPoint;
  Nlm_Int2   topRow;
  Nlm_Int2   nextCol;
  Nlm_Int2   xMargin;
  Nlm_Int2   yMargin;
  Nlm_Int2   xSpacing;
  Nlm_Int2   ySpacing;
  Nlm_Int2   boxWidth;
  Nlm_Int2   boxHeight;
} Nlm_BoxData;

typedef  struct  Nlm_boxrec {
  Nlm_GraphicRec  graphicR;
  Nlm_BoxData     box;
} Nlm_BoxRec, PNTR Nlm_BoxPtr;



#if defined(WIN_MAC)
#if defined(WIN_MAC_QUARTZ)
#define Nlm_WindowTool  WindowPtr
#define Nlm_PortTool    CGContextRef
#define Nlm_ShellTool   Nlm_Handle
#define Nlm_MainTool    Nlm_Handle
#define Nlm_ColorMTool  PaletteHandle
#else
#define Nlm_WindowTool  WindowPtr
#define Nlm_PortTool    GrafPtr
#define Nlm_ShellTool   Nlm_Handle
#define Nlm_MainTool    Nlm_Handle
#define Nlm_ColorMTool  PaletteHandle
#endif
#endif

#ifdef WIN_MSWIN
#define Nlm_WindowTool  HWND
#define Nlm_PortTool    HDC
#define Nlm_ShellTool   Nlm_Handle
#define Nlm_MainTool    Nlm_Handle
#define Nlm_ColorMTool  HPALETTE
#endif

#ifdef WIN_MOTIF
#define Nlm_WindowTool  Widget
#define Nlm_PortTool    GC
#define Nlm_ShellTool   Widget
#define Nlm_MainTool    Widget
#define Nlm_ColorMTool  Colormap
#endif

extern  Nlm_WindoW     Nlm_desktopWindow;
extern  Nlm_WindoW     Nlm_systemWindow;

extern  Nlm_WindoW     Nlm_theWindow;
extern  Nlm_WindowTool Nlm_currentWindowTool;

extern  Nlm_Boolean    Nlm_processUpdatesFirstVal;

#ifdef WIN_MAC
extern  EventRecord    Nlm_currentEvent;
#endif

#ifdef WIN_MSWIN
extern  HCURSOR        Nlm_currentCursor;
extern  WPARAM         Nlm_currentWParam;
extern  HINSTANCE      Nlm_currentHInst;
extern  LPARAM         Nlm_currentLParam;
extern  MSG            Nlm_currentMssg;
extern  int            Nlm_currentId;
extern  HWND           Nlm_currentHwndCtl;
extern  UINT           Nlm_currentCode;
extern  int            Nlm_currentPos;
#endif

#ifdef WIN_MOTIF
extern  Cursor         Nlm_currentCursor;
extern  XEvent         Nlm_currentEvent;
extern  XtAppContext   Nlm_appContext;
extern  XmFontList     Nlm_XfontList;
extern  Widget         Nlm_fileDialogShell;
#endif

void            Nlm_ProcessTimerEvent PROTO((void));
Nlm_WindowTool  Nlm_ParentWindowPtr PROTO((Nlm_GraphiC a));
Nlm_PortTool    Nlm_ParentWindowPort PROTO((Nlm_GraphiC a));
Nlm_MainTool    Nlm_ParentWindowMain PROTO((Nlm_GraphiC a));
Nlm_ShellTool   Nlm_ParentWindowShell PROTO((Nlm_GraphiC a));
Nlm_WindoW      Nlm_SavePortIfNeeded PROTO((Nlm_GraphiC a, Nlm_Boolean savePort));

void            Nlm_SetWindowCharDisplay PROTO((Nlm_WindoW w, Nlm_DisplaY d));
Nlm_DisplaY     Nlm_GetWindowCharDisplay PROTO((Nlm_WindoW w));
void            Nlm_SetWindowMenuBar PROTO((Nlm_WindoW w, Nlm_MenuBaR mb));
Nlm_MenuBaR     Nlm_GetWindowMenuBar PROTO((Nlm_WindoW w));
void            Nlm_SetWindowDefaultButton PROTO((Nlm_WindoW w, Nlm_ButtoN b));
Nlm_ButtoN      Nlm_GetWindowDefaultButton PROTO((Nlm_WindoW w));
Nlm_Boolean     Nlm_WindowHasBeenShown PROTO((Nlm_WindoW w));
Nlm_Boolean     Nlm_IsWindowDying PROTO((Nlm_WindoW w));
void            Nlm_PassPanelClickToText PROTO((Nlm_PaneL p, Nlm_TexT t, Nlm_PoinT pt));
void            Nlm_KillSlateTimer PROTO((void));

void            Nlm_GetChoiceTitle PROTO((Nlm_GraphiC c, Nlm_Int2 item, Nlm_CharPtr title, size_t maxsize));
Nlm_ShellTool   Nlm_GetWindowShell PROTO((Nlm_WindoW w));

#ifdef WIN_MAC
void            Nlm_SetUpdateRegion PROTO((WindowPtr wptr));
#endif
#ifdef WIN_MOTIF
Colormap        Nlm_VibrantDefaultColormap PROTO(( void ));
Visual         *Nlm_VibrantDefaultVisual   PROTO((void));
int             Nlm_VibrantDefaultDepth    PROTO(( void ));
Nlm_Boolean     Nlm_GetFixedColormap PROTO((Nlm_GraphiC w,
                                            Colormap *cMap, Visual **visual));
void            Nlm_XAllocColor PROTO((XColor *xcolor, Colormap colormap,
                                       Nlm_Uint1 red,
                                       Nlm_Uint1 green,
                                       Nlm_Uint1 blue));
void            Nlm_MapDefaultButton PROTO((Nlm_WindoW w, Nlm_ButtoN b));

/* Get resource value(in the string representation) defined as X11-resources
   having form:
      <application>.<_resource>:  <resource_value>
      Vibrant.<_resource>:        <resource_value>

   where <application> is the running application name without path and
   extention, lowercased(!).  The "<application>." value overrides the
   "Vibrant." one.
   On error, return NULL;  deallocation of the value returned on success
   is the user's responsibility(use "Nlm_MemFree()").
*/
Nlm_CharPtr     Nlm_XrmGetResource PROTO((const Nlm_Char PNTR _resource));
#endif

extern  Nlm_Int2    Nlm_nextIdNumber;

extern  Nlm_PoinT   Nlm_globalMouse;
extern  Nlm_PoinT   Nlm_localMouse;

extern  Nlm_Boolean Nlm_textScrapFull;

void        Nlm_InitVibrantHooks PROTO((void));

void        Nlm_InitBars PROTO((void));
void        Nlm_InitButtons PROTO((void));
void        Nlm_InitForms PROTO((void));
void        Nlm_InitExtras PROTO((void));
void        Nlm_InitGroup PROTO((void));
void        Nlm_InitLists PROTO((void));
void        Nlm_InitMenus PROTO((void));
void        Nlm_InitPrompt PROTO((void));
void        Nlm_InitSlate PROTO((void));
void        Nlm_InitTexts PROTO((void));
void        Nlm_InitWindows PROTO((void));

void        Nlm_FreeBars PROTO((void));
void        Nlm_FreeButtons PROTO((void));
void        Nlm_FreeForms PROTO((void));
void        Nlm_FreeExtras PROTO((void));
void        Nlm_FreeGroup PROTO((void));
void        Nlm_FreeLists PROTO((void));
void        Nlm_FreeMenus PROTO((void));
void        Nlm_FreePrompt PROTO((void));
void        Nlm_FreeSlate PROTO((void));
void        Nlm_FreeTexts PROTO((void));
void        Nlm_FreeWindows PROTO((void));

Nlm_Boolean Nlm_RegisterWindows PROTO((void));
Nlm_Boolean Nlm_RegisterSlates PROTO((void));
Nlm_Boolean Nlm_RegisterTexts PROTO((void));

void        Nlm_ClearItemsInGroup PROTO((Nlm_GraphiC a, Nlm_GraphiC excpt, Nlm_Boolean savePort));
Nlm_Int2    Nlm_CountGroupItems PROTO((Nlm_GraphiC a));

Nlm_GraphiC Nlm_CreateLink PROTO((Nlm_GraphiC prnt, Nlm_RectPtr r, Nlm_Int2 recordSize, Nlm_GphPrcs PNTR classPtr));
void        Nlm_RemoveLink PROTO((Nlm_GraphiC a));
void        Nlm_RecordRect PROTO((Nlm_GraphiC a, Nlm_RectPtr r));
void        Nlm_NextPosition PROTO((Nlm_GraphiC a, Nlm_RectPtr r));
Nlm_GphPrcsPtr Nlm_GetClassPtr PROTO((Nlm_GraphiC a));
#ifdef WIN_MAC
Nlm_Boolean Nlm_DoClick PROTO((Nlm_GraphiC a, Nlm_PoinT pt));
Nlm_Boolean Nlm_DoKey PROTO((Nlm_GraphiC a, Nlm_Char ch));
void        Nlm_DoDraw PROTO((Nlm_GraphiC a));
Nlm_Boolean Nlm_DoIdle PROTO((Nlm_GraphiC a, Nlm_PoinT pt));
#endif
#ifdef WIN_MSWIN
Nlm_Boolean Nlm_DoCommand PROTO((Nlm_GraphiC a));
#endif
#ifdef WIN_MOTIF
void        Nlm_DoCallback PROTO((Nlm_GraphiC a));
#endif
void        Nlm_DoShow PROTO((Nlm_GraphiC a, Nlm_Boolean setFlag, Nlm_Boolean savePort));
void        Nlm_DoHide PROTO((Nlm_GraphiC a, Nlm_Boolean setFlag, Nlm_Boolean savePort));
void        Nlm_DoEnable PROTO((Nlm_GraphiC a, Nlm_Boolean setFlag, Nlm_Boolean savePort));
void        Nlm_DoDisable PROTO((Nlm_GraphiC a, Nlm_Boolean setFlag, Nlm_Boolean savePort));
void        Nlm_DoActivate PROTO((Nlm_GraphiC a, Nlm_Boolean savePort));
void        Nlm_DoDeactivate PROTO((Nlm_GraphiC a, Nlm_Boolean savePort));
Nlm_Handle  Nlm_DoRemove PROTO((Nlm_GraphiC a, Nlm_Boolean savePort));
void        Nlm_DoReset PROTO((Nlm_GraphiC a, Nlm_Boolean savePort));
void        Nlm_DoSelect PROTO((Nlm_GraphiC a, Nlm_Boolean savePort));
void        Nlm_DoSetTitle PROTO((Nlm_GraphiC a, Nlm_Int2 item, Nlm_CharPtr title, Nlm_Boolean savePort));
void        Nlm_DoGetTitle PROTO((Nlm_GraphiC a, Nlm_Int2 item, Nlm_CharPtr title, size_t maxsize));
void        Nlm_DoSetValue PROTO((Nlm_GraphiC a, Nlm_Int2 value, Nlm_Boolean savePort));
Nlm_Int2    Nlm_DoGetValue PROTO((Nlm_GraphiC a));
void        Nlm_DoSetStatus PROTO((Nlm_GraphiC a, Nlm_Int2 item, Nlm_Boolean status, Nlm_Boolean savePort));
Nlm_Boolean Nlm_DoGetStatus PROTO((Nlm_GraphiC a, Nlm_Int2 item));
void        Nlm_DoSetOffset PROTO((Nlm_GraphiC a, Nlm_Int2 horiz, Nlm_Int2 vert, Nlm_Boolean savePort));
void        Nlm_DoGetOffset PROTO((Nlm_GraphiC a, Nlm_Int2Ptr horiz, Nlm_Int2Ptr vert));
Nlm_GraphiC Nlm_DoLinkIn PROTO((Nlm_GraphiC a, Nlm_GraphiC prnt));
void        Nlm_DoAdjustPrnt PROTO((Nlm_GraphiC a, Nlm_RectPtr r, Nlm_Boolean align, Nlm_Boolean savePort));
void        Nlm_DoSetPosition PROTO((Nlm_GraphiC a, Nlm_RectPtr r, Nlm_Boolean savePort, Nlm_Boolean force));
void        Nlm_DoGetPosition PROTO((Nlm_GraphiC a, Nlm_RectPtr r));
void        Nlm_DoSetRange PROTO((Nlm_GraphiC a, Nlm_Int2 pgUp, Nlm_Int2 pgDn, Nlm_Int2 max, Nlm_Boolean savePort));
Nlm_GraphiC Nlm_DoGainFocus PROTO((Nlm_GraphiC a, Nlm_Char ch, Nlm_Boolean savePort));
void        Nlm_DoLoseFocus PROTO((Nlm_GraphiC a, Nlm_GraphiC excpt, Nlm_Boolean savePort));
void        Nlm_DoSendChar PROTO((Nlm_GraphiC a, Nlm_Char ch, Nlm_Boolean savePort));
void        Nlm_DoSendFocus (Nlm_GraphiC a, Nlm_Char ch);
void        Nlm_DoAction PROTO((Nlm_GraphiC a));

Nlm_GraphiC Nlm_FindItem PROTO((Nlm_GraphiC a, Nlm_Int2 item));
Nlm_Int2    Nlm_GetItemIndex PROTO((Nlm_GraphiC a));

Nlm_WindoW  Nlm_GetParentWindow PROTO((Nlm_GraphiC a));
Nlm_Boolean Nlm_GetAllParentsEnabled PROTO((Nlm_GraphiC a));
Nlm_Boolean Nlm_GetAllParentsVisible PROTO((Nlm_GraphiC a));
Nlm_Boolean Nlm_AllParentsButWindowVisible PROTO((Nlm_GraphiC a));

void        Nlm_SetNext PROTO((Nlm_GraphiC a, Nlm_GraphiC nxt));
Nlm_GraphiC Nlm_GetNext PROTO((Nlm_GraphiC a));
void        Nlm_SetParent PROTO((Nlm_GraphiC a, Nlm_GraphiC prnt));
Nlm_GraphiC Nlm_GetParent PROTO((Nlm_GraphiC a));
void        Nlm_SetChild PROTO((Nlm_GraphiC a, Nlm_GraphiC chld));
Nlm_GraphiC Nlm_GetChild PROTO((Nlm_GraphiC a));
void        Nlm_SetRect PROTO((Nlm_GraphiC a, Nlm_RectPtr r));
void        Nlm_GetRect PROTO((Nlm_GraphiC a, Nlm_RectPtr r));
void        Nlm_SetEnabled PROTO((Nlm_GraphiC a, Nlm_Boolean enabld));
Nlm_Boolean Nlm_GetEnabled PROTO((Nlm_GraphiC a));
void        Nlm_SetVisible PROTO((Nlm_GraphiC a, Nlm_Boolean visibl));
Nlm_Boolean Nlm_GetVisible PROTO((Nlm_GraphiC a));
void        Nlm_SetRealized PROTO((Nlm_GraphiC a, Nlm_Boolean realizd));
Nlm_Boolean Nlm_GetRealized PROTO((Nlm_GraphiC a));

Nlm_GraphiC Nlm_LinkIn PROTO((Nlm_GraphiC a, Nlm_GraphiC prnt));

void        Nlm_LoadGraphicData PROTO((Nlm_GraphiC a, Nlm_GraphiC nxt, Nlm_GraphiC prnt, Nlm_GraphiC chld, Nlm_GraphiC lstchd, Nlm_GphPrcs PNTR classPtr, Nlm_ActnProc actnProc, Nlm_RectPtr r, Nlm_Boolean enabl, Nlm_Boolean vis, Nlm_VoidPtr dat, Nlm_FreeProc cln));
void        Nlm_SetGraphicData PROTO((Nlm_GraphiC a, Nlm_GraphicData PNTR gdata));
void        Nlm_GetGraphicData PROTO((Nlm_GraphiC a, Nlm_GraphicData PNTR gdata));
void        Nlm_LoadAction PROTO((Nlm_GraphiC a, Nlm_ActnProc actnProc));

void        Nlm_LoadBoxData PROTO((Nlm_BoX a, Nlm_PoinT nxt, Nlm_PoinT lmt, Nlm_PoinT rst, Nlm_Int2 top, Nlm_Int2 ncol, Nlm_Int2 xMrg, Nlm_Int2 yMrg, Nlm_Int2 xSpc, Nlm_Int2 ySpc, Nlm_Int2 wid, Nlm_Int2 hgt));
void        Nlm_SetBoxData PROTO((Nlm_BoX a, Nlm_BoxData PNTR bdata));
void        Nlm_GetBoxData PROTO((Nlm_BoX a, Nlm_BoxData PNTR bdata));

void        Nlm_SetExtraData PROTO((Nlm_GraphiC a, Nlm_VoidPtr dptr, Nlm_Int2 start, Nlm_Int2 extra));
void        Nlm_GetExtraData PROTO((Nlm_GraphiC a, Nlm_VoidPtr dptr, Nlm_Int2 start, Nlm_Int2 extra));

void        Nlm_PointToolToPoinT PROTO((Nlm_PointTool src, Nlm_PointPtr dst));
void        Nlm_PoinTToPointTool PROTO((Nlm_PoinT src, Nlm_PointTool PNTR dst));
void        Nlm_RectToolToRecT PROTO((Nlm_RectTool PNTR src, Nlm_RectPtr dst));
void        Nlm_RecTToRectTool PROTO((Nlm_RectPtr src, Nlm_RectTool PNTR dst));

void        Nlm_LocalToGlobal PROTO((Nlm_PointPtr pt));
void        Nlm_GlobalToLocal PROTO((Nlm_PointPtr pt));

void        Nlm_VibrantSetGUI PROTO((void));

#if defined(WIN_MAC) && defined(WIN_MAC_QUARTZ)
CGRect      Nlm_RecTToCGRect(Nlm_RecT r);
Nlm_RecT    Nlm_CGRectToRecT(CGRect cgr);
CGRect      Nlm_RectQDToCG(Rect r);
Rect        Nlm_RectCGToQD(CGRect r);
CGPoint     Nlm_PoinTToCGPoint(Nlm_PoinT np);
Nlm_PoinT   Nlm_CGPointToPoinT(CGPoint qp);
#endif

#ifdef WIN_MSWIN
extern  Nlm_Boolean Nlm_VibrantDisabled PROTO((void));
extern  HDC         Nlm_GetPicWinHDC    PROTO((void));
#endif


#ifdef WIN_MOTIF
extern Nlm_Char Nlm_GetInputChar PROTO((XKeyEvent *event));
extern void Nlm_RegisterStdTranslations PROTO(( void ));
extern void Nlm_OverrideStdTranslations  PROTO((Nlm_GraphiC g, Widget w,
                                                Nlm_Int4 filter));
#endif
#ifdef WIN_MSWIN
extern Nlm_Char Nlm_KeydownToChar PROTO((WPARAM wParam));
extern Nlm_Boolean Nlm_ProcessKeydown PROTO((Nlm_GraphiC g, WPARAM wParam,
                                             Nlm_Int4 filter));
#endif

    /** includes needed by vibslate.c **/

#ifdef WIN_MOTIF
#include <X11/keysym.h>
#include <X11/keysymdef.h>
#endif

   /** includes needed by vibwndws.c ***/

#ifdef WIN_MAC
#ifdef __MWERKS__
#include <Resources.h>
#include <Scrap.h>
#include <AppleEvents.h>
#include <Gestalt.h>
#endif
#endif

#ifdef WIN_MSWIN
#include <shellapi.h>
#endif

#ifdef WIN_MOTIF
#include <Xm/DialogS.h>
#endif

  /** includes needed by vibutils.c ***/

#ifdef WIN_MAC
#ifdef __MWERKS__
#ifndef OS_UNIX_DARWIN
#include <Printing.h>
#endif
#include <Processes.h>
#include <Gestalt.h>
#include <Scrap.h>
#include <AppleEvents.h>
#include <Palettes.h>
#endif
#endif

#ifdef WIN_MSWIN
#include <commdlg.h>
#endif

#ifdef WIN_MOTIF
#include <Xm/FileSB.h>
#include <Xm/CutPaste.h>

/*
 * Test X windows to see what kind of color buffer is available.
 * Necessary because Linux supports only the type available
 * from the hardware. Code in vibwndws.c. Returns TRUE if match and visinfo.
 */

extern Nlm_Boolean Nlm_CheckX(XVisualInfo *visinfo);


#ifdef __cplusplus
}
#endif


#ifdef OS_UNIX
#include <unistd.h>
#endif
#ifdef OS_VMS
#endif
#endif

#endif