From 272e57235cd60a2e65ac8258d96a02eb3939b687 Mon Sep 17 00:00:00 2001
From: marha <marha@users.sourceforge.net>
Date: Fri, 25 Mar 2011 10:41:05 +0000
Subject: git update until 25 Mar 2011

xserver
fontconfig
glproto
libXau
libXft
libXmu
libfontenc
libxcb
mesa
mkfontscale
pixman
randrproto
xkeyboard-config
xtrans
xwininfo

updated following packages:

xproto-7.0.21
xineramaproto-1.2.1
libXt-1.1.1
libxkbfile-1.0.7
libXpm-3.5.9
libXfont-1.4.3
libXaw-1.0.9
bdftopcf-1.0.3
encodings-1.0.4
fixesproto-5.0
font-adobe-100dpi-1.0.3
font-adobe-75dpi-1.0.3
font-adobe-utopia-100dpi-1.0.4
font-adobe-utopia-75dpi-1.0.4
font-adobe-utopia-type1-1.0.4
font-alias-1.0.3
font-arabic-misc-1.0.3
font-bh-100dpi-1.0.3
font-bh-75dpi-1.0.3
font-bh-lucidatypewriter-100dpi-1.0.3
font-bh-lucidatypewriter-75dpi-1.0.3
font-bh-ttf-1.0.3
font-bh-type1-1.0.3
font-bitstream-100dpi-1.0.3
font-bitstream-75dpi-1.0.3
font-bitstream-speedo-1.0.2
font-bitstream-type1-1.0.3
font-cronyx-cyrillic-1.0.3
font-cursor-misc-1.0.3
font-daewoo-misc-1.0.3
font-dec-misc-1.0.3
font-ibm-type1-1.0.3
font-isas-misc-1.0.3
font-jis-misc-1.0.3
font-micro-misc-1.0.3
font-misc-cyrillic-1.0.3
font-misc-ethiopic-1.0.3
font-misc-meltho-1.0.3
font-misc-misc-1.1.2
font-mutt-misc-1.0.3
font-schumacher-misc-1.1.2
font-screen-cyrillic-1.0.4
font-sony-misc-1.0.3
font-sun-misc-1.0.3
font-util-1.2.0
font-winitzki-cyrillic-1.0.3
font-xfree86-type1-1.0.4
---
 libXt/specs/CH12 | 1067 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 1067 insertions(+)
 create mode 100644 libXt/specs/CH12

(limited to 'libXt/specs/CH12')

