XtResourceDefaultProc()XtResourceDefaultProc()NameXtResourceDefaultProc - 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 fol‐
lows:
{XtNdepth, XtCDepth, XtRInt,sizeof(int),
XtOffsetOf(CoreRec,core.depth),
XtRCallProc, (XtPointer)_XtCopyFromParent},
The _XtCopyFromParent()XtResourceDefaultProc is defined by the Intrin‐
sics 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 AlsoXtGetApplicationResources(1), XtGetSubresources(1).
Xt - Resource Management XtResourceDefaultProc()