Scrolling Lists
@ How do I set the font of individual Scrolling List items?
PANEL_LIST_FONT takes an int row_number and an Xv_opaque font_handle.
PANEL_LIST_FONTS take a NULL terminated list of Xv_opaque font_handles.
There is no easy way to make an entire list fixed width font.
You have to make sure that you always specify PANEL_LIST_FONT when you
insert a new row into that list, or write a convenience function
insert_row(list, row, string) that hides the nasty bits.
The most efficient way to do this involves creating an Xv_attr array
to do lots of insertions at once, complete with PANEL_LIST_FONTs.
If you give both PANEL_LIST_STRING and PANEL_LIST_FONT in the same
xv_set() call, PANEL_LIST_STRING must be given first, or the default
font will be used.
@ How do I set the selected item of an exclusive list with required choice?
If you have a PANEL_LIST with a required choice, and the list is
exclusive, you must de-select the old item and select the new one in
a single xv_set() call, for example:
xv_create(owner, PANEL_LIST,
....
PANEL_CHOOSE_ONE, TRUE, /* only one entry can be selected */
PANEL_CHOOSE_NONE, FALSE, /* one entry must be selected */
NULL
);
xv_set(List,
PANEL_CHOOSE_NONE, TRUE,
PANEL_LIST_SELECT, xv_get(List, PANEL_LIST_FIRST_SELECTED), FALSE,
PANEL_LIST_SELECT, row, TRUE,
PANEL_CHOOSE_NONE, FALSE,
NULL
);
Note: you may find it useful to start with PANEL_CHOOSE_NONE true so that
the list comes up with no selection; and then on the first selection set
PANEL_CHOOSE_NONE to FALSE so that a selection is required.
Parent document is top of "OPEN LOOK GUI FAQ 03/04: the XView Toolkit"
Previous document is "The Future of XView"
Next document is "How do I keep a pop-up window displayed after a button is pressed? In the button callback, do xv_set(button, PANEL_NOTIFY_STATUS, XV_ERROR, NULL); This will keep the window visible. You might also need to investigate the MENU_NOTIFY_STATUS attribute."