diff --git a/libXt/specs/CH12 b/libXt/specs/CH12
new file mode 100644
index 000000000..34e8ec77e
--- /dev/null
+++ b/libXt/specs/CH12
@@ -0,0 +1,1067 @@
+.\" $Xorg: CH12,v 1.3 2000/08/17 19:42:47 cpqbld Exp $
+.\" Copyright \(co 1985, 1986, 1987, 1988, 1991, 1994
+.\" X Consortium
+.\" 
+.\" Permission is hereby granted, free of charge, to any person obtaining
+.\" a copy of this software and associated documentation files (the
+.\" "Software"), to deal in the Software without restriction, including
+.\" without limitation the rights to use, copy, modify, merge, publish,
+.\" distribute, sublicense, and/or sell copies of the Software, and to
+.\" permit persons to whom the Software is furnished to do so, subject to
+.\" the following conditions:
+.\" 
+.\" The above copyright notice and this permission notice shall be included
+.\" in all copies or substantial portions of the Software.
+.\" 
+.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+.\" IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
+.\" OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+.\" ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+.\" OTHER DEALINGS IN THE SOFTWARE.
+.\" 
+.\" Except as contained in this notice, the name of the X Consortium shall
+.\" not be used in advertising or otherwise to promote the sale, use or
+.\" other dealings in this Software without prior written authorization
+.\" from the X Consortium.
+.\" 
+.\" Copyright \(co 1985, 1986, 1987, 1988, 1991, 1994
+.\" Digital Equipment Corporation, Maynard, Massachusetts.
+.\" 
+.\" Permission to use, copy, modify and distribute this documentation for any
+.\" purpose and without fee is hereby granted, provided that the above copyright
+.\" notice appears in all copies and that both that copyright notice and this
+.\" permission notice appear in supporting documentation, and that the name of
+.\" Digital not be used in in advertising or publicity pertaining
+.\" to distribution of the software without specific, written prior permission.
+.\" Digital makes no representations about the suitability of the
+.\" software described herein for any purpose.
+.\" It is provided ``as is'' without express or implied warranty.
+.\"
+\&
+.sp 1
+.ce 3
+\s+1\fBChapter 12\fP\s-1
+
+\s+1\fBNonwidget Objects\fP\s-1
+.sp 2
+.nr H1 12
+.nr H2 0
+.nr H3 0
+.nr H4 0
+.nr H5 0
+.LP
+.XS
+Chapter 12 \(em Nonwidget Objects
+.XE
+.LP
+Although widget writers are free to treat
+Core
+as the base class of
+the widget hierarchy, there are actually three classes above it.
+These classes are
+Object,
+RectObj
+(Rectangle Object), and (\fIunnamed\fP),
+and members of these classes
+are referred to generically as \fIobjects\fP.  By convention, the term
+\fIwidget\fP refers only to objects that are a subclass of
+Core,
+and the term \fInonwidget\fP refers to objects that are not a subclass of
+Core.
+In the preceding portion of this specification, the interface
+descriptions indicate explicitly whether the generic \fIwidget\fP argument
+is restricted to particular subclasses of Object.  Sections 12.2.5,
+12.3.5, and 12.5 summarize the permissible classes of the arguments to, and
+return values from, each of the \*(xI routines.
+
+.NH 2
+Data Structures
+.XS
+\*(SN Data Structures
+.XE
+.LP
+In order not to conflict with previous widget code, the data
+structures used by nonwidget objects do not follow all the same
+conventions as those for widgets.  In particular, the class records
+are not composed of parts but instead are complete data structures
+with filler for the widget fields they do not use.  This
+allows the static class initializers for existing widgets to remain
+unchanged.
+
+.NH 2
+Object Objects
+.XS
+\fB\*(SN Object Objects\fP
+.XE
+.LP
+.IN "Object" "" "@DEF@"
+The
+Object
+object contains the definitions of fields common to all
+objects.  It encapsulates the mechanisms for resource management.
+All objects and widgets are members of subclasses of
+Object,
+which is defined by the
+.PN ObjectClassPart
+and
+.PN ObjectPart
+structures.
+
+.NH 3
+ObjectClassPart Structure
+.XS
+\*(SN ObjectClassPart Structure
+.XE
+.LP
+The common fields for all object classes are defined in the
+.PN ObjectClassPart
+structure.  All fields have the same purpose,
+function, and restrictions as the corresponding fields in
+.PN CoreClassPart ;
+fields whose
+names are obj\fI\s+1n\s-1\fP for some integer \s+1\fIn\fP\s-1 are not
+used for Object,
+but exist to pad the data structure so that it matches Core's class
+record.  The class record initialization must fill all
+obj\fI\s+1n\s-1\fP fields with NULL or zero as appropriate to the type.
+.LP
+.IN "ObjectClassPart" "" "@DEF@"
+.sM
+.Ds 0
+.TA .5i 3i
+.ta .5i 3i
+typedef struct _ObjectClassPart {
+	WidgetClass superclass;
+	String class_name;
+	Cardinal widget_size;
+	XtProc class_initialize;
+	XtWidgetClassProc class_part_initialize;
+	XtEnum class_inited;
+	XtInitProc initialize;
+	XtArgsProc initialize_hook;
+	XtProc obj1;
+	XtPointer obj2;
+	Cardinal obj3;
+	XtResourceList resources;
+	Cardinal num_resources;
+	XrmClass xrm_class;
+	Boolean obj4;
+	XtEnum obj5;
+	Boolean obj6;
+	Boolean obj7;
+	XtWidgetProc destroy;
+	XtProc obj8;
+	XtProc obj9;
+	XtSetValuesFunc set_values;
+	XtArgsFunc set_values_hook;
+	XtProc obj10;
+	XtArgsProc get_values_hook;
+	XtProc obj11;
+	XtVersionType version;
+	XtPointer callback_private;
+	String obj12;
+	XtProc obj13;
+	XtProc obj14;
+	XtPointer extension;
+} ObjectClassPart;
+.De
+.LP
+.eM
+The extension record defined for
+.PN ObjectClassPart
+with a \fIrecord_type\fP equal to 
+.PN \s-1NULLQUARK\s+1
+is
+.PN ObjectClassExtensionRec .
+.LP
+.IN "ObjectClassExtensionRec" "" "@DEF@"
+.sM
+.Ds 0
+.TA .5i 3i
+.ta .5i 3i
+typedef struct {
+	XtPointer next_extension;	See Section 1.6.12
+	XrmQuark record_type;	See Section 1.6.12
+	long version;	See Section 1.6.12
+	Cardinal record_size;	See Section 1.6.12
+	XtAllocateProc allocate;	See Section 2.5.5.
+	XtDeallocateProc deallocate;	See Section 2.8.4.
+} ObjectClassExtensionRec, *ObjectClassExtension;
+.De
+.LP
+.eM
+The prototypical
+.PN ObjectClass
+consists of just the
+.PN ObjectClassPart .
+.LP
+.IN "ObjectClassRec" "" "@DEF@"
+.IN "ObjectClass" "" "@DEF@"
+.IN "objectClass" "" "@DEF@"
+.sM
+.Ds 0
+.TA .5i 3i
+.ta .5i 3i
+typedef struct _ObjectClassRec {
+	ObjectClassPart object_class;
+} ObjectClassRec, *ObjectClass;
+.De
+.LP
+.eM
+The predefined class record and pointer for
+.PN ObjectClassRec
+are
+.LP
+In
+.PN IntrinsicP.h :
+.sM
+.Ds 0
+extern ObjectClassRec objectClassRec;
+.De
+.LP
+.eM
+In
+.PN Intrinsic.h :
+.sM
+.Ds 0
+extern WidgetClass objectClass;
+.De
+.LP
+.eM
+The opaque types
+.PN Object
+and
+.PN ObjectClass
+and the opaque variable
+.PN objectClass
+are defined for generic actions on objects.
+The symbolic constant for the
+.PN ObjectClassExtension
+version identifier is
+.PN XtObjectExtensionVersion
+(see Section 1.6.12).
+.PN Intrinsic.h
+uses an incomplete structure definition to ensure that the
+compiler catches attempts to access private data:
+.LP
+.sM
+.Ds 0
+typedef struct _ObjectClassRec* ObjectClass;
+.De
+.LP
+.eM
+
+.NH 3
+ObjectPart Structure
+.XS
+\*(SN ObjectPart Structure
+.XE
+.LP
+The common fields for all object instances are defined in the
+.PN ObjectPart
+structure.  All fields have the same meaning as the
+corresponding fields in
+.PN CorePart .
+.LP
+.sM
+.Ds 0
+.TA .5i 3i
+.ta .5i 3i
+.IN "ObjectPart" "" "@DEF@"
+typedef struct _ObjectPart {
+	Widget self;
+	WidgetClass widget_class;
+	Widget parent;
+	Boolean being_destroyed;
+	XtCallbackList destroy_callbacks;
+	XtPointer constraints;
+} ObjectPart;
+.De
+.LP
+.eM
+All object instances have the
+Object
+fields as their first component.  The prototypical type
+.PN Object
+is defined with only this set of fields.
+Various routines can cast object pointers, as needed, to specific
+object types.
+.LP
+In
+.PN IntrinsicP.h :
+.LP
+.sM
+.Ds 0
+.TA .5i 3i
+.ta .5i 3i
+typedef struct _ObjectRec {
+	ObjectPart object;
+} ObjectRec, *Object;
+.De
+.LP
+.eM
+.IN "ObjectRec" "" "@DEF@"
+In
+.PN Intrinsic.h :
+.LP
+.sM
+.Ds 0
+typedef struct _ObjectRec *Object;
+.De
+.LP
+.eM
+
+.NH 3
+Object Resources
+.XS
+\fB\*(SN Object Resources\fP
+.XE
+.LP
+The resource names, classes, and representation types specified in the
+.PN objectClassRec
+resource list are:
+.LP
+.TS
+lw(1.5i) lw(1.5i) lw(2.5i) .
+_
+.sp 6p
+Name	Class	Representation
+.sp 6p
+_
+.sp 6p
+XtNdestroyCallback	XtCCallback	XtRCallback
+.sp 6p
+_
+.TE
+
+.NH 3
+ObjectPart Default Values
+.XS
+\fB\*(SN ObjectPart Default Values\fP
+.XE
+.LP
+All fields in
+.PN ObjectPart
+have the same default values as the corresponding fields in
+.PN CorePart .
+
+.NH 3
+Object Arguments to \*(xI Routines
+.XS
+\*(SN Object Arguments to \*(xI Routines
+.XE
+.LP
+The WidgetClass arguments to the following procedures may be
+.PN objectClass
+or any subclass:
+.sp
+.IP
+.PN XtInitializeWidgetClass ,
+.PN XtCreateWidget ,
+.PN XtVaCreateWidget
+.IP
+.PN XtIsSubclass ,
+.PN XtCheckSubclass
+.IP
+.PN XtGetResourceList ,
+.PN XtGetConstraintResourceList
+.sp
+.LP
+The Widget arguments to the following procedures may be of class
+Object
+or any subclass:
+.sp
+.IP
+.PN XtCreateWidget ,
+.PN XtVaCreateWidget
+.IP
+.PN XtAddCallback ,
+.PN XtAddCallbacks ,
+.PN XtRemoveCallback ,
+.PN XtRemoveCallbacks ,
+.PN XtRemoveAllCallbacks ,
+.PN XtCallCallbacks ,
+.PN XtHasCallbacks ,
+.PN XtCallCallbackList
+.IP
+.PN XtClass ,
+.PN XtSuperclass ,
+.PN XtIsSubclass ,
+.PN XtCheckSubclass ,
+.PN XtIsObject ,
+.PN XtIsRectObj ,
+.PN XtIsWidget ,
+.PN XtIsComposite ,
+.PN XtIsConstraint ,
+.PN XtIsShell ,
+.PN XtIsOverrideShell ,
+.PN XtIsWMShell ,
+.PN XtIsVendorShell ,
+.PN XtIsTransientShell ,
+.PN XtIsToplevelShell ,
+.PN XtIsApplicationShell ,
+.PN XtIsSessionShell
+.IP
+.PN XtIsManaged ,
+.PN XtIsSensitive
+.br
+(both will return
+.PN False
+if argument is not a subclass of
+RectObj)
+.IP
+.PN XtIsRealized
+.br
+(returns the state of the nearest windowed ancestor
+if class of argument is not a subclass of
+Core)
+.IP
+.PN XtWidgetToApplicationContext
+.IP    
+.PN XtDestroyWidget
+.IP
+.PN XtParent ,
+.PN XtDisplayOfObject ,
+.PN XtScreenOfObject ,
+.PN XtWindowOfObject
+.IP
+.PN XtSetKeyboardFocus
+(descendant)
+.IP
+.PN XtGetGC ,
+.PN XtReleaseGC
+.IP
+.PN XtName
+.IP
+.PN XtSetValues ,
+.PN XtGetValues ,
+.PN XtVaSetValues ,
+.PN XtVaGetValues
+.IP
+.PN XtGetSubresources ,
+.PN XtGetApplicationResources ,
+.PN XtVaGetSubresources ,
+.PN XtVaGetApplicationResources
+.IP
+.PN XtConvert ,
+.PN XtConvertAndStore
+.sp
+.LP
+The return value of the following procedures will be of class
+Object
+or a subclass:
+.sp
+.IP
+.PN XtCreateWidget ,
+.PN XtVaCreateWidget
+.IP
+.PN XtParent
+.IP
+.PN XtNameToWidget
+.sp
+.LP
+The return value of the following procedures will be
+.PN objectClass
+or a subclass:
+.sp
+.IP
+.PN XtClass ,
+.PN XtSuperclass
+
+.NH 3
+Use of Objects
+.XS
+\fB\*(SN Use of Objects\fP
+.XE
+.LP
+The
+Object
+class exists to enable programmers to use the \*(xI'
+classing and resource-handling mechanisms for things smaller
+and simpler than widgets.
+Objects make obsolete many common uses of subresources as described in
+Sections 9.4, 9.7.2.4, and 9.7.2.5.
+.LP
+Composite
+widget classes that wish to accept nonwidget children must
+set the \fIaccepts_objects\fP field in the
+.PN CompositeClassExtension
+structure to
+.PN True .
+.PN XtCreateWidget
+will otherwise generate an error message on an attempt to create a
+nonwidget child.
+.LP
+Of the classes defined by the \*(xI,
+ApplicationShell 
+and
+SessionShell
+accept nonwidget children, and the class of any nonwidget child
+must not be
+.PN rectObjClass
+or any subclass.  The intent of allowing
+Object
+children of
+ApplicationShell
+and
+SessionShell
+is to provide clients a simple mechanism
+for establishing the resource-naming root of an object hierarchy.
+
+.NH 2
+Rectangle Objects
+.XS
+\fB\*(SN Rectangle Objects\fP
+.XE
+.LP
+The class of rectangle objects is a subclass of
+Object
+that represents
+rectangular areas.  It encapsulates the mechanisms for geometry
+management and is called RectObj
+.IN "RectObj" "" "@DEF@"
+to avoid conflict with the Xlib
+.PN Rectangle
+data type.
+
+.NH 3
+RectObjClassPart Structure
+.XS
+\*(SN RectObjClassPart Structure
+.XE
+.LP
+As with the
+.PN ObjectClassPart
+structure, all fields in the
+.PN RectObjClassPart
+structure have the same
+purpose and function as the corresponding fields in
+.PN CoreClassPart ;
+fields whose names are rect\fI\s+1n\s-1\fP for some integer
+\fI\s+1n\s-1\fP are not used for
+RectObj, but exist to pad the data structure so that it matches
+Core's
+class record.  The class record initialization must fill all
+rect\fI\s+1n\s-1\fP fields with NULL or zero as appropriate to the type.
+.LP
+.sM
+.Ds 0
+.TA .5i 3i
+.ta .5i 3i
+.IN "RectObjClassPart" "" "@DEF@"
+typedef struct _RectObjClassPart {
+	WidgetClass superclass;
+	String class_name;
+	Cardinal widget_size;
+	XtProc class_initialize;
+	XtWidgetClassProc class_part_initialize;
+	XtEnum class_inited;
+	XtInitProc initialize;
+	XtArgsProc initialize_hook;
+	XtProc rect1;
+	XtPointer rect2;
+	Cardinal rect3;
+	XtResourceList resources;
+	Cardinal num_resources;
+	XrmClass xrm_class;
+	Boolean rect4;
+	XtEnum rect5;
+	Boolean rect6;
+	Boolean rect7;
+	XtWidgetProc destroy;
+	XtWidgetProc resize;
+	XtExposeProc expose;
+	XtSetValuesFunc set_values;
+	XtArgsFunc set_values_hook;
+	XtAlmostProc set_values_almost;
+	XtArgsProc get_values_hook;
+	XtProc rect9;
+	XtVersionType version;
+	XtPointer callback_private;
+	String rect10;
+	XtGeometryHandler query_geometry;
+	XtProc rect11;
+	XtPointer extension ;
+} RectObjClassPart;
+.De
+.LP
+.eM
+The
+RectObj
+class record consists of just the
+.PN RectObjClassPart .
+.LP
+.sM
+.Ds 0
+.TA .5i 3i
+.ta .5i 3i
+.IN "RectObjClassRec" "" "@DEF@"
+.IN "RectObjClass" "" "@DEF@"
+typedef struct _RectObjClassRec {
+	RectObjClassPart rect_class;
+} RectObjClassRec, *RectObjClass;
+.De
+.LP
+.eM
+The predefined class record and pointer for
+.PN RectObjClassRec
+are
+.LP
+In
+.PN Intrinsic.h :
+.LP
+.sM
+.Ds 0
+extern RectObjClassRec rectObjClassRec;
+.De
+.LP
+.eM
+In
+.PN Intrinsic.h :
+.LP
+.sM
+.Ds 0
+extern WidgetClass rectObjClass;
+.De
+.LP
+.eM
+The opaque types
+.PN RectObj
+and
+.PN RectObjClass
+and the opaque variable
+.PN rectObjClass
+are defined for generic actions on objects
+whose class is RectObj or a subclass of
+RectObj.
+.PN Intrinsic.h
+uses an incomplete structure definition to ensure that the compiler
+catches attempts to access private data:
+.LP
+.sM
+.Ds 0
+typedef struct _RectObjClassRec* RectObjClass;
+.De
+.LP
+.eM
+
+.NH 3
+RectObjPart Structure
+.XS
+\*(SN RectObjPart Structure
+.XE
+.LP
+In addition to the
+.PN ObjectPart
+fields,
+RectObj
+objects have the following fields defined in the
+.PN RectObjPart
+structure.  All fields have the same meaning as the corresponding field in
+.PN CorePart .
+.LP
+.sM
+.Ds 0
+.TA .5i 3i
+.ta .5i 3i
+.IN "RectObjPart" "" "@DEF@"
+typedef struct _RectObjPart {
+	Position x, y;
+	Dimension width, height;
+	Dimension border_width;
+	Boolean managed;
+	Boolean sensitive;
+	Boolean ancestor_sensitive;
+} RectObjPart;
+.De
+.LP
+.eM
+RectObj
+objects have the RectObj fields immediately following the Object fields.
+.LP
+.sM
+.Ds 0
+.TA .5i 3i
+.ta .5i 3i
+.IN "RectObjRec" "" "@DEF@"
+typedef struct _RectObjRec {
+	ObjectPart object;
+	RectObjPart rectangle;
+} RectObjRec, *RectObj;
+.De
+.LP
+.eM
+In
+.PN Intrinsic.h :
+.LP
+.sM
+.Ds 0
+typedef struct _RectObjRec* RectObj;
+.De
+.LP
+.eM
+
+.NH 3
+RectObj Resources
+.XS
+\fB\*(SN RectObj Resources\fP
+.XE
+.LP
+The resource names, classes, and representation types that are specified in the
+.PN rectObjClassRec
+resource list are:
+.TS
+lw(1.5i) lw(1.5i) lw(2.5i) .
+_
+.sp 6p
+Name	Class	Representation
+.sp 6p
+_
+.sp 6p
+XtNancestorSensitive	XtCSensitive	XtRBoolean
+XtNborderWidth	XtCBorderWidth	XtRDimension
+XtNheight	XtCHeight	XtRDimension
+XtNsensitive	XtCSensitive	XtRBoolean
+XtNwidth	XtCWidth	XtRDimension
+XtNx	XtCPosition	XtRPosition
+XtNy	XtCPosition	XtRPosition
+.sp 6p
+_
+.TE
+
+.NH 3
+RectObjPart Default Values
+.XS
+\fB\*(SN RectObjPart Default Values\fP
+.XE
+.LP
+All fields in
+.PN RectObjPart
+have the same default values as the corresponding fields in
+.PN CorePart .
+
+.NH 3
+Widget Arguments to \*(xI Routines
+.XS
+\fB\*(SN Widget Arguments to \*(xI Routines\fP
+.XE
+.LP
+The WidgetClass arguments to the following procedures may be
+.PN rectObjClass
+or any subclass:
+.sp
+.IP
+.PN XtCreateManagedWidget ,
+.PN XtVaCreateManagedWidget
+.sp
+.LP
+The Widget arguments to the following procedures may be of class
+RectObj
+or any subclass:
+.sp
+.IP
+.PN XtConfigureWidget ,
+.PN XtMoveWidget ,
+.PN XtResizeWidget
+.IP
+.PN XtMakeGeometryRequest ,
+.PN XtMakeResizeRequest
+.IP
+.PN XtManageChildren ,
+.PN XtManageChild ,
+.PN XtUnmanageChildren ,
+.PN XtUnmanageChild ,
+.PN XtChangeManagedSet
+.IP
+.PN XtQueryGeometry
+.IP
+.PN XtSetSensitive
+.IP
+.PN XtTranslateCoords
+.sp
+.LP
+The return value of the following procedures will be of class
+RectObj
+or a subclass:
+.sp
+.IP
+.PN XtCreateManagedWidget ,
+.PN XtVaCreateManagedWidget
+
+.NH 3
+Use of Rectangle Objects
+.XS
+\*(SN Use of Rectangle Objects
+.XE
+.LP
+RectObj
+can be subclassed to provide widgetlike objects (sometimes
+called gadgets) that do not use windows and do not have those
+features that are seldom used in simple widgets.  This can save memory
+resources both in the server and in applications
+but requires additional support code in the parent.
+In the following
+discussion, \fIrectobj\fP refers only to objects
+whose class is RectObj or a subclass of
+RectObj,
+but not Core or a subclass of
+Core. 
+.LP
+Composite
+widget classes that wish to accept rectobj children must set
+the \fIaccepts_objects\fP field in the
+.PN CompositeClassExtension
+extension structure to
+.PN True .
+.PN XtCreateWidget
+or
+.PN XtCreateManagedWidget
+will otherwise generate an error if called to create a nonwidget child.
+If the composite widget supports only children of class
+RectObj
+or a subclass (i.e., not of the general Object class), it
+must declare an insert_child procedure and check the subclass of each
+new child in that procedure.  None of the classes defined by the
+\*(xI accept rectobj children.
+.LP
+If gadgets are defined in an object set, the parent is responsible for
+much more than the parent of a widget.  The parent must request and handle
+input events that occur for the gadget and is responsible for making
+sure that when it receives an exposure event the gadget children get
+drawn correctly.
+Rectobj children may
+have expose procedures
+specified in their class records, but the parent is free to
+ignore them, instead drawing the contents of the child itself.  This
+can potentially save graphics context switching.  The precise contents
+of the exposure event and region arguments to the RectObj expose
+procedure are not specified by the \*(xI; a particular rectangle object is
+free to define the coordinate system origin (self-relative or
+parent-relative) and whether or not the rectangle or region is assumed to
+have been intersected with the visible region of the object.
+.LP
+In general, it is expected that a composite widget that accepts
+nonwidget children will document those children it is able to handle,
+since a gadget cannot be viewed as a completely self-contained entity,
+as can a widget.  Since a particular composite widget class is usually
+designed to handle nonwidget children of only a limited set of classes, it should
+check the classes of newly added children in its insert_child
+procedure to make sure that it can deal with them.
+.LP
+The \*(xI will clear areas of a parent window obscured by
+rectobj children, causing exposure events, under the following
+circumstances:
+.IP \(bu 5
+A rectobj child is managed or unmanaged.
+.IP \(bu 5
+In a call to
+.PN XtSetValues
+on a rectobj child, one or more of the set_values procedures returns
+.PN True .
+.IP \(bu 5
+In a call to
+.PN XtConfigureWidget
+on a rectobj child, areas will
+be cleared corresponding to both the old and the new child
+geometries, including the border, if the geometry changes.
+.IP \(bu 5
+In a call to
+.PN XtMoveWidget
+on a rectobj child, areas will be
+cleared corresponding to both the old and the new child
+geometries, including the border, if the geometry changes.
+.IP \(bu 5
+In a call to
+.PN XtResizeWidget
+on a rectobj child, a single
+rectangle will be cleared corresponding to the larger of the
+old and the new child geometries if they are different.
+.IP \(bu 5
+In a call to
+.PN XtMakeGeometryRequest
+(or
+.PN XtMakeResizeRequest )
+on a rectobj child with
+.PN XtQueryOnly
+not set, if the manager returns
+.PN XtGeometryYes ,
+two rectangles will be cleared corresponding to both the old and
+the new child geometries.
+.LP
+Stacking order is not supported for rectobj children.  Composite widgets with
+rectobj children are free to define any semantics desired if the child
+geometries overlap, including making this an error.
+.LP
+When a rectobj is playing the role of a widget, developers must be
+reminded to avoid making assumptions about the object passed in the
+Widget argument to a callback procedure.
+
+.NH 2
+Undeclared Class
+.XS
+\*(SN Undeclared Class
+.XE
+.LP
+The \*(xI define an unnamed class between
+RectObj
+and
+Core
+for possible future use by the X Consortium. The only assumptions that
+may be made about the unnamed class are
+.IP \(bu 5
+The \fIcore_class.superclass\fP field of
+.PN coreWidgetClassRec
+contains a pointer to the unnamed class record.
+.IP \(bu 5
+A pointer to the unnamed class record when dereferenced as an
+.PN ObjectClass
+will contain a pointer to
+.PN rectObjClassRec
+in its \fIobject_class.superclass\fP field.
+.LP
+Except for the above, the contents of the class record for this class
+and the result of an attempt to subclass or to create a widget of this
+unnamed class are undefined.
+
+.NH 2
+Widget Arguments to \*(xI Routines
+.XS
+\*(SN Widget Arguments to \*(xI Routines
+.XE
+.LP
+The WidgetClass arguments to the following procedures must be of class
+Shell
+or a subclass:
+.sp
+.IP
+.PN XtCreatePopupShell ,
+.PN XtVaCreatePopupShell ,
+.PN XtAppCreateShell ,
+.PN XtVaAppCreateShell ,
+.PN XtOpenApplication ,
+.PN XtVaOpenApplication
+.sp
+.LP
+The Widget arguments to the following procedures must be of class
+Core
+or any subclass:
+.sp
+.IP
+.PN XtCreatePopupShell ,
+.PN XtVaCreatePopupShell
+.IP
+.PN XtAddEventHandler ,
+.PN XtAddRawEventHandler ,
+.PN XtRemoveEventHandler ,
+.br
+.PN XtRemoveRawEventHandler ,
+.PN XtInsertEventHandler ,
+.PN XtInsertRawEventHandler
+.br
+.PN XtInsertEventTypeHandler ,
+.PN XtRemoveEventTypeHandler ,
+.IP
+.PN XtRegisterDrawable
+.PN XtDispatchEventToWidget
+.IP
+.PN XtAddGrab ,
+.PN XtRemoveGrab ,
+.PN XtGrabKey ,
+.PN XtGrabKeyboard ,
+.PN XtUngrabKey ,
+.PN XtUngrabKeyboard ,
+.PN XtGrabButton ,
+.PN XtGrabPointer ,
+.PN XtUngrabButton ,
+.br
+.PN XtUngrabPointer
+.IP
+.PN XtBuildEventMask
+.IP
+.PN XtCreateWindow ,
+.PN XtDisplay ,
+.PN XtScreen ,
+.PN XtWindow
+.IP
+.PN XtNameToWidget
+.IP
+.PN XtGetSelectionValue ,
+.PN XtGetSelectionValues ,
+.PN XtOwnSelection ,
+.PN XtDisownSelection ,
+.PN XtOwnSelectionIncremental ,
+.PN XtGetSelectionValueIncremental ,
+.PN XtGetSelectionValuesIncremental ,
+.br
+.PN XtGetSelectionRequest
+.IP
+.PN XtInstallAccelerators ,
+.PN XtInstallAllAccelerators
+(both destination and source)
+.IP
+.PN XtAugmentTranslations ,
+.PN XtOverrideTranslations ,
+.PN XtUninstallTranslations ,
+.br
+.PN XtCallActionProc
+.IP
+.PN XtMapWidget ,
+.PN XtUnmapWidget
+.IP
+.PN XtRealizeWidget ,
+.PN XtUnrealizeWidget
+.IP
+.PN XtSetMappedWhenManaged
+.IP
+.PN XtCallAcceptFocus ,
+.PN XtSetKeyboardFocus
+(subtree)
+.IP
+.PN XtResizeWindow
+.IP
+.PN XtSetWMColormapWindows
+.sp
+.LP
+The Widget arguments to the following procedures must be of class
+Composite
+or any subclass:
+.sp
+.IP
+.PN XtCreateManagedWidget ,
+.PN XtVaCreateManagedWidget
+.sp
+.LP
+The Widget arguments to the following procedures must be of a subclass of
+Shell:
+.sp
+.IP
+.PN XtPopdown ,
+.PN XtCallbackPopdown ,
+.PN XtPopup ,
+.PN XtCallbackNone ,
+.PN XtCallbackNonexclusive ,
+.PN XtCallbackExclusive ,
+.PN XtPopupSpringLoaded
+.sp
+.LP
+The return value of the following procedure will be of class
+Core
+or a subclass:
+.sp
+.IP
+.PN XtWindowToWidget
+.sp
+.LP
+The return value of the following procedures will be of a subclass of
+Shell:
+.sp
+.IP
+.PN XtAppCreateShell ,
+.PN XtVaAppCreateShell ,
+.PN XtAppInitialize ,
+.PN XtVaAppInitialize ,
+.PN XtCreatePopupShell ,
+.PN XtVaCreatePopupShell
+.bp
-- 
cgit v1.2.3