Added uiComboboxSetSelected(), which we need for the uiArea drawing tests. Will implement next.

This commit is contained in:
Pietro Gagliardi 2015-10-09 13:47:02 -04:00
parent 6424ea00ab
commit 581cbaecc9
4 changed files with 26 additions and 1 deletions

View File

@ -223,9 +223,18 @@ static void drawOriginal(uiAreaDrawParams *p)
static const struct drawtest tests[] = { static const struct drawtest tests[] = {
{ "Original uiArea test", drawOriginal }, { "Original uiArea test", drawOriginal },
{ NULL, NULL },
}; };
void runDrawTest(intmax_t n, uiAreaDrawParams *p) void runDrawTest(intmax_t n, uiAreaDrawParams *p)
{ {
(*(tests[n].draw))(p); (*(tests[n].draw))(p);
} }
void populateComboboxWithTests(uiCombobox *c)
{
size_t i;
for (i = 0; test[i].name != NULL; i++)
uiComboboxAppend(c, tests[i].name);
}

View File

@ -78,6 +78,16 @@ static void onAmountChanged(uiSpinbox *s, void *data)
uiAreaUpdateScroll(area); uiAreaUpdateScroll(area);
} }
static void shouldntHappen(uiCombobox *c, void *data)
{
fprintf(stderr, "YOU SHOULD NOT SEE THIS. If you do, uiComboboxSetSelected() is triggering uiComboboxOnSelected(), which it should not.");
}
static void redraw(uiCombobox *c, void *data)
{
// TODO
}
uiBox *makePage6(void) uiBox *makePage6(void)
{ {
uiBox *page6; uiBox *page6;
@ -97,6 +107,11 @@ uiBox *makePage6(void)
uiBoxAppend(page6, uiControl(hbox), 0); uiBoxAppend(page6, uiControl(hbox), 0);
which = uiNewCombobox(); which = uiNewCombobox();
populateComboboxWithTests(which);
// this is to make sure that uiComboboxOnSelected() doesn't trigger with uiComboboxSetSelected()
uiComboboxOnSelected(which, shouldntHappen, NULL);
uiComboboxSetSelected(which, 0);
uiComboboxOnSelected(which, redraw, NULL);
uiBoxAppend(hbox, uiControl(which), 0); uiBoxAppend(hbox, uiControl(which), 0);
// make these first in case the area handler calls the information as part of the constructor // make these first in case the area handler calls the information as part of the constructor

View File

@ -52,3 +52,4 @@ extern uiBox *makePage6(void);
// drawtests.c // drawtests.c
extern void runDrawTest(intmax_t, uiAreaDrawParams *); extern void runDrawTest(intmax_t, uiAreaDrawParams *);
extern void populateComboboxWithTests(uiCombobox *);

2
ui.h
View File

@ -203,7 +203,7 @@ _UI_EXTERN uintmax_t uiComboboxType(void);
#define uiCombobox(this) ((uiCombobox *) uiIsA((this), uiComboboxType(), 1)) #define uiCombobox(this) ((uiCombobox *) uiIsA((this), uiComboboxType(), 1))
_UI_EXTERN void uiComboboxAppend(uiCombobox *c, const char *text); _UI_EXTERN void uiComboboxAppend(uiCombobox *c, const char *text);
_UI_EXTERN intmax_t uiComboboxSelected(uiCombobox *c); _UI_EXTERN intmax_t uiComboboxSelected(uiCombobox *c);
// TODO SetSelected _UI_EXTERN void uiComboboxSetSelected(uiCombobox *c, intmax_t n);
_UI_EXTERN void uiComboboxOnSelected(uiCombobox *c, void (*f)(uiCombobox *c, void *data), void *data); _UI_EXTERN void uiComboboxOnSelected(uiCombobox *c, void (*f)(uiCombobox *c, void *data), void *data);
_UI_EXTERN uiCombobox *uiNewCombobox(void); _UI_EXTERN uiCombobox *uiNewCombobox(void);
_UI_EXTERN uiCombobox *uiNewEditableCombobox(void); _UI_EXTERN uiCombobox *uiNewEditableCombobox(void);