diff --git a/test/page4.c b/test/page4.c index a68153c0..f03ad28e 100644 --- a/test/page4.c +++ b/test/page4.c @@ -39,6 +39,13 @@ static void appendCBRB(uiButton *b, void *data) uiRadioButtonsAppend(rb, "New Item"); } +static void onCBChanged(uiCombobox *c, void *data) +{ + printf("%s combobox changed to %d\n", + (char *) data, + (int) uiComboboxSelected(c)); +} + uiBox *makePage4(void) { uiBox *page4; @@ -90,12 +97,14 @@ uiBox *makePage4(void) uiComboboxAppend(cbox, "Item 1"); uiComboboxAppend(cbox, "Item 2"); uiComboboxAppend(cbox, "Item 3"); + uiComboboxOnChanged(cbox, onCBChanged, "noneditable"); uiBoxAppend(page4, uiControl(cbox), 0); editable = uiNewEditableCombobox(); uiComboboxAppend(editable, "Editable Item 1"); uiComboboxAppend(editable, "Editable Item 2"); uiComboboxAppend(editable, "Editable Item 3"); + uiComboboxOnChanged(cbox, onCBChanged, "editable"); uiBoxAppend(page4, uiControl(editable), 0); rb = uiNewRadioButtons(); diff --git a/ui.h b/ui.h index cb7453a0..0d3fd24d 100644 --- a/ui.h +++ b/ui.h @@ -202,6 +202,9 @@ typedef struct uiCombobox uiCombobox; _UI_EXTERN uintmax_t uiComboboxType(void); #define uiCombobox(this) ((uiCombobox *) uiIsA((this), uiComboboxType(), 1)) _UI_EXTERN void uiComboboxAppend(uiCombobox *c, const char *text); +_UI_EXTERN intmax_t uiComboboxSelected(uiCombobox *c); +// TODO SetSelected +_UI_EXTERN void uiComboboxOnSelected(uiCombobox *c, void (*f)(uiCombobox *c, void *data), void *data); _UI_EXTERN uiCombobox *uiNewCombobox(void); _UI_EXTERN uiCombobox *uiNewEditableCombobox(void);