home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / include / Xm / Xm.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-06-30  |  44.4 KB  |  1,478 lines

  1. /* 
  2.  * (c) Copyright 1989, 1990, 1991, 1992, 1993 OPEN SOFTWARE FOUNDATION, INC. 
  3.  * ALL RIGHTS RESERVED 
  4. */ 
  5. /* 
  6.  * Motif Release 1.2.3
  7. */ 
  8. /*   $RCSfile: Xm.h,v $ $Revision: 10.2 $ $Date: 1994/02/25 17:38:10 $ */
  9. /*
  10. *  (c) Copyright 1987, 1988, 1989, 1990, 1991, 1992 HEWLETT-PACKARD COMPANY */
  11.  
  12. #ifndef _Xm_h
  13. #define _Xm_h
  14.  
  15. #ifndef _NO_PROTO
  16. #if    !(defined(__STDC__) && __STDC__) \
  17.     && !defined(__cplusplus) && !defined(c_plusplus) \
  18.     && !defined(FUNCPROTO) && !defined(XTFUNCPROTO) && !defined(XMFUNCPROTO)
  19. #define _NO_PROTO
  20. #endif /* __STDC__ */
  21. #endif /* _NO_PROTO */
  22.  
  23. #include <X11/Intrinsic.h>
  24. #include <X11/Shell.h>
  25. #include <X11/Xatom.h>
  26. #include <Xm/XmStrDefs.h>
  27. #include <Xm/VirtKeys.h>
  28.  
  29. #ifdef __cplusplus
  30. extern "C" {
  31. #endif
  32.  
  33.  
  34. #define XmVERSION    1
  35. #define XmREVISION    2
  36. #define XmUPDATE_LEVEL    3
  37. #define XmVersion (XmVERSION * 1000 + XmREVISION)
  38.  
  39. #ifdef WINTIF
  40. /* Wintif Header and Version Test Macros
  41.  * To use portably with possible Motif code do something like
  42.  * #ifdef WXmVersion
  43.  */
  44. #define WXmVERSION      1
  45. #define WXmREVISION     0
  46. #define WXmUPDATE_LEVEL    0
  47. #define WXmVersion (WXmVERSION * 1000 + WXmREVISION)
  48. #define XmVERSION_STRING "@(#)OSF/Motif Version 1.2.3 - IXI Wintif 1.0.0"
  49.  
  50. /* Values and public Wintif fn for accessing selected L+F */
  51. typedef enum {
  52.     WXmUNKNOWN,     WXmMOTIF,      WXmWINDOWS3_1,
  53.     WXmWINDOWS4_0,  WXmMACINTOSH,  WXmZX81
  54. } WXmLookAndFeelType ;
  55.  
  56. WXmLookAndFeelType
  57. #ifdef _NO_PROTO
  58. _WXmLookAndFeel();
  59. #else
  60. _WXmLookAndFeel(void);
  61. #endif
  62.  
  63. #else   /* Motif */
  64. #define XmVERSION_STRING "@(#)OSF/Motif Version 1.2.3"
  65. #endif /* Wintif */
  66. externalref int xmUseVersion;
  67.  
  68. extern int xmUseVersion;
  69.  
  70.  
  71. /* define used to denote an unspecified pixmap  */
  72.  
  73. #define    XmUNSPECIFIED_PIXMAP        2
  74.  
  75. /*******************
  76.  *  
  77.  * Defines for resources to be defaulted by vendors.
  78.  * String are initialized in Xmos.c
  79.  *
  80.  ****************/
  81.  
  82. #define    XmSTRING_OS_CHARSET        XmSTRING_ISO8859_1
  83. #ifndef    XmFALLBACK_CHARSET
  84. #define    XmFALLBACK_CHARSET        XmSTRING_ISO8859_1
  85. #endif
  86.  
  87. #define XmDEFAULT_FONT                  _XmSDEFAULT_FONT
  88. #define XmDEFAULT_BACKGROUND            _XmSDEFAULT_BACKGROUND
  89. #define XmDEFAULT_DARK_THRESHOLD        15
  90. #define XmDEFAULT_LIGHT_THRESHOLD       77
  91. #define XmDEFAULT_FOREGROUND_THRESHOLD  35
  92.  
  93. #ifndef NO_IXI_LIST_ADD
  94. /* IXI Limited, list widget coloured items and client_data extensions */
  95. #define LIST_COLOUR_ITEMS
  96. #define LIST_CLIENT_DATA
  97. #endif
  98.  
  99. externalref  char    _XmSDEFAULT_FONT[];            /* In Xmos.c */
  100. externalref  char    _XmSDEFAULT_BACKGROUND[];      /* In Xmos.c */
  101.  
  102. /****************
  103.  *
  104.  * XmString structure defines. These must be here (at the start of the file) 
  105.  * becaused they are used later on.
  106.  *
  107.  ****************/
  108. typedef enum{ XmFONT_IS_FONT, XmFONT_IS_FONTSET } XmFontType;
  109.  
  110. enum { XmSTRING_DIRECTION_L_TO_R,    XmSTRING_DIRECTION_R_TO_L,
  111.        XmSTRING_DIRECTION_DEFAULT = 255
  112.      };
  113.  
  114. typedef unsigned char XmStringDirection;      
  115. typedef unsigned char *    XmString;        /* opaque to outside */
  116. typedef XmString *    XmStringTable;        /* opaque to outside */
  117. typedef char *        XmStringCharSet;    /* Null term string */
  118. typedef unsigned char    XmStringComponentType;    /* component tags */
  119.  
  120. typedef struct _XmFontListRec       *XmFontListEntry;  /* opaque to outside */
  121. typedef struct _XmFontListRec       *XmFontList;       /* opaque to outside */
  122. typedef struct __XmStringContextRec *_XmStringContext; /* opaque to outside */
  123. typedef struct __XmStringRec        *_XmString;        /* opaque to outside */
  124. typedef struct _XmtStringContextRec *XmStringContext;  /* opaque to outside */
  125. typedef struct _XmFontListContextRec *XmFontContext;   /* opaque to outside */
  126.  
  127. enum{    XmSTRING_COMPONENT_UNKNOWN,    XmSTRING_COMPONENT_CHARSET,
  128.     XmSTRING_COMPONENT_TEXT,    XmSTRING_COMPONENT_DIRECTION,
  129.         XmSTRING_COMPONENT_SEPARATOR,   XmSTRING_COMPONENT_LOCALE_TEXT
  130.     /* 6-125 reserved */
  131.     } ;
  132.  
  133. #define XmSTRING_COMPONENT_END        ((XmStringComponentType) 126)
  134.  
  135. #define XmSTRING_COMPONENT_USER_BEGIN    ((XmStringComponentType) 128)
  136.             /* 128-255 are user tags */
  137. #define XmSTRING_COMPONENT_USER_END    ((XmStringComponentType) 255)
  138.  
  139. /************************************************************************
  140.  *
  141.  *  Base widget class and record definitions.
  142.  *    Included are the definitions for XmPrimitive, XmManager,
  143.  *      and XmGadget.
  144.  *
  145.  ************************************************************************/
  146.  
  147.  
  148. /*  Primitive widget class and record definitions  */
  149.  
  150. #ifndef PRIMITIVE
  151. externalref WidgetClass xmPrimitiveWidgetClass;
  152. #endif
  153.  
  154. typedef struct _XmPrimitiveClassRec * XmPrimitiveWidgetClass;
  155. typedef struct _XmPrimitiveRec      * XmPrimitiveWidget;
  156.  
  157.  
  158. /*  Gadget widget class and record definitions  */
  159.  
  160. #ifndef GADGET
  161. externalref WidgetClass xmGadgetClass;
  162. #endif
  163.  
  164. typedef struct _XmGadgetClassRec * XmGadgetClass;
  165. typedef struct _XmGadgetRec      * XmGadget;
  166.  
  167.  
  168. /*  Manager widger class and record definitions  */
  169.  
  170.  
  171. #ifndef MANAGER
  172. externalref WidgetClass xmManagerWidgetClass;
  173. #endif
  174.  
  175. typedef struct _XmManagerClassRec * XmManagerWidgetClass;
  176. typedef struct _XmManagerRec      * XmManagerWidget;
  177.  
  178.  
  179. /************************************************************************
  180.  *  Class Test Macros (fast subclassing is in XmP.h)
  181.  ************************************************************************/
  182.  
  183. #ifndef XmIsPrimitive
  184. #define XmIsPrimitive(w)    XtIsSubclass(w, xmPrimitiveWidgetClass)
  185. #endif  /* XmIsPrimitive */
  186.  
  187. #ifndef XmIsGadget
  188. #define XmIsGadget(w)        XtIsSubclass(w, xmGadgetClass)
  189. #endif  /* XmIsGadget */
  190.  
  191. #ifndef XmIsManager
  192. #define XmIsManager(w)        XtIsSubclass(w, xmManagerWidgetClass)
  193. #endif  /* XmIsManager */
  194.  
  195.  
  196. /************************************************************************
  197.  *  Primitive Resources and define values
  198.  ************************************************************************/
  199.  
  200. /* size policy values  */
  201.  
  202. enum{    XmCHANGE_ALL,            XmCHANGE_NONE,
  203.     XmCHANGE_WIDTH,            XmCHANGE_HEIGHT
  204.     } ;
  205.  
  206. /*  unit type values  */
  207.  
  208. enum{    XmPIXELS,            Xm100TH_MILLIMETERS,
  209.     Xm1000TH_INCHES,        Xm100TH_POINTS,
  210.     Xm100TH_FONT_UNITS
  211.     } ;
  212.  
  213. /* DeleteResponse values */
  214.  
  215. enum{    XmDESTROY,            XmUNMAP,
  216.     XmDO_NOTHING
  217.     } ;
  218. enum{    XmEXPLICIT,            XmPOINTER
  219.     } ;
  220. /************************************************************************
  221.  *  Navigation defines 
  222.  ************************************************************************/
  223.  
  224. enum{    XmNONE,                XmTAB_GROUP,
  225.     XmSTICKY_TAB_GROUP,        XmEXCLUSIVE_TAB_GROUP
  226.     } ;
  227.  
  228. #define    XmDYNAMIC_DEFAULT_TAB_GROUP    (255)
  229.  
  230. /************************************************************************
  231.  * Audible warning
  232.  ************************************************************************/
  233.  
  234. enum{    /* XmNONE */            XmBELL = 1
  235.     } ;
  236.  
  237. /************************************************************************
  238.  *  Menu defines
  239.  ************************************************************************/
  240.  
  241. enum{    XmNO_ORIENTATION,        XmVERTICAL,
  242.     XmHORIZONTAL
  243.     } ;
  244. enum{    XmWORK_AREA,            XmMENU_BAR,
  245.     XmMENU_PULLDOWN,        XmMENU_POPUP,
  246.     XmMENU_OPTION
  247.     } ;
  248. enum{    XmNO_PACKING,            XmPACK_TIGHT,
  249.     XmPACK_COLUMN,            XmPACK_NONE
  250.     } ;
  251. enum{/* XmALIGNMENT_BASELINE_TOP,    XmALIGNMENT_CENTER,
  252.     XmALIGNMENT_BASELINE_BOTTOM, */    XmALIGNMENT_CONTENTS_TOP = 3,
  253.     XmALIGNMENT_CONTENTS_BOTTOM
  254.     } ;
  255. enum{    XmTEAR_OFF_ENABLED,        XmTEAR_OFF_DISABLED
  256.     } ;
  257. enum{    XmUNPOST,             XmUNPOST_AND_REPLAY
  258.     } ;
  259. enum{   XmLAST_POSITION = -1,           XmFIRST_POSITION
  260.     } ;
  261. /************************************************************************
  262.  *  Label/Frame defines
  263.  ************************************************************************/
  264.  
  265. enum{    XmALIGNMENT_BEGINNING,        XmALIGNMENT_CENTER,
  266.     XmALIGNMENT_END
  267.     } ;
  268. enum{   XmALIGNMENT_BASELINE_TOP,    /* XmALIGNMENT_CENTER, */
  269.     XmALIGNMENT_BASELINE_BOTTOM = 2, XmALIGNMENT_WIDGET_TOP,
  270.     XmALIGNMENT_WIDGET_BOTTOM
  271.        } ;
  272. /************************************************************************
  273.  *  Frame defines
  274.  ************************************************************************/
  275.  
  276. enum{    XmFRAME_GENERIC_CHILD,          XmFRAME_WORKAREA_CHILD,
  277.         XmFRAME_TITLE_CHILD
  278.     } ;
  279. /************************************************************************
  280.  *  ToggleButton  defines
  281.  ************************************************************************/
  282.  
  283. enum{    XmN_OF_MANY = 1,        XmONE_OF_MANY
  284.     } ;
  285. /************************************************************************
  286.  *  Form defines
  287.  ************************************************************************/
  288.  
  289. enum{    XmATTACH_NONE,            XmATTACH_FORM,
  290.     XmATTACH_OPPOSITE_FORM,        XmATTACH_WIDGET,
  291.     XmATTACH_OPPOSITE_WIDGET,    XmATTACH_POSITION,
  292.     XmATTACH_SELF
  293.     } ;
  294. enum{    XmRESIZE_NONE,            XmRESIZE_GROW,
  295.     XmRESIZE_ANY
  296.     } ;
  297. /****************************************************************************
  298.  *  Callback reasons 
  299.  ****************************************************************************/
  300.  
  301. enum{    XmCR_NONE,            XmCR_HELP,
  302.     XmCR_VALUE_CHANGED,        XmCR_INCREMENT,
  303.     XmCR_DECREMENT,            XmCR_PAGE_INCREMENT,
  304.     XmCR_PAGE_DECREMENT,        XmCR_TO_TOP,
  305.     XmCR_TO_BOTTOM,            XmCR_DRAG,
  306.     XmCR_ACTIVATE,            XmCR_ARM,
  307.     XmCR_DISARM,            XmCR_MAP = 16,
  308.     XmCR_UNMAP,            XmCR_FOCUS,
  309.     XmCR_LOSING_FOCUS,        XmCR_MODIFYING_TEXT_VALUE,
  310.     XmCR_MOVING_INSERT_CURSOR,    XmCR_EXECUTE,
  311.     XmCR_SINGLE_SELECT,        XmCR_MULTIPLE_SELECT,
  312.     XmCR_EXTENDED_SELECT,        XmCR_BROWSE_SELECT,
  313.     XmCR_DEFAULT_ACTION,        XmCR_CLIPBOARD_DATA_REQUEST,
  314.     XmCR_CLIPBOARD_DATA_DELETE,    XmCR_CASCADING,
  315.     XmCR_OK,            XmCR_CANCEL,
  316.     XmCR_APPLY = 34,        XmCR_NO_MATCH,
  317.     XmCR_COMMAND_ENTERED,        XmCR_COMMAND_CHANGED,
  318.     XmCR_EXPOSE,            XmCR_RESIZE,
  319.     XmCR_INPUT,            XmCR_GAIN_PRIMARY,
  320.     XmCR_LOSE_PRIMARY,        XmCR_CREATE,
  321.     XmCR_TEAR_OFF_ACTIVATE,        XmCR_TEAR_OFF_DEACTIVATE,
  322.     XmCR_OBSCURED_TRAVERSAL,    XmCR_PROTOCOLS
  323.     } ;
  324. /************************************************************************
  325.  *  Callback structures 
  326.  ************************************************************************/
  327.  
  328. typedef struct
  329. {
  330.     int     reason;
  331.     XEvent  *event;
  332. } XmAnyCallbackStruct;
  333.  
  334. typedef struct
  335. {
  336.     int     reason;
  337.     XEvent  *event;
  338.     int        click_count;
  339. } XmArrowButtonCallbackStruct;
  340.  
  341. typedef struct
  342. {
  343.     int     reason;
  344.     XEvent  *event;
  345.     Window  window;
  346. } XmDrawingAreaCallbackStruct;
  347.  
  348. typedef struct
  349. {
  350.     int     reason;
  351.     XEvent  *event;
  352.     Window  window;
  353.     int        click_count;
  354. } XmDrawnButtonCallbackStruct;
  355.  
  356. typedef struct
  357. {
  358.     int     reason;
  359.     XEvent  *event;
  360.     int        click_count;
  361. } XmPushButtonCallbackStruct;
  362.  
  363. typedef struct
  364. {
  365.     int     reason;
  366.     XEvent  *event;
  367.     Widget  widget;
  368.     char    *data;
  369.     char    *callbackstruct;
  370. } XmRowColumnCallbackStruct;
  371.  
  372. typedef struct
  373. {
  374.    int reason;
  375.    XEvent * event;
  376.    int value;
  377.    int pixel;
  378. } XmScrollBarCallbackStruct;
  379.  
  380. typedef struct
  381. {
  382.    int reason;
  383.    XEvent * event;
  384.    int set;
  385. } XmToggleButtonCallbackStruct;
  386.  
  387. typedef struct
  388. {
  389.    int          reason;
  390.    XEvent    *event;
  391.    XmString  item;
  392.    int       item_length;
  393.    int       item_position;
  394.    XmString  *selected_items;
  395.    int       selected_item_count;
  396.    int       *selected_item_positions;
  397.    char      selection_type;
  398. #ifdef LIST_CLIENT_DATA
  399.     XtPointer client_data;
  400.     XtPointer *selected_items_client_data;
  401. #endif
  402. } XmListCallbackStruct;
  403.  
  404. typedef struct
  405. {
  406.     int reason;
  407.     XEvent    *event;
  408.     XmString    value;
  409.     int        length;
  410. } XmSelectionBoxCallbackStruct;
  411.  
  412. typedef struct
  413. {
  414.     int reason;
  415.     XEvent    *event;
  416.     XmString    value;
  417.     int        length;
  418. } XmCommandCallbackStruct;
  419.  
  420. typedef struct
  421. {
  422.     int     reason;
  423.     XEvent    *event;
  424.     XmString    value;
  425.     int        length;
  426.     XmString    mask;
  427.     int        mask_length;
  428.     XmString    dir ;
  429.     int        dir_length ;
  430.     XmString    pattern ;
  431.     int        pattern_length ;
  432. } XmFileSelectionBoxCallbackStruct;
  433.  
  434.  
  435. typedef struct 
  436. {
  437.    int reason;
  438.    XEvent * event;
  439.    int value;
  440. } XmScaleCallbackStruct;
  441.  
  442.  
  443. /************************************************************************
  444.  *  PushButton defines
  445.  ************************************************************************/
  446.  
  447. enum{    XmMULTICLICK_DISCARD,        XmMULTICLICK_KEEP
  448.     } ;
  449. /************************************************************************
  450.  *  DrawnButton defines
  451.  ************************************************************************/
  452.  
  453. enum{    XmSHADOW_IN = 7,        XmSHADOW_OUT
  454.     } ;
  455. /************************************************************************
  456.  *  Arrow defines
  457.  ************************************************************************/
  458.  
  459. enum{    XmARROW_UP,            XmARROW_DOWN,
  460.     XmARROW_LEFT,            XmARROW_RIGHT
  461.     } ;
  462. /************************************************************************
  463.  *  Separator defines
  464.  *  Note: XmINVALID_SEPARATOR_TYPE marks the last+1 separator type
  465.  ************************************************************************/
  466.  
  467. enum{    XmNO_LINE,            XmSINGLE_LINE,
  468.     XmDOUBLE_LINE,            XmSINGLE_DASHED_LINE,
  469.     XmDOUBLE_DASHED_LINE,        XmSHADOW_ETCHED_IN,
  470.     XmSHADOW_ETCHED_OUT,        XmSHADOW_ETCHED_IN_DASH,
  471.     XmSHADOW_ETCHED_OUT_DASH,    XmINVALID_SEPARATOR_TYPE
  472.     } ;
  473.  
  474. enum{    XmPIXMAP = 1,            XmSTRING
  475.     } ;
  476.  
  477. /************************************************************************
  478.  *  Drag and Drop #defines
  479.  ************************************************************************/
  480.  
  481. enum{    XmWINDOW,             /* XmPIXMAP, */
  482.     XmCURSOR = 2
  483.     } ;
  484.  
  485. /************************************************************************
  486.  *  ScrollBar #defines
  487.  ************************************************************************/
  488.  
  489. enum{    XmMAX_ON_TOP,            XmMAX_ON_BOTTOM,
  490.     XmMAX_ON_LEFT,            XmMAX_ON_RIGHT
  491.     } ;
  492. /************************************************************************
  493.  *                                    *
  494.  * List Widget defines                            *
  495.  *                                    *
  496.  ************************************************************************/
  497.  
  498. enum{    XmSINGLE_SELECT,        XmMULTIPLE_SELECT,
  499.     XmEXTENDED_SELECT,        XmBROWSE_SELECT
  500.     } ;
  501. enum{    XmSTATIC,            XmDYNAMIC
  502.     } ;
  503. /************************************************************************
  504.  *                                    *
  505.  * Scrolled Window defines.                        *
  506.  *                                    *
  507.  ************************************************************************/
  508.  
  509. enum{    XmVARIABLE,            XmCONSTANT,
  510.     XmRESIZE_IF_POSSIBLE
  511.     } ;
  512. enum{    XmAUTOMATIC,            XmAPPLICATION_DEFINED
  513.     } ;
  514. enum{    /* XmSTATIC */            XmAS_NEEDED = 1
  515.     } ;
  516.  
  517. #define SW_TOP        1
  518. #define SW_BOTTOM    0
  519. #define SW_LEFT        2
  520. #define SW_RIGHT    0
  521.  
  522. #define XmTOP_LEFT    (SW_TOP | SW_LEFT)
  523. #define XmBOTTOM_LEFT    (SW_BOTTOM  | SW_LEFT)
  524. #define XmTOP_RIGHT    (SW_TOP | SW_RIGHT)
  525. #define XmBOTTOM_RIGHT    (SW_BOTTOM  | SW_RIGHT)
  526.  
  527. /************************************************************************
  528.  *                                    *
  529.  * MainWindow Resources                                                 *
  530.  *                                    *
  531.  ************************************************************************/
  532.  
  533. enum{    XmCOMMAND_ABOVE_WORKSPACE,    XmCOMMAND_BELOW_WORKSPACE
  534.     } ;
  535. /************************************************************************
  536.  *                                    *
  537.  * Text Widget defines                            *
  538.  *                                    *
  539.  ************************************************************************/
  540.  
  541. enum{    XmMULTI_LINE_EDIT,        XmSINGLE_LINE_EDIT
  542.     } ;
  543.  
  544. typedef enum{
  545.     XmTEXT_FORWARD,
  546.     XmTEXT_BACKWARD
  547.     } XmTextDirection;
  548.  
  549. typedef long XmTextPosition;
  550. typedef Atom XmTextFormat;
  551.  
  552. #define XmFMT_8_BIT    ((XmTextFormat) XA_STRING)    /* 8-bit text. */
  553. #define XmFMT_16_BIT    ((XmTextFormat) 2)        /* 16-bit text. */
  554.  
  555. #define FMT8BIT        XmFMT_8_BIT    /* For backwards compatibility only.*/
  556. #define FMT16BIT    XmFMT_16_BIT    /* For backwards compatibility only.*/
  557.  
  558. typedef enum{
  559.     XmSELECT_POSITION,        XmSELECT_WHITESPACE,
  560.     XmSELECT_WORD,            XmSELECT_LINE,
  561.     XmSELECT_ALL,            XmSELECT_PARAGRAPH
  562.     } XmTextScanType ;
  563.  
  564. typedef enum{
  565.     XmHIGHLIGHT_NORMAL,        XmHIGHLIGHT_SELECTED,
  566.     XmHIGHLIGHT_SECONDARY_SELECTED
  567.     } XmHighlightMode ;
  568.  
  569. /* XmTextBlock's are used to pass text around. */
  570.  
  571. typedef struct {
  572.     char *ptr;                  /* Pointer to data. */
  573.     int length;                 /* Number of bytes of data. */
  574.     XmTextFormat format;       /* Representations format */
  575. } XmTextBlockRec, *XmTextBlock;
  576.  
  577. typedef struct
  578. {
  579.     int reason;
  580.     XEvent  *event;
  581.     Boolean doit;
  582.     long currInsert, newInsert;
  583.     long startPos, endPos;
  584.     XmTextBlock text;
  585. } XmTextVerifyCallbackStruct, *XmTextVerifyPtr;
  586.  
  587. /* XmTextBlockWcs's are used in 1.2 modifyVerifyWcs callbacks for Text[Field]
  588.  * widgets. */
  589.  
  590. typedef struct {
  591.     wchar_t *wcsptr;            /* Pointer to data. */
  592.     int length;                 /* Number of characters (not bytes) of data. */
  593. } XmTextBlockRecWcs, *XmTextBlockWcs;
  594.  
  595. typedef struct
  596. {
  597.     int reason;
  598.     XEvent  *event;
  599.     Boolean doit;
  600.     long currInsert, newInsert;
  601.     long startPos, endPos;
  602.     XmTextBlockWcs text;
  603. } XmTextVerifyCallbackStructWcs, *XmTextVerifyPtrWcs;
  604.  
  605. /* functions renamed after 1.0 release due to resource name overlap */
  606. #define XmTextGetTopPosition                XmTextGetTopCharacter
  607. #define XmTextSetTopPosition                XmTextSetTopCharacter
  608.  
  609. #define XmCOPY_FAILED        0
  610. #define XmCOPY_SUCCEEDED    1
  611. #define XmCOPY_TRUNCATED    2
  612.  
  613. /************************************************************************
  614.  *                                    *
  615.  *  DIALOG defines..  BulletinBoard and things common to its subclasses *
  616.  *          CommandBox    MessageBox    Selection    FileSelection      *
  617.  *                                    *
  618.  ************************************************************************/
  619.  
  620. /* child type defines for Xm...GetChild() */
  621.  
  622. enum{    XmDIALOG_NONE,            XmDIALOG_APPLY_BUTTON,
  623.     XmDIALOG_CANCEL_BUTTON,        XmDIALOG_DEFAULT_BUTTON,
  624.     XmDIALOG_OK_BUTTON,        XmDIALOG_FILTER_LABEL,
  625.     XmDIALOG_FILTER_TEXT,        XmDIALOG_HELP_BUTTON,
  626.     XmDIALOG_LIST,            XmDIALOG_LIST_LABEL,
  627.     XmDIALOG_MESSAGE_LABEL,        XmDIALOG_SELECTION_LABEL,
  628.     XmDIALOG_SYMBOL_LABEL,        XmDIALOG_TEXT,
  629.     XmDIALOG_SEPARATOR,        XmDIALOG_DIR_LIST,
  630.     XmDIALOG_DIR_LIST_LABEL
  631.     } ;
  632.  
  633. #define XmDIALOG_HISTORY_LIST         XmDIALOG_LIST
  634. #define XmDIALOG_PROMPT_LABEL         XmDIALOG_SELECTION_LABEL
  635. #define XmDIALOG_VALUE_TEXT           XmDIALOG_TEXT
  636. #define XmDIALOG_COMMAND_TEXT         XmDIALOG_TEXT
  637. #define XmDIALOG_FILE_LIST            XmDIALOG_LIST
  638. #define XmDIALOG_FILE_LIST_LABEL      XmDIALOG_LIST_LABEL
  639.  
  640. /*  dialog style defines  */
  641.  
  642. enum{    XmDIALOG_MODELESS,        XmDIALOG_PRIMARY_APPLICATION_MODAL,
  643.     XmDIALOG_FULL_APPLICATION_MODAL,XmDIALOG_SYSTEM_MODAL
  644.     } ;
  645.  
  646. /* The following is for compatibility only. Its use is deprecated.
  647.  */
  648. #define XmDIALOG_APPLICATION_MODAL    XmDIALOG_PRIMARY_APPLICATION_MODAL
  649.  
  650. /************************************************************************
  651.  * XmSelectionBox, XmFileSelectionBox and XmCommand - misc. stuff       *
  652.  ***********************************************************************/
  653.  
  654. /* Defines for Selection child placement
  655. */
  656. enum{    XmPLACE_TOP,            XmPLACE_ABOVE_SELECTION,
  657.     XmPLACE_BELOW_SELECTION
  658.     } ;
  659.  
  660. /* Defines for file type mask:
  661. */
  662. #define XmFILE_DIRECTORY (1 << 0)
  663. #define XmFILE_REGULAR   (1 << 1)
  664. #define XmFILE_ANY_TYPE  (XmFILE_DIRECTORY | XmFILE_REGULAR)
  665.  
  666. /* Defines for selection dialog type:
  667. */
  668. enum{    XmDIALOG_WORK_AREA,        XmDIALOG_PROMPT,
  669.     XmDIALOG_SELECTION,        XmDIALOG_COMMAND,
  670.     XmDIALOG_FILE_SELECTION
  671.     } ;
  672.  
  673. /************************************************************************
  674.  *  XmMessageBox           stuff not common to other dialogs            *
  675.  ***********************************************************************/
  676.  
  677. /* defines for dialog type */
  678.  
  679. enum{    XmDIALOG_TEMPLATE,        XmDIALOG_ERROR,
  680.     XmDIALOG_INFORMATION,        XmDIALOG_MESSAGE,
  681.     XmDIALOG_QUESTION,        XmDIALOG_WARNING,
  682.     XmDIALOG_WORKING
  683.     } ;
  684.  
  685. /*  Traversal types  */
  686.  
  687. typedef enum{
  688.     XmVISIBILITY_UNOBSCURED,    XmVISIBILITY_PARTIALLY_OBSCURED,
  689.     XmVISIBILITY_FULLY_OBSCURED
  690.     } XmVisibility ;
  691.  
  692.  
  693. typedef enum{
  694.     XmTRAVERSE_CURRENT,        XmTRAVERSE_NEXT,
  695.     XmTRAVERSE_PREV,        XmTRAVERSE_HOME,
  696.     XmTRAVERSE_NEXT_TAB_GROUP,    XmTRAVERSE_PREV_TAB_GROUP,
  697.     XmTRAVERSE_UP,            XmTRAVERSE_DOWN,
  698.     XmTRAVERSE_LEFT,        XmTRAVERSE_RIGHT
  699.     } XmTraversalDirection ;
  700.  
  701. typedef struct _XmTraverseObscuredCallbackStruct
  702. {    int            reason ;
  703.     XEvent *        event ;
  704.     Widget            traversal_destination ;
  705.     XmTraversalDirection    direction ;
  706.     } XmTraverseObscuredCallbackStruct ;
  707.  
  708. typedef unsigned char   XmNavigationType;
  709.  
  710.  
  711. /***********************************************************************
  712.  *
  713.  * SimpleMenu declarations and definitions.
  714.  *
  715.  ***********************************************************************/
  716.  
  717. typedef unsigned char XmButtonType;
  718. typedef XmButtonType * XmButtonTypeTable;
  719. typedef KeySym * XmKeySymTable;
  720. typedef XmStringCharSet * XmStringCharSetTable;
  721.  
  722. enum{    XmPUSHBUTTON = 1,        XmTOGGLEBUTTON,
  723.     XmRADIOBUTTON,            XmCASCADEBUTTON,
  724.     XmSEPARATOR,            XmDOUBLE_SEPARATOR,
  725.     XmTITLE
  726.     } ;
  727. #define XmCHECKBUTTON            XmTOGGLEBUTTON
  728.  
  729.  
  730. /********    BaseClass.c    ********/
  731. #ifdef _NO_PROTO
  732. typedef XtPointer    (*XmResourceBaseProc)();
  733. #else
  734. typedef XtPointer    (*XmResourceBaseProc)( Widget, XtPointer) ;
  735. #endif
  736.  
  737. typedef struct _XmSecondaryResourceDataRec{
  738.     XmResourceBaseProc    base_proc;
  739.     XtPointer        client_data;
  740.     String        name;
  741.     String        res_class;
  742.     XtResourceList    resources;
  743.     Cardinal        num_resources;
  744. }XmSecondaryResourceDataRec, *XmSecondaryResourceData;
  745.  
  746. /********    Public Function Declarations for BaseClass.c    ********/
  747. #ifdef _NO_PROTO
  748.  
  749. extern Cardinal XmGetSecondaryResourceData() ;
  750.  
  751. #else
  752.  
  753. extern Cardinal XmGetSecondaryResourceData( 
  754.                         WidgetClass w_class,
  755.                         XmSecondaryResourceData **secondaryDataRtn) ;
  756.  
  757. #endif /* _NO_PROTO */
  758. /********    End Public Function Declarations    ********/
  759.  
  760. /********    Public Function Declarations for ImageCache.c    ********/
  761. #ifdef _NO_PROTO
  762.  
  763. extern Boolean XmInstallImage() ;
  764. extern Boolean XmUninstallImage() ;
  765. extern Pixmap XmGetPixmap() ;
  766. extern Pixmap XmGetPixmapByDepth() ;
  767. extern Boolean XmDestroyPixmap() ;
  768.  
  769. #else
  770.  
  771. extern Boolean XmInstallImage( 
  772.                         XImage *image,
  773.                         char *image_name) ;
  774. extern Boolean XmUninstallImage( 
  775.                         XImage *image) ;
  776. extern Pixmap XmGetPixmap( 
  777.                         Screen *screen,
  778.                         char *image_name,
  779.                         Pixel foreground,
  780.                         Pixel background) ;
  781. extern Pixmap XmGetPixmapByDepth( 
  782.                         Screen *screen,
  783.                         char *image_name,
  784.                         Pixel foreground,
  785.                         Pixel background,
  786.             int depth) ;
  787. extern Boolean XmDestroyPixmap( 
  788.                         Screen *screen,
  789.                         Pixmap pixmap) ;
  790.  
  791. #endif /* _NO_PROTO */
  792. /********    End Public Function Declarations    ********/
  793.  
  794. /********    Public Function Declarations for Manager.c    ********/
  795. #ifdef _NO_PROTO
  796.  
  797. extern void XmUpdateDisplay() ;
  798.  
  799. #else
  800.  
  801. extern void XmUpdateDisplay( 
  802.                         Widget w) ;
  803.  
  804. #endif /* _NO_PROTO */
  805. /********    End Public Function Declarations    ********/
  806.  
  807. /********    Primitive.c    ********/
  808.  
  809. typedef long XmOffset;
  810. typedef XmOffset *XmOffsetPtr;
  811.  
  812. /********    Public Function Declarations for Primitive.c    ********/
  813. #ifdef _NO_PROTO
  814.  
  815. extern void XmResolvePartOffsets() ;
  816. extern void XmResolveAllPartOffsets() ;
  817. extern Boolean XmWidgetGetBaselines();
  818. extern Boolean XmWidgetGetDisplayRect();
  819. #else
  820.  
  821. extern void XmResolvePartOffsets( 
  822.                         WidgetClass w_class,
  823.                         XmOffsetPtr *offset) ;
  824. extern void XmResolveAllPartOffsets( 
  825.                         WidgetClass w_class,
  826.                         XmOffsetPtr *offset,
  827.                         XmOffsetPtr *constraint_offset) ;
  828. extern Boolean XmWidgetGetBaselines(
  829.                         Widget wid,
  830.                         Dimension **baselines,
  831.                         int *line_count);
  832. extern Boolean XmWidgetGetDisplayRect(
  833.                         Widget wid,
  834.                         XRectangle *displayrect);
  835.  
  836. #endif /* _NO_PROTO */
  837. /********    End Public Function Declarations    ********/
  838.  
  839. /********    Public Function Declarations for ResConvert.c    ********/
  840. #ifdef _NO_PROTO
  841.  
  842. extern void XmRegisterConverters() ;
  843. extern void XmCvtStringToUnitType() ;
  844. extern char * XmRegisterSegmentEncoding() ;
  845. extern char * XmMapSegmentEncoding() ;
  846. extern XmString XmCvtCTToXmString() ;
  847. extern Boolean XmCvtTextToXmString() ;
  848. extern char * XmCvtXmStringToCT() ;
  849. extern Boolean XmCvtXmStringToText() ;
  850.  
  851. #else
  852.  
  853. extern void XmRegisterConverters( void ) ;
  854. extern void XmCvtStringToUnitType( 
  855.                         XrmValuePtr args,
  856.                         Cardinal *num_args,
  857.                         XrmValue *from_val,
  858.                         XrmValue *to_val) ;
  859. extern char * XmRegisterSegmentEncoding( 
  860.                         char *fontlist_tag,
  861.                         char *ct_encoding) ;
  862. extern char * XmMapSegmentEncoding( 
  863.                         char *fontlist_tag) ;
  864. extern XmString XmCvtCTToXmString( 
  865.                         char *text) ;
  866. extern Boolean XmCvtTextToXmString( 
  867.                         Display *display,
  868.                         XrmValuePtr args,
  869.                         Cardinal *num_args,
  870.                         XrmValue *from_val,
  871.                         XrmValue *to_val,
  872.                         XtPointer *converter_data) ;
  873. extern char * XmCvtXmStringToCT( 
  874.                         XmString string) ;
  875. extern Boolean XmCvtXmStringToText( 
  876.                         Display *display,
  877.                         XrmValuePtr args,
  878.                         Cardinal *num_args,
  879.                         XrmValue *from_val,
  880.                         XrmValue *to_val,
  881.                         XtPointer *converter_data) ;
  882.  
  883. #endif /* _NO_PROTO */
  884. /********    End Public Function Declarations    ********/
  885.  
  886. /********    Public Function Declarations for ResInd.c    ********/
  887. #ifdef _NO_PROTO
  888.  
  889. extern int XmConvertUnits() ;
  890. extern int XmCvtToHorizontalPixels() ;
  891. extern int XmCvtToVerticalPixels() ;
  892. extern int XmCvtFromHorizontalPixels() ;
  893. extern int XmCvtFromVerticalPixels() ;
  894. extern void XmSetFontUnits() ;
  895. extern void XmSetFontUnit() ;
  896.  
  897. #else
  898.  
  899. extern int XmConvertUnits( 
  900.                         Widget widget,
  901.                         int dimension,
  902.                         register int from_type,
  903.                         register int from_val,
  904.                         register int to_type) ;
  905. extern int XmCvtToHorizontalPixels( 
  906.                         Screen *screen,
  907.                         register int from_val,
  908.                         register int from_type) ;
  909. extern int XmCvtToVerticalPixels( 
  910.                         Screen *screen,
  911.                         register int from_val,
  912.                         register int from_type) ;
  913. extern int XmCvtFromHorizontalPixels( 
  914.                         Screen *screen,
  915.                         register int from_val,
  916.                         register int to_type) ;
  917. extern int XmCvtFromVerticalPixels( 
  918.                         Screen *screen,
  919.                         register int from_val,
  920.                         register int to_type) ;
  921. extern void XmSetFontUnits( 
  922.                         Display *display,
  923.                         int h_value,
  924.                         int v_value) ;
  925. extern void XmSetFontUnit( 
  926.                         Display *display,
  927.                         int value) ;
  928.  
  929. #endif /* _NO_PROTO */
  930. /********    End Public Function Declarations    ********/
  931.  
  932. /********    Public Function Declarations for MenuUtil.c    ********/
  933. #ifdef _NO_PROTO
  934.  
  935. extern void XmSetMenuCursor() ;
  936. extern Cursor XmGetMenuCursor() ;
  937.  
  938. #else
  939.  
  940. extern void XmSetMenuCursor( 
  941.                         Display *display,
  942.                         Cursor cursorId) ;
  943. extern Cursor XmGetMenuCursor( 
  944.                         Display *display) ;
  945.  
  946. #endif /* _NO_PROTO */
  947. /********    End Public Function Declarations    ********/
  948.  
  949. /********    Public Function Declarations for Simple.c    ********/
  950. #ifdef _NO_PROTO
  951.  
  952. extern Widget XmCreateSimpleMenuBar() ;
  953. extern Widget XmCreateSimplePopupMenu() ;
  954. extern Widget XmCreateSimplePulldownMenu() ;
  955. extern Widget XmCreateSimpleOptionMenu() ;
  956. extern Widget XmCreateSimpleRadioBox() ;
  957. extern Widget XmCreateSimpleCheckBox() ;
  958.  
  959. #else
  960.  
  961. extern Widget XmCreateSimpleMenuBar( 
  962.                         Widget parent,
  963.                         String name,
  964.                         ArgList args,
  965.                         Cardinal arg_count) ;
  966. extern Widget XmCreateSimplePopupMenu( 
  967.                         Widget parent,
  968.                         String name,
  969.                         ArgList args,
  970.                         Cardinal arg_count) ;
  971. extern Widget XmCreateSimplePulldownMenu( 
  972.                         Widget parent,
  973.                         String name,
  974.                         ArgList args,
  975.                         Cardinal arg_count) ;
  976. extern Widget XmCreateSimpleOptionMenu( 
  977.                         Widget parent,
  978.                         String name,
  979.                         ArgList args,
  980.                         Cardinal arg_count) ;
  981. extern Widget XmCreateSimpleRadioBox( 
  982.                         Widget parent,
  983.                         String name,
  984.                         ArgList args,
  985.                         Cardinal arg_count) ;
  986. extern Widget XmCreateSimpleCheckBox( 
  987.                         Widget parent,
  988.                         String name,
  989.                         ArgList args,
  990.                         Cardinal arg_count) ;
  991.  
  992. #endif /* _NO_PROTO */
  993. /********    End Public Function Declarations    ********/
  994.  
  995. /********    Public Function Declarations for VaSimple.c   ********/
  996. #ifdef _NO_PROTO
  997. extern Widget XmVaCreateSimpleMenuBar() ;
  998. extern Widget XmVaCreateSimplePopupMenu() ;
  999. extern Widget XmVaCreateSimplePulldownMenu() ;
  1000. extern Widget XmVaCreateSimpleOptionMenu() ;
  1001. extern Widget XmVaCreateSimpleRadioBox() ;
  1002. extern Widget XmVaCreateSimpleCheckBox() ;
  1003. #else /* _NO_PROTO */
  1004. extern Widget XmVaCreateSimpleMenuBar( 
  1005.             Widget parent,
  1006.             String name,
  1007.             ...) ;
  1008. extern Widget XmVaCreateSimplePopupMenu(
  1009.             Widget parent,
  1010.             String name,
  1011.             XtCallbackProc callback,
  1012.             ...) ;
  1013. extern Widget XmVaCreateSimplePulldownMenu( 
  1014.             Widget parent,
  1015.             String name,
  1016.             int post_from_button,
  1017.             XtCallbackProc callback,
  1018.             ...) ;
  1019. extern Widget XmVaCreateSimpleOptionMenu(
  1020.             Widget parent,
  1021.             String name,
  1022.                         XmString option_label,
  1023.                         KeySym option_mnemonic,
  1024.                         int button_set,
  1025.                         XtCallbackProc callback,
  1026.             ...) ;
  1027. extern Widget XmVaCreateSimpleRadioBox( 
  1028.             Widget parent,
  1029.             String name,
  1030.             int button_set,
  1031.             XtCallbackProc callback,
  1032.             ...) ;
  1033. extern Widget XmVaCreateSimpleCheckBox( 
  1034.             Widget parent,
  1035.             String name,
  1036.             XtCallbackProc callback,
  1037.             ...) ;
  1038. #endif /* _NO_PROTO */
  1039. /********    End Public Function Declarations    ********/
  1040.  
  1041. /********    Public Function Declarations for TrackLoc.c    ********/
  1042. #ifdef _NO_PROTO
  1043.  
  1044. extern Widget XmTrackingEvent() ;
  1045. extern Widget XmTrackingLocate() ;
  1046.  
  1047. #else
  1048.  
  1049. extern Widget XmTrackingEvent( 
  1050.                         Widget widget,
  1051.                         Cursor cursor,
  1052. #if NeedWidePrototypes
  1053.                         int confineTo,
  1054. #else
  1055.                         Boolean confineTo,
  1056. #endif /* NeedWidePrototypes */
  1057.                         XEvent *pev) ;
  1058. extern Widget XmTrackingLocate( 
  1059.                         Widget widget,
  1060.                         Cursor cursor,
  1061. #if NeedWidePrototypes
  1062.                         int confineTo) ;
  1063. #else
  1064.                         Boolean confineTo) ;
  1065. #endif /* NeedWidePrototypes */
  1066.  
  1067. #endif /* _NO_PROTO */
  1068. /********    End Public Function Declarations    ********/
  1069.  
  1070. /********    Visual.c    ********/
  1071. #ifdef _NO_PROTO
  1072. typedef void (*XmColorProc) ();
  1073. #else
  1074. typedef void (*XmColorProc) (XColor *bg_color, XColor *fg_color,
  1075.     XColor *sel_color, XColor *ts_color, XColor *bs_color);
  1076. #endif
  1077.  
  1078. /********    Public Function Declarations for Visual.c    ********/
  1079. #ifdef _NO_PROTO
  1080.  
  1081. extern XmColorProc XmSetColorCalculation() ;
  1082. extern XmColorProc XmGetColorCalculation() ;
  1083. extern void XmGetColors() ;
  1084. extern void XmChangeColor() ;
  1085.  
  1086. #else
  1087.  
  1088. extern XmColorProc XmSetColorCalculation( 
  1089.                         XmColorProc proc) ;
  1090. extern XmColorProc XmGetColorCalculation( void ) ;
  1091. extern void XmGetColors( 
  1092.                         Screen *screen,
  1093.                         Colormap color_map,
  1094.                         Pixel background,
  1095.                         Pixel *foreground_ret,
  1096.                         Pixel *top_shadow_ret,
  1097.                         Pixel *bottom_shadow_ret,
  1098.                         Pixel *select_ret) ;
  1099. extern void XmChangeColor(
  1100.                         Widget widget,
  1101.                         Pixel background) ;
  1102.  
  1103. #endif /* _NO_PROTO */
  1104. /********    End Public Function Declarations    ********/
  1105.  
  1106. /********    Public Function Declarations for XmString.c    ********/
  1107. #ifdef _NO_PROTO
  1108.  
  1109. extern XmString XmStringCreate() ;
  1110. extern XmString XmStringCreateSimple() ;
  1111. extern XmString XmStringCreateLocalized() ;
  1112. extern XmString XmStringDirectionCreate() ;
  1113. extern XmString XmStringSeparatorCreate() ;
  1114. extern XmString XmStringSegmentCreate() ;
  1115. extern XmString XmStringLtoRCreate() ;
  1116. extern XmString XmStringCreateLtoR() ;
  1117. extern Boolean XmStringInitContext() ;
  1118. extern void XmStringFreeContext() ;
  1119. extern XmStringComponentType XmStringGetNextComponent() ;
  1120. extern XmStringComponentType XmStringPeekNextComponent() ;
  1121. extern Boolean XmStringGetNextSegment() ;
  1122. extern Boolean XmStringGetLtoR() ;
  1123. extern XmFontListEntry XmFontListEntryCreate() ;
  1124. extern void XmFontListEntryFree() ;
  1125. extern XtPointer XmFontListEntryGetFont() ;
  1126. extern char * XmFontListEntryGetTag() ;
  1127. extern XmFontList XmFontListAppendEntry() ;
  1128. extern XmFontListEntry XmFontListNextEntry() ;
  1129. extern XmFontList XmFontListRemoveEntry() ;
  1130. extern XmFontListEntry XmFontListEntryLoad() ;
  1131. extern XmFontList XmFontListCreate() ;
  1132. extern XmFontList XmStringCreateFontList() ;
  1133. extern void XmFontListFree() ;
  1134. extern XmFontList XmFontListAdd() ;
  1135. extern XmFontList XmFontListCopy() ;
  1136. extern Boolean XmFontListInitFontContext() ;
  1137. extern Boolean XmFontListGetNextFont() ;
  1138. extern void XmFontListFreeFontContext() ;
  1139. extern XmString XmStringConcat() ;
  1140. extern XmString XmStringNConcat() ;
  1141. extern XmString XmStringCopy() ;
  1142. extern XmString XmStringNCopy() ;
  1143. extern Boolean XmStringByteCompare() ;
  1144. extern Boolean XmStringCompare() ;
  1145. extern int XmStringLength() ;
  1146. extern Boolean XmStringEmpty() ;
  1147. extern Boolean XmStringHasSubstring() ;
  1148. extern void XmStringFree() ;
  1149. extern Dimension XmStringBaseline() ;
  1150. extern Dimension XmStringWidth() ;
  1151. extern Dimension XmStringHeight() ;
  1152. extern void XmStringExtent() ;
  1153. extern int XmStringLineCount() ;
  1154. extern void XmStringDraw() ;
  1155. extern void XmStringDrawImage() ;
  1156. extern void XmStringDrawUnderline() ;
  1157.  
  1158. #else
  1159.  
  1160. extern XmString XmStringCreate( 
  1161.                         char *text,
  1162.                         XmStringCharSet charset) ;
  1163. extern XmString XmStringCreateSimple( 
  1164.                         char *text) ;
  1165. extern XmString XmStringCreateLocalized( 
  1166.                         String text) ;
  1167. extern XmString XmStringDirectionCreate( 
  1168. #if NeedWidePrototypes
  1169.                         int direction) ;
  1170. #else
  1171.                         XmStringDirection direction) ;
  1172. #endif /* NeedWidePrototypes */
  1173. extern XmString XmStringSeparatorCreate( void ) ;
  1174. extern XmString XmStringSegmentCreate( 
  1175.                         char *text,
  1176.                         XmStringCharSet charset,
  1177. #if NeedWidePrototypes
  1178.                         int direction,
  1179.                         int separator) ;
  1180. #else
  1181.                         XmStringDirection direction,
  1182.                         Boolean separator) ;
  1183. #endif /* NeedWidePrototypes */
  1184. extern XmString XmStringLtoRCreate( 
  1185.                         char *text,
  1186.                         XmStringCharSet charset) ;
  1187. extern XmString XmStringCreateLtoR( 
  1188.                         char *text,
  1189.                         XmStringCharSet charset) ;
  1190. extern Boolean XmStringInitContext( 
  1191.                         XmStringContext *context,
  1192.                         XmString string) ;
  1193. extern void XmStringFreeContext( 
  1194.                         XmStringContext context) ;
  1195. extern XmStringComponentType XmStringGetNextComponent( 
  1196.                         XmStringContext context,
  1197.                         char **text,
  1198.                         XmStringCharSet *charset,
  1199.                         XmStringDirection *direction,
  1200.                         XmStringComponentType *unknown_tag,
  1201.                         unsigned short *unknown_length,
  1202.                         unsigned char **unknown_value) ;
  1203. extern XmStringComponentType XmStringPeekNextComponent( 
  1204.                         XmStringContext context) ;
  1205. extern Boolean XmStringGetNextSegment( 
  1206.                         XmStringContext context,
  1207.                         char **text,
  1208.                         XmStringCharSet *charset,
  1209.                         XmStringDirection *direction,
  1210.                         Boolean *separator) ;
  1211. extern Boolean XmStringGetLtoR( 
  1212.                         XmString string,
  1213.                         XmStringCharSet charset,
  1214.                         char **text) ;
  1215. extern XmFontListEntry XmFontListEntryCreate( 
  1216.                         char *tag,
  1217.                         XmFontType type,
  1218.                         XtPointer font) ;
  1219. extern void XmFontListEntryFree( 
  1220.                         XmFontListEntry *entry) ;
  1221. extern XtPointer XmFontListEntryGetFont( 
  1222.                         XmFontListEntry entry,
  1223.                         XmFontType *typeReturn) ;
  1224. extern char * XmFontListEntryGetTag( 
  1225.                         XmFontListEntry entry) ;
  1226. extern XmFontList XmFontListAppendEntry( 
  1227.                         XmFontList old,
  1228.                         XmFontListEntry entry) ;
  1229. extern XmFontListEntry XmFontListNextEntry( 
  1230.                         XmFontContext context) ;
  1231. extern XmFontList XmFontListRemoveEntry( 
  1232.                         XmFontList old,
  1233.                         XmFontListEntry entry) ;
  1234. extern XmFontListEntry XmFontListEntryLoad( 
  1235.                         Display *display,
  1236.                         char *fontName,
  1237.                         XmFontType type,
  1238.                         char *tag) ;
  1239. extern XmFontList XmFontListCreate( 
  1240.                         XFontStruct *font,
  1241.                         XmStringCharSet charset) ;
  1242. extern XmFontList XmStringCreateFontList( 
  1243.                         XFontStruct *font,
  1244.                         XmStringCharSet charset) ;
  1245. extern void XmFontListFree( 
  1246.                         XmFontList fontlist) ;
  1247. extern XmFontList XmFontListAdd( 
  1248.                         XmFontList old,
  1249.                         XFontStruct *font,
  1250.                         XmStringCharSet charset) ;
  1251. extern XmFontList XmFontListCopy( 
  1252.                         XmFontList fontlist) ;
  1253. extern Boolean XmFontListInitFontContext( 
  1254.                         XmFontContext *context,
  1255.                         XmFontList fontlist) ;
  1256. extern Boolean XmFontListGetNextFont( 
  1257.                         XmFontContext context,
  1258.                         XmStringCharSet *charset,
  1259.                         XFontStruct **font) ;
  1260. extern void XmFontListFreeFontContext( 
  1261.                         XmFontContext context) ;
  1262. extern XmString XmStringConcat( 
  1263.                         XmString a,
  1264.                         XmString b) ;
  1265. extern XmString XmStringNConcat( 
  1266.                         XmString first,
  1267.                         XmString second,
  1268.                         int n) ;
  1269. extern XmString XmStringCopy( 
  1270.                         XmString string) ;
  1271. extern XmString XmStringNCopy( 
  1272.                         XmString str,
  1273.                         int n) ;
  1274. extern Boolean XmStringByteCompare( 
  1275.                         XmString a1,
  1276.                         XmString b1) ;
  1277. extern Boolean XmStringCompare( 
  1278.                         XmString a,
  1279.                         XmString b) ;
  1280. extern int XmStringLength( 
  1281.                         XmString string) ;
  1282. extern Boolean XmStringEmpty( 
  1283.                         XmString string) ;
  1284. extern Boolean XmStringHasSubstring( 
  1285.                         XmString string,
  1286.                         XmString substring) ;
  1287. extern void XmStringFree( 
  1288.                         XmString string) ;
  1289. extern Dimension XmStringBaseline( 
  1290.                         XmFontList fontlist,
  1291.                         XmString string) ;
  1292. extern Dimension XmStringWidth( 
  1293.                         XmFontList fontlist,
  1294.                         XmString string) ;
  1295. extern Dimension XmStringHeight( 
  1296.                         XmFontList fontlist,
  1297.                         XmString string) ;
  1298. extern void XmStringExtent( 
  1299.                         XmFontList fontlist,
  1300.                         XmString string,
  1301.                         Dimension *width,
  1302.                         Dimension *height) ;
  1303. extern int XmStringLineCount( 
  1304.                         XmString string) ;
  1305. extern void XmStringDraw( 
  1306.                         Display *d,
  1307.                         Window w,
  1308.                         XmFontList fontlist,
  1309.                         XmString string,
  1310.                         GC gc,
  1311. #if NeedWidePrototypes
  1312.                         int x,
  1313.                         int y,
  1314.                         int width,
  1315.                         unsigned int align,
  1316.                         unsigned int lay_dir,
  1317. #else
  1318.                         Position x,
  1319.                         Position y,
  1320.                         Dimension width,
  1321.                         unsigned char align,
  1322.                         unsigned char lay_dir,
  1323. #endif /* NeedWidePrototypes */
  1324.                         XRectangle *clip) ;
  1325. extern void XmStringDrawImage( 
  1326.                         Display *d,
  1327.                         Window w,
  1328.                         XmFontList fontlist,
  1329.                         XmString string,
  1330.                         GC gc,
  1331. #if NeedWidePrototypes
  1332.                         int x,
  1333.                         int y,
  1334.                         int width,
  1335.                         unsigned int align,
  1336.                         unsigned int lay_dir,
  1337. #else
  1338.                         Position x,
  1339.                         Position y,
  1340.                         Dimension width,
  1341.                         unsigned char align,
  1342.                         unsigned char lay_dir,
  1343. #endif /* NeedWidePrototypes */
  1344.                         XRectangle *clip) ;
  1345. extern void XmStringDrawUnderline( 
  1346.                         Display *d,
  1347.                         Window w,
  1348.                         XmFontList fntlst,
  1349.                         XmString str,
  1350.                         GC gc,
  1351. #if NeedWidePrototypes
  1352.                         int x,
  1353.                         int y,
  1354.                         int width,
  1355.                         unsigned int align,
  1356.                         unsigned int lay_dir,
  1357. #else
  1358.                         Position x,
  1359.                         Position y,
  1360.                         Dimension width,
  1361.                         unsigned char align,
  1362.                         unsigned char lay_dir,
  1363. #endif /* NeedWidePrototypes */
  1364.                         XRectangle *clip,
  1365.                         XmString under) ;
  1366.  
  1367. #endif /* _NO_PROTO */
  1368. /********    End Public Function Declarations    ********/
  1369.  
  1370. /********    Public Function Declarations for Dest.c    ********/
  1371. #ifdef _NO_PROTO
  1372.  
  1373. extern Widget XmGetDestination() ;
  1374.  
  1375. #else
  1376.  
  1377. extern Widget XmGetDestination( 
  1378.                         Display *display) ;
  1379.  
  1380. #endif /* _NO_PROTO */
  1381. /********    End Public Function Declarations    ********/
  1382.  
  1383. /********    Public Function Declarations for Traversal.c    ********/
  1384. #ifdef _NO_PROTO
  1385.  
  1386. extern Boolean XmIsTraversable() ;
  1387. extern XmVisibility XmGetVisibility() ;
  1388. extern Widget XmGetTabGroup() ;
  1389. extern Widget XmGetFocusWidget() ;
  1390. extern Boolean XmProcessTraversal() ;
  1391. extern void XmAddTabGroup() ;
  1392. extern void XmRemoveTabGroup() ;
  1393.  
  1394. #else
  1395.  
  1396. extern Boolean XmIsTraversable( 
  1397.                         Widget wid) ;
  1398. extern XmVisibility XmGetVisibility( 
  1399.                         Widget wid) ;
  1400. extern Widget XmGetTabGroup( 
  1401.                         Widget wid) ;
  1402. extern Widget XmGetFocusWidget( 
  1403.                         Widget wid) ;
  1404. extern Boolean XmProcessTraversal( 
  1405.                         Widget w,
  1406.                         XmTraversalDirection dir) ;
  1407. extern void XmAddTabGroup( 
  1408.                         Widget tabGroup) ;
  1409. extern void XmRemoveTabGroup( 
  1410.                         Widget w) ;
  1411.  
  1412. #endif /* _NO_PROTO */
  1413. /********    End Public Function Declarations    ********/
  1414.  
  1415.  
  1416. /********    Public Function Declarations for XmIm.c    ********/
  1417. #ifdef _NO_PROTO
  1418.  
  1419. extern void XmImRegister() ;
  1420. extern void XmImUnregister() ;
  1421. extern void XmImSetFocusValues() ;
  1422. extern void XmImSetValues() ;
  1423. extern void XmImUnsetFocus() ;
  1424. extern XIM XmImGetXIM() ;
  1425. extern int XmImMbLookupString() ;
  1426. extern void XmImVaSetFocusValues() ;
  1427. extern void XmImVaSetValues() ;
  1428.  
  1429. #else
  1430.  
  1431. extern void XmImRegister( 
  1432.                         Widget w,
  1433.             unsigned int reserved) ;
  1434. extern void XmImUnregister( 
  1435.                         Widget w) ;
  1436. extern void XmImSetFocusValues( 
  1437.                         Widget w,
  1438.                         ArgList args,
  1439.                         Cardinal num_args) ;
  1440. extern void XmImSetValues( 
  1441.                         Widget w,
  1442.                         ArgList args,
  1443.                         Cardinal num_args) ;
  1444. extern void XmImUnsetFocus( 
  1445.                         Widget w) ;
  1446. extern XIM XmImGetXIM( 
  1447.                         Widget w) ;
  1448. extern int XmImMbLookupString( 
  1449.                         Widget w,
  1450.                         XKeyPressedEvent *event,
  1451.                         char *buf,
  1452.                         int nbytes,
  1453.                         KeySym *keysym,
  1454.                         int *status) ;
  1455. extern void XmImVaSetFocusValues( 
  1456.                         Widget w,
  1457.                         ...) ;
  1458. extern void XmImVaSetValues( 
  1459.                         Widget w,
  1460.                         ...) ;
  1461.  
  1462. #endif /* _NO_PROTO */
  1463. /********    End Public Function Declarations    ********/
  1464.  
  1465. /********        ********/
  1466.  
  1467. #ifdef __cplusplus
  1468. }  /* Close scope of 'extern "C"' declaration which encloses file. */
  1469. #endif
  1470.  
  1471. /* The following includes are for source compatibility.  They might be
  1472. *    removed at some future time.
  1473. */
  1474. #include <Xm/VendorS.h>
  1475.  
  1476. #endif /* _Xm_h */
  1477.  /* DON'T ADD STUFF AFTER THIS #endif */
  1478.