Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

xtresourcedefaultproc(3) [hpux man page]

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()

Check Out this Related Man Page

XtGetSubvalues()														  XtGetSubvalues()

Name
  XtGetSubvalues - copy resource values from a subpart data structure to an argument list.

Synopsis
  void XtGetSubvalues(base, resources, num_resources, args, num_args)
	 XtPointer base;
	 XtResourceList resources;
	 Cardinal num_resources;
	 ArgList args;
	 Cardinal num_args;

Inputs
  base	    Specifies the base address of the subpart data structure for which the resources should be retrieved.

  resources Specifies the subpart resource list.

  num_resources
	    Specifies the number of resources in the resource list.

  args	    Specifies  an array of name/address pairs that contain the resource names and the addresses into which the resource values are to
	    be stored.

  num_args  Specifies the number of arguments in the argument list.

Description
  For each argument in args, XtGetSubvalues() uses the argument name field to look up the resource in resources, and uses the information  in
  that	resource structure to copy the resource value from the subpart structure pointed to by base to the location specified by the argument
  value field.

  If the argument list contains a resource name that is not found in the resources, the memory pointed to by the argument  value  field  will
  not be modified.

  The  value field of each element in args must contain the address into which to store the corresponding resource value.  It is the caller's
  responsibility ensure that there is enough memory at the given location for the requested resource, and to  free  this  memory  if  it  was
  dynamically allocated.

  See  XtGetApplicationResources()  for a description of the various fields of a XtResource structure and an example of initializing an XtRe-
  sourceList.

Usage
  XtGetSubvalues() is normally called in the get_values_hook() method of a widget with a subpart in order to get the values of requested sub-
  part resources that cannot be automatically fetched by the widget.  See XtSetSubvalues() for	more information.

  Note that an application cannot call XtGetSubvalues() for a widget because it does not have access to a widget's subpart resource list.

  To set a widget's subpart resource values, see XtSetSubvalues().

  See XtGetSubresources() for more explanation of subpart resources.

  To get subpart resource values using a variable-length argument list rather than a single ArgList array, use XtVaGetSubvalues().

Structures
  XtResource is defined as follows:

     typedef struct _XtResource {
	String	  resource_name;  /* Resource name */
	String	  resource_class; /* Resource class */
	String	  resource_type;  /* Representation type desired */
	Cardinal  resource_size;  /* Size in bytes of representation */
	Cardinal  resource_offset;/* Offset from base to put resource value */
	String	  default_type;   /* Representation type of specified default */
	XtPointer default_addr;   /* Address of resource default value */
     } XtResource, XtResourceList;

  See XtGetApplicationResources() for an explanation of the fields of this structure.

  An Arg is defined as follows:

     typedef struct {
	 String name;
	 XtArgVal value;
     } Arg, *ArgList;

See Also
  XtGetSubresources(1), XtVaGetSubvalues(1),
  get_values_hook(4).

Xt - Resource Management													  XtGetSubvalues()
Man Page