Object()Object()NameObject widget class - fundamental object class.
Synopsis
Public Headers: <X11/StringDefs.h>
<X11/Object.h>
Private Header: <X11/ObjectP.h>
Class Name: Object
Class Hierarchy: Object
Class Pointer: objectClass
Instantiation: Object is an Intrinsics meta-class, and is not
normally instantiated.
Functions/Macros: XtIsObject()Availability
Release 4 and later.
DescriptionObject is the root of the class hierarchy; it does not have a
superclass. All objects and widgets are subclasses of Object. Object
encapsulates the mechanisms for resource management and is never
instantiated.
Prior to Release 4, Core was the root of the class hierarchy. The
Object class was made public in Release 4 to enable programmers to use
the Intrinsics classing and resource handling mechanisms for things
besides widgets. Objects make many common uses of subresources
obsolete. See the "Background" section below for more information on
using non-widget objects.
New ResourcesObject defines the following resources:
Name Class Type Default Access
XtNdestroyCallback XtCCallback XtCallbackList NULL C
XtNdestroyCallback
List of callbacks invoked when the Object is destroyed.
Class Structure
The Object class structure is shown below. Because the Object class
was defined after Core was already standardized, the fields of these
two class structures must match. Therefore, the fields named objn
below exist only to pad out the structure. The use of each of the
remaining fields is exactly as for the Core class.
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;
typedef struct _ObjectClassRec {
ObjectClassPart object_class;
} ObjectClassRec, *ObjectClass;
There is no extension defined for the Object class, and the extension
field should be NULL.
Instance Structure
The Object instance structure contains at least the fields shown below.
The fields need not be in the order shown, but because the Object class
was defined after Core was standardized, the position of each of these
fields must be the same for both classes.
typedef struct _ObjectPart {
Widget self;
WidgetClass widget_class;
Widget parent;
XrmName xrm_name;
Boolean being_destroyed;
XtCallbackList destroy_callbacks;
XtPointer constraints;
} ObjectPart;
typedef struct _ObjectRec {
ObjectPart object;
} ObjectRec, *Object;
Background
Composite widget classes that wish to accept non-widget children must
set the accepts_objects field in the CompositeClassExtension structure
to True. XtCreateWidget() will otherwise generate an error message on
an attempt to create a non-widget child.
Of the classes defined by the Intrinsics, only ApplicationShell accepts
non-widget children, and the class of any non-widget child must not be
rectObjClass or any subclass. The intent of allowing Object children
of ApplicationShell is to provide clients a simple mechanism for
establishing the resource naming root of an object hierarchy.
Starting in Release 4, the WidgetClass arguments to the following
procedures may be objectClass or any subclass:
· XtInitializeWidgetClass(), XtCreateWidget(), XtVaCreateWidget()
· XtIsSubclass(), XtCheckSubclass()
· XtGetResourceList(), XtGetConstraintResourceList()
The Widget arguments to the following procedures may be of class Object
or any subclass:
· XtCreateWidget(), XtVaCreateWidget()
· XtAddCallback(), XtAddCallbacks(), XtRemoveCallback(),
XtRemoveCallbacks, XtRemoveAllCallbacks(), XtCallCallbacks(),
XtHasCallbacks(), XtCallCallbackList()
· XtClass(), XtSuperclass(), XtIsSubclass(), XtCheckSubclass(),
XtIsObject(), XtIsRectObj(), XtIsWidget(), XtIsComposite(),
XtIsConstraint(), XtIsShell(), XtIsOverrideShell(),
XtIsWMShell(), XtIsVendorShell(), XtIsTransientShell(),
XtIsToplevelShell, XtIsApplicationShell().
· XtIsManaged(), XtIsSensitive()
(both will return False if argument is not a subclass of
RectObj)
· XtIsRealized()
(returns the state of the nearest windowed ancestor if argument
is not of a subclass of Core)
· XtWidgetToApplicationContext()
· XtDestroyWidget()
· XtDisplayOfObject(), XtScreenOfObject(), XtWindowOfObject()
· XtSetKeyboardFocus() (descendant)
· XtGetGC(), XtReleaseGC()
· XtName()
· XtSetValues(), XtGetValues(), XtVaSetValues(), XtVaGetValues(),
· XtGetSubresources(), XtGetApplicationResources(), XtVaGetSub‐
resources, XtVaGetApplicationResources()
· XtConvert(), XtConvertAndStore()
The return value of the following procedures will be of class Object or
a subclass:
· XtCreateWidget(), XtVaCreateWidget()
· XtParent()
· XtNameToWidget()
The return value of the following procedures will be objectClass or a
subclass:
· XtClass(), XtSuperclass()See AlsoCore(3).
Intrinsics ClassesObject()