Blame lib/Xm/GadgetP.h

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