Blame lib/Xm/PushBGP.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
/*   $TOG: PushBGP.h /main/14 1997/04/07 14:57:52 dbl $ */
Packit b099d7
/*
Packit b099d7
*  (c) Copyright 1989, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
Packit b099d7
/*
Packit b099d7
*  (c) Copyright 1987, 1988, 1989, 1990, 1991, 1992 HEWLETT-PACKARD COMPANY */
Packit b099d7
/*
Packit b099d7
*  (c) Copyright 1988 MASSACHUSETTS INSTITUTE OF TECHNOLOGY  */
Packit b099d7
/*
Packit b099d7
*  (c) Copyright 1988 MICROSOFT CORPORATION */
Packit b099d7
#ifndef _XmPButtonGP_h
Packit b099d7
#define _XmPButtonGP_h
Packit b099d7
Packit b099d7
#include <Xm/PushBG.h>
Packit b099d7
#include <Xm/LabelGP.h>
Packit b099d7
Packit b099d7
#ifdef __cplusplus
Packit b099d7
extern "C" {
Packit b099d7
#endif
Packit b099d7
Packit b099d7
/*************************************************************/
Packit b099d7
/* The PushButton Gadget Cache Object's class and instance records*/
Packit b099d7
/*************************************************************/
Packit b099d7
Packit b099d7
typedef struct _XmPushButtonGCacheObjClassPart
Packit b099d7
{
Packit b099d7
    int foo;
Packit b099d7
} XmPushButtonGCacheObjClassPart;
Packit b099d7
Packit b099d7
					
Packit b099d7
typedef struct _XmPushButtonGCacheObjClassRec  
Packit b099d7
{
Packit b099d7
	ObjectClassPart                     object_class;
Packit b099d7
        XmExtClassPart                      ext_class;
Packit b099d7
	XmLabelGCacheObjClassPart           label_class_cache;
Packit b099d7
	XmPushButtonGCacheObjClassPart      pushbutton_class_cache;
Packit b099d7
} XmPushButtonGCacheObjClassRec;
Packit b099d7
Packit b099d7
externalref XmPushButtonGCacheObjClassRec xmPushButtonGCacheObjClassRec;
Packit b099d7
Packit b099d7
Packit b099d7
typedef struct _XmPushButtonGCacheObjPart
Packit b099d7
{
Packit b099d7
   Boolean 	    fill_on_arm;
Packit b099d7
   Pixel            arm_color;
Packit b099d7
   Pixmap	    arm_pixmap;
Packit b099d7
   Pixmap           unarm_pixmap;
Packit b099d7
   unsigned char    multiClick;     /* KEEP/DISCARD resource */
Packit b099d7
   Dimension        default_button_shadow_thickness;
Packit b099d7
		     /* New resource - always add it to gadget's dimension. */
Packit b099d7
Packit b099d7
   GC               fill_gc;
Packit b099d7
   GC               background_gc;
Packit b099d7
Packit b099d7
   /* following items have some persistence across gadget instances and are
Packit b099d7
   ** here only for data-space savings
Packit b099d7
   */
Packit b099d7
   XtIntervalId     timer;
Packit b099d7
   Widget           timer_widget;
Packit b099d7
   
Packit b099d7
} XmPushButtonGCacheObjPart;
Packit b099d7
Packit b099d7
typedef struct _XmPushButtonGCacheObjRec
Packit b099d7
{
Packit b099d7
    ObjectPart                   object;
Packit b099d7
    XmExtPart                    ext;
Packit b099d7
    XmLabelGCacheObjPart         label_cache;
Packit b099d7
    XmPushButtonGCacheObjPart    pushbutton_cache;
Packit b099d7
} XmPushButtonGCacheObjRec;
Packit b099d7
Packit b099d7
Packit b099d7
/* PushButton class structure */
Packit b099d7
Packit b099d7
typedef struct _XmPushButtonGadgetClassPart
Packit b099d7
{
Packit b099d7
    XtPointer extension;  /* Pointer to extension record */
Packit b099d7
} XmPushButtonGadgetClassPart;
Packit b099d7
Packit b099d7
Packit b099d7
/* Full class record declaration for PushButton class */
Packit b099d7
Packit b099d7
typedef struct _XmPushButtonGadgetClassRec 
Packit b099d7
{
Packit b099d7
   RectObjClassPart             rect_class;
Packit b099d7
   XmGadgetClassPart            gadget_class;
Packit b099d7
   XmLabelGadgetClassPart       label_class;
Packit b099d7
   XmPushButtonGadgetClassPart  pushbutton_class;
Packit b099d7
Packit b099d7
} XmPushButtonGadgetClassRec;
Packit b099d7
Packit b099d7
Packit b099d7
externalref XmPushButtonGadgetClassRec xmPushButtonGadgetClassRec;
Packit b099d7
Packit b099d7
Packit b099d7
/* PushButton instance record */
Packit b099d7
Packit b099d7
typedef struct _XmPushButtonGadgetPart
Packit b099d7
{
Packit b099d7
   XtCallbackList   activate_callback;
Packit b099d7
   XtCallbackList   arm_callback;
Packit b099d7
   XtCallbackList   disarm_callback;
Packit b099d7
Packit b099d7
   Dimension        show_as_default;
Packit b099d7
   Boolean 	    armed;
Packit b099d7
   int              click_count;
Packit b099d7
Packit b099d7
   Boolean	    compatible;	  /* if false it is Motif 1.1 else Motif 1.0  */
Packit b099d7
                                  /* not cached for performance reasons */
Packit b099d7
   
Packit b099d7
   XmPushButtonGCacheObjPart  *cache; /* Replace cache instance fields */
Packit b099d7
					/* with a pointer */
Packit b099d7
} XmPushButtonGadgetPart;
Packit b099d7
Packit b099d7
/* Full instance record declaration */
Packit b099d7
Packit b099d7
typedef struct _XmPushButtonGadgetRec {
Packit b099d7
   ObjectPart              object;
Packit b099d7
   RectObjPart             rectangle;
Packit b099d7
   XmGadgetPart            gadget;
Packit b099d7
   XmLabelGadgetPart       label;
Packit b099d7
   XmPushButtonGadgetPart   pushbutton;
Packit b099d7
} XmPushButtonGadgetRec;
Packit b099d7
Packit b099d7
/* MACROS */
Packit b099d7
/**********/
Packit b099d7
Packit b099d7
/* Macros for cached instance fields */
Packit b099d7
Packit b099d7
#define PBG_FillOnArm(w)		(((XmPushButtonGadget) (w)) -> \
Packit b099d7
					   pushbutton.cache->fill_on_arm)
