SYNOPSIS
#include <agar/core.h> #include <agar/gui.h>
DESCRIPTION
The
AG_UCombo widget displays an
AG_Button(3) which triggers the expansion of drop-down menu (a window containing an
AG_Tlist(3)) when pressed.
The drop-down menu collapses if the user selects an item, or clicks outside
of the
AG_UCombo area.
INHERITANCE HIERARCHY ↑
AG_Object(3)-> AG_Widget(3)-> AG_UCombo.
INITIALIZATION ↑
AG_UCombo * AG_UComboNew (AG_Widget *parent, Uint flags)
void AG_UComboSizeHint (AG_UCombo *com, const char *text, int nitems)
void AG_UComboSizeHintPixels (AG_UCombo *com, int w, int h)
The AG_UComboNew() function allocates, initializes, and attaches a new AG_UCombo widget. Acceptable flags include:
AG_UCOMBO_SCROLLTOSEL | Scroll to initial selection if it is not visible. |
AG_UCOMBO_HFILL | Expand horizontally in parent container. |
AG_UCOMBO_VFILL | Expand vertically in parent container. |
AG_UCOMBO_EXPAND | Shorthand for AG_UCOMBO_HFILL AG_UCOMBO_VFILL|. |
AG_UComboSizeHint() arranges for the AG_Tlist(3) widget displayed on popup to request a size large enough to display the given number of items. The AG_UComboSizeHintPixels() variant specifies the size of the list in pixels.
EVENTS ↑
The
AG_UCombo widget generates the following events:
ucombo-selected (AG_TlistItem *item) | An item was selected. |
ucombo-expanded (void) | The drop-down menu is now visible. May be used to populate list. |
ucombo-collapsed (void) | The drop-down menu is now hidden. |
STRUCTURE DATA ↑
For the
AG_UCombo object:
AG_Tlist *list | The AG_Tlist(3) displayed by AG_UCombo when expanded, or NULL if collapsed (RO). |
AG_Button *button | The AG_Button(3) which triggers expansion (RO). |
EXAMPLES ↑
The following code fragment generates a drop-down menu and reacts to
a selection event by displaying a text dialog:
static void ComboExpanded(AG_Event *event) { AG_UCombo *com = AG_UCOMBO_SELF(); AG_Tlist *tl = com->list; AG_TlistAdd(tl, NULL, "Foo"); AG_TlistAdd(tl, NULL, "Bar"); } static void ComboSelected(AG_Event *event) { AG_TlistItem *item = AG_TLISTITEM_PTR(1); AG_TextMsg(AG_MSG_INFO, "Selected item: %s", item->text); } AG_UCombo *com; com = AG_UComboNew(NULL, 0); AG_SetEvent(com, "ucombo-expanded", ComboExpanded, NULL); AG_SetEvent(com, "ucombo-selected", ComboSelected, NULL);
SEE ALSO ↑
HISTORY ↑
The
AG_UCombo widget first appeared in
Agar 1.0.
"ucombo-expanded" and "ucombo-selected" appeared in
Agar 1.7.0.