Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

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

wSpecifies the widget whose resource is to be obtained. 

offsetSpecifies 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

XtGetApplicationResourcesUNIX SYSTEM V/68, XtGetSubresourcesUNIX SYSTEM V/68. 

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026