Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

xtsetarg(3) [hpux man page]

XtSetArg()																XtSetArg()

Name
  XtSetArg - set a resource name and value in an argument list.

Synopsis
  void XtSetArg(arg, resource_name, value)
	 Arg arg;
	 String resource_name;
	 XtArgVal value;

Inputs
  arg	    Specifies the Arg structure to set.

  resource_name
	    Specifies the name of the resource.

  value     Specifies the value of the resource, or its address.

Description
  XtSetArg()  sets  arg.name to resource_name, and sets arg.value to value.  If the size of the resource is less than or equal to the size of
  an XtArgVal, the resource value is stored directly in value; otherwise, a pointer to it is stored in value.

  XtSetArg() is implemented as the following macro:

     #define XtSetArg(arg, n, d)     ((void)( (arg).name = (n), (arg).value = (XtArgVal)(d) ))

  Because this macro evaluates arg twice, you must not use an expression with autoincrement, autodecrement or other  side  effects  for  this
  argument.

Usage
  Many	Intrinsics  functions  need  to be passed pairs of resource names and values in an ArgList to set or override resource values.	XtSe-
  tArg() is used to set or dynamically change values in an Arg structure or ArgList array.

  Note that in Release 4, a number of functions beginning with the prefix XtVa were added to the Intrinsics.  These functions accept a	NULL-
  terminated variable-length argument list instead of a single ArgList array.  Often these forms of the functions are easier to use.

Example
  XtSetArg() is usually used in a highly stylized manner to minimize the probability of making a mistake; for example:

     Arg args[20];
     int n;
     n = 0;
     XtSetArg(args[n], XtNheight, 100);      n++;
     XtSetArg(args[n], XtNwidth, 200);	     n++;
     XtSetValues(widget, args, n);

  Incrementing	the  array  index  on  the same line means that resource settings can be easily read, inserted, deleted or commented out on a
  line-by-line basis.  If you use this approach, be careful when using XtSetArg() inside an if statement-don't forget to use curly braces  to
  include the increment statement.

  Alternatively, an application can statically declare the argument list:

     static Args args[] = {
	     {XtNheight, (XtArgVal) 100},
	     {XtNwidth, (XtArgVal) 200},
     };
     XtSetValues(Widget, args, XtNumber(args));

Structures
  The Arg and ArgList types are defined as follows:

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

  The definition of XtArgVal differs depending on architecture-its purpose is precisely to make code portable between architectures with dif-
  ferent word sizes.

See Also
  XtMergeArgLists(1), XtNumber(1).

Xt - Argument Lists															XtSetArg()

Check Out this Related Man Page

XtSetArg(3Xt)							     MIT X11R4							     XtSetArg(3Xt)

Name
       XtSetArg, XtMergeArgLists - set and merge ArgLists

Syntax
       XtSetArg(arg, name, value)
	  Arg arg;
	  String name;
	  XtArgVal value;

       ArgList XtMergeArgLists(args1, num_args1, args2, num_args2)
	  ArgList args1;
	  Cardinal num_args1;
	  ArgList args2;
	  Cardinal num_args2;

Arguments
       arg	 Specifies the name-value pair to set.

       args1	 Specifies the first

       args2	 Specifies the second

       num_args1 Specifies the number of arguments in the first argument list.

       num_args2 Specifies the number of arguments in the second argument list.

       name	 Specifies the name of the resource.

       value	 Specifies the value of the resource if it will fit in an or the address.

Description
       The function is usually used in a highly stylized manner to minimize the probability of making a mistake; for example:

       Arg args[20];
       int n;

       n = 0;
       XtSetArg(args[n], XtNheight, 100);n++;
       XtSetArg(args[n], XtNwidth, 200);n++;
       XtSetValues(widget, args, n);

       Alternatively, an application can statically declare the argument list and use

       static Args args[] = {
	 {XtNheight, (XtArgVal) 100},
	 {XtNwidth, (XtArgVal) 200},
       };
       XtSetValues(Widget, args, XtNumber(args));

       Note that you should not use auto-increment or auto-decrement within the first argument to can be implemented as a macro that dereferences
       the first argument twice.

       The function allocates enough storage to hold the combined structures and copies them into it.  Note that it does not check for duplicate
       entries.  When it is no longer needed, free the returned storage by using

See Also
       XtOffset(3Xt)
       X Window System Toolkit: The Complete Programmer's Guide and Specification, Paul J. Asente and Ralph Swick
       X Window System: The Complete Reference, Second Edition, Robert W. Scheifler and James Gettys

																     XtSetArg(3Xt)
Man Page