diff --git a/common/controlsigs.h b/common/controlsigs.h index 38aa4de9..b788135d 100644 --- a/common/controlsigs.h +++ b/common/controlsigs.h @@ -10,6 +10,7 @@ #define uiEditableComboboxSignature 0x45644362 #define uiEntrySignature 0x456E7472 #define uiFontButtonSignature 0x466F6E42 +#define uiFormSignature 0x466F726D #define uiGroupSignature 0x47727062 #define uiLabelSignature 0x4C61626C #define uiMultilineEntrySignature 0x4D6C6E45 diff --git a/test/page13.c b/test/page13.c index 26617d79..514fe94f 100644 --- a/test/page13.c +++ b/test/page13.c @@ -70,6 +70,7 @@ uiBox *makePage13(void) uiBox *page13; uiRadioButtons *rb; uiButton *b; + uiForm *f; uiEntry *e; page13 = newVerticalBox(); @@ -93,13 +94,18 @@ uiBox *makePage13(void) uiButtonOnClicked(b, buttonClicked, uiNewVerticalBox); uiBoxAppend(page13, uiControl(b), 0); + f = newForm(); + uiBoxAppend(page13, uiControl(f), 1); + e = uiNewPasswordEntry(); uiEntryOnChanged(e, entryChanged, "password"); - uiBoxAppend(page13, uiControl(e), 0); + uiFormAppend(f, "Password Entry", uiControl(e), 0); e = uiNewSearchEntry(); uiEntryOnChanged(e, entryChanged, "search"); - uiBoxAppend(page13, uiControl(e), 0); + uiFormAppend(f, "Search Box", uiControl(e), 0); + + uiFormAppend(f, "MLE", uiControl(uiNewMultilineEntry()), 1); return page13; } diff --git a/test/spaced.c b/test/spaced.c index 8bd4f465..7eb34fab 100644 --- a/test/spaced.c +++ b/test/spaced.c @@ -31,6 +31,7 @@ enum types { box, tab, group, + form, }; void setSpaced(int spaced) @@ -56,6 +57,9 @@ void setSpaced(int spaced) case group: uiGroupSetMargined(uiGroup(p), spaced); break; + case form: + uiFormSetPadded(uiForm(p), spaced); + break; } } } @@ -88,6 +92,7 @@ void querySpaced(char out[12]) // more than enough if (uiGroupMargined(uiGroup(pp))) m++; break; + // TODO form } } @@ -147,3 +152,12 @@ uiGroup *newGroup(const char *text) append(g, group); return g; } + +uiForm *newForm(void) +{ + uiForm *f; + + f = uiNewForm(); + append(f, form); + return f; +} diff --git a/test/test.h b/test/test.h index db687576..b59879b9 100644 --- a/test/test.h +++ b/test/test.h @@ -22,6 +22,7 @@ extern uiBox *newHorizontalBox(void); extern uiBox *newVerticalBox(void); extern uiTab *newTab(void); extern uiGroup *newGroup(const char *); +extern uiForm *newForm(void); // menus.c extern uiMenuItem *shouldQuitItem; diff --git a/ui.h b/ui.h index d3996cb7..93488518 100644 --- a/ui.h +++ b/ui.h @@ -620,6 +620,13 @@ _UI_EXTERN void uiColorButtonSetColor(uiColorButton *b, double r, double g, doub _UI_EXTERN void uiColorButtonOnChanged(uiColorButton *b, void (*f)(uiColorButton *, void *), void *data); _UI_EXTERN uiColorButton *uiNewColorButton(void); +typedef struct uiForm uiForm; +#define uiForm(this) ((uiForm *) (this)) +_UI_EXTERN void uiFormAppend(uiForm *f, const char *label, uiControl *control, int stretchy); +_UI_EXTERN int uiFormPadded(uiForm *f); +_UI_EXTERN void uiFormSetPadded(uiForm *f, int padded); +_UI_EXTERN uiForm *uiNewForm(void); + #ifdef __cplusplus } #endif