Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:14:30

0001 /***********************************************************
0002 
0003 Copyright 1987, 1988, 1994, 1998  The Open Group
0004 
0005 Permission to use, copy, modify, distribute, and sell this software and its
0006 documentation for any purpose is hereby granted without fee, provided that
0007 the above copyright notice appear in all copies and that both that
0008 copyright notice and this permission notice appear in supporting
0009 documentation.
0010 
0011 The above copyright notice and this permission notice shall be included in
0012 all copies or substantial portions of the Software.
0013 
0014 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
0015 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
0016 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
0017 OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
0018 AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
0019 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
0020 
0021 Except as contained in this notice, the name of The Open Group shall not be
0022 used in advertising or otherwise to promote the sale, use or other dealings
0023 in this Software without prior written authorization from The Open Group.
0024 
0025 
0026 Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
0027 
0028                         All Rights Reserved
0029 
0030 Permission to use, copy, modify, and distribute this software and its
0031 documentation for any purpose and without fee is hereby granted,
0032 provided that the above copyright notice appear in all copies and that
0033 both that copyright notice and this permission notice appear in
0034 supporting documentation, and that the name of Digital not be
0035 used in advertising or publicity pertaining to distribution of the
0036 software without specific, written prior permission.
0037 
0038 DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
0039 ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
0040 DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
0041 ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
0042 WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
0043 ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
0044 SOFTWARE.
0045 
0046 ******************************************************************/
0047 
0048 #ifndef _Xt_ObjectP_h_
0049 #define _Xt_ObjectP_h_
0050 
0051 #include <X11/Object.h>
0052 
0053 _XFUNCPROTOBEGIN
0054 
0055 /**********************************************************
0056  * Object Instance Data Structures
0057  *
0058  **********************************************************/
0059 /* these fields match CorePart and can not be changed */
0060 
0061 typedef struct _ObjectPart {
0062     Widget          self;               /* pointer to widget itself          */
0063     WidgetClass     widget_class;       /* pointer to Widget's ClassRec      */
0064     Widget          parent;             /* parent widget                     */
0065     XrmName         xrm_name;           /* widget resource name quarkified   */
0066     Boolean         being_destroyed;    /* marked for destroy                */
0067     XtCallbackList  destroy_callbacks;  /* who to call when widget destroyed */
0068     XtPointer       constraints;        /* constraint record                 */
0069 } ObjectPart;
0070 
0071 typedef struct _ObjectRec {
0072     ObjectPart  object;
0073 } ObjectRec;
0074 
0075 /********************************************************
0076  * Object Class Data Structures
0077  *
0078  ********************************************************/
0079 /* these fields match CoreClassPart and can not be changed */
0080 /* ideally these structures would only contain the fields required;
0081    but because the CoreClassPart cannot be changed at this late date
0082    extraneous fields are necessary to make the field offsets match */
0083 
0084 typedef struct _ObjectClassPart {
0085 
0086     WidgetClass     superclass;         /* pointer to superclass ClassRec   */
0087     String          class_name;         /* widget resource class name       */
0088     Cardinal        widget_size;        /* size in bytes of widget record   */
0089     XtProc          class_initialize;   /* class initialization proc        */
0090     XtWidgetClassProc class_part_initialize; /* dynamic initialization      */
0091     XtEnum          class_inited;       /* has class been initialized?      */
0092     XtInitProc      initialize;         /* initialize subclass fields       */
0093     XtArgsProc      initialize_hook;    /* notify that initialize called    */
0094     XtProc          obj1;       /* NULL                             */
0095     XtPointer       obj2;               /* NULL                             */
0096     Cardinal        obj3;               /* NULL                             */
0097     XtResourceList  resources;          /* resources for subclass fields    */
0098     Cardinal        num_resources;      /* number of entries in resources   */
0099     XrmClass        xrm_class;          /* resource class quarkified        */
0100     Boolean         obj4;               /* NULL                             */
0101     XtEnum          obj5;               /* NULL                             */
0102     Boolean         obj6;               /* NULL                 */
0103     Boolean         obj7;               /* NULL                             */
0104     XtWidgetProc    destroy;            /* free data for subclass pointers  */
0105     XtProc          obj8;               /* NULL                             */
0106     XtProc          obj9;               /* NULL                     */
0107     XtSetValuesFunc set_values;         /* set subclass resource values     */
0108     XtArgsFunc      set_values_hook;    /* notify that set_values called    */
0109     XtProc          obj10;              /* NULL                             */
0110     XtArgsProc      get_values_hook;    /* notify that get_values called    */
0111     XtProc          obj11;              /* NULL                             */
0112     XtVersionType   version;            /* version of intrinsics used       */
0113     XtPointer       callback_private;   /* list of callback offsets         */
0114     String          obj12;              /* NULL                             */
0115     XtProc          obj13;              /* NULL                             */
0116     XtProc          obj14;              /* NULL                             */
0117     XtPointer       extension;          /* pointer to extension record      */
0118 }ObjectClassPart;
0119 
0120 typedef struct {
0121     XtPointer next_extension;   /* 1st 4 required for all extension records */
0122     XrmQuark record_type;   /* NULLQUARK; when on ObjectClassPart */
0123     long version;       /* must be XtObjectExtensionVersion */
0124     Cardinal record_size;   /* sizeof(ObjectClassExtensionRec) */
0125     XtAllocateProc allocate;
0126     XtDeallocateProc deallocate;
0127 } ObjectClassExtensionRec, *ObjectClassExtension;
0128 
0129 typedef struct _ObjectClassRec {
0130     ObjectClassPart object_class;
0131 } ObjectClassRec;
0132 
0133 externalref ObjectClassRec objectClassRec;
0134 
0135 _XFUNCPROTOEND
0136 
0137 #define XtObjectExtensionVersion 1L
0138 #define XtInheritAllocate ((XtAllocateProc) _XtInherit)
0139 #define XtInheritDeallocate ((XtDeallocateProc) _XtInherit)
0140 
0141 #endif /*_Xt_ObjectP_h_*/