Viewing file: GadgetP.h (4.77 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/** * * $Id: GadgetP.h,v 1.3 2000/09/29 22:51:54 amai Exp $ * * Copyright (C) 1995 Free Software Foundation, Inc. * Copyright (C) 1995-2000 LessTif Development Team * * This file is part of the GNU LessTif Library. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * **/
#ifndef _XM_GADGETP_H #define _XM_GADGETP_H
#include <Xm/XmP.h>
#ifdef __cplusplus extern "C" { #endif
/* The list of event types which are selectable for input for a gadget */
#define XmNO_EVENT 0x000 /* No Events */ #define XmENTER_EVENT 0x001 /* Enter event */ #define XmLEAVE_EVENT 0x002 /* Leave event */ #define XmFOCUS_IN_EVENT 0x004 /* Focus In event */ #define XmFOCUS_OUT_EVENT 0x008 /* Focus Out event */ #define XmMOTION_EVENT 0x010 /* Button Motion event */ #define XmARM_EVENT 0x020 /* Button 1 Press event */ #define XmACTIVATE_EVENT 0x040 /* Button 1 Release event */ #define XmHELP_EVENT 0x080 /* Help (F1) key event */ #define XmKEY_EVENT 0x100 /* Any Key event */ #define XmMULTI_ARM_EVENT 0x200 /* Double Button 1 Press event */ #define XmMULTI_ACTIVATE_EVENT 0x400 /* Double Button 1 Release event */ #define XmBDRAG_EVENT 0x800 /* Button 2 Press event */ #define XmALL_EVENT 0xFFF /* All the above events */
/* * cache stuff */ typedef struct _XmGadgetCache { struct _XmGadgetCache *next; struct _XmGadgetCache *prev; int ref_count; } XmGadgetCache, *XmGadgetCachePtr;
typedef struct _XmCacheClassPart { XmGadgetCache cache_head; XmCacheCopyProc cache_copy; XmGadgetCacheProc cache_delete; XmCacheCompareProc cache_compare; } XmCacheClassPart, *XmCacheClassPartPtr;
typedef struct _XmGadgetCacheRef { XmGadgetCache cache; XtArgVal data; } XmGadgetCacheRef, *XmGadgetCacheRefPtr;
/* Define the gadget instance part */
typedef struct _XmGadgetPart { Dimension shadow_thickness; Dimension highlight_thickness;
XtCallbackList help_callback; XtPointer user_data;
Boolean traversal_on; Boolean highlight_on_enter; Boolean have_traversal;
unsigned char unit_type; XmNavigationType navigation_type;
Boolean highlight_drawn; Boolean highlighted; Boolean visible;
Mask event_mask; /* the events about which this gadget wants to be notified */
XmDirection layout_direction; /* new for 2.0 */
} XmGadgetPart;
/* Define the full instance record */ typedef struct _XmGadgetRec { ObjectPart object; RectObjPart rectangle; XmGadgetPart gadget; } XmGadgetRec;
/* * Define class part structures */ typedef struct _XmGadgetClassExtRec { XtPointer next_extension; XrmQuark record_type; long version; Cardinal record_size; XmWidgetBaselineProc widget_baseline; XmWidgetDisplayRectProc widget_display_rect;
XmWidgetMarginsProc widget_margins; /* new for 2.0 */
} XmGadgetClassExtRec, *XmGadgetClassExt;
#define XmGadgetClassExtVersion 1L
#define GCEPTR(wc) \ ((XmGadgetClassExt *)(&(((XmGadgetClass)(wc))->gadget_class.extension))) #define _XmGetGadgetClassExtPtr(wc, q) \ ((*GCEPTR(wc) && (((*GCEPTR(wc))->record_type) == (q))) \ ? GCEPTR(wc) \ : ((XmGadgetClassExt *) \ _XmGetClassExtensionPtr(((XmGenericClassExt *)GCEPTR(wc)), (q))))
typedef struct { XtWidgetProc border_highlight; XtWidgetProc border_unhighlight; XtActionProc arm_and_activate; XmWidgetDispatchProc input_dispatch; XmVisualChangeProc visual_change; XmSyntheticResource *syn_resources; int num_syn_resources; XmCacheClassPartPtr cache_part; XtPointer extension; } XmGadgetClassPart;
/* Define the full class record */ typedef struct _XmGadgetClassRec { RectObjClassPart rect_class; XmGadgetClassPart gadget_class; } XmGadgetClassRec;
/* External definition for class record */ extern XmGadgetClassRec xmGadgetClassRec;
#define G_ShadowThickness(g) \ (((XmGadget)(g))->gadget.shadow_thickness)
#define G_HighlightThickness(g) \ (((XmGadget)(g))->gadget.highlight_thickness)
/* * gadget functions */ void _XmBuildGadgetResources(WidgetClass c);
#ifdef __cplusplus } #endif
#endif /* _XM_GADGETP_H */
|