Packit b099d7
#define PBG_ArmColor(w)			(((XmPushButtonGadget) (w)) -> \
Packit b099d7
					   pushbutton.cache->arm_color)
Packit b099d7
#define PBG_FillGc(w)			(((XmPushButtonGadget) (w)) -> \
Packit b099d7
					   pushbutton.cache->fill_gc)
Packit b099d7
#define PBG_BackgroundGc(w)		(((XmPushButtonGadget) (w)) -> \
Packit b099d7
					   pushbutton.cache->background_gc)
Packit b099d7
#define PBG_Timer(w)			(((XmPushButtonGadget) (w)) -> \
Packit b099d7
					   pushbutton.cache->timer)
Packit b099d7
#define PBG_ArmPixmap(w)		(((XmPushButtonGadget) (w)) -> \
Packit b099d7
					   pushbutton.cache->arm_pixmap)
Packit b099d7
#define PBG_UnarmPixmap(w)		(((XmPushButtonGadget) (w)) -> \
Packit b099d7
					   pushbutton.cache->unarm_pixmap)
Packit b099d7
#define PBG_MultiClick(w)      		(((XmPushButtonGadget) (w)) -> \
Packit b099d7
                       			   pushbutton.cache->multiClick)
Packit b099d7
#define PBG_DefaultButtonShadowThickness(w)     (((XmPushButtonGadget) (w)) -> \
Packit b099d7
                       pushbutton.cache->default_button_shadow_thickness)
Packit b099d7
Packit b099d7
/* Macros for uncached instance fields */
Packit b099d7
Packit b099d7
#define PBG_ActivateCallback(w)		(((XmPushButtonGadget) (w)) -> \
Packit b099d7
					   pushbutton.activate_callback)
Packit b099d7
#define PBG_ArmCallback(w)		(((XmPushButtonGadget) (w)) -> \
Packit b099d7
					   pushbutton.arm_callback)
Packit b099d7
#define PBG_DisarmCallback(w)		(((XmPushButtonGadget) (w)) -> \
Packit b099d7
					   pushbutton.disarm_callback)
Packit b099d7
#define PBG_Armed(w)			(((XmPushButtonGadget) (w)) -> \
Packit b099d7
					   pushbutton.armed)
Packit b099d7
#define PBG_ClickCount(w)      (((XmPushButtonGadget) (w)) -> \
Packit b099d7
                       pushbutton.click_count)
Packit b099d7
#define PBG_Compatible(w)      (((XmPushButtonGadget) (w)) -> \
Packit b099d7
                       pushbutton.compatible)
Packit b099d7
#define PBG_ShowAsDefault(w)		(((XmPushButtonGadget) (w)) -> \
Packit b099d7
					   pushbutton.show_as_default)
Packit b099d7
Packit b099d7
/******************************/
Packit b099d7
/* Convenience Macros         */
Packit b099d7
/******************************/
Packit b099d7
Packit b099d7
#define PBG_Cache(w)			(((XmPushButtonGadget)(w))->\
Packit b099d7
					   pushbutton.cache)
Packit b099d7
#define PBG_ClassCachePart(w) \
Packit b099d7
	(((XmPushButtonGadgetClass)xmPushButtonGadgetClass)->gadget_class.cache_part)
Packit b099d7
Packit b099d7
Packit b099d7
/********    Private Function Declarations    ********/
Packit b099d7
Packit b099d7
/********    End Private Function Declarations    ********/
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 /* _XmPButtonGP_h */
Packit b099d7
/* DON'T ADD ANYTHING AFTER THIS #endif */