A handle to the new panel object is returned and stored in the variable panel. This handle
is not a pointer and does not contain any useful information about the object itself.
The next section goes into detail about the use of xv_set() and xv_get(). Chapter 3,
Creating XView Applications, discusses the use of xv_init(), xv_destroy(), and
xv_find().
2.2.2 Changing Object Attributes
The programmer uses the handle returned from the xv_create() function as a parameter
to the functions xv_get() and xv_set() to get and set attributes of the object.
panel = xv_create(...)
xv_set(panel, PANEL_LAYOUT, PANEL_HORIZONTAL, NULL);
Here, the handle to the panel (panel) is used to change a PANEL package attribute,
PANEL_LAYOUT, whose value is set to PANEL_HORIZONTAL. The attribute and value form an
attribute-value pair. The functions xv_create(), xv_destroy(), xv_find(),
xv_set(), and, to some extent, xv_get() use attribute-value pairs. The functions can
have any number of pairs associated with the function call. These variable argument lists are
always terminated by a
NULL pointer as the last argument in the list. Note that NULL, not the
constant 0 (zero), should be used as the terminating argument.
The effect of this function call is to change the layout of the panel from the previous value,
whatever it might be, to horizontal.
2.2.3 Types of Attributes
Attributes can be divided into three categories. Those that apply to all XView objects are
termed generic attributes. Attributes that are supported by many,