1 /**
2  *
3  * $Id: XmP.h,v 1.2 2005/03/26 06:12:17 dannybackx Exp $
4  *
5  * Copyright (C) 1995 Free Software Foundation, Inc.
6  * Copyright (C) 1995-2002 LessTif Development Team
7  *
8  * This file is part of the GNU LessTif Library.
9  *
10  * This library is free software; you can redistribute it and/or
11  * modify it under the terms of the GNU Library General Public
12  * License as published by the Free Software Foundation; either
13  * version 2 of the License, or (at your option) any later version.
14  *
15  * This library is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
18  * Library General Public License for more details.
19  *
20  * You should have received a copy of the GNU Library General Public
21  * License along with this library; if not, write to the Free
22  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
23  *
24  **/
25 
26 #ifndef _XM_XMP_H
27 #define _XM_XMP_H
28 
29 #include <X11/IntrinsicP.h>
30 #include <Xm/Xm.h>
31 #include <Xm/DrawP.h>
32 
33 #ifndef XmConst
34 #define XmConst	const
35 #endif /* !XmConst */
36 
37 
38 #ifdef __cplusplus
39 extern "C" {
40 #endif
41 
42 /*
43  * shorthand macros
44  */
45 #ifdef XtDisplay
46 #undef XtDisplay
47 #endif
48 #define XtDisplay(widget) \
49     (XtIsWidget(widget) \
50 	? ((Widget)(widget))->core.screen->display \
51 	: ((Object)(widget))->object.parent->core.screen->display)
52 
53 #ifdef XtScreen
54 #undef XtScreen
55 #endif
56 #define XtScreen(widget) \
57     (XtIsWidget(widget) \
58 	? ((Widget)(widget))->core.screen \
59 	: ((Object)(widget))->object.parent->core.screen)
60 
61 #ifdef XtWindow
62 #undef XtWindow
63 #endif
64 #define XtWindow(widget) \
65     (XtIsWidget(widget) \
66 	? ((Widget)(widget))->core.window \
67 	: ((Object)(widget))->object.parent->core.window)
68 
69 #ifdef XtName
70 #undef XtName
71 #endif
72 #define XtName(widget) \
73     XrmQuarkToString(((Object)(widget))->object.xrm_name)
74 
75 #ifdef XtClass
76 #undef XtClass
77 #endif
78 #define XtClass(widget) \
79     (((Object)(widget))->object.widget_class)
80 
81 #ifdef XtSuperclass
82 #undef XtSuperclass
83 #endif
84 #define XtSuperclass(widget) \
85     (XtClass(widget)->core_class.superclass)
86 
87 #ifdef XtIsRealized
88 #undef XtIsRealized
89 #endif
90 #define XtIsRealized(widget) \
91     (XtIsWidget(widget) \
92 	? ((Widget)(widget))->core.window \
93 	: ((Object)(widget))->object.parent->core.window)
94 
95 #ifdef XtIsManaged
96 #undef XtIsManaged
97 #endif
98 #define XtIsManaged(widget) \
99     (((XmGadget)(widget))->rectangle.managed)
100 
101 #ifdef XtParent
102 #undef XtParent
103 #endif
104 #define XtParent(widget) \
105     (((Object)(widget))->object.parent)
106 
107 /*
108  * #defines for useful core record variables
109  */
110 
111 #define XtWidth(w)	 (((Widget)(w))->core.width)
112 #define XtHeight(w)	 (((Widget)(w))->core.height)
113 #define XtX(w)		 (((Widget)(w))->core.x)
114 #define XtY(w)		 (((Widget)(w))->core.y)
115 #define XtBackground(w)	 (((Widget)(w))->core.background_pixel)
116 #define XtBorderWidth(w) (((Widget)(w))->core.border_width)
117 #define XtSensitive(w)	 (((Widget)(w))->core.sensitive && \
118 			  ((Widget)(w))->core.ancestor_sensitive)
119 #define XtCoreProc(w,p)  (((Widget)(w))->core.widget_class->core_class.p)
120 
121 /*
122  * menu values
123  */
124 enum {
125     XmMENU_POPDOWN,
126     XmMENU_PROCESS_TREE,
127     XmMENU_TRAVERSAL,
128     XmMENU_SHELL_POPDOWN,
129     XmMENU_CALLBACK,
130     XmMENU_BUTTON,
131     XmMENU_CASCADING,
132     XmMENU_SUBMENU,
133     XmMENU_ARM,
134     XmMENU_DISARM,
135     XmMENU_BAR_CLEANUP,
136     XmMENU_STATUS,
137     XmMENU_MEMWIDGET_UPDATE,
138     XmMENU_BUTTON_POPDOWN,
139     XmMENU_RESTORE_EXCLUDED_TEAROFF_TO_TOPLEVEL_SHELL,
140     XmMENU_RESTORE_TEAROFF_TO_TOPLEVEL_SHELL,
141     XmMENU_RESTORE_TEAROFF_TO_MENUSHELL,
142     XmMENU_GET_LAST_SELECT_TOPLEVEL,
143     XmMENU_TEAR_OFF_ARM
144 };
145 
146 #define XmMENU_TORN_BIT                         (1 << 0)
147 #define XmMENU_TEAR_OFF_SHELL_DESCENDANT_BIT    (1 << 1)
148 #define XmMENU_POPUP_POSTED_BIT                 (1 << 2)
149 
150 #define XmIsTorn(m) \
151     ((m) & XmMENU_TORN_BIT)
152 #define XmPopupPosted(m) \
153     ((m) & XmMENU_POPUP_POSTED_BIT)
154 #define XmIsTearOffShellDescendant(m) \
155     ((m) & XmMENU_TEAR_OFF_SHELL_DESCENDANT_BIT)
156 
157 /*
158  * constants used in button/SimpleMenu communication
159  */
160 typedef struct _XmSimpleMenuRec {
161     int count;
162     int post_from_button;
163     XtCallbackProc callback;
164     XmStringTable label_string;
165     String *accelerator;
166     XmStringTable accelerator_text;
167     XmKeySymTable mnemonic;
168     XmStringCharSetTable mnemonic_charset;
169     XmButtonTypeTable button_type;
170     int button_set;
171     XmString option_label;
172     KeySym option_mnemonic;
173 } XmSimpleMenuRec, *XmSimpleMenu;
174 
175 /* For MapEvent: _XmMatchBtnEvent */
176 #define XmIGNORE_EVENTTYPE      -1
177 
178 /* Default minimum Toggle indicator dimension */
179 #define XmDEFAULT_INDICATOR_DIM   9
180 
181 /* DefaultButtonShadow stuff */
182 #define Xm3D_ENHANCE_PIXEL              2
183 #define XmDEFAULT_TOP_MARGIN            0
184 #define XmDEFAULT_BOTTOM_MARGIN         0
185 
186 
187 /*
188  * synthetic resource stuff
189  */
190 
191 typedef enum {
192     XmSYNTHETIC_NONE,
193     XmSYNTHETIC_LOAD
194 } XmImportOperator;
195 
196 typedef void (*XmExportProc)(Widget, int, XtArgVal *);
197 typedef XmImportOperator (*XmImportProc)(Widget, int, XtArgVal*);
198 
199 typedef struct _XmSyntheticResource {
200     String resource_name;
201     Cardinal resource_size;
202     Cardinal resource_offset;
203     XmExportProc export_proc;
204     XmImportProc import_proc;
205 } XmSyntheticResource;
206 
207 /*
208  * ParentProcess structures
209  */
210 
211 enum {
212     XmPARENT_PROCESS_ANY,
213     XmINPUT_ACTION
214 };
215 
216 enum {
217     XmPARENT_ACTIVATE,
218     XmPARENT_CANCEL
219 };
220 
221 #define XmRETURN XmPARENT_ACTIVATE
222 #define XmCANCEL XmPARENT_CANCEL
223 
224 typedef struct {
225     int process_type;
226 } XmParentProcessAnyRec;
227 
228 typedef struct {
229     int process_type;
230     XEvent *event;
231     int action;
232     String *params;
233     Cardinal *num_params;
234 } XmParentInputActionRec;
235 
236 typedef union {
237     XmParentProcessAnyRec any;
238     XmParentInputActionRec input_action;
239 } XmParentProcessDataRec, *XmParentProcessData;
240 
241 #define XmINVALID_DIMENSION (0xFFFF)
242 
243 enum {
244     XmBASELINE_GET,
245     XmBASELINE_SET
246 };
247 
248 typedef struct _XmBaselineMargins {
249     unsigned char get_or_set;
250     Dimension margin_top;
251     Dimension margin_bottom;
252     Dimension shadow;
253     Dimension highlight;
254     Dimension text_height;
255     Dimension text_width;
256     Dimension margin_height;
257 } XmBaselineMargins;
258 
259 typedef enum {
260     XmFOCUS_IN,
261     XmFOCUS_OUT,
262     XmENTER,
263     XmLEAVE
264 } XmFocusChange;
265 
266 typedef enum{
267     XmNOT_NAVIGABLE,
268     XmCONTROL_NAVIGABLE,
269     XmTAB_NAVIGABLE,
270     XmDESCENDANTS_NAVIGABLE,
271     XmDESCENDANTS_TAB_NAVIGABLE
272 } XmNavigability;
273 
274 #define XmVoidProc      XtProc
275 
276 typedef Boolean (*XmParentProcessProc)(Widget, XmParentProcessData);
277 typedef void    (*XmWidgetDispatchProc)
278 			(Widget gadget, XEvent *event, Mask event_mask);
279 typedef void    (*XmMenuPopupProc)(Widget, Widget, XEvent *);
280 typedef void    (*XmMenuTraversalProc)( Widget, Widget, XmTraversalDirection);
281 typedef void    (*XmResizeFlagProc)(Widget, Boolean);
282 typedef void    (*XmRealizeOutProc)(Widget, Mask *, XSetWindowAttributes *);
283 typedef Boolean (*XmVisualChangeProc)
284 			(Widget gadget, Widget cur_mgr, Widget new_mgr);
285 typedef void    (*XmTraversalProc)(Widget, XtPointer, XtPointer, int);
286 typedef void    (*XmFocusMovedProc)( Widget, XtPointer, XtPointer) ;
287 typedef void    (*XmCacheCopyProc)(XtPointer, XtPointer, size_t);
288 typedef int     (*XmCacheCompareProc)(XtPointer, XtPointer);
289 typedef Boolean (*XmWidgetBaselineProc)
290 			(Widget w, Dimension **baselines, int *num_baselines);
291 typedef Boolean (*XmWidgetDisplayRectProc)(Widget w, XRectangle *rect);
292 typedef void    (*XmWidgetMarginsProc)(Widget w, XmBaselineMargins *margins);
293 typedef XmNavigability    (*XmWidgetNavigableProc)(Widget w);
294 typedef void    (*XmFocusChangeProc)(Widget w, XmFocusChange change);
295 
296 typedef void    (*XmMenuProc)(int function, Widget widget, ...);
297 
298 typedef void    (*XmGadgetCacheProc)(XtPointer);
299 typedef Boolean (*XmTraversalChildrenProc)
300 			(Widget mw, Widget **children, Cardinal *num_children);
301 
302 /*
303  * virtkey stuff
304  */
305 
306 typedef struct {
307     Modifiers mod;
308     char      *key;
309     char      *action;
310 } _XmBuildVirtualKeyStruct;
311 
312 
313 /*
314  * stuff needed by the Text and TextField widgets to do their rendering
315  */
316 
317 typedef struct {
318     XmTextPosition position;
319     XmHighlightMode mode;
320 } _XmHighlightRec;
321 
322 typedef struct {
323     Cardinal number;
324     Cardinal maximum;
325     _XmHighlightRec *list;
326 } _XmHighlightData;
327 
328 typedef struct {
329     Atom selection;
330     Atom target;
331 } _XmTextInsertPair;
332 
333 typedef enum {
334     XmDEST_SELECT,
335     XmPRIM_SELECT
336 } XmSelectType;
337 
338 typedef struct {
339     Boolean done_status;
340     Boolean success_status;
341     XmSelectType select_type;
342     XSelectionRequestEvent *event;
343 } _XmInsertSelect;
344 
345 typedef struct {
346     XEvent *event;
347     String *params;
348     Cardinal *num_params;
349 } _XmTextActionRec;
350 
351 typedef struct {
352     Widget widget;
353     XmTextPosition insert_pos;
354     int num_chars;
355     Time timestamp;
356     Boolean move;
357 } _XmTextDropTransferRec;
358 
359 typedef struct {
360     XmTextPosition position;
361     Atom target;
362     Time time;
363     int num_chars;
364     int ref_count;
365 } _XmTextPrimSelect;
366 
367 typedef struct {
368     Screen *screen;
369     XContext context;
370     unsigned char type;
371 } XmTextContextDataRec, *XmTextContextData;
372 
373 enum {
374     _XM_IS_DEST_CTX,
375     _XM_IS_GC_DATA_CTX,
376     _XM_IS_PIXMAP_CTX
377 };
378 
379 #define XmTEXT_DRAG_ICON_WIDTH  64
380 #define XmTEXT_DRAG_ICON_HEIGHT 64
381 #define XmTEXT_DRAG_ICON_X_HOT  10
382 #define XmTEXT_DRAG_ICON_Y_HOT   4
383 
384 /*
385  * geometry stuff, used in GeoUtils.c
386  */
387 
388 enum{
389     XmGET_ACTUAL_SIZE = 1,
390     XmGET_PREFERRED_SIZE,
391     XmGEO_PRE_SET,
392     XmGEO_POST_SET
393 };
394 
395 /* fill modes for the GeoLayoutRec's below */
396 enum {
397     XmGEO_EXPAND,
398     XmGEO_CENTER,
399     XmGEO_PACK
400 };
401 
402 /* fit modes for the GeoLayoutRec's below */
403 enum {
404     XmGEO_PROPORTIONAL,
405     XmGEO_AVERAGING,
406     XmGEO_WRAP
407 };
408 
409 enum {
410     XmGEO_ROW_MAJOR,
411     XmGEO_COLUMN_MAJOR
412 };
413 
414 typedef struct _XmGeoMatrixRec *XmGeoMatrix;
415 typedef union _XmGeoMajorLayoutRec *XmGeoMajorLayout;
416 typedef struct _XmKidGeometryRec {
417     Widget kid;
418     XtWidgetGeometry box;
419 } XmKidGeometryRec, *XmKidGeometry;
420 
421 typedef void (*XmGeoArrangeProc)(XmGeoMatrix, Position, Position,
422 				 Dimension *, Dimension *);
423 typedef Boolean (*XmGeoExceptProc)(XmGeoMatrix);
424 typedef void (*XmGeoExtDestructorProc)(XtPointer);
425 typedef void (*XmGeoSegmentFixUpProc)(XmGeoMatrix, int,
426 				      XmGeoMajorLayout, XmKidGeometry);
427 
428 typedef struct {
429     Boolean end;
430     XmGeoSegmentFixUpProc fix_up;
431     Dimension even_width;
432     Dimension even_height;
433     Dimension min_height;
434     Boolean stretch_height;
435     Boolean uniform_border;
436     Dimension border;
437     unsigned char fill_mode;
438     unsigned char fit_mode;
439     Boolean sticky_end;
440     Dimension space_above;
441     Dimension space_end;
442     Dimension space_between;
443     Dimension max_box_height;
444     Dimension boxes_width;
445     Dimension fill_width;
446     Dimension box_count;
447 } XmGeoRowLayoutRec, *XmGeoRowLayout;
448 
449 typedef struct {
450     Boolean end;
451     XmGeoSegmentFixUpProc fix_up;
452     Dimension even_height;
453     Dimension even_width;
454     Dimension min_width;
455     Boolean stretch_width;
456     Boolean uniform_border;
457     Dimension border;
458     unsigned char fill_mode;
459     unsigned char fit_mode;
460     Boolean sticky_end;
461     Dimension space_left;
462     Dimension space_end;
463     Dimension space_between;
464     Dimension max_box_width;
465     Dimension boxed_height;
466     Dimension fill_height;
467     Dimension box_count;
468 } XmGeoColumnLayoutRec, *XmGeoColumnLayout;
469 
470 typedef union _XmGeoMajorLayoutRec {
471     XmGeoRowLayoutRec row;
472     XmGeoColumnLayoutRec col;
473 } XmGeoMajorLayoutRec;
474 
475 typedef struct _XmGeoMatrixRec {
476     Widget composite;
477     Widget instigator;
478     XtWidgetGeometry instig_request;
479     XtWidgetGeometry parent_request;
480     XtWidgetGeometry *in_layout;
481     XmKidGeometry boxes;  /* there is a NULL pointer add the end of each row */
482     XmGeoMajorLayout layouts;
483     Dimension margin_w;
484     Dimension margin_h;
485     Boolean stretch_boxes;
486     Boolean uniform_border;
487     Dimension border;
488     Dimension max_major;
489     Dimension boxes_minor;
490     Dimension fill_minor;
491     Dimension width;
492     Dimension height;
493     XmGeoExceptProc set_except;
494     XmGeoExceptProc almost_except;
495     XmGeoExceptProc no_geo_request;
496     XtPointer extension;
497     XmGeoExtDestructorProc ext_destructor;
498     XmGeoArrangeProc arrange_boxes;
499     unsigned char major_order;
500 } XmGeoMatrixRec;
501 
502 typedef XmGeoMatrix (*XmGeoCreateProc)(Widget, Widget, XtWidgetGeometry *);
503 
504 /*
505  * inheritance stuff
506  */
507 
508 #define XmInheritCallbackProc      ((XtCallbackProc) _XtInherit)
509 #define XmInheritTraversalProc     ((XmTraversalProc) _XtInherit)
510 #define XmInheritParentProcess     ((XmParentProcessProc) _XtInherit)
511 #define XmInheritWidgetProc        ((XtWidgetProc) _XtInherit)
512 #define XmInheritMenuProc          ((XmMenuProc) _XtInherit)
513 #define XmInheritTranslations      XtInheritTranslations
514 #define XmInheritCachePart         ((XtCacheClassPartPtr) _XtInherit)
515 #define XmInheritBaselineProc      ((XmWidgetBaselineProc) _XtInherit)
516 #define XmInheritDisplayRectProc   ((XmWidgetDisplayRectProc) _XtInherit)
517 #define XmInheritMarginsProc ((XmWidgetMarginsProc) _XtInherit)
518 #define XmInheritGeoMatrixCreate   ((XmGeoCreateProc) _XtInherit)
519 #define XmInheritFocusMovedProc    ((XmFocusMovedProc) _XtInherit)
520 #define XmInheritClass             ((WidgetClass) &_XmInheritClass)
521 #define XmInheritInitializePrehook ((XtInitProc) _XtInherit)
522 #define XmInheritSetValuesPrehook  ((XtSetValuesFunc) _XtInherit)
523 #define XmInheritInitializePosthook ((XtInitProc) _XtInherit)
524 #define XmInheritSetValuesPosthook ((XtSetValuesFunc) _XtInherit)
525 #define XmInheritGetValuesPosthook ((XtArgsProc) _XtInherit)
526 #define XmInheritSecObjectCreate   ((XtInitProc) _XtInherit)
527 #define XmInheritGetSecResData     ((XmGetSecResDataFunc) _XtInherit)
528 #define XmInheritInputDispatch     ((XmWidgetDispatchProc) _XtInherit)
529 #define XmInheritVisualChange      ((XmVisualChangeProc) _XtInherit)
530 #define XmInheritGetValuesPrehook  ((XtArgsProc) _XtInherit)
531 #define XmInheritArmAndActivate	   ((XtActionProc) _XtInherit)
532 #define XmInheritActionProc        ((XtActionProc) _XtInherit)
533 #define XmInheritFocusChange       ((XmFocusChangeProc) _XtInherit)
534 #define XmInheritWidgetNavigable   ((XmWidgetNavigableProc) _XtInherit)
535 #define XmInheritClassPartInitPrehook ((XtWidgetClassProc) _XtInherit)
536 #define XmInheritClassPartInitPosthook ((XtWidgetClassProc) _XtInherit)
537 #define XmInheritBorderHighlight   ((XtWidgetProc) _XtInherit)
538 #define XmInheritBorderUnhighlight ((XtWidgetProc) _XtInherit)
539 
540 #define XmInheritRealize           ((XtRealizeProc) _XtInherit)
541 #define XmInheritResize            ((XtWidgetProc) _XtInherit)
542 #define XmInheritSetOverrideCallback ((XtWidgetProc) _XtInherit)
543 #define XmInheritTraversalChildrenProc ((XmTraversalChildrenProc) _XtInherit)
544 
545 
546 
547 /*
548  * fast subclassing definitions
549  */
550 
551 enum {
552     XmCASCADE_BUTTON_BIT = 1,
553     XmCASCADE_BUTTON_GADGET_BIT,
554     XmCOMMAND_BOX_BIT,
555     XmDIALOG_SHELL_BIT,
556     XmLIST_BIT,
557     XmFORM_BIT,
558     XmTEXT_FIELD_BIT,
559     XmGADGET_BIT,
560     XmLABEL_BIT,
561     XmLABEL_GADGET_BIT,
562     XmMAIN_WINDOW_BIT,
563     XmMANAGER_BIT,
564     XmMENU_SHELL_BIT,
565     XmDRAWN_BUTTON_BIT,
566     XmPRIMITIVE_BIT,
567     XmPUSH_BUTTON_BIT,
568     XmPUSH_BUTTON_GADGET_BIT,
569     XmROW_COLUMN_BIT,
570     XmSCROLL_BAR_BIT,
571     XmSCROLLED_WINDOW_BIT,
572     XmSELECTION_BOX_BIT,
573     XmSEPARATOR_BIT,
574     XmSEPARATOR_GADGET_BIT,
575     XmTEXT_BIT,
576     XmTOGGLE_BUTTON_BIT,
577     XmTOGGLE_BUTTON_GADGET_BIT,
578     XmDROP_TRANSFER_BIT,
579     XmDROP_SITE_MANAGER_BIT,
580     XmDISPLAY_BIT,
581     XmSCREEN_BIT,
582     XmARROW_BUTTON_BIT = 32,
583     XmARROW_BUTTON_GADGET_BIT,
584     XmBULLETIN_BOARD_BIT,
585     XmDRAWING_AREA_BIT,
586     XmFILE_SELECTION_BOX_BIT,
587     XmFRAME_BIT,
588     XmMESSAGE_BOX_BIT,
589     XmSASH_BIT,
590     XmSCALE_BIT,
591     XmPANED_WINDOW_BIT,
592     XmVENDOR_SHELL_BIT,
593     XmCLIP_WINDOW_BIT,
594     XmDRAG_ICON_BIT,
595     XmTEAROFF_BUTTON_BIT,
596     XmDRAG_OVER_SHELL_BIT,
597     XmDRAG_CONTEXT_BIT,
598 
599     XmCONTAINER_BIT,
600     XmICONGADGET_BIT,
601     XmNOTEBOOK_BIT,
602     XmCSTEXT_BIT,
603     XmGRAB_SHELL_BIT,
604     XmCOMBO_BOX_BIT,
605     XmSPINBOX_BIT,
606     XmICONHEADER_BIT,
607 
608     XmICON_GADGET_BIT,
609 
610     XmFAST_SUBCLASS_TAIL_BIT,
611 
612     XmFIRST_APPLICATION_SUBCLASS_BIT = 192
613 };
614 
615 #define XmLAST_FAST_SUBCLASS_BIT (XmFAST_SUBCLASS_TAIL_BIT - 1)
616 
617 #undef XmIsCascadeButton
618 #define XmIsCascadeButton(w) \
619     (_XmIsFastSubclass(XtClass(w), XmCASCADE_BUTTON_BIT))
620 
621 #undef XmIsCascadeButtonGadget
622 #define XmIsCascadeButtonGadget(w) \
623     (_XmIsFastSubclass(XtClass(w), XmCASCADE_BUTTON_GADGET_BIT))
624 
625 #undef XmIsCommandBox
626 #define XmIsCommandBox(w) \
627     (_XmIsFastSubclass(XtClass(w), XmCOMMAND_BOX_BIT))
628 
629 #undef XmIsDialogShell
630 #define XmIsDialogShell(w) \
631     (_XmIsFastSubclass(XtClass(w), XmDIALOG_SHELL_BIT))
632 
633 #undef XmIsDisplay
634 #define XmIsDisplay(w) \
635     (_XmIsFastSubclass(XtClass(w), XmDISPLAY_BIT))
636 
637 #undef XmIsList
638 #define XmIsList(w) \
639     (_XmIsFastSubclass(XtClass(w), XmLIST_BIT))
640 
641 #undef XmIsForm
642 #define XmIsForm(w) \
643     (_XmIsFastSubclass(XtClass(w), XmFORM_BIT))
644 
645 #undef XmIsTextField
646 #define XmIsTextField(w) \
647     (_XmIsFastSubclass(XtClass(w), XmTEXT_FIELD_BIT))
648 
649 #undef XmIsGadget
650 #define XmIsGadget(w) \
651     (_XmIsFastSubclass(XtClass(w), XmGADGET_BIT))
652 
653 #undef XmIsLabel
654 #define XmIsLabel(w) \
655     (_XmIsFastSubclass(XtClass(w), XmLABEL_BIT))
656 
657 #undef XmIsLabelGadget
658 #define XmIsLabelGadget(w) \
659     (_XmIsFastSubclass(XtClass(w), XmLABEL_GADGET_BIT))
660 
661 #undef XmIsIconGadget
662 #define XmIsIconGadget(w) \
663     (_XmIsFastSubclass(XtClass(w), XmICON_GADGET_BIT))
664 
665 #undef XmIsMainWindow
666 #define XmIsMainWindow(w) \
667     (_XmIsFastSubclass(XtClass(w), XmMAIN_WINDOW_BIT))
668 
669 #undef XmIsManager
670 #define XmIsManager(w) \
671     (_XmIsFastSubclass(XtClass(w), XmMANAGER_BIT))
672 
673 #undef XmIsMenuShell
674 #define XmIsMenuShell(w) \
675     (_XmIsFastSubclass(XtClass(w), XmMENU_SHELL_BIT))
676 
677 #undef XmIsDragIcon
678 #define XmIsDragIcon(w) \
679     (_XmIsFastSubclass(XtClass(w), XmDRAG_ICON_BIT))
680 
681 #undef XmIsDropSiteManager
682 #define XmIsDropSiteManager(w) \
683     (_XmIsFastSubclass(XtClass(w), XmDROP_SITE_MANAGER_BIT))
684 
685 #undef XmIsDropTransfer
686 #define XmIsDropTransfer(w) \
687     (_XmIsFastSubclass(XtClass(w), XmDROP_TRANSFER_BIT))
688 
689 #undef XmIsDragOverShell
690 #define XmIsDragOverShell(w) \
691     (_XmIsFastSubclass(XtClass(w), XmDRAG_OVER_SHELL_BIT))
692 
693 #undef XmIsDragContext
694 #define XmIsDragContext(w) \
695     (_XmIsFastSubclass(XtClass(w), XmDRAG_CONTEXT_BIT))
696 
697 #undef XmIsDrawnButton
698 #define XmIsDrawnButton(w) \
699     (_XmIsFastSubclass(XtClass(w), XmDRAWN_BUTTON_BIT))
700 
701 #undef XmIsPrimitive
702 #define XmIsPrimitive(w) \
703     (_XmIsFastSubclass(XtClass(w), XmPRIMITIVE_BIT))
704 
705 #undef XmIsPushButton
706 #define XmIsPushButton(w) \
707     (_XmIsFastSubclass(XtClass(w), XmPUSH_BUTTON_BIT))
708 
709 #undef XmIsPushButtonGadget
710 #define XmIsPushButtonGadget(w) \
711     (_XmIsFastSubclass(XtClass(w), XmPUSH_BUTTON_GADGET_BIT))
712 
713 #undef XmIsRowColumn
714 #define XmIsRowColumn(w) \
715     (_XmIsFastSubclass(XtClass(w), XmROW_COLUMN_BIT))
716 
717 #undef XmIsScreen
718 #define XmIsScreen(w) \
719     (_XmIsFastSubclass(XtClass(w), XmSCREEN_BIT))
720 
721 #undef XmIsScrollBar
722 #define XmIsScrollBar(w) \
723     (_XmIsFastSubclass(XtClass(w), XmSCROLL_BAR_BIT))
724 
725 #undef XmIsScrolledWindow
726 #define XmIsScrolledWindow(w) \
727     (_XmIsFastSubclass(XtClass(w), XmSCROLLED_WINDOW_BIT))
728 
729 #undef XmIsSelectionBox
730 #define XmIsSelectionBox(w) \
731     (_XmIsFastSubclass(XtClass(w), XmSELECTION_BOX_BIT))
732 
733 #undef XmIsSeparator
734 #define XmIsSeparator(w) \
735     (_XmIsFastSubclass(XtClass(w), XmSEPARATOR_BIT))
736 
737 #undef XmIsSeparatorGadget
738 #define XmIsSeparatorGadget(w) \
739     (_XmIsFastSubclass(XtClass(w), XmSEPARATOR_GADGET_BIT))
740 
741 #undef XmIsText
742 #define XmIsText(w) \
743     (_XmIsFastSubclass(XtClass(w), XmTEXT_BIT))
744 
745 #undef XmIsTearOffButton
746 #define XmIsTearOffButton(w) \
747     (_XmIsFastSubclass(XtClass(w), XmTEAROFF_BUTTON_BIT))
748 
749 #undef XmIsToggleButton
750 #define XmIsToggleButton(w) \
751     (_XmIsFastSubclass(XtClass(w), XmTOGGLE_BUTTON_BIT))
752 
753 #undef XmIsToggleButtonGadget
754 #define XmIsToggleButtonGadget(w) \
755     (_XmIsFastSubclass(XtClass(w), XmTOGGLE_BUTTON_GADGET_BIT))
756 
757 #undef XmIsArrowButton
758 #define XmIsArrowButton(w) \
759     (_XmIsFastSubclass(XtClass(w), XmARROW_BUTTON_BIT))
760 
761 #undef XmIsArrowButtonGadget
762 #define XmIsArrowButtonGadget(w) \
763     (_XmIsFastSubclass(XtClass(w), XmARROW_BUTTON_GADGET_BIT))
764 
765 #undef XmIsBulletinBoard
766 #define XmIsBulletinBoard(w) \
767     (_XmIsFastSubclass(XtClass(w), XmBULLETIN_BOARD_BIT))
768 
769 #undef XmIsDrawingArea
770 #define XmIsDrawingArea(w) \
771     (_XmIsFastSubclass(XtClass(w), XmDRAWING_AREA_BIT))
772 
773 #undef XmIsFileSelectionBox
774 #define XmIsFileSelectionBox(w) \
775     (_XmIsFastSubclass(XtClass(w), XmFILE_SELECTION_BOX_BIT))
776 
777 #undef XmIsFrame
778 #define XmIsFrame(w) \
779     (_XmIsFastSubclass(XtClass(w), XmFRAME_BIT))
780 
781 #undef XmIsMessageBox
782 #define XmIsMessageBox(w) \
783     (_XmIsFastSubclass(XtClass(w), XmMESSAGE_BOX_BIT))
784 
785 #undef XmIsSash
786 #define XmIsSash(w) \
787     (_XmIsFastSubclass(XtClass(w), XmSASH_BIT))
788 
789 #undef XmIsScale
790 #define XmIsScale(w) \
791     (_XmIsFastSubclass(XtClass(w), XmSCALE_BIT))
792 
793 #undef XmIsPanedWindow
794 #define XmIsPanedWindow(w) \
795     (_XmIsFastSubclass(XtClass(w), XmPANED_WINDOW_BIT))
796 
797 /*
798  * XmPartOffset bogosity
799  */
800 
801 #define XmObjectIndex           0
802 #define ObjectIndex             XmObjectIndex
803 #define XmRectObjIndex          (XmObjectIndex + 1)
804 #define RectObjIndex            XmRectObjIndex
805 #define XmWindowObjIndex        (XmRectObjIndex + 1)
806 #define WindowObjIndex          XmWindowObjIndex
807 #define XmCoreIndex             0
808 #define CoreIndex               XmCoreIndex
809 #define XmCompositeIndex        (XmWindowObjIndex + 2)
810 #define CompositeIndex          XmCompositeIndex
811 #define XmConstraintIndex       (XmCompositeIndex + 1)
812 #define ConstraintIndex         XmConstraintIndex
813 #define XmGadgetIndex           (XmRectObjIndex + 1)
814 #define XmPrimitiveIndex        (XmWindowObjIndex + 2)
815 #define XmManagerIndex          (XmConstraintIndex + 1)
816 
817 #define XmArrowBIndex           (XmPrimitiveIndex + 1)
818 #define XmArrowButtonIndex      XmArrowBIndex
819 #define XmLabelIndex            (XmPrimitiveIndex + 1)
820 #define XmListIndex             (XmPrimitiveIndex + 1)
821 #define XmScrollBarIndex        (XmPrimitiveIndex + 1)
822 #define XmSeparatorIndex        (XmPrimitiveIndex + 1)
823 #define XmTextIndex             (XmPrimitiveIndex + 1)
824 
825 #define XmCascadeBIndex         (XmLabelIndex + 1)
826 #define XmCascadeButtonIndex    XmCascadeBIndex
827 #define XmDrawnBIndex           (XmLabelIndex + 1)
828 #define XmDrawnButtonIndex      XmDrawnBIndex
829 #define XmPushBIndex            (XmLabelIndex + 1)
830 #define XmPushButtonIndex       XmPushBIndex
831 #define XmToggleBIndex          (XmLabelIndex + 1)
832 #define XmToggleButtonIndex     XmToggleBIndex
833 #define XmTearOffButtonIndex    (XmPushBIndex + 1)
834 
835 #define XmArrowBGIndex          (XmGadgetIndex + 1)
836 #define XmArrowButtonGadgetIndex XmArrowBGIndex
837 #define XmLabelGIndex           (XmGadgetIndex + 1)
838 #define XmLabelGadgetIndex      XmLabelGIndex
839 #define XmSeparatoGIndex        (XmGadgetIndex + 1)
840 #define XmSeparatorGadgetIndex  XmSeparatoGIndex
841 
842 #define XmCascadeBGIndex        (XmLabelGIndex + 1)
843 #define XmCascadeButtonGadgetIndex XmCascadeBGIndex
844 #define XmPushBGIndex           (XmLabelGIndex + 1)
845 #define XmPushButtonGadgetIndex XmPushBGIndex
846 #define XmToggleBGIndex         (XmLabelGIndex + 1)
847 #define XmToggleButtonGadgetIndex XmToggleBGIndex
848 
849 #define XmBulletinBIndex        (XmManagerIndex + 1)
850 #define XmBulletinBoardIndex    XmBulletinBIndex
851 #define XmDrawingAIndex         (XmManagerIndex + 1)
852 #define XmDrawingAreaIndex      XmDrawingAIndex
853 #define XmFrameIndex            (XmManagerIndex + 1)
854 #define XmPanedWIndex           (XmManagerIndex + 1)
855 #define XmPanedWindowIndex      XmPanedWIndex
856 #define XmSashIndex             (XmPrimitiveIndex + 1)
857 #define XmRowColumnIndex        (XmManagerIndex + 1)
858 #define XmScaleIndex            (XmManagerIndex + 1)
859 #define XmScrolledWIndex        (XmManagerIndex + 1)
860 #define XmScrolledWindowIndex   XmScrolledWIndex
861 
862 #define XmFormIndex             (XmBulletinBIndex + 1)
863 #define XmMessageBIndex         (XmBulletinBIndex + 1)
864 #define XmMessageBoxIndex       XmMessageBIndex
865 #define XmSelectioBIndex        (XmBulletinBIndex + 1)
866 #define XmSelectionBoxIndex     XmSelectioBIndex
867 
868 #define XmMainWIndex            (XmScrolledWIndex + 1)
869 #define XmMainWindowIndex       XmMainWIndex
870 
871 #define XmCommandIndex          (XmSelectioBIndex + 1)
872 #define XmFileSBIndex           (XmSelectioBIndex + 1)
873 #define XmFileSelectionBoxIndex XmFileSBIndex
874 
875 #define XmShellIndex            (XmCompositeIndex + 1)
876 #define ShellIndex              XmShellIndex
877 #define XmOverrideShellIndex    (XmShellIndex + 1)
878 #define OverrideShellIndex      XmOverrideShellIndex
879 #define XmWMShellIndex          (XmShellIndex + 1)
880 #define WMShellIndex            XmWMShellIndex
881 #define XmVendorShellIndex      (XmWMShellIndex + 1)
882 #define VendorShellIndex        XmVendorShellIndex
883 #define XmTransientShellIndex   (XmVendorShellIndex + 1)
884 #define TransientShellIndex     XmTransientShellIndex
885 #define XmTopLevelShellIndex    (XmVendorShellIndex + 1)
886 #define TopLevelShellIndex      XmTopLevelShellIndex
887 #define XmApplicationShellIndex (XmTopLevelShellIndex + 1)
888 #define ApplicationShellIndex   XmApplicationShellIndex
889 #define XmDisplayIndex          (XmApplicationShellIndex + 1)
890 
891 #define XmDialogSIndex          (XmTransientShellIndex + 1)
892 #define XmDialogShellIndex      XmDialogSIndex
893 #define XmMenuShellIndex        (XmOverrideShellIndex + 1)
894 
895 #define XmDragIconIndex         (XmRectObjIndex + 1)
896 #define XmDropSiteManagerIndex  (XmObjectIndex + 1)
897 #define XmDropTransferIndex     (XmObjectIndex + 1)
898 #define XmDragOverShellIndex    (XmVendorShellIndex + 1)
899 #define XmDragContextIndex      (XmCoreIndex + 1)
900 
901 #define XmOFFSETBITS (sizeof(Cardinal)*8/2)
902 #define XmOFFSETMASK ((1<<XmOFFSETBITS)-1)
903 
904 typedef struct _XmPartResource {
905     String resource_name;
906     String resource_class;
907     String resource_type;
908     Cardinal resource_size;
909     Cardinal resource_offset;
910     String default_type;
911     XtPointer default_addr;
912 } XmPartResource;
913 
914 #define XmPartOffset(part, variable) \
915     ((part##Index) << XmOFFSETBITS) + XtOffsetOf( part##Part, variable)
916 
917 #define XmConstraintPartOffset(part, var) \
918     ((part##Index) << XmOFFSETBITS) + XtOffsetOf(part##ConstraintPart, var)
919 
920 #define XmGetPartOffset(r, off) \
921     ((r)->resource_offset & 0xffff) + \
922 	(*(off))[(r)->resource_offset >> XmOFFSETBITS];
923 
924 #define XmField(widget, offsetrecord, part, variable, type) \
925     (*(type *)(((char *) (widget)) + offsetrecord[part##Index] + \
926                 XtOffsetOf( part##Part, variable)))
927 
928 #define XmConstraintField(widget, offsetrecord, part, variable, type) \
929     (*(type *)(((char *) (widget)->core.constraints) + \
930 		offsetrecord[part##Index] + \
931 		XtOffsetOf( part##ConstraintPart, variable)))
932 
933 /*
934  * these structures must match those of XRectangle, XRegion
935  */
936 
937 typedef struct {
938     short x1, x2, y1, y2;
939 } XmRegionBox;
940 
941 typedef struct _XmRegion {
942     long	size;
943     long	numRects;
944     XmRegionBox	*rects;
945     XmRegionBox	extents;
946 } XmRegionRec, *XmRegion;
947 
948 /*********************** Trait.c ***********************************/
949 #include <Xm/TraitP.h>
950 
951 /*********************** GadgetUtils.c *****************************/
952 
953 XMLIBEXPORT XmGadget _XmInputInGadget(Widget cw, int x, int y);
954 XMLIBEXPORT XmGadget _XmInputForGadget(Widget cw, int x, int y);
955 XMLIBEXPORT void _XmConfigureObject(Widget g, Position x, Position y,
956 			Dimension width, Dimension height,
957 			Dimension border_width);
958 XMLIBEXPORT void XmeConfigureObject(Widget g, Position x, Position y,
959 			Dimension width, Dimension height,
960 			Dimension border_width);
961 XMLIBEXPORT void _XmResizeObject(Widget g, Dimension width, Dimension height,
962 		     Dimension border_width);
963 XMLIBEXPORT void _XmMoveObject(Widget g, Position x, Position y);
964 XMLIBEXPORT void _XmRedisplayGadgets(Widget w, XEvent *event, Region region);
965 XMLIBEXPORT void XmeRedisplayGadgets(Widget w, XEvent *event, Region region);
966 XMLIBEXPORT void _XmDispatchGadgetInput(Widget g, XEvent *event, Mask mask);
967 XMLIBEXPORT Time __XmGetDefaultTime(Widget w, XEvent *event);
968 
969 /************************* ImageCache.c *******************************/
970 
971 #define _XmCreateImage(IMAGE, DISPLAY, DATA, WIDTH, HEIGHT, BYTE_ORDER) {\
972     IMAGE = XCreateImage(DISPLAY,\
973 			 DefaultVisual(DISPLAY, DefaultScreen(DISPLAY)),\
974 			 1,\
975 			 XYBitmap,\
976 			 0,\
977 			 DATA,\
978 			 WIDTH, HEIGHT,\
979 			 8,\
980 			 (WIDTH+7) >> 3);\
981     IMAGE->byte_order = BYTE_ORDER;\
982     IMAGE->bitmap_unit = 8;\
983     IMAGE->bitmap_bit_order = LSBFirst;\
984 }
985 
986 XMLIBEXPORT Boolean _XmInstallImage(XImage *image, char *image_name,
987 		        int hot_x, int hot_y);
988 XMLIBEXPORT Boolean _XmGetImage(Screen *screen, char *image_name, XImage **image);
989 XMLIBEXPORT Boolean _XmGetPixmapData(Screen *screen,
990 			 Pixmap pixmap,
991 			 char **image_name,
992 			 int *depth,
993 			 Pixel *foreground,
994 			 Pixel *background,
995 			 int *hot_x,
996 			 int *hot_y,
997 			 unsigned int *width,
998 			 unsigned int *height);
999 XMLIBEXPORT Boolean XmeGetPixmapData(Screen *screen,
1000 			 Pixmap pixmap,
1001 			 char **image_name,
1002 			 int *depth,
1003 			 Pixel *foreground,
1004 			 Pixel *background,
1005 			 int *hot_x,
1006 			 int *hot_y,
1007 			 unsigned int *width,
1008 			 unsigned int *height);
1009 XMLIBEXPORT Pixmap _XmGetPixmap(Screen *screen,
1010 		    char *image_name,
1011 		    int depth,
1012 		    Pixel foreground,
1013 		    Pixel background);
1014 XMLIBEXPORT Boolean _XmInstallPixmap(Pixmap pixmap,
1015 			 Screen *screen,
1016 			 char *image_name,
1017 			 Pixel foreground,
1018 			 Pixel background);
1019 
1020 /************************** MapEvent.c *****************************/
1021 
1022 XMLIBEXPORT Boolean _XmMapBtnEvent(String str,
1023 		       int *eventType,
1024 		       unsigned int *button,
1025 		       unsigned int *modifiers);
1026 XMLIBEXPORT Boolean _XmMapKeyEvent(String str,
1027 		       int *eventType,
1028 		       unsigned *keysym,
1029 		       unsigned int *modifiers);
1030 XMLIBEXPORT Boolean _XmMatchBtnEvent(XEvent *event,
1031 		         int eventType,
1032 			 unsigned int button,
1033 			 unsigned int modifiers);
1034 XMLIBEXPORT Boolean _XmMatchKeyEvent(XEvent *event,
1035 			 int eventType,
1036 			 unsigned int key,
1037 			 unsigned int modifiers);
1038 
1039 /************************** ReadImage.c *****************************/
1040 
1041 XMLIBEXPORT XImage *_XmGetImageFromFile(char *filename);
1042 XMLIBEXPORT XImage *_XmGetImageAndHotSpotFromFile(char *filename, int *hot_x, int *hot_y);
1043 
1044 /************************* RenderTable.c ****************************/
1045 
1046 XMLIBEXPORT Boolean XmeRenderTableGetDefaultFont(XmRenderTable renderTable,
1047                                      XFontStruct  **fontStruct);
1048 
1049 /************************* ResConvert.c *****************************/
1050 
1051 enum { XmLABEL_FONTLIST = 1,
1052        XmBUTTON_FONTLIST,
1053        XmTEXT_FONTLIST
1054 };
1055 
1056 enum { XmLABEL_RENDER_TABLE = 1,
1057        XmBUTTON_RENDER_TABLE,
1058        XmTEXT_RENDER_TABLE
1059 };
1060 
1061 
1062 XMLIBEXPORT void _XmRegisterConverters(void);
1063 #define _XmWarning XmeWarning
1064 XMLIBEXPORT void XmeWarning(Widget w, const char *message, ...);
1065 XMLIBEXPORT Boolean _XmStringsAreEqual(char *in_str, char *text_str);
1066 XMLIBEXPORT Boolean XmeNamesAreEqual(char *in_str, char *text_str);
1067 XMLIBEXPORT XmFontList _XmGetDefaultFontList(Widget w, unsigned char fontListType);
1068 XMLIBEXPORT char *_XmConvertCSToString(XmString cs);
1069 XMLIBEXPORT Boolean _XmCvtXmStringToCT(XrmValue *from, XrmValue *to);
1070 XMLIBEXPORT XmFontList XmeGetDefaultRenderTable(Widget w, unsigned int fontListType);
1071 
1072 
1073 /**************************** ResInd.c *****************************/
1074 
1075 XMLIBEXPORT void _XmBuildResources(XmSyntheticResource **wc_resources_ptr,
1076 		       int *wc_num_resources_ptr,
1077 		       XmSyntheticResource *sc_resources,
1078 		       int sc_num_resources);
1079 XMLIBEXPORT void _XmInitializeSyntheticResources(XmSyntheticResource *resources,
1080 				     int num_resources);
1081 XMLIBEXPORT void _XmPrimitiveGetValuesHook(Widget w,
1082 			       ArgList args,
1083 			       Cardinal *num_args);
1084 XMLIBEXPORT void _XmGadgetGetValuesHook(Widget w,
1085 			    ArgList args,
1086 			    Cardinal *num_args);
1087 XMLIBEXPORT void _XmManagerGetValuesHook(Widget w,
1088 			     ArgList args,
1089 			     Cardinal *num_args);
1090 XMLIBEXPORT void _XmExtGetValuesHook(Widget w,
1091 			 ArgList args,
1092 			 Cardinal *num_args);
1093 XMLIBEXPORT void _XmExtImportArgs(Widget w,
1094 		      ArgList args,
1095 		      Cardinal *num_args);
1096 XMLIBEXPORT void _XmPrimitiveImportArgs(Widget w,
1097 			    ArgList args,
1098 			    Cardinal *num_args);
1099 XMLIBEXPORT void _XmGadgetImportArgs(Widget w,
1100 			 ArgList args,
1101 			 Cardinal *num_args);
1102 XMLIBEXPORT void _XmGadgetImportSecondaryArgs(Widget w,
1103 				  ArgList args,
1104 				  Cardinal *num_args);
1105 XMLIBEXPORT void _XmManagerImportArgs(Widget w,
1106 			  ArgList args,
1107 			  Cardinal *num_args);
1108 XMLIBEXPORT int _XmConvertUnits(Screen *screen,
1109 		    int dimension,
1110 		    int from_type,
1111 		    int from_val,
1112 		    int to_type);
1113 XMLIBEXPORT XmImportOperator _XmToHorizontalPixels(Widget widget,
1114 				       int offset,
1115 				       XtArgVal *value);
1116 XMLIBEXPORT XmImportOperator XmeToHorizontalPixels(Widget widget,
1117 				       int offset,
1118 				       XtArgVal *value);
1119 XMLIBEXPORT XmImportOperator _XmToVerticalPixels(Widget widget,
1120 				     int offset,
1121 				     XtArgVal *value);
1122 XMLIBEXPORT XmImportOperator XmeToVerticalPixels(Widget widget,
1123 				     int offset,
1124 				     XtArgVal *value);
1125 XMLIBEXPORT void _XmFromHorizontalPixels(Widget widget,
1126 			     int offset,
1127 			     XtArgVal *value);
1128 XMLIBEXPORT void XmeFromHorizontalPixels(Widget widget,
1129 			     int offset,
1130 			     XtArgVal *value);
1131 XMLIBEXPORT void _XmFromVerticalPixels(Widget widget,
1132 			   int offset,
1133 			   XtArgVal *value);
1134 XMLIBEXPORT void XmeFromVerticalPixels(Widget widget,
1135 			   int offset,
1136 			   XtArgVal *value);
1137 XMLIBEXPORT void _XmSortResourceList(XrmResource *list[], Cardinal len);
1138 XMLIBEXPORT void _XmUnitTypeDefault(Widget widget,
1139 		        int offset,
1140 		        XrmValue *value);
1141 XMLIBEXPORT unsigned char _XmGetUnitType(Widget widget);
1142 
1143 
1144 /************************* UniqueEvent.c *****************************/
1145 
1146 XMLIBEXPORT Boolean _XmIsEventUnique(XEvent *event);
1147 XMLIBEXPORT void _XmRecordEvent(XEvent *event);
1148 
1149 /*************************** Visual.c ********************************/
1150 
1151 #define XmLOOK_AT_SCREEN          (1<<0)
1152 #define XmLOOK_AT_CMAP            (1<<1)
1153 #define XmLOOK_AT_BACKGROUND      (1<<2)
1154 #define XmLOOK_AT_FOREGROUND      (1<<3)
1155 #define XmLOOK_AT_TOP_SHADOW      (1<<4)
1156 #define XmLOOK_AT_BOTTOM_SHADOW   (1<<5)
1157 #define XmLOOK_AT_SELECT          (1<<6)
1158 
1159 #define XmBACKGROUND     ((unsigned char) (1<<0))
1160 #define XmFOREGROUND     ((unsigned char) (1<<1))
1161 #define XmTOP_SHADOW     ((unsigned char) (1<<2))
1162 #define XmBOTTOM_SHADOW  ((unsigned char) (1<<3))
1163 #define XmSELECT         ((unsigned char) (1<<4))
1164 
1165 typedef struct _XmColorData {
1166    Screen * screen;
1167    Colormap color_map;
1168    unsigned char allocated;
1169    XColor background;
1170    XColor foreground;
1171    XColor top_shadow;
1172    XColor bottom_shadow;
1173    XColor select;
1174 } XmColorData;
1175 
1176 XMLIBEXPORT void _XmRegisterPixmapConverters(void);
1177 XMLIBEXPORT char *_XmGetBGPixmapName(void);
1178 XMLIBEXPORT void _XmClearBGPixmap(void);
1179 XMLIBEXPORT void XmeGetDefaultPixel(Widget widget, int type, int offset, XrmValue *value);
1180 XMLIBEXPORT void _XmForegroundColorDefault(Widget widget, int offset, XrmValue *value);
1181 XMLIBEXPORT void _XmHighlightColorDefault(Widget widget, int offset, XrmValue *value);
1182 XMLIBEXPORT void _XmBackgroundColorDefault(Widget widget, int offset, XrmValue *value);
1183 XMLIBEXPORT void _XmTopShadowColorDefault(Widget widget, int offset, XrmValue *value);
1184 XMLIBEXPORT void _XmBottomShadowColorDefault(Widget widget, int offset, XrmValue *value);
1185 XMLIBEXPORT void _XmPrimitiveTopShadowPixmapDefault(Widget widget, int offset,
1186 				        XrmValue *value);
1187 XMLIBEXPORT void _XmManagerTopShadowPixmapDefault(Widget widget, int offset,
1188 				      XrmValue *value);
1189 XMLIBEXPORT void _XmPrimitiveHighlightPixmapDefault(Widget widget, int offset,
1190 					XrmValue *value);
1191 XMLIBEXPORT void _XmManagerHighlightPixmapDefault(Widget widget, int offset,
1192 				      XrmValue *value);
1193 XMLIBEXPORT void _XmGetDefaultThresholdsForScreen(Screen *screen);
1194 XMLIBEXPORT String _XmGetDefaultBackgroundColorSpec(Screen *screen);
1195 XMLIBEXPORT void _XmSetDefaultBackgroundColorSpec(Screen *screen, String new_color_spec);
1196 XMLIBEXPORT XmColorData *_XmGetDefaultColors(Screen *screen, Colormap color_map);
1197 XMLIBEXPORT Boolean _XmSearchColorCache(unsigned int which, XmColorData *values,
1198 			    XmColorData **ret);
1199 XMLIBEXPORT XmColorData *_XmAddToColorCache(XmColorData *new_rec);
1200 XMLIBEXPORT Pixel _XmBlackPixel(Screen *screen, Colormap colormap, XColor blackcolor);
1201 XMLIBEXPORT Pixel _XmWhitePixel(Screen *screen, Colormap colormap, XColor whitecolor);
1202 XMLIBEXPORT Pixel _XmAccessColorData(XmColorData *cd, unsigned char which);
1203 XMLIBEXPORT XmColorData *_XmGetColors(Screen *screen, Colormap color_map, Pixel background);
1204 XMLIBEXPORT void _XmSelectColorDefault(Widget w, int offset, XrmValue *val);
1205 
1206 /**************************** XmString.c **********************************/
1207 
1208 XMLIBEXPORT XFontStruct *_XmGetFirstFont(XmFontListEntry entry);
1209 XMLIBEXPORT Boolean _XmFontListGetDefaultFont(XmFontList fontlist,
1210 				  XFontStruct **font_struct);
1211 XMLIBEXPORT Boolean _XmFontListSearch(XmFontList fontlist, XmStringCharSet charset,
1212 			  short *indx, XFontStruct **font_struct);
1213 XMLIBEXPORT Boolean _XmStringIsXmString(XmString string);
1214 XMLIBEXPORT Boolean _XmStringInitContext(_XmStringContext *context, _XmString string);
1215 XMLIBEXPORT Boolean _XmStringGetNextSegment(_XmStringContext context,
1216 				XmStringCharSet *charset,
1217 				XmStringDirection *direction,
1218 				char **text,
1219 				short *char_count,
1220 				Boolean *separator) ;
1221 XMLIBEXPORT void _XmStringFreeContext(_XmStringContext context) ;
1222 XMLIBEXPORT Dimension _XmStringWidth(XmFontList fontlist, _XmString string) ;
1223 XMLIBEXPORT Dimension _XmStringHeight(XmFontList fontlist, _XmString string) ;
1224 XMLIBEXPORT void _XmStringExtent(XmFontList fontlist, _XmString string,
1225 		     Dimension *width, Dimension *height) ;
1226 XMLIBEXPORT Boolean _XmStringEmpty(_XmString string);
1227 XMLIBEXPORT void _XmStringDraw(Display *d, Window w, XmFontList fontlist, _XmString string,
1228 		   GC gc, Position x, Position y, Dimension width,
1229 		   unsigned char align, unsigned char lay_dir,
1230 		   XRectangle *clip);
1231 XMLIBEXPORT void _XmStringDrawImage(Display *d, Window w,
1232 			XmFontList fontlist, _XmString string,
1233 			GC gc, Position x, Position y, Dimension width,
1234 			unsigned char align, unsigned char lay_dir,
1235 			XRectangle *clip);
1236 XMLIBEXPORT void _XmStringDrawUnderline(Display *d, Window w, XmFontList f, _XmString s,
1237 			    GC gc, Position x, Position y, Dimension width,
1238 			    unsigned char align, unsigned char lay_dir,
1239 			    XRectangle *clip, _XmString u);
1240 XMLIBEXPORT void _XmStringDrawMnemonic(Display *d, Window w,
1241                            XmFontList fontlist, _XmString string,
1242                            GC gc, Position x, Position y, Dimension width,
1243                            unsigned char alignment,
1244                            unsigned char layout_direction,
1245                            XRectangle *clip,
1246                            String mnemonic, XmStringCharSet charset);
1247 XMLIBEXPORT _XmString _XmStringCreate(XmString cs);
1248 XMLIBEXPORT void _XmStringFree(_XmString string);
1249 XMLIBEXPORT char *_XmStringGetCurrentCharset(void) ;
1250 XMLIBEXPORT char *_XmCharsetCanonicalize(String charset);
1251 XMLIBEXPORT _XmString _XmStringCopy(_XmString string);
1252 XMLIBEXPORT Boolean _XmStringByteCompare(_XmString a, _XmString b);
1253 XMLIBEXPORT Boolean _XmStringHasSubstring(_XmString string, _XmString substring);
1254 XMLIBEXPORT XmString _XmStringCreateExternal(XmFontList fontlist, _XmString cs);
1255 XMLIBEXPORT Dimension _XmStringBaseline(XmFontList fontlist, _XmString string);
1256 XMLIBEXPORT int _XmStringLineCount(_XmString string);
1257 XMLIBEXPORT char * _XmStringGetTextConcat(XmString string);
1258 XMLIBEXPORT Boolean _XmStringIsCurrentCharset(XmStringCharSet c);
1259 XMLIBEXPORT Boolean _XmStringSingleSegment(XmString str, char **pTextOut,
1260 			       XmStringCharSet *pCharsetOut);
1261 
1262 XMLIBEXPORT void _XmStringUpdateWMShellTitle(XmString xmstr, Widget shell);
1263 XMLIBEXPORT void XmeStringUpdateWMShellTitle(XmString xmstr, Widget shell);
1264 
1265 XMLIBEXPORT XmIncludeStatus XmeGetNextCharacter(XtPointer *text_in_out,
1266                                     XtPointer text_end,
1267                                     XmTextType type,
1268                                     XmStringTag tag,
1269                                     XmParseMapping entry,
1270                                     int pattern_length,
1271                                     XmString *str_include,
1272                                     XtPointer call_data);
1273 
1274 XMLIBEXPORT XmIncludeStatus XmeGetDirection(XtPointer *text_in_out,
1275                                 XtPointer text_end,
1276                                 XmTextType type,
1277                                 XmStringTag tag,
1278                                 XmParseMapping entry,
1279                                 int pattern_length,
1280                                 XmString *str_include,
1281                                 XtPointer call_data);
1282 
1283 
1284 
1285 /************************* Traversal.c ********************************/
1286 
1287 #define XmTAB_ANY	((XmNavigationType)255)
1288 #define XmNONE_OR_BC	((XmNavigationType)254)
1289 
1290 typedef struct _XmFocusMovedCallbackStruct {
1291     int 	reason;
1292     XEvent  	*event;
1293     Boolean 	cont;
1294     Widget	old_focus;
1295     Widget	new_focus;
1296     unsigned char focus_policy;
1297 } XmFocusMovedCallbackStruct, *XmFocusMovedCallback;
1298 
1299 typedef struct _XmFocusDataRec *XmFocusData;
1300 
1301 XMLIBEXPORT XmFocusData _XmCreateFocusData(void);
1302 XMLIBEXPORT void _XmDestroyFocusData(XmFocusData focusData);
1303 XMLIBEXPORT void _XmSetActiveTabGroup(XmFocusData focusData, Widget tabGroup);
1304 XMLIBEXPORT Widget _XmGetActiveItem(Widget w);
1305 XMLIBEXPORT void _XmNavigInitialize(Widget request, Widget new_wid,
1306 			ArgList args, Cardinal *num_args);
1307 XMLIBEXPORT Boolean _XmNavigSetValues(Widget current, Widget request, Widget new_wid,
1308 			  ArgList args, Cardinal *num_args);
1309 XMLIBEXPORT void _XmNavigChangeManaged(Widget wid);
1310 XMLIBEXPORT void XmeNavigChangeManaged(Widget wid);
1311 XMLIBEXPORT void _XmNavigResize(Widget wid);
1312 XMLIBEXPORT void _XmValidateFocus(Widget wid);
1313 XMLIBEXPORT void _XmNavigDestroy(Widget wid);
1314 XMLIBEXPORT Boolean _XmCallFocusMoved(Widget old, Widget new_wid, XEvent *event);
1315 XMLIBEXPORT Boolean _XmMgrTraversal(Widget wid, XmTraversalDirection direction);
1316 XMLIBEXPORT void _XmClearFocusPath(Widget wid);
1317 XMLIBEXPORT Boolean _XmFocusIsHere(Widget w);
1318 XMLIBEXPORT unsigned char _XmGetFocusPolicy(Widget w);
1319 XMLIBEXPORT Widget _XmFindTopMostShell(Widget w);
1320 XMLIBEXPORT void _XmFocusModelChanged(Widget wid,
1321 			  XtPointer client_data, XtPointer call_data);
1322 XMLIBEXPORT Boolean _XmGrabTheFocus(Widget w, XEvent *event);
1323 XMLIBEXPORT XmFocusData _XmGetFocusData(Widget wid);
1324 XMLIBEXPORT Boolean _XmCreateVisibilityRect(Widget w, XRectangle *rectPtr);
1325 XMLIBEXPORT void _XmSetRect(XRectangle *rect, Widget w);
1326 XMLIBEXPORT int _XmIntersectRect(XRectangle *srcRectA, Widget widget, XRectangle *dstRect);
1327 XMLIBEXPORT int _XmEmptyRect(XRectangle *r);
1328 XMLIBEXPORT void _XmClearRect(XRectangle *r);
1329 XMLIBEXPORT Boolean _XmIsNavigable(Widget wid);
1330 XMLIBEXPORT void _XmWidgetFocusChange(Widget wid, XmFocusChange change);
1331 XMLIBEXPORT Widget _XmNavigate(Widget wid, XmTraversalDirection direction);
1332 XMLIBEXPORT Widget _XmFindNextTabGroup(Widget wid);
1333 XMLIBEXPORT Widget _XmFindPrevTabGroup(Widget wid);
1334 XMLIBEXPORT void _XmSetInitialOfTabGroup(Widget tab_group, Widget init_focus);
1335 XMLIBEXPORT void _XmResetTravGraph(Widget wid);
1336 XMLIBEXPORT Boolean _XmFocusIsInShell(Widget wid);
1337 XMLIBEXPORT Boolean XmeFocusIsInShell(Widget wid);
1338 XMLIBEXPORT Boolean _XmShellIsExclusive(Widget wid);
1339 XMLIBEXPORT Widget _XmGetFirstFocus(Widget wid);
1340 
1341 /*********************** TravAct.c ******************************/
1342 
1343 XMLIBEXPORT void _XmTrackShellFocus(Widget wid,
1344 			XtPointer client_data,
1345 			XEvent *event,
1346 			Boolean *dontSwallow);
1347 
1348 XMLIBEXPORT void _XmManagerEnter(Widget wid,
1349 		     XEvent *event_in,
1350 		     String *params,
1351 		     Cardinal *num_params);
1352 
1353 XMLIBEXPORT void _XmManagerLeave(Widget wid,
1354 		     XEvent *event_in,
1355 		     String *params,
1356 		     Cardinal *num_params);
1357 
1358 XMLIBEXPORT void _XmManagerFocusInInternal(Widget wid,
1359 			       XEvent *event,
1360 			       String *params,
1361 			       Cardinal *num_params);
1362 
1363 XMLIBEXPORT void _XmManagerFocusIn(Widget mw,
1364 		       XEvent *event,
1365 		       String *params,
1366 		       Cardinal *num_params);
1367 
1368 XMLIBEXPORT void _XmManagerFocusOut(Widget wid,
1369 		        XEvent *event,
1370 		        String *params,
1371 		        Cardinal *num_params);
1372 
1373 XMLIBEXPORT void _XmManagerUnmap(Widget mw,
1374 		     XEvent *event,
1375 		     String *params,
1376 		     Cardinal *num_params);
1377 
1378 XMLIBEXPORT void _XmPrimitiveEnter(Widget w,
1379 		       XEvent *event,
1380 		       String *params,
1381 		       Cardinal *num_params);
1382 
1383 XMLIBEXPORT void _XmPrimitiveLeave(Widget w,
1384 		       XEvent *event,
1385 		       String *params,
1386 		       Cardinal *num_params);
1387 
1388 XMLIBEXPORT void _XmPrimitiveFocusOut(Widget w,
1389 			  XEvent *event,
1390 			  String *params,
1391 			  Cardinal *num_params);
1392 
1393 XMLIBEXPORT void _XmPrimitiveFocusIn(Widget w,
1394 			 XEvent *event,
1395 			 String *params,
1396 			 Cardinal *num_params);
1397 
1398 XMLIBEXPORT void _XmPrimitiveUnmap(Widget w,
1399 		       XEvent *event,
1400 		       String *params,
1401 		       Cardinal *num_params);
1402 
1403 XMLIBEXPORT void _XmEnterGadget(Widget w,
1404 		    XEvent *event,
1405 		    String *params,
1406 		    Cardinal *num_params);
1407 
1408 XMLIBEXPORT void _XmLeaveGadget(Widget w,
1409 		    XEvent *event,
1410 		    String *params,
1411 		    Cardinal *num_params);
1412 
1413 XMLIBEXPORT void _XmFocusInGadget(Widget w,
1414 		      XEvent *event,
1415 		      String *params,
1416 		      Cardinal *num_params);
1417 
1418 XMLIBEXPORT void _XmFocusOutGadget(Widget w,
1419 		       XEvent *event,
1420 		       String *params,
1421 		       Cardinal *num_params);
1422 
1423 /************************ GeoUtils.c ***************************/
1424 
1425 XMLIBEXPORT void _XmGeoAdjustBoxes(XmGeoMatrix geoSpec);
1426 XMLIBEXPORT void _XmGeoArrangeBoxes(XmGeoMatrix geoSpec, Position x, Position y,
1427 			       Dimension *pW, Dimension *pH);
1428 XMLIBEXPORT Dimension _XmGeoBoxesSameWidth(XmKidGeometry rowPtr, Dimension width);
1429 XMLIBEXPORT Dimension _XmGeoBoxesSameHeight(XmKidGeometry rowPtr, Dimension height);
1430 XMLIBEXPORT void _XmGeoClearRectObjAreas(RectObj r, XWindowChanges *old);
1431 XMLIBEXPORT int _XmGeoCount_kids(CompositeWidget c);
1432 XMLIBEXPORT void _XmGeoGetDimensions(XmGeoMatrix geoSpec);
1433 XMLIBEXPORT XmKidGeometry _XmGetKidGeo(Widget wid, Widget instigator,
1434 			   XtWidgetGeometry *request,
1435 			   int uniform_border, Dimension border,
1436 			   int uniform_width_margins,
1437 			   int uniform_height_margins,
1438 			   Widget help, int geo_type);
1439 XMLIBEXPORT void _XmGeoLoadValues(Widget wid, int geoType, Widget instigator,
1440 		      XtWidgetGeometry *request,
1441 		      XtWidgetGeometry *geoResult);
1442 XMLIBEXPORT XmGeoMatrix _XmGeoMatrixAlloc(unsigned int numRows,
1443 			      unsigned int numBoxes,
1444 			      unsigned int extSize);
1445 XMLIBEXPORT void _XmGeoMatrixFree(XmGeoMatrix geo_spec);
1446 XMLIBEXPORT void _XmGeoMatrixGet(XmGeoMatrix geoSpec, int geoType);
1447 XMLIBEXPORT void _XmGeoMatrixSet(XmGeoMatrix geoSpec);
1448 XMLIBEXPORT Boolean _XmGeoReplyYes(Widget wid, XtWidgetGeometry *desired,
1449 				   XtWidgetGeometry *response);
1450 XMLIBEXPORT Boolean _XmGeoSetupKid(XmKidGeometry geo, Widget kidWid);
1451 XMLIBEXPORT Boolean _XmGeometryEqual(Widget wid, XtWidgetGeometry *geoA,
1452 				     XtWidgetGeometry *geoB);
1453 XMLIBEXPORT void _XmHandleSizeUpdate(Widget wid, unsigned char policy,
1454 			 XmGeoCreateProc createMatrix);
1455 XMLIBEXPORT XtGeometryResult _XmHandleQueryGeometry(Widget wid,
1456 				        XtWidgetGeometry *intended,
1457 				        XtWidgetGeometry *desired,
1458 				        unsigned char policy,
1459 				        XmGeoCreateProc createMatrix);
1460 XMLIBEXPORT XtGeometryResult _XmHandleGeometryManager(Widget wid, Widget instigator,
1461 					  XtWidgetGeometry *desired,
1462 					  XtWidgetGeometry *allowed,
1463 					  unsigned char policy,
1464 					  XmGeoMatrix *cachePtr,
1465 					  XmGeoCreateProc createMatrix);
1466 XMLIBEXPORT XtGeometryResult _XmMakeGeometryRequest(Widget w,
1467 					XtWidgetGeometry *geom);
1468 XMLIBEXPORT void _XmMenuBarFix(XmGeoMatrix geoSpec, int action,
1469 		   XmGeoMajorLayout layoutPtr, XmKidGeometry rowPtr);
1470 XMLIBEXPORT void _XmSeparatorFix(XmGeoMatrix geoSpec, int action,
1471 		     XmGeoMajorLayout layoutPtr, XmKidGeometry rowPtr);
1472 XMLIBEXPORT void _XmSetKidGeo(XmKidGeometry kg, Widget instigator);
1473 XMLIBEXPORT XtGeometryResult XmeReplyToQueryGeometry(Widget w,
1474 	XtWidgetGeometry *request, XtWidgetGeometry *reply);
1475 
1476 
1477 /*************************** Region.c ***************************/
1478 XMLIBEXPORT XmRegion _XmRegionCreate(void);
1479 XMLIBEXPORT XmRegion _XmRegionCreateSize(long size);
1480 XMLIBEXPORT void _XmRegionComputeExtents(XmRegion r);
1481 XMLIBEXPORT void _XmRegionGetExtents(XmRegion r, XRectangle *rect);
1482 XMLIBEXPORT void _XmRegionUnionRectWithRegion(XRectangle *rect,
1483 				  XmRegion source,
1484 				  XmRegion dest);
1485 XMLIBEXPORT void _XmRegionIntersectRectWithRegion(XRectangle *rect,
1486 				      XmRegion source,
1487 				      XmRegion dest);
1488 XMLIBEXPORT long _XmRegionGetNumRectangles(XmRegion r);
1489 XMLIBEXPORT void _XmRegionGetRectangles(XmRegion r,
1490 			    XRectangle **rects,
1491 			    long *nrects);
1492 XMLIBEXPORT void _XmRegionSetGCRegion(Display *dpy,
1493 			  GC gc,
1494 			  int x_origin,
1495 			  int y_origin,
1496 			  XmRegion r);
1497 XMLIBEXPORT void _XmRegionDestroy(XmRegion r);
1498 XMLIBEXPORT void _XmRegionOffset(XmRegion pRegion, int x, int y);
1499 XMLIBEXPORT void _XmRegionIntersect(XmRegion reg1, XmRegion reg2, XmRegion newReg);
1500 XMLIBEXPORT void _XmRegionUnion(XmRegion reg1, XmRegion reg2, XmRegion newReg);
1501 XMLIBEXPORT void _XmRegionSubtract(XmRegion regM, XmRegion regS, XmRegion regD);
1502 XMLIBEXPORT Boolean _XmRegionIsEmpty(XmRegion r);
1503 XMLIBEXPORT Boolean _XmRegionEqual(XmRegion r1, XmRegion r2);
1504 XMLIBEXPORT Boolean _XmRegionPointInRegion(XmRegion pRegion, int x, int y);
1505 XMLIBEXPORT void _XmRegionClear(XmRegion r );
1506 XMLIBEXPORT void _XmRegionShrink(XmRegion r, int dx, int dy);
1507 XMLIBEXPORT void _XmRegionDrawShadow(Display *display,
1508 			 Drawable d,
1509 			 GC top_gc,
1510 			 GC bottom_gc,
1511 			 XmRegion region,
1512 			 Dimension border_thick,
1513 			 Dimension shadow_thick,
1514 			 unsigned int shadow_type);
1515 
1516 /****************************** Dest.c ***************************/
1517 
1518 XMLIBEXPORT void _XmSetDestination(Display *dpy, Widget w);
1519 
1520 /***************************** XmIm.c ****************************/
1521 
1522 XMLIBEXPORT void _XmImChangeManaged(Widget vw);
1523 XMLIBEXPORT void _XmImRealize(Widget vw);
1524 XMLIBEXPORT void _XmImResize(Widget vw);
1525 XMLIBEXPORT void _XmImRedisplay(Widget vw);
1526 
1527 /************************* DragBS.c ******************************/
1528 
1529 XMLIBEXPORT void _XmInitAtomPairs(Display *display);
1530 XMLIBEXPORT void _XmInitTargetsTable(Display *display);
1531 XMLIBEXPORT Cardinal _XmIndexToTargets(Widget shell, Cardinal t_index, Atom **targetsRtn);
1532 XMLIBEXPORT Cardinal _XmTargetsToIndex(Widget shell, Atom *targets, Cardinal numTargets);
1533 XMLIBEXPORT Atom _XmAllocMotifAtom(Widget shell, Time time);
1534 XMLIBEXPORT void _XmFreeMotifAtom(Widget shell, Atom atom);
1535 XMLIBEXPORT void _XmDestroyMotifWindow(Display *dpy);
1536 XMLIBEXPORT Window _XmGetDragProxyWindow(Display *display);
1537 
1538 /************************* DragOverS.c ***************************/
1539 
1540 XMLIBEXPORT void _XmDragOverHide(Widget w, Position clipOriginX, Position clipOriginY,
1541 		     XmRegion clipRegion);
1542 XMLIBEXPORT void _XmDragOverShow(Widget w, Position clipOriginX, Position clipOriginY,
1543 		     XmRegion clipRegion);
1544 XMLIBEXPORT void _XmDragOverMove(Widget w, Position x, Position y);
1545 XMLIBEXPORT void _XmDragOverChange(Widget w, unsigned char dropSiteStatus);
1546 XMLIBEXPORT void _XmDragOverFinish(Widget w, unsigned char completionStatus);
1547 XMLIBEXPORT Cursor _XmDragOverGetActiveCursor( Widget w);
1548 XMLIBEXPORT void _XmDragOverSetInitialPosition(Widget w,
1549 				   Position initialX, Position initialY);
1550 
1551 /************************** DragUnder.c *******************************/
1552 
1553 XMLIBEXPORT void _XmDragUnderAnimation(Widget w, XtPointer clientData, XtPointer callData);
1554 
1555 /************************** Xme.c **************************************/
1556 
1557 XMLIBEXPORT void XmeVirtualToActualKeysym(Display *Dsp, KeySym VirtualKeysym,
1558                                      KeySym *RealKeysymReturn,
1559                                      Modifiers *ModifierReturn);
1560 
1561 XMLIBEXPORT void XmeResolvePartOffsets(WidgetClass widget_class,
1562                            XmOffsetPtr *offset,
1563                            XmOffsetPtr *constraint_offset);
1564 
1565 XMLIBEXPORT Cursor XmeGetNullCursor(Widget w);
1566 
1567 XMLIBEXPORT void XmeQueryBestCursorSize(Widget widget, Dimension *width, Dimension *height);
1568 
1569 XMLIBEXPORT void XmeSetWMShellTitle(XmString xmstr, Widget shell);
1570 
1571 /************************* Xmos.c *************************************/
1572 
1573 XMLIBEXPORT extern int XmeMicroSleep(long secs);
1574 
1575 XMLIBEXPORT XmString XmeGetLocalizedString(char *reserved, Widget widget,
1576                                char *resource, String string);
1577 
1578 
1579 
1580 /****************** THESE AREN'T SUPPOSED TO BE USED ******************/
1581 
1582 #ifdef XM_1_1_BC
1583 
1584 #define XmVPANED_BIT		XmPANED_WINDOW_BIT
1585 
1586 #define LOOK_AT_SCREEN		(1<<0)
1587 #define LOOK_AT_CMAP		(1<<1)
1588 #define LOOK_AT_BACKGROUND	(1<<2)
1589 #define LOOK_AT_FOREGROUND	(1<<3)
1590 #define LOOK_AT_TOP_SHADOW	(1<<4)
1591 #define LOOK_AT_BOTTOM_SHADOW	(1<<5)
1592 #define LOOK_AT_SELECT		(1<<6)
1593 
1594 #define XmStrlen(s)		((s) ? strlen(s) : 0)
1595 
1596 #define DEFAULT_INDICATOR_DIM	9
1597 
1598 #ifndef MAX
1599 #define MAX(a,b)		((a) > (b) ? (a) : (b))
1600 #endif
1601 
1602 #define RX(r)		(((RectObj)(r))->rectangle.x)
1603 #define RY(r)		(((RectObj)(r))->rectangle.y)
1604 #define RWidth(r)	(((RectObj)(r))->rectangle.width)
1605 #define RHeight(r)	(((RectObj)(r))->rectangle.height)
1606 #define RBorder(r)	(((RectObj)(r))->rectangle.border_width)
1607 
1608 #define GMode(g)	((g)->request_mode)
1609 #define IsX(g)		(GMode(g) & CWX)
1610 #define IsY(g)		(GMode(g) & CWY)
1611 #define IsWidth(g)	(GMode(g) & CWWidth)
1612 #define IsHeight(g)	(GMode(g) & CWHeight)
1613 #define IsBorder(g)	(GMode(g) & CWBorderWidth)
1614 #define IsWidthHeight(g) ((GMode(g) & CWWidth) || (GMode(g) & CWHeight))
1615 #define IsQueryOnly(g)	(GMode(g) & XtCWQueryOnly)
1616 
1617 #define MAXDIMENSION    ((1 << 31)-1)
1618 
1619 #define Max(x, y)       (((x) > (y)) ? (x) : (y))
1620 #define Min(x, y)       (((x) < (y)) ? (x) : (y))
1621 #define AssignMax(x, y) if ((y) > (x)) x = (y)
1622 #define AssignMin(x, y) if ((y) < (x)) x = (y)
1623 
1624 
1625 #define DIALOG_SUFFIX "_popup"
1626 #define DIALOG_SUFFIX_SIZE 6
1627 
1628 #define XM_3D_ENHANCE_PIXEL 2
1629 #define XM_DEFAULT_TOP_MARGIN 0
1630 #define XM_DEFAULT_BOTTOM_MARGIN 0
1631 
1632 XMLIBEXPORT extern WidgetClass xmWorldObjectClass;
1633 XMLIBEXPORT extern WidgetClass xmDesktopObjectClass;
1634 XMLIBEXPORT extern WidgetClass xmDisplayObjectClass;
1635 XMLIBEXPORT extern WidgetClass xmScreenObjectClass;
1636 
1637 #endif /* XM_1_1_BC */
1638 
1639 /**********************************************************************/
1640 
1641 #ifdef __cplusplus
1642 }
1643 #endif
1644 
1645 
1646 #include <Xm/VendorSP.h>
1647 #include <Xm/ManagerP.h>
1648 #include <Xm/PrimitiveP.h>
1649 #include <Xm/GadgetP.h>
1650 #include <Xm/BaseClassP.h>
1651 
1652 
1653 #endif /* _XM_XMP_H */
1654