|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Motif
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* Copyright (c) 1987-2012, The Open Group. All rights reserved.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* These libraries and programs are free software; you can
|
|
Packit |
b099d7 |
* redistribute them and/or modify them under the terms of the GNU
|
|
Packit |
b099d7 |
* Lesser General Public License as published by the Free Software
|
|
Packit |
b099d7 |
* Foundation; either version 2 of the License, or (at your option)
|
|
Packit |
b099d7 |
* any later version.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* These libraries and programs are distributed in the hope that
|
|
Packit |
b099d7 |
* they will be useful, but WITHOUT ANY WARRANTY; without even the
|
|
Packit |
b099d7 |
* implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
Packit |
b099d7 |
* PURPOSE. See the GNU Lesser General Public License for more
|
|
Packit |
b099d7 |
* details.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* You should have received a copy of the GNU Lesser General Public
|
|
Packit |
b099d7 |
* License along with these librararies and programs; if not, write
|
|
Packit |
b099d7 |
* to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
|
|
Packit |
b099d7 |
* Floor, Boston, MA 02110-1301 USA
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* HISTORY
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
/* $XConsortium: GadgetP.h /main/8 1995/07/13 17:27:17 drk $ */
|
|
Packit |
b099d7 |
/* (c) Copyright 1987, 1988, 1989, 1990, 1991, 1992 HEWLETT-PACKARD COMPANY */
|
|
Packit |
b099d7 |
/* (c) Copyright 1989, 1990 DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
|
|
Packit |
b099d7 |
/* (c) Copyright 1988 MASSACHUSETTS INSTITUTE OF TECHNOLOGY */
|
|
Packit |
b099d7 |
#ifndef _XmGadgetP_h
|
|
Packit |
b099d7 |
#define _XmGadgetP_h
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#ifndef _XmNO_BC_INCL
|
|
Packit |
b099d7 |
#define _XmNO_BC_INCL
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#include <Xm/XmP.h>
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#ifdef __cplusplus
|
|
Packit |
b099d7 |
extern "C" {
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Masks to define input the gadget is interested in */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#define XmNO_EVENT 0x000
|
|
Packit |
b099d7 |
#define XmENTER_EVENT 0x001
|
|
Packit |
b099d7 |
#define XmLEAVE_EVENT 0x002
|
|
Packit |
b099d7 |
#define XmFOCUS_IN_EVENT 0x004
|
|
Packit |
b099d7 |
#define XmFOCUS_OUT_EVENT 0x008
|
|
Packit |
b099d7 |
#define XmMOTION_EVENT 0x010
|
|
Packit |
b099d7 |
#define XmARM_EVENT 0x020
|
|
Packit |
b099d7 |
#define XmACTIVATE_EVENT 0x040
|
|
Packit |
b099d7 |
#define XmHELP_EVENT 0x080
|
|
Packit |
b099d7 |
#define XmKEY_EVENT 0x100
|
|
Packit |
b099d7 |
#define XmMULTI_ARM_EVENT 0x200
|
|
Packit |
b099d7 |
#define XmMULTI_ACTIVATE_EVENT 0x400
|
|
Packit |
b099d7 |
#define XmBDRAG_EVENT 0x800
|
|
Packit |
b099d7 |
#define XmALL_EVENT 0xFFF
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Gadget access Macros */
|
|
Packit |
b099d7 |
#define G_ShadowThickness(g) \
|
|
Packit |
b099d7 |
(((XmGadget)(g))->gadget.shadow_thickness)
|
|
Packit |
b099d7 |
#define G_HighlightThickness(g) \
|
|
Packit |
b099d7 |
(((XmGadget)(g))->gadget.highlight_thickness)
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#define GCEPTR(wc) ((XmGadgetClassExt *)(&(((XmGadgetClass)(wc))->gadget_class.extension)))
|
|
Packit |
b099d7 |
#define _XmGetGadgetClassExtPtr(wc, owner) \
|
|
Packit |
b099d7 |
((*GCEPTR(wc) && (((*GCEPTR(wc))->record_type) == owner))\
|
|
Packit |
b099d7 |
? GCEPTR(wc) \
|
|
Packit |
b099d7 |
:((XmGadgetClassExt *) _XmGetClassExtensionPtr(((XmGenericClassExt *)GCEPTR(wc)), owner)))
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#define XmGadgetClassExtVersion 2L
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Gadget cache header for each gadget's Cache Part */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
typedef struct _XmGadgetCache
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
struct _XmGadgetCache *next;
|
|
Packit |
b099d7 |
struct _XmGadgetCache *prev;
|
|
Packit |
b099d7 |
int ref_count;
|
|
Packit |
b099d7 |
} XmGadgetCache, *XmGadgetCachePtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* A cache entry for each class which desires gadget caching */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
typedef struct _XmCacheClassPart
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmGadgetCache cache_head;
|
|
Packit |
b099d7 |
XmCacheCopyProc cache_copy;
|
|
Packit |
b099d7 |
XmGadgetCacheProc cache_delete;
|
|
Packit |
b099d7 |
XmCacheCompareProc cache_compare;
|
|
Packit |
b099d7 |
} XmCacheClassPart, *XmCacheClassPartPtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* A struct for properly aligning the data part of the cache entry. */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
typedef struct _XmGadgetCacheRef
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmGadgetCache cache;
|
|
Packit |
b099d7 |
XtArgVal data;
|
|
Packit |
b099d7 |
} XmGadgetCacheRef, *XmGadgetCacheRefPtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Gadget class structure */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
typedef struct _XmGadgetClassExtRec{
|
|
Packit |
b099d7 |
XtPointer next_extension;
|
|
Packit |
b099d7 |
XrmQuark record_type;
|
|
Packit |
b099d7 |
long version;
|
|
Packit |
b099d7 |
Cardinal record_size;
|
|
Packit |
b099d7 |
XmWidgetBaselineProc widget_baseline;
|
|
Packit |
b099d7 |
XmWidgetDisplayRectProc widget_display_rect;
|
|
Packit |
b099d7 |
XmWidgetMarginsProc widget_margins;
|
|
Packit |
b099d7 |
}XmGadgetClassExtRec, *XmGadgetClassExt;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
typedef struct _XmGadgetClassPart
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XtWidgetProc border_highlight;
|
|
Packit |
b099d7 |
XtWidgetProc border_unhighlight;
|
|
Packit |
b099d7 |
XtActionProc arm_and_activate;
|
|
Packit |
b099d7 |
XmWidgetDispatchProc input_dispatch;
|
|
Packit |
b099d7 |
XmVisualChangeProc visual_change; /* unused in Motif 2.0 */
|
|
Packit |
b099d7 |
XmSyntheticResource * syn_resources;
|
|
Packit |
b099d7 |
int num_syn_resources;
|
|
Packit |
b099d7 |
XmCacheClassPartPtr cache_part;
|
|
Packit |
b099d7 |
XtPointer extension;
|
|
Packit |
b099d7 |
} XmGadgetClassPart;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Full class record declaration for Gadget class */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
typedef struct _XmGadgetClassRec
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
RectObjClassPart rect_class;
|
|
Packit |
b099d7 |
XmGadgetClassPart gadget_class;
|
|
Packit |
b099d7 |
} XmGadgetClassRec;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
externalref XmGadgetClassRec xmGadgetClassRec;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* The Gadget instance record */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
typedef struct _XmGadgetPart
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
Dimension shadow_thickness;
|
|
Packit |
b099d7 |
Dimension highlight_thickness;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtCallbackList help_callback;
|
|
Packit |
b099d7 |
XtPointer user_data;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
Boolean traversal_on;
|
|
Packit |
b099d7 |
Boolean highlight_on_enter;
|
|
Packit |
b099d7 |
Boolean have_traversal;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
unsigned char unit_type;
|
|
Packit |
b099d7 |
XmNavigationType navigation_type;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
Boolean highlight_drawn;
|
|
Packit |
b099d7 |
Boolean highlighted;
|
|
Packit |
b099d7 |
Boolean visible;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
Mask event_mask;
|
|
Packit |
b099d7 |
XmDirection layout_direction;
|
|
Packit |
b099d7 |
#ifdef OM22_COMPATIBILITY
|
|
Packit |
b099d7 |
XmString tool_tip_string;
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
} XmGadgetPart;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Full instance record declaration */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
typedef struct _XmGadgetRec
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
ObjectPart object;
|
|
Packit |
b099d7 |
RectObjPart rectangle;
|
|
Packit |
b099d7 |
XmGadgetPart gadget;
|
|
Packit |
b099d7 |
} XmGadgetRec;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#ifdef __cplusplus
|
|
Packit |
b099d7 |
} /* Close scope of 'extern "C"' declaration which encloses file. */
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#endif /* _XmGadgetP_h */
|
|
Packit |
b099d7 |
/* DON'T ADD ANYTHING AFTER THIS #endif */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|