NAME
Object 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.
DESCRIPTION
Object 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 RESOURCES
Object 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(), XtVaGetSubresources, 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 ALSO
CoreUNIX SYSTEM V/68 and V/88 Release 4.