diff options
author | marha <marha@users.sourceforge.net> | 2011-03-25 10:41:05 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2011-03-25 10:41:05 +0000 |
commit | 272e57235cd60a2e65ac8258d96a02eb3939b687 (patch) | |
tree | 789d74bd6ec1cc468f1f81aab97d4e4dfdb2d5c5 /libXt/specs/CH12 | |
parent | b39f063f74bf0163eaf34db03134f226d18142ec (diff) | |
download | vcxsrv-272e57235cd60a2e65ac8258d96a02eb3939b687.tar.gz vcxsrv-272e57235cd60a2e65ac8258d96a02eb3939b687.tar.bz2 vcxsrv-272e57235cd60a2e65ac8258d96a02eb3939b687.zip |
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
Diffstat (limited to 'libXt/specs/CH12')
-rw-r--r-- | libXt/specs/CH12 | 1067 |
1 files changed, 1067 insertions, 0 deletions
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 |