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

XtSetSubvalues()														  XtSetSubvalues()

Name
  XtSetSubvalues - copy resource settings from an ArgList to a subpart resource structure.

Synopsis
  void XtSetSubvalues(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 into which the resources should be written.

  resources Specifies the subpart resource list.

  num_resources
	    Specifies the number of resources in the resource list.

  args	    Specifies an argument list of name/value pairs that contain the resource settings to be copied into the subpart data structure.

  num_args  Specifies the number of arguments in the argument list.

Description
  XtSetSubvalues()  copies the values of named resources from args into the structure pointed to by base.  The resource list resources speci-
  fies the size of each resource in this structure, and its offset from base.  The name of each  resource  in  args  is  looked  up  in  this
  resource list, and the resource's specified size and offset are used to copy the resource value into the subpart structure.  If the name of
  a resource in args does not match any of the resources described by resources, then that resource  name/value  pair  in  args  is  silently
  ignored.

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

Usage
  If a widget has subpart resources, it can fetch initial values for those resources  from  the  resource  database  by  calling  XtGetSubre-
  sources()  from  its	initialize() method and passing the user's argument list to override values from the database.	In the resource file,
  the subpart will have a name, and the subpart resources will be specified under that name in the resource  hierarchy.   Most	widgets  will
  want	to  allow  the user to set the values of subpart resources from application code as well.  One way to do this is to call XtSetSubval-
  ues() from within the widget's set_values() method, passing the subpart resource list and the user's argument list.  (Prior to  Release  4,
  you  had  to	use  the  set_values_hook()  method  for  this	purpose.)  With this approach, subpart resources seem just like normal widget
  resources to the user; both types of resources can be set by calling XtSetValues().  Another approach is  to	provide  a  special  function
  (which  will use XtSetSubvalues()) to set values of your subpart.  This approach emphasizes that the subpart is a distinct component of the
  widget.

  Note that a more flexible alternative to subparts is to use non-widget objects which the user can create as children of your widget.	 This
  way the user has a handle on the "subparts" and can manipulate them directly.

  To get the values of named resources from a subpart, use XtGetSubvalues().

  To  set resource values in a subpart structure using a NULL-terminated variable-length argument list instead of an ArgList, use XtVaSetSub-
  values().

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.

  Arg are defined as follows:

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

See Also
  XtGetApplicationResources(1), XtGetSubresources(1), XtGetSubvalues(1),
  set_values(4).

Xt - Resource Management													  XtSetSubvalues()
Man Page