XEphem/libXm/osx/Xm/PushBGP.h

223 lines
7.4 KiB
C

/*
* @OPENGROUP_COPYRIGHT@
* COPYRIGHT NOTICE
* Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
* Copyright (c) 1996, 1997, 1998, 1999, 2000 The Open Group
* ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
* the full copyright text.
*
* This software is subject to an open license. It may only be
* used on, with or for operating systems which are themselves open
* source systems. You must contact The Open Group for a license
* allowing distribution and sublicensing of this software on, with,
* or for operating systems which are not Open Source programs.
*
* See http://www.opengroup.org/openmotif/license for full
* details of the license agreement. Any use, reproduction, or
* distribution of the program constitutes recipient's acceptance of
* this agreement.
*
* EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
* PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY
* WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
* OR FITNESS FOR A PARTICULAR PURPOSE
*
* EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT
* NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE
* EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGES.
*/
/*
* HISTORY
*/
/* $TOG: PushBGP.h /main/14 1997/04/07 14:57:52 dbl $ */
/*
* (c) Copyright 1989, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
/*
* (c) Copyright 1987, 1988, 1989, 1990, 1991, 1992 HEWLETT-PACKARD COMPANY */
/*
* (c) Copyright 1988 MASSACHUSETTS INSTITUTE OF TECHNOLOGY */
/*
* (c) Copyright 1988 MICROSOFT CORPORATION */
#ifndef _XmPButtonGP_h
#define _XmPButtonGP_h
#include <Xm/PushBG.h>
#include <Xm/LabelGP.h>
#ifdef __cplusplus
extern "C" {
#endif
/*************************************************************/
/* The PushButton Gadget Cache Object's class and instance records*/
/*************************************************************/
typedef struct _XmPushButtonGCacheObjClassPart
{
int foo;
} XmPushButtonGCacheObjClassPart;
typedef struct _XmPushButtonGCacheObjClassRec
{
ObjectClassPart object_class;
XmExtClassPart ext_class;
XmLabelGCacheObjClassPart label_class_cache;
XmPushButtonGCacheObjClassPart pushbutton_class_cache;
} XmPushButtonGCacheObjClassRec;
externalref XmPushButtonGCacheObjClassRec xmPushButtonGCacheObjClassRec;
typedef struct _XmPushButtonGCacheObjPart
{
Boolean fill_on_arm;
Pixel arm_color;
Pixmap arm_pixmap;
Pixmap unarm_pixmap;
unsigned char multiClick; /* KEEP/DISCARD resource */
Dimension default_button_shadow_thickness;
/* New resource - always add it to gadget's dimension. */
GC fill_gc;
GC background_gc;
/* following items have some persistence across gadget instances and are
** here only for data-space savings
*/
XtIntervalId timer;
Widget timer_widget;
} XmPushButtonGCacheObjPart;
typedef struct _XmPushButtonGCacheObjRec
{
ObjectPart object;
XmExtPart ext;
XmLabelGCacheObjPart label_cache;
XmPushButtonGCacheObjPart pushbutton_cache;
} XmPushButtonGCacheObjRec;
/* PushButton class structure */
typedef struct _XmPushButtonGadgetClassPart
{
XtPointer extension; /* Pointer to extension record */
} XmPushButtonGadgetClassPart;
/* Full class record declaration for PushButton class */
typedef struct _XmPushButtonGadgetClassRec
{
RectObjClassPart rect_class;
XmGadgetClassPart gadget_class;
XmLabelGadgetClassPart label_class;
XmPushButtonGadgetClassPart pushbutton_class;
} XmPushButtonGadgetClassRec;
externalref XmPushButtonGadgetClassRec xmPushButtonGadgetClassRec;
/* PushButton instance record */
typedef struct _XmPushButtonGadgetPart
{
XtCallbackList activate_callback;
XtCallbackList arm_callback;
XtCallbackList disarm_callback;
Dimension show_as_default;
Boolean armed;
int click_count;
Boolean compatible; /* if false it is Motif 1.1 else Motif 1.0 */
/* not cached for performance reasons */
XmPushButtonGCacheObjPart *cache; /* Replace cache instance fields */
/* with a pointer */
} XmPushButtonGadgetPart;
/* Full instance record declaration */
typedef struct _XmPushButtonGadgetRec {
ObjectPart object;
RectObjPart rectangle;
XmGadgetPart gadget;
XmLabelGadgetPart label;
XmPushButtonGadgetPart pushbutton;
} XmPushButtonGadgetRec;
/* MACROS */
/**********/
/* Macros for cached instance fields */
#define PBG_FillOnArm(w) (((XmPushButtonGadget) (w)) -> \
pushbutton.cache->fill_on_arm)
#define PBG_ArmColor(w) (((XmPushButtonGadget) (w)) -> \
pushbutton.cache->arm_color)
#define PBG_FillGc(w) (((XmPushButtonGadget) (w)) -> \
pushbutton.cache->fill_gc)
#define PBG_BackgroundGc(w) (((XmPushButtonGadget) (w)) -> \
pushbutton.cache->background_gc)
#define PBG_Timer(w) (((XmPushButtonGadget) (w)) -> \
pushbutton.cache->timer)
#define PBG_ArmPixmap(w) (((XmPushButtonGadget) (w)) -> \
pushbutton.cache->arm_pixmap)
#define PBG_UnarmPixmap(w) (((XmPushButtonGadget) (w)) -> \
pushbutton.cache->unarm_pixmap)
#define PBG_MultiClick(w) (((XmPushButtonGadget) (w)) -> \
pushbutton.cache->multiClick)
#define PBG_DefaultButtonShadowThickness(w) (((XmPushButtonGadget) (w)) -> \
pushbutton.cache->default_button_shadow_thickness)
/* Macros for uncached instance fields */
#define PBG_ActivateCallback(w) (((XmPushButtonGadget) (w)) -> \
pushbutton.activate_callback)
#define PBG_ArmCallback(w) (((XmPushButtonGadget) (w)) -> \
pushbutton.arm_callback)
#define PBG_DisarmCallback(w) (((XmPushButtonGadget) (w)) -> \
pushbutton.disarm_callback)
#define PBG_Armed(w) (((XmPushButtonGadget) (w)) -> \
pushbutton.armed)
#define PBG_ClickCount(w) (((XmPushButtonGadget) (w)) -> \
pushbutton.click_count)
#define PBG_Compatible(w) (((XmPushButtonGadget) (w)) -> \
pushbutton.compatible)
#define PBG_ShowAsDefault(w) (((XmPushButtonGadget) (w)) -> \
pushbutton.show_as_default)
/******************************/
/* Convenience Macros */
/******************************/
#define PBG_Cache(w) (((XmPushButtonGadget)(w))->\
pushbutton.cache)
#define PBG_ClassCachePart(w) \
(((XmPushButtonGadgetClass)xmPushButtonGadgetClass)->gadget_class.cache_part)
/******** Private Function Declarations ********/
/******** End Private Function Declarations ********/
#ifdef __cplusplus
} /* Close scope of 'extern "C"' declaration which encloses file. */
#endif
#endif /* _XmPButtonGP_h */
/* DON'T ADD ANYTHING AFTER THIS #endif */