XtResourceDefaultProc() XtResourceDefaultProc()
Name
XtResourceDefaultProc - interface definition for procedure called to obtain a resource default value.
Synopsis
typedef void (*XtResourceDefaultProc)(Widget, int, XrmValue *)
Widget w;
int offset;
XrmValue *value_return;
Inputs
w Specifies the widget whose resource is to be obtained.
offset Specifies the offset of the field in the widget record.
Outputs
value_return
Returns the address of the default resource value.
Description
An XtResourceDefaultProc is registered in an XtResource structure of an XtResourceList array by specifying the special value XtRCallProc
for the default_type field, and specifying the procedure in the default_addr field. It is called by the Intrinsics when the default value
of that resource is required.
An XtResourceDefaultProc should determine the default value of the resource, convert it to the correct type if necessary, and store the
address of the value at value_return->addr. It need not store the size of this value because the resource manager already knows the size
of the resource.
See XtGetApplicationResources(1) for more information on the fields of the XtResource structure and an example of how to declare one.
Usage
An XtResourceDefaultProc is passed the offset of the resource field in the widget or object w as its offset argument. It should not use
this argument to set the resource value directly in the object. It can use it to identify which resource value is desired, if the same
procedure is used to obtain default values for more than one resource. It can also be used to obtain the same resource value from some
other already initialized widget of the same class, as is shown in the example below.
Example
The default value for the XtNdepth resource of the Core widget class should be whatever value the widget's parent has. To implement this,
the XtNdepth resource is declared with an XtResourceDefaultProc as follows:
{XtNdepth, XtCDepth, XtRInt,sizeof(int),
XtOffsetOf(CoreRec,core.depth),
XtRCallProc, (XtPointer)_XtCopyFromParent},
The _XtCopyFromParent() XtResourceDefaultProc is defined by the Intrinsics as follows. Note how the resource value is returned and how the
offset argument is used.
void _XtCopyFromParent(widget, offset, value)
Widget widget;
int offset;
XrmValue *value;
{
if (widget->core.parent == NULL) {
XtAppWarningMsg(XtWidgetToApplicationContext(widget),
"invalidParent","xtCopyFromParent",
XtCXtToolkitError,
"CopyFromParent must have non-NULL parent",
(String *)NULL, (Cardinal *)NULL);
value->addr = NULL;
return;
}
value->addr = (XPointer)(((char *)widget->core.parent) + offset);
}
See Also
XtGetApplicationResources(1), XtGetSubresources(1).
Xt - Resource Management XtResourceDefaultProc()