|
|
DataMuseum.dkPresents historical artifacts from the history of: Regnecentalen RC-900 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Regnecentalen RC-900 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T U X
Length: 30038 (0x7556)
Types: TextFile
Notes: UNIX file
Names: »XmP.h«
└─⟦a85bd4a7c⟧ Bits:30004636/disk2.imd INTERACTIVE Motif Environment Development System
└─⟦a85bd4a7c⟧ UNIX Filesystem
└─⟦this⟧ »xt/new/usr/include/Xm/XmP.h«
#ifdef REV_INFO
#ifndef lint
static char SCCSID[] = "OSF/Motif: @(#)XmP.h 1.1 - 89/08/31 - 08:31:37";
#endif /* lint */
#endif /* REV_INFO */
/******************************************************************************
*******************************************************************************
*
* (c) Copyright 1989, OPEN SOFTWARE FOUNDATION, INC.
* (c) Copyright 1987, 1988, 1989 HEWLETT-PACKARD COMPANY
* ALL RIGHTS RESERVED
*
* THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED
* AND COPIED ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND
* WITH THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR
* ANY OTHER COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE
* AVAILABLE TO ANY OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE
* SOFTWARE IS HEREBY TRANSFERRED.
*
* THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
* NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY OPEN SOFTWARE
* FOUNDATION, INC. OR ITS THIRD PARTY SUPPLIERS
*
* OPEN SOFTWARE FOUNDATION, INC. AND ITS THIRD PARTY SUPPLIERS,
* ASSUME NO RESPONSIBILITY FOR THE USE OR INABILITY TO USE ANY OF ITS
* SOFTWARE . OSF SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
* KIND, AND OSF EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES, INCLUDING
* BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE.
*
* Notice: Notwithstanding any other lease or license that may pertain to,
* or accompany the delivery of, this computer software, the rights of the
* Government regarding its use, reproduction and disclosure are as set
* forth in Section 52.227-19 of the FARS Computer Software-Restricted
* Rights clause.
*
* (c) Copyright 1989, Open Software Foundation, Inc. Unpublished - all
* rights reserved under the Copyright laws of the United States.
*
* RESTRICTED RIGHTS NOTICE: Use, duplication, or disclosure by the
* Government is subject to the restrictions as set forth in subparagraph
* (c)(1)(ii) of the Rights in Technical Data and Computer Software clause
* at DFARS 52.227-7013.
*
* Open Software Foundation, Inc.
* 11 Cambridge Center
* Cambridge, MA 02142
* (617)621-8700
*
* RESTRICTED RIGHTS LEGEND: This computer software is submitted with
* "restricted rights." Use, duplication or disclosure is subject to the
* restrictions as set forth in NASA FAR SUP 18-52.227-79 (April 1985)
* "Commercial Computer Software- Restricted Rights (April 1985)." Open
* Software Foundation, Inc., 11 Cambridge Center, Cambridge, MA 02142. If
* the contract contains the Clause at 18-52.227-74 "Rights in Data General"
* then the "Alternate III" clause applies.
*
* (c) Copyright 1989, Open Software Foundation, Inc.
* ALL RIGHTS RESERVED
*
*
* Open Software Foundation is a trademark of The Open Software Foundation, Inc.
* OSF is a trademark of Open Software Foundation, Inc.
* OSF/Motif is a trademark of Open Software Foundation, Inc.
* Motif is a trademark of Open Software Foundation, Inc.
* DEC is a registered trademark of Digital Equipment Corporation
* DIGITAL is a registered trademark of Digital Equipment Corporation
* X Window System is a trademark of the Massachusetts Institute of Technology
*
*******************************************************************************
******************************************************************************/
/************************************<+>*************************************
****************************************************************************
**
** File: XmP.h
**
** Description: This include file contains the class and instance record
** definitions for all meta classes. It also contains externs
** for internally shared functions and defines for internally
** shared values.
**
****************************************************************************
************************************<+>*************************************/
#ifndef _XmP_h
#define _XmP_h
#include <Xm/Xm.h>
#include <X11/IntrinsicP.h>
/***************************************************************************
* Macros replacing toolkit macros so that gadgets are handled properly.
***************************************************************************/
#ifdef XtName
#undef XtName
#endif
#define XtName(widget) XrmQuarkToString (((Object)(widget))->object.xrm_name)
#ifdef XtDisplay
#undef XtDisplay
#endif
#define XtDisplay(widget) \
(XtIsWindowObject(widget) ? \
((Widget)(widget))->core.screen->display : \
((Object)(widget))->object.parent->core.screen->display)
#ifdef XtScreen
#undef XtScreen
#endif
#define XtScreen(widget) (XtIsWindowObject(widget) ? \
((Widget)(widget))->core.screen : \
((Object)(widget))->object.parent->core.screen)
#ifdef XtWindow
#undef XtWindow
#endif
#define XtWindow(widget) (XtIsWindowObject(widget) ? \
((Widget)(widget))->core.window : \
((Object)(widget))->object.parent->core.window)
#ifdef XtClass
#undef XtClass
#endif
#define XtClass(widget) (((Object)(widget))->object.widget_class)
#ifdef XtSuperclass
#undef XtSuperclass
#endif
#define XtSuperclass(widget) (XtClass(widget)->core_class.superclass)
#ifdef XtIsRealized
#undef XtIsRealized
#endif
#define XtIsRealized(widget) \
(XtIsWindowObject(widget) ? \
((Widget)(widget))->core.window != NULL : \
((Object)(widget))->object.parent->core.window != NULL)
#ifdef XtIsManaged
#undef XtIsManaged
#endif
#define XtIsManaged(widget) (((RectObj)(widget))->rectangle.managed)
#ifdef XtIsSensitive
#undef XtIsSensitive
#endif
#define XtIsSensitive(widget) \
(((RectObj)(widget))->rectangle.sensitive && \
((RectObj)(widget))->rectangle.ancestor_sensitive)
#ifdef XtParent
#undef XtParent
#endif
#define XtParent(widget) (((Object)(widget))->object.parent)
/************************************************************************
*
* Extern for XmWarning
*
************************************************************************/
extern void _XmWarning();
/***********************************************************************
*
* Resolution independence functions
*
***********************************************************************/
extern int _XmToHorizontalPixels();
extern int _XmToVerticalPixels();
extern void _XmFromHorizontalPixels();
extern void _XmFromVerticalPixels();
/***********************************************************************
*
* Miscellaneous Private Defines
*
***********************************************************************/
#define XmStrlen(s) ((s) ? strlen(s) : 0)
#define XmPRIMITIVE 0
#define XmMANAGER 1
/* Defines used by geometry manager utilities */
#define XmGET_ACTUAL_SIZE 1
#define XmGET_PREFERRED_SIZE 2
/* General purpose macros */
#ifndef MAX
#define MAX(x,y) ((x) > (y) ? (x) : (y))
#endif
#define XtX(w) ((w)->core.x)
#define XtY(w) ((w)->core.y)
#define XtWidth(w) ((w)->core.width)
#define XtHeight(w) ((w)->core.height)
#define XtBorderWidth(w) ((w)->core.border_width)
#define XtBackground(w) ((w)->core.background_pixel)
#define XtSensitive(w) ((w)->core.sensitive && (w)->core.ancestor_sensitive)
#define RX(r) (((RectObj) r)->rectangle.x)
#define RY(r) (((RectObj) r)->rectangle.y)
#define RWidth(r) (((RectObj) r)->rectangle.width)
#define RHeight(r) (((RectObj) r)->rectangle.height)
#define RBorder(r) (((RectObj) r)->rectangle.border_width)
#define GMode(g) ((g)->request_mode)
#define IsX(g) (GMode (g) & CWX)
#define IsY(g) (GMode (g) & CWY)
#define IsWidth(g) (GMode (g) & CWWidth)
#define IsHeight(g) (GMode (g) & CWHeight)
#define IsBorder(g) (GMode (g) & CWBorderWidth)
#define IsWidthHeight(g) ((GMode (g) & CWWidth) || (GMode (g) & CWHeight))
#ifndef XtParent
#define XtParent(w) ((w)->core.parent)
#endif
#define XtCoreProc(w,proc) ((w)->core.widget_class->core_class.proc)
/************************************************************************
*
* Resource definition function and structure used by Primitive, Gadget
* and Manager to define there get values hook processing lists
*
************************************************************************/
typedef void (*XmGetValuesProc)();
/* Widget widget */
/* int resource_quark */
/* caddr_t value */
/* caddr_t return_ value */
typedef struct _XmGetValueResource
{
String resource_name;
Cardinal resource_size;
Cardinal resource_offset;
XmGetValuesProc convert_proc;
} XmGetValueResource;
/************************************************************************
*
* Primitive class and instance definitions. Primitive #defines
* and internally used exported functions.
*
************************************************************************/
typedef struct _XmPrimitiveClassPart
{
XtWidgetProc border_highlight;
XtWidgetProc border_unhighlight;
XtTranslations translations;
XtActionProc arm_and_activate;
XmGetValueResource * get_resources;
int num_get_resources;
caddr_t extension;
} XmPrimitiveClassPart;
typedef struct _XmPrimitiveClassRec
{
CoreClassPart core_class;
XmPrimitiveClassPart primitive_class;
} XmPrimitiveClassRec;
extern XmPrimitiveClassRec xmPrimitiveClassRec;
/* The Primitive instance record */
typedef struct _XmPrimitivePart
{
Pixel foreground;
short shadow_thickness;
Pixel top_shadow_color;
Pixmap top_shadow_pixmap;
Pixel bottom_shadow_color;
Pixmap bottom_shadow_pixmap;
short highlight_thickness;
Pixel highlight_color;
Pixmap highlight_pixmap;
XtCallbackList help_callback;
caddr_t user_data;
Boolean traversal_on;
Boolean highlight_on_enter;
Boolean have_traversal;
unsigned char unit_type;
Boolean highlight_drawn;
Boolean highlighted;
GC highlight_GC;
GC top_shadow_GC;
GC bottom_shadow_GC;
} XmPrimitivePart;
typedef struct _XmPrimitiveRec
{
CorePart core;
XmPrimitivePart primitive;
} XmPrimitiveRec;
/* Access Macros */
#define Prim_ShadowThickness(w) (((XmPrimitiveWidget)(w))->primitive.shadow_thickness)
#define Prim_HaveTraversal(w) (((XmPrimitiveWidget)(w))->primitive.have_traversal)
/* Functions exported by gadget */
extern void _XmEnterGadget();
extern void _XmLeaveGadget();
/* Functions exported by primitive */
extern void _XmHighlightBorder();
extern void _XmUnhighlightBorder();
extern void _XmPrimitiveEnter();
extern void _XmPrimitiveLeave();
extern void _XmPrimitiveFocusIn();
extern void _XmPrimitiveFocusOut();
extern void _XmPrimitiveFocusInInternal();
extern void _XmPrimitiveVisibility();
extern void _XmPrimitiveUnmap();
extern void _XmTraverseNext();
extern void _XmTraversePrev();
extern void _XmTraverseHome();
extern void _XmTraverseNextTabGroup();
extern void _XmTraversePrevTabGroup();
/* Externs and defines for traversal handling functions incorporated */
/* into all primitive widgets. */
extern void _XmMgrTraversal();
extern void _XmSetFocusPath();
extern void _XmProcessTraversal();
extern void _XmSetInputFocus();
extern Boolean _XmFocusIsHere();
extern Widget _XmGetTabGroup();
extern Widget _XmFindTabGroup();
extern Boolean _XmGrabTheFocus();
extern void _XmFocusModelChanged();
extern unsigned char _XmGetFocusPolicy();
extern void _XmSendFakeLeaveNotify();
/* Structure used for terminating keyboard actions */
typedef struct
{
Boolean * keyIsPressed;
void (*handler)();
} _XmTerminateData;
/* Traversal direction defines */
#define XmTRAVERSE_CURRENT 0
#define XmTRAVERSE_NEXT 1
#define XmTRAVERSE_PREV 2
#define XmTRAVERSE_HOME 3
#define XmTRAVERSE_NEXT_TAB_GROUP 4
#define XmTRAVERSE_PREV_TAB_GROUP 5
#define XmTRAVERSE_UP 6
#define XmTRAVERSE_DOWN 7
#define XmTRAVERSE_LEFT 8
#define XmTRAVERSE_RIGHT 9
/************************************************************************
*
* Gadget class and instance definitions. Gadget #defines
* and internally used exported functions.
*
************************************************************************/
/* Gadget class structure */
typedef Boolean (*XmVisualChangeProc)(); /* returns TRUE if redisplay */
/* XmGadget child */
/* XmManagerWidget current */
/* XmManagerWidget new */
typedef struct _XmGadgetClassPart
{
XtWidgetProc border_highlight;
XtWidgetProc border_unhighlight;
XtProc arm_and_activate;
XtWidgetProc input_dispatch;
XmVisualChangeProc visual_change;
XmGetValueResource * get_resources;
int num_get_resources;
caddr_t extension;
} XmGadgetClassPart;
/* Full class record declaration for Gadget class */
typedef struct _XmGadgetClassRec
{
RectObjClassPart rect_class;
XmGadgetClassPart gadget_class;
} XmGadgetClassRec;
extern XmGadgetClassRec xmGadgetClassRec;
/* The Gadget instance record */
typedef struct _XmGadgetPart
{
short shadow_thickness;
short highlight_thickness;
XtCallbackList help_callback;
caddr_t user_data;
Boolean traversal_on;
Boolean highlight_on_enter;
Boolean have_traversal;
unsigned char unit_type;
Boolean highlight_drawn;
Boolean highlighted;
Boolean visible;
Mask event_mask;
} XmGadgetPart;
/* Full instance record declaration */
typedef struct _XmGadgetRec
{
ObjectPart object;
RectObjPart rectangle;
XmGadgetPart gadget;
} XmGadgetRec;
/* Masks to define input the gadget is interested in */
#define XmNO_EVENT 0x00
#define XmENTER_EVENT 0x01
#define XmLEAVE_EVENT 0x02
#define XmFOCUS_IN_EVENT 0x04
#define XmFOCUS_OUT_EVENT 0x08
#define XmMOTION_EVENT 0x10
#define XmARM_EVENT 0x20
#define XmACTIVATE_EVENT 0x40
#define XmHELP_EVENT 0x80
#define XmALL_EVENT 0xFF
/* Gadget utility functions referenced by gadget, managers */
extern void _XmConfigureObject();
extern void _XmResizeObject();
extern void _XmMoveObject();
extern void _XmRedisplayGadgets();
extern XmGadget _XmInputInGadget();
extern void _XmDispatchGadgetInput();
/* Gadget access Macros */
#define G_ShadowThickness(g) \
(((XmGadget)(g))->gadget.shadow_thickness)
#define G_HighlightThickness(g) \
(((XmGadget)(g))->gadget.highlight_thickness)
/************************************************************************
*
* Manager class, instance and constraint definitions. Manager #defines
* and internally used exported functions.
*
************************************************************************/
/* Traversal procedure definition */
typedef void (*XmTraversalProc)();
/* Widget widget */
/* XPoint ul, lr */
/* int dir */
/* Structure used for storing accelerator and mnemonic information. */
typedef struct
{
unsigned int eventType;
KeySym keysym;
KeyCode key;
unsigned int modifiers;
Widget component;
Boolean needGrab;
Boolean isMnemonic;
} XmKeyboardData;
/* The class definition */
typedef struct _XmManagerClassPart
{
XtTranslations translations;
XmGetValueResource * get_resources;
int num_get_resources;
XmGetValueResource * get_constraint_resources;
int num_get_constraint_resources;
caddr_t extension;
} XmManagerClassPart;
typedef struct _XmManagerClassRec
{
CoreClassPart core_class;
CompositeClassPart composite_class;
ConstraintClassPart constraint_class;
XmManagerClassPart manager_class;
} XmManagerClassRec;
extern XmManagerClassRec xmManagerClassRec;
/* The instance definition */
typedef struct _XmManagerPart
{
Pixel foreground;
short shadow_thickness;
Pixel top_shadow_color;
Pixmap top_shadow_pixmap;
Pixel bottom_shadow_color;
Pixmap bottom_shadow_pixmap;
Pixel highlight_color;
Pixmap highlight_pixmap;
XtCallbackList help_callback;
caddr_t user_data;
Boolean traversal_on;
unsigned char unit_type;
Boolean event_handler_added;
Widget active_child;
Widget highlighted_widget;
Widget accelerator_widget;
XmKeyboardData * keyboard_list;
short num_keyboard_entries;
short size_keyboard_list;
XmGadget selected_gadget;
GC background_GC;
GC highlight_GC;
GC top_shadow_GC;
GC bottom_shadow_GC;
} XmManagerPart;
typedef struct _XmManagerRec
{
CorePart core;
CompositePart composite;
ConstraintPart constraint;
XmManagerPart manager;
} XmManagerRec;
/* The constraint definition */
typedef struct _XmManagerConstraintPart
{
int unused;
} XmManagerConstraintPart;
typedef struct _XmManagerConstraintRec
{
XmManagerConstraintPart manager;
} XmManagerConstraintRec, * XmManagerConstraintPtr;
/* Define for the traversal handler inheritance */
#define XtInheritTraversalProc ((XmTraversalProc) _XtInherit)
/* Manager exported functions */
extern void _XmManagerEnter(); /* start traversal */
extern void _XmManagerLeave(); /* end traversal */
extern void _XmManagerFocusIn(); /* focus management */
extern void _XmManagerFocusOut(); /* focus management */
extern void _XmManagerVisibility(); /* more focus management */
extern void _XmManagerUnmap(); /* even more focus management */
extern Boolean _XmFindTraversablePrim(); /* traversal checking routine */
extern void _XmReManageChildren(); /* rebuild Managed Children List */
extern Boolean _XmGetFocusResetFlag();
extern void _XmSetFocusResetFlag();
extern Boolean _XmGetTransientFlag();
extern void _XmSetTransientFlag();
extern void _XmDrawShadowType();
extern void _XmClearShadowType();
extern void _XmDestroyParentCallback();
/* Access macros */
#define MGR_KeyboardList(m) (((XmManagerRec *) (m))->manager.keyboard_list)
#define MGR_NumKeyboardEntries(m) (((XmManagerRec *) (m))->manager.num_keyboard_entries)
#define MGR_SizeKeyboardList(m) (((XmManagerRec *) (m))->manager.size_keyboard_list)
#define MGR_ShadowThickness(m) (((XmManagerRec *) (m))->manager.shadow_thickness)
/* GC access macros */
#define XmParentTopShadowGC(w) (((XmManagerWidget) \
(((XmGadget)(w))->object.parent))->manager.top_shadow_GC)
#define XmParentBottomShadowGC(w) (((XmManagerWidget) \
(((XmGadget)(w))->object.parent))->manager.bottom_shadow_GC)
#define XmParentHighlightGC(w) (((XmManagerWidget) \
(((XmGadget)(w))->object.parent))->manager.highlight_GC)
/*
* used by parents of gadgets to allow geometry treatment independently
* of whether the kid is a widget or gadget
*/
typedef struct _XmKidGeometryRec
{
Widget kid; /* ptr to kid */
XtWidgetGeometry box; /* kid geo box */
} XmKidGeometryRec, *XmKidGeometry;
/***********************************************************************
*
* Resolution independence functions
*
***********************************************************************/
extern XtGeometryResult _XmMakeGeometryRequest();
extern XmKidGeometry _XmGetKidGeo();
extern void _XmSetKidGeo();
extern void _XmSetInstigatorGeo();
typedef void (*XmVoidProc)();
/* Various useful constant and macro definitions */
/* from /usr/include/X11/Misc.h */
/* LAST(Dimension) */
#define MAXDIMENSION ((1 << 31)-1)
#define Max(x, y) (((x) > (y)) ? (x) : (y))
#define Min(x, y) (((x) < (y)) ? (x) : (y))
#define AssignMax(x, y) if ((y) > (x)) x = (y)
#define AssignMin(x, y) if ((y) < (x)) x = (y)
/****************
*
* XmString structures
*
****************/
typedef unsigned char UChar;
typedef unsigned short UShort;
/*
* these are the structures which make up the internal version of the TCS.
*/
typedef struct
{
char *charset; /* name of charset */
short font_index; /* index of font to use */
short char_count; /* octet count for this segment */
char *text; /* ptr to octets. If RtoL then */
/* is a local flipped copy */
XmStringDirection direction; /* octet order of this segment */
Dimension pixel_width; /* width of segment */
Dimension pixel_height; /* height " " */
}
_XmStringSegmentRec, *_XmStringSegment;
typedef struct
{
short segment_count; /* segments in this line */
_XmStringSegment segment; /* array of segments */
}
_XmStringLineRec, *_XmStringLine;
typedef struct
{
short line_count; /* lines in this _XmString */
_XmStringLine line; /* array of lines */
}
_XmStringRec, *_XmString;
/****************
*
* Private functions defined in XmString.c
*
****************/
extern Boolean _XmFontListSearch ();
extern Boolean _XmSearchFontList ();
extern Dimension _XmStringWidth ();
extern Dimension _XmStringHeight ();
extern void _XmStringExtent ();
extern Dimension _XmStringBaseline ();
extern int _XmStringLineCount ();
extern Boolean _XmStringEmpty ();
extern void _XmStringDraw ();
extern void _XmStringDrawImage ();
extern void _XmStringDrawUnderline ();
extern _XmString _XmStringCreate ();
extern void _XmStringFree ();
extern void _XmStringUpdate ();
extern _XmString _XmStringCopy ();
extern Boolean _XmStringByteCompare ();
/************************************************************************
*
* Fast subclassing macros and definitions
*
************************************************************************/
#define _XmFastSubclassInit(wc, bit_field) \
(wc->core_class.extension = (caddr_t) \
(((unsigned int) wc->core_class.extension) | bit_field))
#define XmARROW_BUTTON_BIT 0
#define XmARROW_BUTTON_GADGET_BIT 0
#define XmBULLETIN_BOARD_BIT (1<<0)
#define XmCASCADE_BUTTON_BIT (1<<1)
#define XmCASCADE_BUTTON_GADGET_BIT (1<<2)
#define XmCOMMAND_BOX_BIT (1<<3)
#define XmDIALOG_SHELL_BIT (1<<4)
#define XmDRAWING_AREA_BIT 0
#define XmDRAWN_BUTTON_BIT 0
#define XmFILE_SELECTION_BOX_BIT (1<<5)
#define XmFORM_BIT (1<<6)
#define XmFRAME_BIT (1<<7)
#define XmGADGET_BIT (1<<8)
#define XmLABEL_BIT (1<<9)
#define XmLABEL_GADGET_BIT (1<<10)
#define XmLIST_BIT 0
#define XmMAIN_WINDOW_BIT (1<<11)
#define XmMANAGER_BIT (1<<12)
#define XmMENU_SHELL_BIT (1<<13)
#define XmMESSAGE_BOX_BIT (1<<14)
#define XmPRIMITIVE_BIT (1<<15)
#define XmPUSH_BUTTON_BIT (1<<16)
#define XmPUSH_BUTTON_GADGET_BIT (1<<17)
#define XmROW_COLUMN_BIT (1<<18)
#define XmSASH_BIT 0
#define XmSCALE_BIT 0
#define XmSCROLLBAR_BIT (1<<19)
#define XmSCROLLED_WINDOW_BIT (1<<20)
#define XmSELECTION_BOX_BIT (1<<21)
#define XmSEPARATOR_BIT (1<<22)
#define XmSEPARATOR_GADGET_BIT (1<<23)
#define XmTEXT_BIT (1<<24)
#define XmTOGGLE_BUTTON_BIT (1<<25)
#define XmTOGGLE_BUTTON_GADGET_BIT (1<<26)
#define XmVPANED_BIT 0
#undef XmIsBulletinBoard
#define XmIsBulletinBoard(w) \
((unsigned int) XtClass(w)->core_class.extension & XmBULLETIN_BOARD_BIT)
#undef XmIsCascadeButton
#define XmIsCascadeButton(w) \
((unsigned int) XtClass(w)->core_class.extension & XmCASCADE_BUTTON_BIT)
#undef XmIsCascadeButtonGadget
#define XmIsCascadeButtonGadget(w) \
((unsigned int) XtClass(w)->core_class.extension & XmCASCADE_BUTTON_GADGET_BIT)
#undef XmIsCommandBox
#define XmIsCommandBox(w) \
((unsigned int) XtClass(w)->core_class.extension & XmCOMMAND_BOX_BIT)
#undef XmIsDialogShell
#define XmIsDialogShell(w) \
((unsigned int) XtClass(w)->core_class.extension & XmDIALOG_SHELL_BIT)
#undef XmIsFileSelectionBox
#define XmIsFileSelectionBox(w) \
((unsigned int) XtClass(w)->core_class.extension & XmFILE_SELECTION_BOX_BIT)
#undef XmIsForm
#define XmIsForm(w) \
((unsigned int) XtClass(w)->core_class.extension & XmFORM_BIT)
#undef XmIsFrame
#define XmIsFrame(w) \
((unsigned int) XtClass(w)->core_class.extension & XmFRAME_BIT)
#undef XmIsGadget
#define XmIsGadget(w) \
((unsigned int) XtClass(w)->core_class.extension & XmGADGET_BIT)
#undef XmIsLabel
#define XmIsLabel(w) \
((unsigned int) XtClass(w)->core_class.extension & XmLABEL_BIT)
#undef XmIsLabelGadget
#define XmIsLabelGadget(w) \
((unsigned int) XtClass(w)->core_class.extension & XmLABEL_GADGET_BIT)
#undef XmIsMainWindow
#define XmIsMainWindow(w) \
((unsigned int) XtClass(w)->core_class.extension & XmMAIN_WINDOW_BIT)
#undef XmIsManager
#define XmIsManager(w) \
((unsigned int) XtClass(w)->core_class.extension & XmMANAGER_BIT)
#undef XmIsMenuShell
#define XmIsMenuShell(w) \
((unsigned int) XtClass(w)->core_class.extension & XmMENU_SHELL_BIT)
#undef XmIsPrimitive
#define XmIsPrimitive(w) \
((unsigned int) XtClass(w)->core_class.extension & XmPRIMITIVE_BIT)
#undef XmIsPushButton
#define XmIsPushButton(w) \
((unsigned int) XtClass(w)->core_class.extension & XmPUSH_BUTTON_BIT)
#undef XmIsPushButtonGadget
#define XmIsPushButtonGadget(w) \
((unsigned int) XtClass(w)->core_class.extension & XmPUSH_BUTTON_GADGET_BIT)
#undef XmIsRowColumn
#define XmIsRowColumn(w) \
((unsigned int) XtClass(w)->core_class.extension & XmROW_COLUMN_BIT)
#undef XmIsScrolledWindow
#define XmIsScrolledWindow(w) \
((unsigned int) XtClass(w)->core_class.extension & XmSCROLLED_WINDOW_BIT)
#undef XmIsScrollBar
#define XmIsScrollBar(w) \
((unsigned int) XtClass(w)->core_class.extension & XmSCROLL_BAR_BIT)
#undef XmIsSeparator
#define XmIsSeparator(w) \
((unsigned int) XtClass(w)->core_class.extension & XmSEPARATOR_BIT)
#undef XmIsSeparatorGadget
#define XmIsSeparatorGadget(w) \
((unsigned int) XtClass(w)->core_class.extension & XmSEPARATOR_GADGET_BIT)
#undef XmIsText
#define XmIsText(w) \
((unsigned int) XtClass(w)->core_class.extension & XmTEXT_BIT)
#undef XmIsToggleButton
#define XmIsToggleButton(w) \
((unsigned int) XtClass(w)->core_class.extension & XmTOGGLE_BUTTON_BIT)
#undef XmIsToggleButtonGadget
#define XmIsToggleButtonGadget(w) \
((unsigned int) XtClass(w)->core_class.extension & XmTOGGLE_BUTTON_GADGET_BIT)
/************************************************************************
*
* Defines and macros for the XmResolvePart function
*
************************************************************************/
/* Widget class indices used with XmPartOffset and XmField macros */
#define XmObjectIndex 0
#define XmRectObjIndex (XmObjectIndex + 1)
#define XmWindowObjIndex (XmRectObjIndex + 1)
#define XmCoreIndex 0
#define XmCompositeIndex (XmWindowObjIndex + 2)
#define XmConstraintIndex (XmCompositeIndex + 1)
#define XmGadgetIndex (XmRectObjIndex + 1)
#define XmPrimitiveIndex (XmWindowObjIndex + 2)
#define XmManagerIndex (XmConstraintIndex + 1)
#define XmArrowBIndex (XmPrimitiveIndex + 1)
#define XmLabelIndex (XmPrimitiveIndex + 1)
#define XmListIndex (XmPrimitiveIndex + 1)
#define XmScrollBarIndex (XmPrimitiveIndex + 1)
#define XmSeparatorIndex (XmPrimitiveIndex + 1)
#define XmTextIndex (XmPrimitiveIndex + 1)
#define XmCascadeBIndex (XmLabelIndex + 1)
#define XmDrawnBIndex (XmLabelIndex + 1)
#define XmPushBIndex (XmLabelIndex + 1)
#define XmToggleBIndex (XmLabelIndex + 1)
#define XmArrowBGIndex (XmGadgetIndex + 1)
#define XmLabelGIndex (XmGadgetIndex + 1)
#define XmSeparatoGIndex (XmGadgetIndex + 1)
#define XmCascadeBGIndex (XmLabelGIndex + 1)
#define XmPushBGIndex (XmLabelGIndex + 1)
#define XmToggleBGIndex (XmLabelGIndex + 1)
#define XmBulletinBIndex (XmManagerIndex + 1)
#define XmDrawingAIndex (XmManagerIndex + 1)
#define XmFrameIndex (XmManagerIndex + 1)
#define XmPanedWIndex (XmManagerIndex + 1)
#define XmRowColumnIndex (XmManagerIndex + 1)
#define XmScaleIndex (XmManagerIndex + 1)
#define XmScrolledWIndex (XmManagerIndex + 1)
#define XmFormIndex (XmBulletinBIndex + 1)
#define XmMessageBIndex (XmBulletinBIndex + 1)
#define XmSelectioBIndex (XmBulletinBIndex + 1)
#define XmMainWIndex (XmScrolledWIndex + 1)
#define XmCommandIndex (XmSelectioBIndex + 1)
#define XmFileSBIndex (XmSelectioBIndex + 1)
#define XmShellIndex (XmCompositeIndex + 1)
#define XmOverrideShellIndex (XmShellIndex + 1)
#define XmWMShellIndex (XmShellIndex + 1)
#define XmVendorShellIndex (XmWMShellIndex + 1)
#define XmTransientShellIndex (XmVendorShellIndex + 1)
#define XmTopLevelShellIndex (XmVendorShellIndex + 1)
#define XmApplicationShellIndex (XmTopLevelShellIndex + 1)
#define XmDialogSIndex (XmTransientShellIndex + 1)
#define XmMenuShellIndex (XmOverrideShellIndex + 1)
#define XmLONGBITS (sizeof(long) * 8)
#define XmHALFLONGBITS (XmLONGBITS/2)
typedef struct _XmPartResource {
String resource_name; /* Resource name */
String resource_class; /* Resource class */
String resource_type; /* Representation type desired */
Cardinal resource_size; /* Size in bytes of representation */
Cardinal resource_offset; /* Index within & offset within part */
String default_type; /* representation type of specified default */
caddr_t default_addr; /* Address of default resource */
} XmPartResource;
typedef long XmOffset;
typedef XmOffset *XmOffsetPtr;
#define XmPartOffset(part, variable) \
((Xm/**/part/**/Index) << XmHALFLONGBITS) + XtOffset(part/**/Part *, variable)
#define XmGetPartOffset(r, offset) \
((r)->resource_offset & 0xff) + (*(offset))[ (r)->resource_offset >> XmHALFLONGBITS]
;
#define XmField(widget, offsetrecord, part, variable, type) \
(*(type *)(((char *) (widget)) + offsetrecord[Xm/**/part/**/Index] + \
XtOffset(part/**/Part *, variable)))
extern void XmResolvePartOffsets();
/* WidgetClass class; */
/* XmOffsetPtr *offset; */
#endif /* _XmP_h */
/* DON'T ADD STUFF AFTER THIS #endif */