1: /** 2: * 3: * $Header: /cvsroot/lesstif/lesstif/include/Motif-2.1/Xm/Xm.h.in,v 1.33 2002/09/10 22:09:13 dannybackx Exp $ 4: * 5: * Copyright © 1995 Free Software Foundation, Inc. 6: * Copyright © 1995, 1996, 1997, 1998, 1999, 2000, 2001, 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: 27: #ifndef _XM_XM_H 28: #define _XM_XM_H 29: 30: #include <stddef.h> /* for wchar_t, etc. */ 31: 32: #include <X11/Intrinsic.h> 33: #include <X11/Shell.h> 34: #include <X11/Xatom.h> 35: 36: /* handy little define */ 37: 38: #if NeedFunctionPrototypes 39: #define _XmANSI_ARGS_(args) args 40: #else 41: #define _XmANSI_ARGS_(args) () 42: #endif 43: 44: /* Version Information */ 45: #define LESSTIF_VERSION 0 46: #define LESSTIF_REVISION 93 47: 48: #define LesstifVersion (LESSTIF_VERSION * 1000 + LESSTIF_REVISION) 49: #define LesstifVERSION_STRING "@(#)GNU/LessTif Version 2.1 Release 0.93.94" 50: 51: /* since we're replacing Motif 2.1... */ 52: #define XmVERSION 2 53: #define XmREVISION 1 54: #define XmVersion (XmVERSION * 1000 + XmREVISION) 55: #define XmVERSION_STRING LesstifVERSION_STRING 56: #define XmUPDATE_LEVEL 0 57: 58: /* Our headers may use the #defines made above! */ 59: #include <Xm/XmStrDefs.h> 60: #include <Xm/VirtKeys.h> 61: #include <Xm/Transfer.h> 62: #include <Xm/Primitive.h> 63: #include <Xm/Manager.h> 64: #include <Xm/Gadget.h> 65: 66: #ifdef __cplusplus 67: extern "C" { 68: #endif 69: 70: extern int xmUseVersion; 71: 72: /* pixmap stuff */ 73: 74: #define XmUNSPECIFIED_PIXMAP 2 75: 76: /* define for easy checking for unset resources */ 77: 78: #define XmUNSPECIFIED (~0) 79: 80: /* 81: * vendor defines (hey, GNU is a vendor) 82: */ 83: #define XmSTRING_OS_CHARSET XmSTRING_ISO8859_1 84: #ifndef XmFALLBACK_CHARSET 85: #define XmFALLBACK_CHARSET XmSTRING_ISO8859_1 86: #endif 87: 88: #define XmDEFAULT_FONT _XmSDEFAULT_FONT 89: #define XmDEFAULT_BACKGROUND _XmSDEFAULT_BACKGROUND 90: #define XmDEFAULT_DARK_THRESHOLD 20 91: #define XmDEFAULT_LIGHT_THRESHOLD 93 92: #define XmDEFAULT_FOREGROUND_THRESHOLD 70 93: 94: extern char _XmSDEFAULT_FONT[]; 95: extern char _XmSDEFAULT_BACKGROUND[]; 96: 97: typedef unsigned char XmDirection; 98: 99: #define XmDIRECTION_IGNORED 0x30 100: 101: #define XmRIGHT_TO_LEFT_MASK 0x01 102: #define XmLEFT_TO_RIGHT_MASK 0x02 103: #define XmHORIZONTAL_MASK 0x03 104: #define XmTOP_TO_BOTTOM_MASK 0x04 105: #define XmBOTTOM_TO_TOP_MASK 0x08 106: #define XmVERTICAL_MASK 0x0c 107: #define XmPRECEDENCE_HORIZ_MASK 0x40 108: #define XmPRECEDENCE_VERT_MASK 0x80 109: #define XmPRECEDENCE_MASK 0xc0 110: 111: enum { 112: XmRIGHT_TO_LEFT_TOP_TO_BOTTOM = 113: XmRIGHT_TO_LEFT_MASK | XmTOP_TO_BOTTOM_MASK | XmPRECEDENCE_HORIZ_MASK, 114: XmLEFT_TO_RIGHT_TOP_TO_BOTTOM = 115: XmLEFT_TO_RIGHT_MASK | XmTOP_TO_BOTTOM_MASK | XmPRECEDENCE_HORIZ_MASK, 116: XmRIGHT_TO_LEFT_BOTTOM_TO_TOP = 117: XmRIGHT_TO_LEFT_MASK | XmBOTTOM_TO_TOP_MASK | XmPRECEDENCE_HORIZ_MASK, 118: XmLEFT_TO_RIGHT_BOTTOM_TO_TOP = 119: XmLEFT_TO_RIGHT_MASK | XmBOTTOM_TO_TOP_MASK | XmPRECEDENCE_HORIZ_MASK, 120: XmTOP_TO_BOTTOM_RIGHT_TO_LEFT = 121: XmRIGHT_TO_LEFT_MASK | XmTOP_TO_BOTTOM_MASK | XmPRECEDENCE_VERT_MASK, 122: XmTOP_TO_BOTTOM_LEFT_TO_RIGHT = 123: XmLEFT_TO_RIGHT_MASK | XmTOP_TO_BOTTOM_MASK | XmPRECEDENCE_VERT_MASK, 124: XmBOTTOM_TO_TOP_RIGHT_TO_LEFT = 125: XmRIGHT_TO_LEFT_MASK | XmBOTTOM_TO_TOP_MASK | XmPRECEDENCE_VERT_MASK, 126: XmBOTTOM_TO_TOP_LEFT_TO_RIGHT = 127: XmLEFT_TO_RIGHT_MASK | XmBOTTOM_TO_TOP_MASK | XmPRECEDENCE_VERT_MASK, 128: XmTOP_TO_BOTTOM = 129: XmTOP_TO_BOTTOM_MASK | XmHORIZONTAL_MASK | XmPRECEDENCE_MASK, 130: XmBOTTOM_TO_TOP = 131: XmBOTTOM_TO_TOP_MASK | XmHORIZONTAL_MASK | XmPRECEDENCE_MASK, 132: XmRIGHT_TO_LEFT = 133: XmRIGHT_TO_LEFT_MASK | XmVERTICAL_MASK | XmPRECEDENCE_MASK, 134: XmLEFT_TO_RIGHT = 135: XmLEFT_TO_RIGHT_MASK | XmVERTICAL_MASK | XmPRECEDENCE_MASK, 136: XmDEFAULT_DIRECTION = 0xff 137: }; 138: 139: /* 140: * XmString stuff 141: */ 142: 143: typedef enum { 144: XmFONT_IS_FONT, 145: XmFONT_IS_FONTSET, 146: XmFONT_IS_XOC, /* IBM's BiDi extension to Motif */ 147: XmFONT_IS_XFT /* FontConfig */ 148: } XmFontType; 149: 150: enum { 151: XmSTRING_DIRECTION_L_TO_R, 152: XmSTRING_DIRECTION_R_TO_L, 153: XmSTRING_DIRECTION_UNSET = 3, 154: XmSTRING_DIRECTION_DEFAULT = XmDEFAULT_DIRECTION 155: }; 156: 157: typedef unsigned char XmStringDirection; 158: typedef unsigned char *XmString; 159: typedef XmString *XmStringTable; 160: typedef char *XmStringCharSet; 161: typedef unsigned char XmStringComponentType; 162: typedef char *XmStringTag; 163: 164: typedef struct __XmStringContextRec *_XmStringContext; 165: typedef struct __XmStringRec *_XmString; 166: typedef struct _XmtStringContextRec *XmStringContext; 167: typedef struct _XmFontListContextRec *XmFontContext; 168: 169: /* 170: * Rendering stuff 171: * The definitions for this replace some older XmFontList* stuff. 172: * Here's the old stuff for reference : 173: * typedef struct _XmFontListRec *XmFontListEntry, *XmFontList; 174: */ 175: typedef struct __XmRenditionRec *XmFontListEntry; 176: typedef struct __XmRenderTableRec *XmFontList; 177: 178: typedef struct __XmRenditionRec *XmRendition; 179: typedef struct __XmRenderTableRec *XmRenderTable; 180: 181: enum { 182: XmSTRING_COMPONENT_UNKNOWN, /* 0 */ 183: XmSTRING_COMPONENT_CHARSET, /* 1 */ 184: XmSTRING_COMPONENT_TEXT, /* 2 */ 185: XmSTRING_COMPONENT_DIRECTION, /* 3 */ 186: XmSTRING_COMPONENT_SEPARATOR, /* 4 */ 187: XmSTRING_COMPONENT_LOCALE_TEXT, /* 5 */ 188: XmSTRING_COMPONENT_LOCALE, /* 6 */ 189: XmSTRING_COMPONENT_WIDECHAR_TEXT, /* 7 */ 190: XmSTRING_COMPONENT_LAYOUT_PUSH, /* 8 */ 191: XmSTRING_COMPONENT_LAYOUT_POP, /* 9 */ 192: XmSTRING_COMPONENT_RENDITION_BEGIN, /* 10 */ 193: XmSTRING_COMPONENT_RENDITION_END, /* 11 */ 194: XmSTRING_COMPONENT_TAB /* 12 */ 195: /* 13 - 125 is said to be reserved */ 196: }; 197: 198: #define XmSTRING_COMPONENT_FONTLIST_ELEMENT_TAG XmSTRING_COMPONENT_CHARSET 199: 200: #define XmSTRING_COMPONENT_TAG XmSTRING_COMPONENT_CHARSET 201: 202: #define XmSTRING_COMPONENT_END ((XmStringComponentType) 126) 203: /* anybody know what 127 is? */ 204: #define XmSTRING_COMPONENT_USER_BEGIN ((XmStringComponentType) 128) 205: /* 128-255 are user tags */ 206: #define XmSTRING_COMPONENT_USER_END ((XmStringComponentType) 255) 207: 208: typedef enum { 209: XmCHARSET_TEXT, 210: XmMULTIBYTE_TEXT, 211: XmWIDECHAR_TEXT, 212: XmNO_TEXT 213: } XmTextType; 214: 215: typedef enum { 216: XmOUTPUT_ALL, 217: XmOUTPUT_BETWEEN, 218: XmOUTPUT_BEGINNING, 219: XmOUTPUT_END, 220: XmOUTPUT_BOTH 221: } XmParseModel; 222: 223: typedef struct __XmParseMappingRec *XmParseMapping; /* Definition hidden in source */ 224: typedef XmParseMapping *XmParseTable; 225: typedef unsigned char XmIncludeStatus; 226: 227: typedef XmIncludeStatus (*XmParseProc) ( 228: XtPointer *text_in_out, 229: XtPointer text_end, 230: XmTextType type, 231: XmStringTag tag, 232: XmParseMapping entry, 233: int pattern_length, 234: XmString *str_include, 235: XtPointer call_data); 236: 237: enum { 238: XmINSERT, 239: XmTERMINATE, 240: XmINVOKE 241: }; 242: 243: typedef enum { 244: XmSTYLE_STRING = XStringStyle, 245: XmSTYLE_COMPOUND = XCompoundTextStyle, 246: XmSTYLE_TEXT = XTextStyle, 247: XmSTYLE_STANDARD_ICC_TEXT = XStdICCTextStyle, 248: XmSTYLE_LOCALE = 32, 249: XmSTYLE_COMPOUND_STRING 250: } XmICCEncodingStyle; 251: 252: /* tab list stuff */ 253: typedef enum { 254: XmABSOLUTE, 255: XmRELATIVE 256: } XmOffsetModel; 257: 258: typedef struct _XmTabRec *XmTab; 259: typedef struct _XmTabListRec *XmTabList; 260: 261: /* render table stuff */ 262: 263: typedef enum { 264: XmSKIP, 265: XmMERGE_REPLACE, 266: XmMERGE_OLD, 267: XmMERGE_NEW, 268: XmDUPLICATE 269: } XmMergeMode; 270: 271: #define XmAS_IS 255 272: #define XmFORCE_COLOR 1 273: 274: #define XmUNSPECIFIED_PIXEL ((Pixel) (~0)) 275: #define XmDEFAULT_SELECT_COLOR XmUNSPECIFIED_PIXEL 276: #define XmREVERSED_GROUND_COLORS (XmDEFAULT_SELECT_COLOR - 1) 277: #define XmHIGHLIGHT_COLOR (XmREVERSED_GROUND_COLORS - 1) 278: 279: enum { 280: XmUNSPECIFIED_LOAD_MODEL, 281: XmLOAD_DEFERRED, 282: XmLOAD_IMMEDIATE 283: }; 284: 285: /* size policy stuff */ 286: 287: enum { 288: XmCHANGE_ALL, 289: XmCHANGE_NONE, 290: XmCHANGE_WIDTH, 291: XmCHANGE_HEIGHT 292: }; 293: 294: /* unitType stuff */ 295: 296: enum { 297: XmPIXELS, 298: Xm100TH_MILLIMETERS, 299: Xm1000TH_INCHES, 300: Xm100TH_POINTS, 301: Xm100TH_FONT_UNITS, 302: XmINCHES, 303: XmCENTIMETERS, 304: XmMILLIMETERS, 305: XmPOINTS, 306: XmFONT_UNITS 307: }; 308: 309: /* delete Responses for VendorShell */ 310: 311: enum { 312: XmDESTROY, 313: XmUNMAP, 314: XmDO_NOTHING 315: }; 316: 317: /* keyboard focus policies for VendorShell */ 318: 319: enum { 320: XmEXPLICIT, 321: XmPOINTER 322: }; 323: 324: /* Navigation stuff */ 325: 326: enum { 327: XmNONE, 328: XmTAB_GROUP, 329: XmSTICKY_TAB_GROUP, 330: XmEXCLUSIVE_TAB_GROUP 331: }; 332: 333: /* Audible Warning types for VendorShell */ 334: 335: enum { 336: /* implied 337: * XmNONE 338: */ 339: XmBELL = 1 340: }; 341: 342: /* Input Manager types */ 343: enum { 344: XmPER_SHELL, 345: XmPER_WIDGET, 346: XmINHERIT_POLICY = 255 347: }; 348: 349: /* Note: The define in XmI.h was changed to XmIMInputPolicy. */ 350: typedef unsigned char XmInputPolicy; 351: 352: /* various widgets' orientation, menu definitions */ 353: 354: enum { 355: XmNO_ORIENTATION, 356: XmVERTICAL, 357: XmHORIZONTAL 358: }; 359: 360: /* row column types */ 361: 362: enum { 363: XmWORK_AREA, 364: XmMENU_BAR, 365: XmMENU_PULLDOWN, 366: XmMENU_POPUP, 367: XmMENU_OPTION 368: }; 369: 370: /* row column packing strategies */ 371: 372: enum { 373: XmNO_PACKING, 374: XmPACK_TIGHT, 375: XmPACK_COLUMN, 376: XmPACK_NONE 377: }; 378: 379: enum { 380: /* implied 381: * XmALIGNMENT_BASELINE_TOP, 382: * XmALIGNMENT_CENTER, 383: * XmALIGNMENT_BASELINE_BOTTOM, 384: */ 385: XmALIGNMENT_CONTENTS_TOP = 3, 386: XmALIGNMENT_CONTENTS_BOTTOM 387: }; 388: 389: enum { 390: XmTEAR_OFF_ENABLED, 391: XmTEAR_OFF_DISABLED 392: }; 393: 394: enum { 395: XmUNPOST, 396: XmUNPOST_AND_REPLAY 397: }; 398: 399: /* XmPanedWindow positioning */ 400: enum { 401: XmLAST_POSITION = -1, 402: XmFIRST_POSITION 403: }; 404: 405: /* XmComboBox types */ 406: enum { 407: XmCOMBO_BOX = 0, 408: XmDROP_DOWN_COMBO_BOX, 409: XmDROP_DOWN_LIST 410: }; 411: 412: /* XmComboBox: XmNpositionMode resource */ 413: enum { 414: XmZERO_BASED, 415: XmONE_BASED 416: }; 417: 418: enum { 419: XmQUICK_NAVIGATE = 1 420: }; 421: 422: /* Label and Frame alignments */ 423: 424: enum { 425: XmALIGNMENT_BEGINNING, 426: XmALIGNMENT_CENTER, 427: XmALIGNMENT_END 428: }; 429: 430: enum { 431: XmALIGNMENT_BASELINE_TOP, 432: /* implied 433: * XmALIGNMENT_CENTER 434: */ 435: XmALIGNMENT_BASELINE_BOTTOM = 2, 436: XmALIGNMENT_WIDGET_TOP, 437: XmALIGNMENT_WIDGET_BOTTOM 438: }; 439: 440: #define XmALIGNMENT_CHILD_TOP XmALIGNMENT_WIDGET_BOTTOM 441: #define XmALIGNMENT_CHILD_BOTTOM XmALIGNMENT_WIDGET_TOP 442: 443: /* Frame Child Types */ 444: 445: enum { 446: XmFRAME_GENERIC_CHILD, 447: XmFRAME_WORKAREA_CHILD, 448: XmFRAME_TITLE_CHILD 449: }; 450: 451: /* For toggle button stuff */ 452: enum { 453: XmN_OF_MANY = 1, 454: XmONE_OF_MANY, 455: XmONE_OF_MANY_ROUND, 456: XmONE_OF_MANY_DIAMOND 457: }; 458: 459: enum { XmUNSET, XmSET, XmINDETERMINATE }; 460: enum { XmTOGGLE_BOOLEAN, XmTOGGLE_INDETERMINATE }; 461: 462: typedef unsigned char XmToggleButtonState; 463: 464: /* Form attachments */ 465: 466: enum { 467: XmATTACH_NONE, 468: XmATTACH_FORM, 469: XmATTACH_OPPOSITE_FORM, 470: XmATTACH_WIDGET, 471: XmATTACH_OPPOSITE_WIDGET, 472: XmATTACH_POSITION, 473: XmATTACH_SELF 474: }; 475: 476: /* resize policies for some manager widgets */ 477: 478: enum { 479: XmRESIZE_NONE, 480: XmRESIZE_GROW, 481: XmRESIZE_ANY 482: }; 483: 484: /* callback reasons */ 485: 486: enum { 487: XmCR_NONE, /* 0 */ 488: XmCR_HELP, /* 1 */ 489: XmCR_VALUE_CHANGED, /* 2 */ 490: XmCR_INCREMENT, /* 3 */ 491: XmCR_DECREMENT, /* 4 */ 492: XmCR_PAGE_INCREMENT, /* 5 */ 493: XmCR_PAGE_DECREMENT, /* 6 */ 494: XmCR_TO_TOP, /* 7 */ 495: XmCR_TO_BOTTOM, /* 8 */ 496: XmCR_DRAG, /* 9 */ 497: XmCR_ACTIVATE, /* 10 */ 498: XmCR_ARM, /* 11 */ 499: XmCR_DISARM, /* 12 */ 500: XmCR_DUMMY13, /* 13 */ 501: XmCR_DUMMY14, /* 14 */ 502: XmCR_DUMMY15, /* 15 */ 503: XmCR_MAP, /* 16 */ 504: XmCR_UNMAP, /* 17 */ 505: XmCR_FOCUS, /* 18 */ 506: XmCR_LOSING_FOCUS, /* 19 */ 507: XmCR_MODIFYING_TEXT_VALUE, /* 20 */ 508: XmCR_MOVING_INSERT_CURSOR, /* 21 */ 509: XmCR_EXECUTE, /* 22 */ 510: XmCR_SINGLE_SELECT, /* 23 */ 511: XmCR_MULTIPLE_SELECT, /* 24 */ 512: XmCR_EXTENDED_SELECT, /* 25 */ 513: XmCR_BROWSE_SELECT, /* 26 */ 514: XmCR_DEFAULT_ACTION, /* 27 */ 515: XmCR_CLIPBOARD_DATA_REQUEST, /* 28 */ 516: XmCR_CLIPBOARD_DATA_DELETE, /* 29 */ 517: XmCR_CASCADING, /* 30 */ 518: XmCR_OK, /* 31 */ 519: XmCR_CANCEL, /* 32 */ 520: XmCR_DUMMY33, /* 33 */ 521: XmCR_APPLY, /* 34 */ 522: XmCR_NO_MATCH, /* 35 */ 523: XmCR_COMMAND_ENTERED, /* 36 */ 524: XmCR_COMMAND_CHANGED, /* 37 */ 525: XmCR_EXPOSE, /* 38 */ 526: XmCR_RESIZE, /* 39 */ 527: XmCR_INPUT, /* 40 */ 528: XmCR_GAIN_PRIMARY, /* 41 */ 529: XmCR_LOSE_PRIMARY, /* 42 */ 530: XmCR_CREATE, /* 43 */ 531: XmCR_TEAR_OFF_ACTIVATE, /* 44 */ 532: XmCR_TEAR_OFF_DEACTIVATE, /* 45 */ 533: XmCR_OBSCURED_TRAVERSAL, /* 46 */ 534: XmCR_FOCUS_MOVED, /* 47 */ 535: XmCR_DUMMY48, /* 48 */ 536: XmCR_DUMMY49, /* 49 */ 537: XmCR_DUMMY50, /* 50 */ 538: XmCR_DUMMY51, /* 51 */ 539: XmCR_DUMMY52, /* 52 */ 540: XmCR_DUMMY53, /* 53 */ 541: XmCR_REPOST, /* 54 */ 542: XmCR_COLLAPSED, /* 55 */ 543: XmCR_EXPANDED, /* 56 */ 544: XmCR_SELECT, /* 57 */ 545: XmCR_DRAG_START, /* 58 */ 546: XmCR_NO_FONT, /* 59 */ 547: XmCR_NO_RENDITION, /* 60 */ 548: XmCR_POST, /* 61 */ 549: XmCR_SPIN_NEXT, /* 62 */ 550: XmCR_SPIN_PRIOR, /* 63 */ 551: XmCR_SPIN_FIRST, /* 64 */ 552: XmCR_SPIN_LAST, /* 65 */ 553: XmCR_PAGE_SCROLLER_INCREMENT, /* 66 */ 554: XmCR_PAGE_SCROLLER_DECREMENT, /* 67 */ 555: XmCR_MAJOR_TAB, /* 68 */ 556: XmCR_MINOR_TAB, /* 69 */ 557: XmCR_START_JOB, 558: XmCR_END_JOB, 559: XmCR_PAGE_SETUP, 560: XmCR_PDM_NONE, /* ?? */ 561: XmCR_PDM_START_VXAUTH, /* ?? */ 562: XmCR_PDM_START_PXAUTH, /* ?? */ 563: XmCR_PDM_UP, /* ?? */ 564: XmCR_PDM_OK, /* ?? */ 565: XmCR_PDM_CANCEL, /* ?? */ 566: XmCR_PDM_START_ERROR, /* ?? */ 567: XmCR_PDM_EXIT_ERROR, /* ?? */ 568: XmCR_PROTOCOLS = 6666 /* Note: this was 47 in Motif 1.2x */ 569: }; 570: 571: /* 572: * callback structures 573: */ 574: 575: typedef struct { 576: int reason; 577: XEvent *event; 578: } XmAnyCallbackStruct; 579: 580: typedef struct { 581: int reason; 582: XEvent *event; 583: int click_count; 584: } XmArrowButtonCallbackStruct; 585: 586: typedef struct { 587: int reason; 588: XEvent *event; 589: XmString item_or_text; 590: int item_position; 591: } XmComboBoxCallbackStruct; 592: 593: typedef struct { 594: int reason; 595: XEvent *event; 596: XmString value; 597: int length; 598: } XmCommandCallbackStruct; 599: 600: typedef struct { 601: int reason; 602: XEvent *event; 603: Widget item; 604: unsigned char new_outline_state; 605: } XmContainerOutlineCallbackStruct; 606: 607: typedef struct { 608: int reason; 609: XEvent *event; 610: WidgetList selected_items; 611: int selected_item_count; 612: unsigned char auto_selection_type; 613: } XmContainerSelectCallbackStruct; 614: 615: typedef struct { 616: int reason; 617: XEvent *event; 618: XmRendition rendition; 619: char *font_name; 620: XmRenderTable render_table; 621: XmStringTag tag; 622: } XmDisplayCallbackStruct; 623: 624: typedef struct _XmDragStartCallbackStruct { 625: int reason; 626: XEvent *event; 627: Widget widget; 628: Boolean doit; 629: } XmDragStartCallbackStruct, *XmDragStartCallback; 630: 631: typedef struct { 632: int reason; 633: XEvent *event; 634: Window window; 635: } XmDrawingAreaCallbackStruct; 636: 637: typedef struct { 638: int reason; 639: XEvent *event; 640: Window window; 641: int click_count; 642: } XmDrawnButtonCallbackStruct; 643: 644: typedef struct { 645: int reason; 646: XEvent *event; 647: XmString value; 648: int length; 649: XmString mask; 650: int mask_length; 651: XmString dir; 652: int dir_length; 653: XmString pattern; 654: int pattern_length; 655: } XmFileSelectionBoxCallbackStruct; 656: 657: typedef struct { 658: int reason; /* reason callback was called */ 659: XEvent *event; /* points to event structure */ 660: XmString item; /* item most recently selected */ 661: int item_length; /* number of bytes in item member */ 662: int item_position; /* item's position in XmNitems */ 663: XmString *selected_items; /* list of items selected */ 664: int selected_item_count; /* number of items in selected_items */ 665: int *selected_item_positions; /* array of ints marking selected items */ 666: char selection_type; /* type of most recent selection */ 667: unsigned char auto_selection_type; /* type of automatic selection callback */ 668: } XmListCallbackStruct; 669: 670: typedef struct { 671: int reason; 672: XEvent *event; 673: int page_number; 674: Widget page_widget; 675: int prev_page_number; 676: Widget prev_page_widget; 677: } XmNotebookCallbackStruct; 678: 679: typedef struct { 680: int reason; 681: XEvent *event; 682: Widget menuToPost; 683: Boolean postIt; 684: Widget target; 685: } XmPopupHandlerCallbackStruct; 686: 687: typedef struct { 688: int reason; /* reason callback was called */ 689: XEvent *event; 690: int click_count; 691: } XmPushButtonCallbackStruct; 692: 693: typedef struct { 694: int reason; 695: XEvent *event; 696: Widget widget; 697: char *data; 698: char *callbackstruct; 699: } XmRowColumnCallbackStruct; 700: 701: 702: typedef struct { 703: int reason; /* reason callback was called */ 704: XEvent *event; 705: int value; 706: } XmScaleCallbackStruct; 707: 708: typedef struct { 709: int reason; 710: XEvent *event; 711: int value; 712: int pixel; 713: } XmScrollBarCallbackStruct; 714: 715: typedef struct { 716: int reason; 717: XEvent *event; 718: XmString value; 719: int length; 720: } XmSelectionBoxCallbackStruct; 721: 722: typedef struct { 723: int reason; 724: XEvent *event; 725: Widget widget; 726: Boolean doit; 727: int position; 728: XmString value; 729: Boolean crossed_boundary; 730: } XmSimpleSpinBoxCallbackStruct; 731: 732: typedef struct { 733: int reason; 734: XEvent *event; 735: Widget widget; 736: Boolean doit; 737: int position; 738: XmString value; 739: Boolean crossed_boundary; 740: } XmSpinBoxCallbackStruct; 741: 742: typedef struct { 743: int reason; /* reason callback was called */ 744: XEvent *event; 745: int set; 746: } XmToggleButtonCallbackStruct; 747: 748: /* multiclick */ 749: 750: enum { 751: XmMULTICLICK_DISCARD, 752: XmMULTICLICK_KEEP 753: }; 754: 755: /* Drawn button overrides some of the ShadowTypes */ 756: enum { 757: XmSHADOW_IN = 7, 758: XmSHADOW_OUT 759: }; 760: 761: /* Arrow button directions */ 762: enum { 763: XmARROW_UP, 764: XmARROW_DOWN, 765: XmARROW_LEFT, 766: XmARROW_RIGHT 767: }; 768: 769: /* Shadow/Separator types */ 770: 771: enum { 772: XmNO_LINE, 773: XmSINGLE_LINE, 774: XmDOUBLE_LINE, 775: XmSINGLE_DASHED_LINE, 776: XmDOUBLE_DASHED_LINE, 777: XmSHADOW_ETCHED_IN, 778: XmSHADOW_ETCHED_OUT, 779: XmSHADOW_ETCHED_IN_DASH, 780: XmSHADOW_ETCHED_OUT_DASH, 781: XmINVALID_SEPARATOR_TYPE 782: }; 783: 784: /* XmLabel types */ 785: 786: enum { 787: XmPIXMAP = 1, 788: XmSTRING 789: }; 790: 791: /* DragDrop */ 792: enum { 793: XmWINDOW, 794: /* implied 795: * XmPIXMAP 796: */ 797: XmCURSOR = 2 798: }; 799: 800: /* maximum value resources */ 801: 802: enum { 803: XmMAX_ON_TOP, 804: XmMAX_ON_BOTTOM, 805: XmMAX_ON_LEFT, 806: XmMAX_ON_RIGHT 807: }; 808: 809: /* list selection policies */ 810: 811: enum { 812: XmSINGLE_SELECT, 813: XmMULTIPLE_SELECT, 814: XmEXTENDED_SELECT, 815: XmBROWSE_SELECT 816: }; 817: 818: enum { 819: XmSTATIC, 820: XmDYNAMIC 821: }; 822: 823: enum { 824: XmNORMAL_MODE, 825: XmADD_MODE 826: }; 827: 828: /* container stuff */ 829: 830: /* for XmRAutomaticSelection */ 831: enum { 832: XmNO_AUTO_SELECT, 833: XmAUTO_SELECT 834: }; 835: 836: /* auto_selection_type */ 837: enum { 838: XmAUTO_UNSET, 839: XmAUTO_BEGIN, 840: XmAUTO_MOTION, 841: XmAUTO_CANCEL, 842: XmAUTO_NO_CHANGE, 843: XmAUTO_CHANGE 844: }; 845: 846: /* for XmRLineStyle */ 847: enum { 848: /* XmNO_LINE */ 849: XmSINGLE = 1 850: }; 851: 852: /* for XmREntryViewType */ 853: enum { 854: /* XmLARGE_ICON */ 855: /* XmSMALL_ICON */ 856: XmANY_ICON = 2 857: }; 858: 859: /* for XmRSpatialIncludeModel */ 860: enum { 861: XmAPPEND, 862: XmCLOSEST, 863: XmFIRST_FIT 864: }; 865: 866: /* for XmRLayoutType */ 867: enum { 868: XmOUTLINE, 869: XmSPATIAL, 870: XmDETAIL 871: }; 872: 873: /* for XmNoutlineButtonPolicy */ 874: enum { 875: XmOUTLINE_BUTTON_PRESENT, 876: XmOUTLINE_BUTTON_ABSENT 877: }; 878: 879: /* for XmRSpatialPlaceStyle */ 880: enum { 881: /* XmNONE */ 882: XmGRID = 1, 883: XmCELLS 884: }; 885: 886: /* for XmRPrimaryOwnership */ 887: enum { 888: XmOWN_NEVER, 889: XmOWN_ALWAYS, 890: XmOWN_MULTIPLE, 891: XmOWN_POSSIBLE_MULTIPLE 892: }; 893: 894: /* for XmRSpatialResizeModel */ 895: enum { 896: XmGROW_MINOR, 897: XmGROW_MAJOR, 898: XmGROW_BALANCED 899: }; 900: 901: /* for XmRSelectionTechnique */ 902: enum { 903: XmMARQUEE, 904: XmMARQUEE_EXTEND_START, 905: XmMARQUEE_EXTEND_BOTH, 906: XmTOUCH_ONLY, 907: XmTOUCH_OVER 908: }; 909: 910: /* for XmRSpatialSnapModel */ 911: enum { 912: /* XmNONE */ 913: XmSNAP_TO_GRID = 1, 914: XmCENTER 915: }; 916: 917: /* for XmROutlineState */ 918: enum { 919: XmCOLLAPSED, 920: XmEXPANDED 921: }; 922: 923: /* icon gadget stuff */ 924: 925: /* for XmRViewType */ 926: enum { 927: XmLARGE_ICON, 928: XmSMALL_ICON 929: }; 930: 931: /* for XmRVisualEmphasis */ 932: enum { 933: XmSELECTED, 934: XmNOT_SELECTED 935: }; 936: 937: /* notebook stuff */ 938: 939: #define XmUNSPECIFIED_PAGE_NUMBER (-32768) 940: 941: /* for XmRBindingType */ 942: enum { 943: /* XmNONE */ 944: /* XmPIXMAP */ 945: XmSOLID = 2, 946: XmSPIRAL, 947: XmPIXMAP_OVERLAP_ONLY 948: }; 949: 950: /* for XmRNBChildType */ 951: enum { 952: /* XmNONE */ 953: XmPAGE = 1, 954: XmMAJOR_TAB, 955: XmMINOR_TAB, 956: XmSTATUS_AREA, 957: XmPAGE_SCROLLER 958: }; 959: 960: /* spin box stuff */ 961: 962: /* for XmNarrowLayout */ 963: enum { 964: XmARROWS_END, 965: XmARROWS_BEGINNING, 966: XmARROWS_SPLIT, 967: XmARROWS_FLAT_END, 968: XmARROWS_FLAT_BEGINNING 969: }; 970: 971: /* XmSpinBox XmNarrowOrientation */ 972: enum { 973: XmARROWS_HORIZONTAL, 974: XmARROWS_VERTICAL 975: }; 976: 977: /* for XmNarrowSensitivity or XmNdefaultArrowSensitivity */ 978: enum { 979: XmARROWS_INSENSITIVE, 980: XmARROWS_INCREMENT_SENSITIVE, 981: XmARROWS_DECREMENT_SENSITIVE, 982: XmARROWS_SENSITIVE, 983: XmARROWS_DEFAULT_SENSITIVITY 984: }; 985: 986: /* for XmNspinBoxChildType */ 987: enum { 988: XmNUMERIC = 3 989: }; 990: 991: /* XmNpositionType for XmSpinBox */ 992: enum { 993: XmPOSITION_VALUE, 994: XmPOSITION_INDEX 995: }; 996: 997: /* XmSpinBoxValidatePosition() return values */ 998: enum{ 999: XmVALID_VALUE, 1000: XmCURRENT_VALUE, 1001: XmMINIMUM_VALUE, 1002: XmMAXIMUM_VALUE, 1003: XmINCREMENT_VALUE 1004: }; 1005: 1006: 1007: /* scrolled window policy stuff */ 1008: 1009: enum { 1010: XmVARIABLE, 1011: XmCONSTANT, 1012: XmRESIZE_IF_POSSIBLE 1013: }; 1014: 1015: enum { 1016: XmAUTOMATIC, 1017: XmAPPLICATION_DEFINED 1018: }; 1019: 1020: enum { 1021: /* implied 1022: * XmSTATIC, 1023: */ 1024: XmAS_NEEDED = 1 1025: }; 1026: 1027: enum { 1028: XmBOTTOM_RIGHT, 1029: XmTOP_RIGHT, 1030: XmBOTTOM_LEFT, 1031: XmTOP_LEFT 1032: }; 1033: 1034: /* main window command window locations */ 1035: 1036: enum { 1037: XmCOMMAND_ABOVE_WORKSPACE, 1038: XmCOMMAND_BELOW_WORKSPACE 1039: }; 1040: 1041: /* edit modes for text widgets */ 1042: 1043: enum { 1044: XmMULTI_LINE_EDIT, 1045: XmSINGLE_LINE_EDIT 1046: }; 1047: 1048: /* text directions */ 1049: 1050: typedef enum { 1051: XmTEXT_FORWARD, 1052: XmTEXT_BACKWARD 1053: } XmTextDirection; 1054: 1055: typedef long XmTextPosition; 1056: typedef Atom XmTextFormat; 1057: 1058: #define XmFMT_8_BIT ((XmTextFormat) XA_STRING) 1059: #define XmFMT_16_BIT ((XmTextFormat) 2) /* they _mean_ XA_SECONDARY ??? */ 1060: 1061: /* 1062: * something about backwards compatibility... besides, xmcd needs these 1063: */ 1064: #define FMT8BIT XmFMT_8_BIT 1065: #define FMT16BIT XmFMT_16_BIT 1066: 1067: #define XmFMT_8_BIT ((XmTextFormat) XA_STRING) 1068: #define XmFMT_16_BIT ((XmTextFormat) 2) /* they _mean_ XA_SECONDARY ??? */ 1069: 1070: /* Stuff for Text Widgets */ 1071: typedef enum { 1072: XmSELECT_POSITION, 1073: XmSELECT_WHITESPACE, 1074: XmSELECT_WORD, 1075: XmSELECT_LINE, 1076: XmSELECT_ALL, 1077: XmSELECT_PARAGRAPH, 1078: XmSELECT_OUT_LINE 1079: } XmTextScanType; 1080: 1081: /* highlight mode for text and textfield widgets */ 1082: 1083: typedef enum { 1084: XmHIGHLIGHT_NORMAL, 1085: XmHIGHLIGHT_SELECTED, 1086: XmHIGHLIGHT_SECONDARY_SELECTED 1087: } XmHighlightMode; 1088: 1089: typedef struct { 1090: char *ptr; 1091: int length; 1092: XmTextFormat format; 1093: } XmTextBlockRec, *XmTextBlock; 1094: 1095: /* keep the members comma separated, as that can be endian dependent */ 1096: typedef struct { 1097: int reason; 1098: XEvent *event; 1099: Boolean doit; 1100: XmTextPosition currInsert, newInsert; 1101: XmTextPosition startPos, endPos; 1102: XmTextBlock text; 1103: } XmTextVerifyCallbackStruct, *XmTextVerifyPtr; 1104: 1105: typedef struct { 1106: wchar_t *wcsptr; 1107: int length; 1108: } XmTextBlockRecWcs, *XmTextBlockWcs; 1109: 1110: typedef struct { 1111: int reason; 1112: XEvent *event; 1113: Boolean doit; 1114: XmTextPosition currInsert, newInsert; 1115: XmTextPosition startPos, endPos; 1116: XmTextBlockWcs text; 1117: } XmTextVerifyCallbackStructWcs, *XmTextVerifyPtrWcs; 1118: 1119: #define XmCOPY_FAILED 0 1120: #define XmCOPY_SUCCEEDED 1 1121: #define XmCOPY_TRUNCATED 2 1122: 1123: /* dialog child types */ 1124: 1125: enum { 1126: XmDIALOG_NONE, 1127: XmDIALOG_APPLY_BUTTON, 1128: XmDIALOG_CANCEL_BUTTON, 1129: XmDIALOG_DEFAULT_BUTTON, 1130: XmDIALOG_OK_BUTTON, 1131: XmDIALOG_FILTER_LABEL, 1132: XmDIALOG_FILTER_TEXT, 1133: XmDIALOG_HELP_BUTTON, 1134: XmDIALOG_LIST, 1135: XmDIALOG_LIST_LABEL, 1136: XmDIALOG_MESSAGE_LABEL, 1137: XmDIALOG_SELECTION_LABEL, 1138: XmDIALOG_SYMBOL_LABEL, 1139: XmDIALOG_TEXT, 1140: XmDIALOG_SEPARATOR, 1141: XmDIALOG_DIR_LIST, 1142: XmDIALOG_DIR_LIST_LABEL 1143: }; 1144: 1145: #define XmDIALOG_COMMAND_TEXT XmDIALOG_TEXT 1146: #define XmDIALOG_FILE_LIST XmDIALOG_LIST 1147: #define XmDIALOG_FILE_LIST_LABEL XmDIALOG_LIST_LABEL 1148: #define XmDIALOG_HISTORY_LIST XmDIALOG_LIST 1149: #define XmDIALOG_PROMPT_LABEL XmDIALOG_SELECTION_LABEL 1150: #define XmDIALOG_VALUE_TEXT XmDIALOG_TEXT 1151: 1152: /* dialog styles */ 1153: enum { 1154: XmDIALOG_MODELESS, 1155: XmDIALOG_PRIMARY_APPLICATION_MODAL, 1156: XmDIALOG_FULL_APPLICATION_MODAL, 1157: XmDIALOG_SYSTEM_MODAL 1158: }; 1159: 1160: /* this is obsolete. Use XmDIALOG_PRIMARY_APPLICATION_MODAL */ 1161: #define XmDIALOG_APPLICATION_MODAL XmDIALOG_PRIMARY_APPLICATION_MODAL 1162: 1163: /* child placements (for selection boxes) */ 1164: 1165: enum { 1166: XmPLACE_TOP, 1167: XmPLACE_ABOVE_SELECTION, 1168: XmPLACE_BELOW_SELECTION 1169: }; 1170: 1171: /* file type masks for filesb */ 1172: #define XmFILE_DIRECTORY (1 << 0) 1173: #define XmFILE_REGULAR (1 << 1) 1174: #define XmFILE_ANY_TYPE (XmFILE_DIRECTORY | XmFILE_REGULAR) 1175: 1176: /* defines for selection dialog type: */ 1177: 1178: enum { 1179: XmDIALOG_WORK_AREA, 1180: XmDIALOG_PROMPT, 1181: XmDIALOG_SELECTION, 1182: XmDIALOG_COMMAND, 1183: XmDIALOG_FILE_SELECTION 1184: }; 1185: 1186: /* dialog types */ 1187: enum { 1188: XmDIALOG_TEMPLATE, 1189: XmDIALOG_ERROR, 1190: XmDIALOG_INFORMATION, 1191: XmDIALOG_MESSAGE, 1192: XmDIALOG_QUESTION, 1193: XmDIALOG_WARNING, 1194: XmDIALOG_WORKING 1195: }; 1196: 1197: /* traversal stuff */ 1198: 1199: typedef enum { 1200: XmVISIBILITY_UNOBSCURED, 1201: XmVISIBILITY_PARTIALLY_OBSCURED, 1202: XmVISIBILITY_FULLY_OBSCURED 1203: } XmVisibility; 1204: 1205: typedef enum { 1206: XmTRAVERSE_CURRENT, 1207: XmTRAVERSE_NEXT, 1208: XmTRAVERSE_PREV, 1209: XmTRAVERSE_HOME, 1210: XmTRAVERSE_NEXT_TAB_GROUP, 1211: XmTRAVERSE_PREV_TAB_GROUP, 1212: XmTRAVERSE_UP, 1213: XmTRAVERSE_DOWN, 1214: XmTRAVERSE_LEFT, 1215: XmTRAVERSE_RIGHT 1216: } XmTraversalDirection; 1217: 1218: typedef struct { 1219: int reason; 1220: XEvent *event; 1221: Widget traversal_destination; 1222: XmTraversalDirection direction; 1223: } XmTraverseObscuredCallbackStruct; 1224: 1225: typedef unsigned char XmNavigationType; 1226: 1227: /* simple menu stuff */ 1228: 1229: typedef unsigned char XmButtonType; 1230: typedef XmButtonType * XmButtonTypeTable; 1231: typedef KeySym * XmKeySymTable; 1232: typedef XmStringCharSet * XmStringCharSetTable; 1233: 1234: enum { 1235: XmPUSHBUTTON = 1, 1236: XmTOGGLEBUTTON, 1237: XmRADIOBUTTON, 1238: XmCASCADEBUTTON, 1239: XmSEPARATOR, 1240: XmDOUBLE_SEPARATOR, 1241: XmTITLE 1242: }; 1243: 1244: #define XmCHECKBUTTON XmTOGGLEBUTTON 1245: 1246: /* Stuff needed by the base class stuff in BaseClass.c */ 1247: 1248: typedef XtPointer (*XmResourceBaseProc)(Widget w, XtPointer); 1249: 1250: typedef struct _XmSecondaryResourceDataRec { 1251: XmResourceBaseProc base_proc; 1252: XtPointer client_data; 1253: String name; 1254: String res_class; 1255: XtResourceList resources; 1256: Cardinal num_resources; 1257: } XmSecondaryResourceDataRec, *XmSecondaryResourceData; 1258: 1259: Cardinal XmGetSecondaryResourceData(WidgetClass wc, 1260: XmSecondaryResourceData **resData); 1261: 1262: /************************ Manager.c ***************************/ 1263: Widget XmObjectAtPoint(Widget cw, Position x, Position y); 1264: 1265: /************************ ImageCache.c ***************************/ 1266: 1267: Pixmap XmGetPixmap(Screen *screen, char *image_name, 1268: Pixel foreground, Pixel background); 1269: Pixmap XmGetPixmapByDepth(Screen *screen, char *image_name, 1270: Pixel foreground, Pixel background, int depth); 1271: Boolean XmDestroyPixmap(Screen *screen, Pixmap pixmap); 1272: Boolean XmInstallImage(XImage *image, char *image_name); 1273: Boolean XmUninstallImage(XImage *image); 1274: XtEnum XmGetScaledPixmap(Widget widget, String image_name, 1275: Pixel foreground, Pixel background, 1276: int depth, double scaling_ratio); 1277: 1278: /************************** Manager.c *****************************/ 1279: 1280: void XmUpdateDisplay(Widget w); 1281: 1282: /************************* Primitive.c ****************************/ 1283: 1284: typedef long XmOffset; 1285: typedef XmOffset *XmOffsetPtr; 1286: 1287: void XmResolvePartOffsets(WidgetClass w_class, XmOffsetPtr *offset); 1288: void XmResolveAllPartOffsets(WidgetClass w_class, XmOffsetPtr *offset, 1289: XmOffsetPtr *constraint_offset); 1290: Boolean XmWidgetGetBaselines(Widget wid, Dimension **baselines, 1291: int *line_count); 1292: Boolean XmWidgetGetDisplayRect(Widget wid, XRectangle *displayrect); 1293: 1294: /************************** RenderTable.c ****************************/ 1295: 1296: XmRenderTable XmRenderTableAddRenditions(XmRenderTable oldtable, 1297: XmRendition *renditions, 1298: Cardinal rendition_count, 1299: XmMergeMode merge_mode); 1300: 1301: XmRenderTable XmRenderTableCopy(XmRenderTable table, 1302: XmStringTag *tags, 1303: int tag_count); 1304: 1305: XmRenderTable XmRenderTableCvtFromProp(Widget widget, 1306: char *property, 1307: unsigned int length); 1308: 1309: unsigned int XmRenderTableCvtToProp(Widget widget, 1310: XmRenderTable table, 1311: char **prop_return); 1312: 1313: void XmRenderTableFree(XmRenderTable table); 1314: 1315: XmRendition XmRenderTableGetRendition(XmRenderTable table, 1316: XmStringTag tag); 1317: 1318: XmRendition *XmRenderTableGetRenditions(XmRenderTable table, 1319: XmStringTag *tags, 1320: Cardinal tag_count); 1321: 1322: int XmRenderTableGetTags(XmRenderTable table, 1323: XmStringTag **tag_list); 1324: 1325: XmRenderTable XmRenderTableRemoveRenditions(XmRenderTable oldtable, 1326: XmStringTag *tags, 1327: int tag_count); 1328: 1329: Boolean XmeRenderTableGetDefaultFont(XmRenderTable renderTable, 1330: XFontStruct **fontStruct); 1331: 1332: XmString XmStringGenerate(XtPointer text, 1333: XmStringTag tag, 1334: XmTextType type, 1335: XmStringTag rendition); 1336: 1337: XmRendition XmRenditionCreate(Widget widget, 1338: XmStringTag tag, 1339: ArgList arglist, 1340: Cardinal argcount); 1341: 1342: void XmRenditionFree(XmRendition rendition); 1343: 1344: void XmRenditionUpdate(XmRendition rendition, 1345: ArgList arglist, 1346: Cardinal argcount); 1347: 1348: void XmRenditionRetrieve (XmRendition rendition, 1349: ArgList arglist, 1350: Cardinal argcount); 1351: 1352: /************************ ResConvert.c ****************************/ 1353: 1354: void XmRegisterConverters(void); 1355: void XmCvtStringToUnitType(XrmValuePtr args, Cardinal *num_args, XrmValue *from_val, XrmValue *to_val); 1356: char *XmRegisterSegmentEncoding(char *fontlist_tag, char *ct_encoding); 1357: char *XmMapSegmentEncoding(char *fontlist_tag); 1358: XmString XmCvtCTToXmString(char *text); 1359: Boolean XmCvtTextToXmString(Display *display, XrmValuePtr args, 1360: Cardinal *num_args, XrmValue *from_val, 1361: XrmValue *to_val, XtPointer *converter_data); 1362: char *XmCvtXmStringToCT(XmString string); 1363: Boolean XmCvtXmStringToText(Display *display, XrmValuePtr args, 1364: Cardinal *num_args, XrmValue *from_val, 1365: XrmValue *to_val, XtPointer *converter_data); 1366: int XmConvertStringToUnits(Screen *screen, String spec, int orientation, 1367: int to_type, XtEnum *parse_error); 1368: unsigned int XmCvtXmStringToByteStream(XmString string, 1369: unsigned char **prop_return); 1370: XmString XmCvtByteStreamToXmString(unsigned char *property); 1371: int XmCvtXmStringTableToTextProperty (Display *display, 1372: XmStringTable string_table, 1373: int count, 1374: XmICCEncodingStyle style, 1375: XTextProperty *text_prop_return); 1376: 1377: /************************** ResInd.c ******************************/ 1378: 1379: int XmConvertUnits(Widget widget, int orientation, 1380: int from_unit_type, int from_value, int to_unit_type); 1381: int XmCvtToHorizontalPixels(Screen *screen, int from_val, int from_type); 1382: int XmCvtToVerticalPixels(Screen *screen, int from_val, int from_type); 1383: int XmCvtFromHorizontalPixels(Screen *screen, int from_val, int to_type); 1384: int XmCvtFromVerticalPixels(Screen *screen, int from_val, int to_type); 1385: void XmSetFontUnits(Display *display, int h_value, int v_value); 1386: void XmSetFontUnit(Display *display, int value); 1387: 1388: /************************* MenuUtil.c *****************************/ 1389: 1390: void XmSetMenuCursor(Display *display, Cursor cursorId); 1391: Cursor XmGetMenuCursor(Display *display); 1392: 1393: /************************** Simple.c ******************************/ 1394: 1395: Widget XmCreateSimpleCheckBox(Widget parent, char *name, 1396: Arg *arglist, Cardinal argcount); 1397: Widget XmCreateSimpleMenuBar(Widget parent, char *name, 1398: Arg *arglist, Cardinal argcount); 1399: Widget XmCreateSimpleOptionMenu(Widget parent, char *name, 1400: Arg *arglist, Cardinal argcount); 1401: Widget XmCreateSimplePopupMenu(Widget parent, char *name, 1402: Arg *arglist, Cardinal argcount); 1403: Widget XmCreateSimplePulldownMenu(Widget parent, char *name, 1404: Arg *arglist, Cardinal argcount); 1405: Widget XmCreateSimpleRadioBox(Widget parent, char *name, 1406: Arg *arglist, Cardinal argcount); 1407: 1408: /************************* VaSimple.c *****************************/ 1409: 1410: Widget XmVaCreateSimpleCheckBox(Widget parent, String name, 1411: XtCallbackProc callback, ...); 1412: Widget XmVaCreateSimpleMenuBar(Widget parent, String name, 1413: ...); 1414: Widget XmVaCreateSimpleOptionMenu(Widget parent, String name, 1415: XmString option_label, 1416: KeySym option_mnemonic, 1417: int button_set, 1418: XtCallbackProc callback, ...); 1419: Widget XmVaCreateSimplePopupMenu(Widget parent, String name, 1420: XtCallbackProc callback, ...); 1421: Widget XmVaCreateSimplePulldownMenu(Widget parent, String name, 1422: int post_from_button, 1423: XtCallbackProc callback, ...); 1424: Widget XmVaCreateSimpleRadioBox(Widget parent, String name, 1425: int button_set, 1426: XtCallbackProc callback, ...); 1427: 1428: /************************** TrackLoc.c *****************************/ 1429: 1430: Widget XmTrackingEvent(Widget widget, Cursor cursor, Boolean confine_to, 1431: XEvent *event_return); 1432: Widget XmTrackingLocate(Widget widget, Cursor cursor, Boolean confine_to); 1433: 1434: /**************************** Visual.c *****************************/ 1435: 1436: typedef void (*XmColorProc)(XColor *bg_color, XColor *fg_color, 1437: XColor *sel_color, XColor *ts_color, XColor *bs_color); 1438: 1439: 1440: XmColorProc XmSetColorCalculation(XmColorProc proc); 1441: XmColorProc XmGetColorCalculation(void); 1442: void XmGetColors(Screen *screen, Colormap color_map, 1443: Pixel background, Pixel *foreground_ret, 1444: Pixel *top_shadow_ret, Pixel *bottom_shadow_ret, 1445: Pixel *select_ret); 1446: void XmChangeColor(Widget widget, Pixel background); 1447: 1448: /*************************** XmString.c ****************************/ 1449: 1450: Dimension XmStringBaseline(XmFontList fontlist, XmString string); 1451: Boolean XmStringByteCompare(XmString s1, XmString s2); 1452: Boolean XmStringCompare(XmString s1, XmString s2); 1453: XmString XmStringConcat(XmString s1, XmString s2); 1454: XmString XmStringConcatAndFree(XmString s1, XmString s2); 1455: XmString XmStringCreate(char *text, char *tag); 1456: XmString XmStringCreateLtoR(char *text, char *tag); 1457: XmString XmStringLtoRCreate(char *text, char *tag); 1458: XmString XmStringCreateLocalized(char *text); 1459: XmString XmStringCreateSimple(char *text); 1460: XmString XmStringDirectionCreate(XmStringDirection direction); 1461: void XmStringDraw(Display *d, 1462: Window w, 1463: XmFontList fontlist, 1464: XmString string, 1465: GC gc, 1466: Position x, 1467: Position y, 1468: Dimension width, 1469: unsigned char alignment, 1470: unsigned char layout_direction, 1471: XRectangle *clip); 1472: void XmStringDrawImage(Display *d, Window w, 1473: XmFontList fontlist, 1474: XmString string, 1475: GC gc, 1476: Position x, 1477: Position y, 1478: Dimension width, 1479: unsigned char alignment, 1480: unsigned char layout_direction, 1481: XRectangle *clip); 1482: void XmStringDrawUnderline(Display *d, Window w, 1483: XmFontList fontlist, XmString string, 1484: GC gc, Position x, Position y, Dimension width, 1485: unsigned char alignment, 1486: unsigned char layout_direction, 1487: XRectangle *clip, 1488: XmString underline); 1489: Boolean XmStringEmpty(XmString s1); 1490: void XmStringExtent(XmFontList fontlist, 1491: XmString string, 1492: Dimension *width, 1493: Dimension *height); 1494: void XmStringFree(XmString string); 1495: void XmStringFreeContext(XmStringContext context); 1496: Boolean XmStringGetLtoR(XmString string, 1497: XmStringCharSet tag, 1498: char **text); 1499: XmStringComponentType XmStringGetNextComponent(XmStringContext context, 1500: char **text, 1501: XmStringCharSet *tag, 1502: XmStringDirection *direction, 1503: XmStringComponentType *unknown_tag, 1504: unsigned short *unknown_length, 1505: unsigned char **unknown_value); 1506: Boolean XmStringGetNextSegment(XmStringContext context, 1507: char **text, 1508: XmStringCharSet *tag, 1509: XmStringDirection *direction, 1510: Boolean *separator); 1511: Boolean XmStringHasSubstring(XmString string, 1512: XmString substring); 1513: Dimension XmStringHeight(XmFontList fontlist, XmString string); 1514: Boolean XmStringInitContext(XmStringContext *context, 1515: XmString string); 1516: int XmStringLength(XmString s1); 1517: int XmStringLineCount(XmString string); 1518: XmString XmStringNConcat(XmString s1, XmString s2, int num_bytes); 1519: XmString XmStringCopy(XmString s); 1520: XmString XmStringNCopy(XmString s1, int num_bytes); 1521: XmStringComponentType XmStringPeekNextComponent(XmStringContext context); 1522: XmString XmStringSegmentCreate(char *text, char *tag, 1523: XmStringDirection direction, 1524: Boolean separator); 1525: XmString XmStringSeparatorCreate(void); 1526: 1527: Dimension XmStringWidth(XmFontList fontList, XmString string); 1528: 1529: XtPointer XmStringUnparse(XmString string, 1530: XmStringTag tag, 1531: XmTextType tag_type, 1532: XmTextType output_type, 1533: XmParseTable parse_table, 1534: Cardinal parse_count, 1535: XmParseModel parse_model); 1536: 1537: 1538: Cardinal XmStringToXmStringTable(XmString string, 1539: XmString break_comp, 1540: XmStringTable *table); 1541: 1542: XmString XmStringTableToXmString(XmStringTable table, 1543: Cardinal count, 1544: XmString break_component); 1545: 1546: XtPointer *XmStringTableUnparse(XmStringTable table, 1547: Cardinal count, 1548: XmStringTag tag, 1549: XmTextType tag_type, 1550: XmTextType output_type, 1551: XmParseTable parse, 1552: Cardinal parse_count, 1553: XmParseModel parse_model); 1554: 1555: XmStringTable XmStringTableParseStringArray(XtPointer *strings, 1556: Cardinal count, 1557: XmStringTag tag, 1558: XmTextType type, 1559: XmParseTable parse, 1560: Cardinal parse_count, 1561: XtPointer call_data); 1562: 1563: XmString XmStringPutRendition(XmString string, 1564: XmStringTag rendition); 1565: 1566: XmParseMapping XmParseMappingCreate(ArgList arg_list, 1567: Cardinal arg_count); 1568: 1569: void XmParseMappingSetValues(XmParseMapping parse_mapping, 1570: ArgList arg_list, 1571: Cardinal arg_count); 1572: 1573: void XmParseMappingGetValues(XmParseMapping parse_mapping, 1574: ArgList arg_list, 1575: Cardinal arg_count); 1576: 1577: void XmParseMappingFree(XmParseMapping parse_mapping); 1578: 1579: void XmParseTableFree(XmParseTable parse_table, 1580: Cardinal parse_count); 1581: 1582: XmStringComponentType XmStringGetNextTriple(XmStringContext context, 1583: unsigned int *length, 1584: XtPointer *value); 1585: 1586: XmStringComponentType XmStringPeekNextTriple(XmStringContext context); 1587: 1588: XmString XmStringComponentCreate(XmStringComponentType ctype, 1589: unsigned int length, 1590: XtPointer value); 1591: 1592: Boolean XmStringIsVoid(XmString s1); 1593: 1594: XmString XmStringParseText(XtPointer text, XtPointer *text_end, XmStringTag tag, 1595: XmTextType type, XmParseTable parse_table, Cardinal parse_count, 1596: XtPointer call_data); 1597: 1598: /*************************** FontList.c *****************************/ 1599: 1600: XmFontList XmFontListAppendEntry(XmFontList oldlist, 1601: XmFontListEntry entry); 1602: XmFontList XmFontListCreate(XFontStruct *font, 1603: XmStringCharSet charset); 1604: XmFontList XmFontListAdd(XmFontList old, 1605: XFontStruct *font, 1606: XmStringCharSet charset); 1607: XmFontList XmFontListCopy(XmFontList fontlist); 1608: XmFontListEntry XmFontListEntryCreate(char *tag, 1609: XmFontType type, 1610: XtPointer font); 1611: void XmFontListEntryFree(XmFontListEntry *entry); 1612: XtPointer XmFontListEntryGetFont(XmFontListEntry entry, 1613: XmFontType *type_return); 1614: char *XmFontListEntryGetTag(XmFontListEntry entry); 1615: XmFontListEntry XmFontListEntryLoad(Display *display, 1616: char *font_name, 1617: XmFontType type, 1618: char *tag); 1619: void XmFontListFree(XmFontList list); 1620: void XmFontListFreeFontContext(XmFontContext context); 1621: Boolean XmFontListInitFontContext(XmFontContext *context, 1622: XmFontList fontlist); 1623: XmFontListEntry XmFontListNextEntry(XmFontContext context); 1624: Boolean XmFontListGetNextFont(XmFontContext context, XmStringCharSet *charset, XFontStruct **font); 1625: XmFontList XmFontListRemoveEntry(XmFontList oldlist, 1626: XmFontListEntry entry); 1627: 1628: XmFontList XmStringCreateFontList( XFontStruct *font, XmStringCharSet charset); 1629: 1630: /************************** Dest.c ***********************************/ 1631: 1632: Widget XmGetDestination(Display *display); 1633: 1634: /*************************** Traversal.c *****************************/ 1635: 1636: Boolean XmIsTraversable(Widget widget); 1637: XmVisibility XmGetVisibility(Widget widget); 1638: void XmAddTabGroup(Widget widget); 1639: void XmRemoveTabGroup(Widget widget); 1640: Widget XmGetTabGroup(Widget widget); 1641: Boolean XmProcessTraversal(Widget widget, XmTraversalDirection direction); 1642: Widget XmGetFocusWidget(Widget widget); 1643: 1644: /**************************** Direction.c *********************************/ 1645: 1646: Boolean XmDirectionMatch(XmDirection dir1, XmDirection dir2); 1647: Boolean XmDirectionMatchPartial(XmDirection dir1, XmDirection dir2, XmDirection dir_mask); 1648: XmStringDirection XmDirectionToStringDirection(XmDirection dir); 1649: XmDirection XmStringDirectionToDirection(XmStringDirection sdir); 1650: 1651: /******************************* Xme.c ************************************/ 1652: 1653: void XmeConvertMerge(XtPointer data, Atom type, 1654: int format, unsigned long length, 1655: XmConvertCallbackStruct *call_data); 1656: 1657: #ifdef __cplusplus 1658: } 1659: #endif 1660: 1661: 1662: #include <Xm/VendorS.h> 1663: #include <Xm/XmIm.h> 1664: 1665: 1666: #ifdef __cplusplus 1667: extern "C" { 1668: #endif 1669: 1670: /* The following is for backwards compability (bc) */ 1671: #define XmINDICATOR_3D_BOX 0x01 1672: #define XmINDICATOR_FLAT_BOX 0x02 1673: #define XmINDICATOR_CHECK_GLYPH 0x10 1674: #define XmINDICATOR_CROSS_GLYPH 0x20 1675: 1676: enum { 1677: XmINDICATOR_NONE = 0, 1678: XmINDICATOR_FILL = XmINDICATOR_3D_BOX, 1679: XmINDICATOR_CHECK = XmINDICATOR_CHECK_GLYPH, 1680: XmINDICATOR_CHECK_BOX = XmINDICATOR_CHECK_GLYPH + XmINDICATOR_3D_BOX, 1681: XmINDICATOR_CROSS = XmINDICATOR_CROSS_GLYPH, 1682: XmINDICATOR_CROSS_BOX = XmINDICATOR_CROSS_GLYPH + XmINDICATOR_3D_BOX 1683: }; 1684: 1685: /* A slider can either be a slider or a thermometer */ 1686: enum { XmSLIDER, XmTHERMOMETER }; 1687: 1688: #define XmTextSetTopPosition XmTextSetTopCharacter 1689: 1690: enum { 1691: XmPOPUP_DISABLED = 0, 1692: XmPOPUP_KEYBOARD, 1693: XmPOPUP_AUTOMATIC, 1694: XmPOPUP_AUTOMATIC_RECURSIVE 1695: }; 1696: 1697: /* sliderVisual */ 1698: enum { 1699: XmBACKGROUND_COLOR, 1700: XmFOREGROUND_COLOR, 1701: XmTROUGH_COLOR, 1702: XmSHADOWED_BACKGROUND, 1703: XmFLAT_FOREGROUND 1704: }; 1705: 1706: /* showValue */ 1707: enum { 1708: XmNEAR_SLIDER = 1, 1709: XmNEAR_BORDER 1710: }; 1711: 1712: /* sliderMark */ 1713: enum { 1714: /* XmNONE */ 1715: XmETCHED_LINE = 1, 1716: XmTHUMB_MARK, 1717: XmROUND_MARK 1718: }; 1719: 1720: /* showArrows */ 1721: enum { 1722: /* XmNONE */ 1723: XmEACH_SIDE = 1, 1724: XmMAX_SIDE, 1725: XmMIN_SIDE 1726: }; 1727: 1728: /* XmString */ 1729: XmString XmStringGenerate(XtPointer text, XmStringTag tag, 1730: XmTextType type, XmStringTag rendition); 1731: 1732: /* XmFileSelectionBox */ 1733: enum { 1734: XmPATH_MODE_FULL, 1735: XmPATH_MODE_RELATIVE 1736: }; 1737: 1738: enum { 1739: XmFILTER_NONE, 1740: XmFILTER_HIDDEN_FILES 1741: }; 1742: 1743: /* RowColumn */ 1744: #define XmInheritMenuTraversalProc ((XmMenuTraversalProc) _XtInherit) 1745: 1746: /* XmTabList */ 1747: XmTabList XmTabListCopy(XmTabList tablist, 1748: int offset, 1749: Cardinal count); 1750: 1751: void XmTabListFree(XmTabList tablist); 1752: 1753: XmTab XmTabListGetTab(XmTabList tablist, 1754: Cardinal position); 1755: 1756: XmTabList XmTabListInsertTabs(XmTabList oldlist, 1757: XmTab *tabs, 1758: Cardinal tab_count, 1759: int position); 1760: 1761: XmTabList XmTabListRemoveTabs(XmTabList oldlist, 1762: Cardinal *position_list, 1763: Cardinal position_count); 1764: 1765: XmTabList XmTabListReplacePositions(XmTabList oldlist, 1766: Cardinal *position_list, 1767: XmTab *tabs, 1768: Cardinal tab_count); 1769: 1770: Cardinal XmTabListTabCount(XmTabList tablist); 1771: 1772: void XmTabSetValue(XmTab tab, 1773: float value); 1774: 1775: XmTab XmTabCreate(float value, 1776: unsigned char units, 1777: XmOffsetModel offset_model, 1778: unsigned char alignment, 1779: char *decimal); 1780: 1781: void XmTabFree(XmTab tab); 1782: 1783: float XmTabGetValues(XmTab tab, 1784: unsigned char *units, 1785: XmOffsetModel *offset, 1786: unsigned char *alignment, 1787: char **decimal); 1788: 1789: XmTabList XmStringTableProposeTablist(XmStringTable strings, 1790: Cardinal num_strings, 1791: Widget widget, 1792: float pad_value, 1793: XmOffsetModel offset_model); 1794: 1795: /* 1796: * XmPrint API 1797: */ 1798: enum { 1799: XmPDM_NOTIFY_FAIL, 1800: XmPDM_NOTIFY_SUCCESS 1801: }; 1802: 1803: void XmRedisplayWidget(Widget w); 1804: 1805: #ifdef __cplusplus 1806: } 1807: #endif 1808: 1809: #endif /* _XM_XM_H */ 1810: