Category reorganization
[openwrt/svn-archive/archive.git] / XOrg / headers / native / src / X11 / ObjectP.h
1 /* $Xorg: ObjectP.h,v 1.4 2001/02/09 02:03:56 xorgcvs Exp $ */
2
3 /***********************************************************
4
5 Copyright 1987, 1988, 1994, 1998 The Open Group
6
7 Permission to use, copy, modify, distribute, and sell this software and its
8 documentation for any purpose is hereby granted without fee, provided that
9 the above copyright notice appear in all copies and that both that
10 copyright notice and this permission notice appear in supporting
11 documentation.
12
13 The above copyright notice and this permission notice shall be included in
14 all copies or substantial portions of the Software.
15
16 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
20 AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
23 Except as contained in this notice, the name of The Open Group shall not be
24 used in advertising or otherwise to promote the sale, use or other dealings
25 in this Software without prior written authorization from The Open Group.
26
27
28 Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts.
29
30 All Rights Reserved
31
32 Permission to use, copy, modify, and distribute this software and its
33 documentation for any purpose and without fee is hereby granted,
34 provided that the above copyright notice appear in all copies and that
35 both that copyright notice and this permission notice appear in
36 supporting documentation, and that the name of Digital not be
37 used in advertising or publicity pertaining to distribution of the
38 software without specific, written prior permission.
39
40 DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
41 ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
42 DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
43 ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
44 WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
45 ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
46 SOFTWARE.
47
48 ******************************************************************/
49
50 #ifndef _Xt_ObjectP_h_
51 #define _Xt_ObjectP_h_
52
53 #include <X11/Object.h>
54
55 /**********************************************************
56 * Object Instance Data Structures
57 *
58 **********************************************************/
59 /* these fields match CorePart and can not be changed */
60
61 typedef struct _ObjectPart {
62 Widget self; /* pointer to widget itself */
63 WidgetClass widget_class; /* pointer to Widget's ClassRec */
64 Widget parent; /* parent widget */
65 XrmName xrm_name; /* widget resource name quarkified */
66 Boolean being_destroyed; /* marked for destroy */
67 XtCallbackList destroy_callbacks; /* who to call when widget destroyed */
68 XtPointer constraints; /* constraint record */
69 } ObjectPart;
70
71 typedef struct _ObjectRec {
72 ObjectPart object;
73 } ObjectRec;
74
75 /********************************************************
76 * Object Class Data Structures
77 *
78 ********************************************************/
79 /* these fields match CoreClassPart and can not be changed */
80 /* ideally these structures would only contain the fields required;
81 but because the CoreClassPart cannot be changed at this late date
82 extraneous fields are necessary to make the field offsets match */
83
84 typedef struct _ObjectClassPart {
85
86 WidgetClass superclass; /* pointer to superclass ClassRec */
87 String class_name; /* widget resource class name */
88 Cardinal widget_size; /* size in bytes of widget record */
89 XtProc class_initialize; /* class initialization proc */
90 XtWidgetClassProc class_part_initialize; /* dynamic initialization */
91 XtEnum class_inited; /* has class been initialized? */
92 XtInitProc initialize; /* initialize subclass fields */
93 XtArgsProc initialize_hook; /* notify that initialize called */
94 XtProc obj1; /* NULL */
95 XtPointer obj2; /* NULL */
96 Cardinal obj3; /* NULL */
97 XtResourceList resources; /* resources for subclass fields */
98 Cardinal num_resources; /* number of entries in resources */
99 XrmClass xrm_class; /* resource class quarkified */
100 Boolean obj4; /* NULL */
101 XtEnum obj5; /* NULL */
102 Boolean obj6; /* NULL */
103 Boolean obj7; /* NULL */
104 XtWidgetProc destroy; /* free data for subclass pointers */
105 XtProc obj8; /* NULL */
106 XtProc obj9; /* NULL */
107 XtSetValuesFunc set_values; /* set subclass resource values */
108 XtArgsFunc set_values_hook; /* notify that set_values called */
109 XtProc obj10; /* NULL */
110 XtArgsProc get_values_hook; /* notify that get_values called */
111 XtProc obj11; /* NULL */
112 XtVersionType version; /* version of intrinsics used */
113 XtPointer callback_private; /* list of callback offsets */
114 String obj12; /* NULL */
115 XtProc obj13; /* NULL */
116 XtProc obj14; /* NULL */
117 XtPointer extension; /* pointer to extension record */
118 }ObjectClassPart;
119
120 typedef struct {
121 XtPointer next_extension; /* 1st 4 required for all extension records */
122 XrmQuark record_type; /* NULLQUARK; when on ObjectClassPart */
123 long version; /* must be XtObjectExtensionVersion */
124 Cardinal record_size; /* sizeof(ObjectClassExtensionRec) */
125 XtAllocateProc allocate;
126 XtDeallocateProc deallocate;
127 } ObjectClassExtensionRec, *ObjectClassExtension;
128
129 typedef struct _ObjectClassRec {
130 ObjectClassPart object_class;
131 } ObjectClassRec;
132
133 externalref ObjectClassRec objectClassRec;
134
135 #define XtObjectExtensionVersion 1L
136 #define XtInheritAllocate ((XtAllocateProc) _XtInherit)
137 #define XtInheritDeallocate ((XtDeallocateProc) _XtInherit)
138
139 #endif /*_Xt_ObjectP_h_*/