
Figure 7-10. Sample panel with nonexclusive choices
Figure 7-10 represents a panel item that has two choices set, the first and the third. The rea-
son for this is that the panel’s value is set to 5, which is a mask that represents the first and
third bits. For example, 5 in binary is . . . 00101.* In the binary representation, the first and
third bits from the right are 1’s. This means that the first and third choices are selected. This
is how the value is interpreted on calls to xv_set() or xv_create(), and how it is re-
turned for calls to xv_get().
To get the image for a choice item’s current choice (assuming the choice item is a
Server_image choice):
Server_image image;
image = (Server_image)xv_get(item, PANEL_CHOICE_IMAGE,
xv_get(item, PANEL_VALUE));
For choice items whose
PANEL_CHOOSE_NONE value is TRUE, a PANEL_VALUE of -1 may be
set or returned, indicating that no choices are set for that item.
Setting PANEL_CHOOSE_NONE allows choice items to have no currently selected item. This
attribute is not applicable if PANEL_CHOOSE_ONE is FALSE.
7.10.3 Abbreviated Choices
Abbreviated choices are exclusive choices that either display no value or only the current
value. A menu is used to display all the choices. To implement abbreviated choice items, the
macro PANEL_CHOICE_STACK is used. This macro creates an abbreviated choice item that
displays only the current value. It is defined as:
PANEL_CHOICE, P