From e49436170aa547ec713b8510bec955985f09cb89 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Wed, 15 Apr 2015 22:56:03 -0400 Subject: [PATCH] Migrated test.c and fixed some errorss in ui.idl. --- new/test.c | 163 +++++++++++++++++++++++++++-------------------------- new/ui.idl | 8 +-- 2 files changed, 87 insertions(+), 84 deletions(-) diff --git a/new/test.c b/new/test.c index d71b163..b8ee418 100644 --- a/new/test.c +++ b/new/test.c @@ -3,6 +3,8 @@ #include #include +// TODO convert to using the new conversion macros + int onClosing(uiWindow *w, void *data) { printf("in closing!\n"); @@ -10,66 +12,66 @@ int onClosing(uiWindow *w, void *data) return 1; } -uiControl *e; +uiEntry *e; -static void getWindowText(uiControl *b, void *data) +static void getWindowText(uiButton *b, void *data) { char *text; - text = uiWindowTitle((uiWindow *) data); + text = uiWindowTitle(uiWindow(data)); uiEntrySetText(e, text); uiFreeText(text); } -static void setWindowText(uiControl *b, void *data) +static void setWindowText(uiButton *b, void *data) { char *text; text = uiEntryText(e); - uiWindowSetTitle((uiWindow *) data, text); + uiWindowSetTitle(uiWindow(data), text); uiFreeText(text); } -static void getButtonText(uiControl *b, void *data) +static void getButtonText(uiButton *b, void *data) { char *text; - text = uiButtonText((uiControl *) data); + text = uiButtonText(uiButton(data)); uiEntrySetText(e, text); uiFreeText(text); } -static void setButtonText(uiControl *b, void *data) +static void setButtonText(uiButton *b, void *data) { char *text; text = uiEntryText(e); - uiButtonSetText((uiControl *) data, text); + uiButtonSetText(uiButton(data), text); uiFreeText(text); } -static void getCheckboxText(uiControl *b, void *data) +static void getCheckboxText(uiButton *b, void *data) { char *text; - text = uiCheckboxText((uiControl *) data); + text = uiCheckboxText(uiCheckbox(data)); uiEntrySetText(e, text); uiFreeText(text); } -static void setCheckboxText(uiControl *b, void *data) +static void setCheckboxText(uiButton *b, void *data) { char *text; text = uiEntryText(e); - uiCheckboxSetText((uiControl *) data, text); + uiCheckboxSetText(uiCheckbox(data), text); uiFreeText(text); } uiWindow *w; #define nStacks 11 -uiControl *stacks[nStacks]; -uiControl *spaced; +uiStack *stacks[nStacks]; +uiCheckbox *spaced; static void setSpaced(int spaced) { @@ -80,26 +82,27 @@ static void setSpaced(int spaced) uiStackSetPadded(stacks[i], spaced); } -static void toggleSpaced(uiControl *c, void *data) +static void toggleSpaced(uiCheckbox *c, void *data) { - int s = uiCheckboxChecked(spaced); + int s; + s = uiCheckboxChecked(spaced); printf("toggled %d\n", s); setSpaced(s); } // these will also be used to test if setting checks will trigger events -static void forceSpacedOn(uiControl *c, void *data) +static void forceSpacedOn(uiButton *b, void *data) { uiCheckboxSetChecked(spaced, 1); } -static void forceSpacedOff(uiControl *c, void *data) +static void forceSpacedOff(uiButton *b, void *data) { uiCheckboxSetChecked(spaced, 0); } -static void showSpaced(uiControl *c, void *data) +static void showSpaced(uiButton *b, void *data) { char msg[] = { 'm', ' ', '0', ' ', 'p', ' ', '0', '\0' }; @@ -110,58 +113,58 @@ static void showSpaced(uiControl *c, void *data) uiEntrySetText(e, msg); } -static void showControl(uiControl *c, void *data) +static void showControl(uiButton *b, void *data) { - uiControlShow((uiControl *) data); + uiControlShow(uiControl(data)); } -static void hideControl(uiControl *c, void *data) +static void hideControl(uiButton *b, void *data) { - uiControlHide((uiControl *) data); + uiControlHide(uiControl(data)); } -static void enableControl(uiControl *c, void *data) +static void enableControl(uiButton *b, void *data) { - uiControlEnable((uiControl *) data); + uiControlEnable(uiControl(data)); } -static void disableControl(uiControl *c, void *data) +static void disableControl(uiButton *b, void *data) { - uiControlDisable((uiControl *) data); + uiControlDisable(uiControl(data)); } -static void getLabelText(uiControl *b, void *data) +static void getLabelText(uiButton *b, void *data) { char *text; - text = uiLabelText((uiControl *) data); + text = uiLabelText(uiLabel(data)); uiEntrySetText(e, text); uiFreeText(text); } -static void setLabelText(uiControl *b, void *data) +static void setLabelText(uiButton *b, void *data) { char *text; text = uiEntryText(e); - uiLabelSetText((uiControl *) data, text); + uiLabelSetText(uiLabel(data), text); uiFreeText(text); } -uiControl *firstStack; -uiControl *secondStack; -uiControl *movingLabel; +uiStack *firstStack; +uiStack *secondStack; +uiLabel *movingLabel; -static void moveToFirst(uiControl *c, void *data) +static void moveToFirst(uiButton *b, void *data) { uiStackDelete(secondStack, 1); - uiStackAppend(firstStack, movingLabel, 1); + uiStackAppend(firstStack, uiControl(movingLabel), 1); } -static void moveToSecond(uiControl *c, void *data) +static void moveToSecond(uiButton *b, void *data) { uiStackDelete(firstStack, 1); - uiStackAppend(secondStack, movingLabel, 1); + uiStackAppend(secondStack, uiControl(movingLabel), 1); } int main(int argc, char *argv[]) @@ -169,9 +172,9 @@ int main(int argc, char *argv[]) uiInitOptions o; int i; const char *err; - uiControl *getButton, *setButton; - uiControl *label; - uiControl *tab; + uiButton *getButton, *setButton; + uiLabel *label; + uiTab *tab; int page2stack; memset(&o, 0, sizeof (uiInitOptions)); @@ -196,7 +199,7 @@ int main(int argc, char *argv[]) stacks[0] = uiNewVerticalStack(); e = uiNewEntry(); - uiStackAppend(stacks[0], e, 0); + uiStackAppend(stacks[0], uiControl(e), 0); i = 1; @@ -205,9 +208,9 @@ int main(int argc, char *argv[]) uiButtonOnClicked(getButton, getWindowText, w); setButton = uiNewButton("Set Window Text"); uiButtonOnClicked(setButton, setWindowText, w); - uiStackAppend(stacks[i], getButton, 1); - uiStackAppend(stacks[i], setButton, 1); - uiStackAppend(stacks[0], stacks[i], 0); + uiStackAppend(stacks[i], uiControl(getButton), 1); + uiStackAppend(stacks[i], uiControl(setButton), 1); + uiStackAppend(stacks[0], uiControl(stacks[i]), 0); i++; stacks[i] = uiNewHorizontalStack(); @@ -215,9 +218,9 @@ int main(int argc, char *argv[]) uiButtonOnClicked(getButton, getButtonText, getButton); setButton = uiNewButton("Set Button Text"); uiButtonOnClicked(setButton, setButtonText, getButton); - uiStackAppend(stacks[i], getButton, 1); - uiStackAppend(stacks[i], setButton, 1); - uiStackAppend(stacks[0], stacks[i], 0); + uiStackAppend(stacks[i], uiControl(getButton), 1); + uiStackAppend(stacks[i], uiControl(setButton), 1); + uiStackAppend(stacks[0], uiControl(stacks[i]), 0); i++; // this will also be used to make sure tab stops work properly when inserted out of creation order, especially on Windows @@ -229,9 +232,9 @@ int main(int argc, char *argv[]) uiButtonOnClicked(getButton, getCheckboxText, spaced); setButton = uiNewButton("Set Checkbox Text"); uiButtonOnClicked(setButton, setCheckboxText, spaced); - uiStackAppend(stacks[i], getButton, 1); - uiStackAppend(stacks[i], setButton, 1); - uiStackAppend(stacks[0], stacks[i], 0); + uiStackAppend(stacks[i], uiControl(getButton), 1); + uiStackAppend(stacks[i], uiControl(setButton), 1); + uiStackAppend(stacks[0], uiControl(stacks[i]), 0); i++; label = uiNewLabel("Label"); @@ -241,86 +244,86 @@ int main(int argc, char *argv[]) uiButtonOnClicked(getButton, getLabelText, label); setButton = uiNewButton("Set Label Text"); uiButtonOnClicked(setButton, setLabelText, label); - uiStackAppend(stacks[i], getButton, 1); - uiStackAppend(stacks[i], setButton, 1); - uiStackAppend(stacks[0], stacks[i], 0); + uiStackAppend(stacks[i], uiControl(getButton), 1); + uiStackAppend(stacks[i], uiControl(setButton), 1); + uiStackAppend(stacks[0], uiControl(stacks[i]), 0); i++; stacks[i] = uiNewHorizontalStack(); - uiStackAppend(stacks[i], spaced, 1); + uiStackAppend(stacks[i], uiControl(spaced), 1); getButton = uiNewButton("On"); uiButtonOnClicked(getButton, forceSpacedOn, NULL); setButton = uiNewButton("Off"); uiButtonOnClicked(setButton, forceSpacedOff, NULL); - uiStackAppend(stacks[i], getButton, 0); - uiStackAppend(stacks[i], setButton, 0); + uiStackAppend(stacks[i], uiControl(getButton), 0); + uiStackAppend(stacks[i], uiControl(setButton), 0); setButton = uiNewButton("Show"); uiButtonOnClicked(setButton, showSpaced, NULL); - uiStackAppend(stacks[i], setButton, 0); - uiStackAppend(stacks[0], stacks[i], 0); + uiStackAppend(stacks[i], uiControl(setButton), 0); + uiStackAppend(stacks[0], uiControl(stacks[i]), 0); i++; stacks[i] = uiNewHorizontalStack(); getButton = uiNewButton("Button"); - uiStackAppend(stacks[i], getButton, 1); + uiStackAppend(stacks[i], uiControl(getButton), 1); setButton = uiNewButton("Show"); uiButtonOnClicked(setButton, showControl, getButton); - uiStackAppend(stacks[i], setButton, 0); + uiStackAppend(stacks[i], uiControl(setButton), 0); setButton = uiNewButton("Hide"); uiButtonOnClicked(setButton, hideControl, getButton); - uiStackAppend(stacks[i], setButton, 0); + uiStackAppend(stacks[i], uiControl(setButton), 0); setButton = uiNewButton("Enable"); uiButtonOnClicked(setButton, enableControl, getButton); - uiStackAppend(stacks[i], setButton, 0); + uiStackAppend(stacks[i], uiControl(setButton), 0); setButton = uiNewButton("Disable"); uiButtonOnClicked(setButton, disableControl, getButton); - uiStackAppend(stacks[i], setButton, 0); - uiStackAppend(stacks[0], stacks[i], 0); + uiStackAppend(stacks[i], uiControl(setButton), 0); + uiStackAppend(stacks[0], uiControl(stacks[i]), 0); i++; stacks[i] = uiNewHorizontalStack(); setButton = uiNewButton("Show Stack"); uiButtonOnClicked(setButton, showControl, stacks[i - 1]); - uiStackAppend(stacks[i], setButton, 1); + uiStackAppend(stacks[i], uiControl(setButton), 1); setButton = uiNewButton("Hide Stack"); uiButtonOnClicked(setButton, hideControl, stacks[i - 1]); - uiStackAppend(stacks[i], setButton, 1); + uiStackAppend(stacks[i], uiControl(setButton), 1); setButton = uiNewButton("Enable Stack"); uiButtonOnClicked(setButton, enableControl, stacks[i - 1]); - uiStackAppend(stacks[i], setButton, 1); + uiStackAppend(stacks[i], uiControl(setButton), 1); setButton = uiNewButton("Disable Stack"); uiButtonOnClicked(setButton, disableControl, stacks[i - 1]); - uiStackAppend(stacks[i], setButton, 1); - uiStackAppend(stacks[0], stacks[i], 0); + uiStackAppend(stacks[i], uiControl(setButton), 1); + uiStackAppend(stacks[0], uiControl(stacks[i]), 0); i++; - uiStackAppend(stacks[0], label, 0); + uiStackAppend(stacks[0], uiControl(label), 0); tab = uiNewTab(); - uiWindowSetChild(w, tab); - uiTabAddPage(tab, "Page 1", stacks[0]); + uiWindowSetChild(w, uiControl(tab)); + uiTabAddPage(tab, "Page 1", uiControl(stacks[0])); page2stack = i; stacks[i] = uiNewVerticalStack(); - uiTabAddPage(tab, "Page 2", stacks[i]); + uiTabAddPage(tab, "Page 2", uiControl(stacks[i])); i++; stacks[i] = uiNewHorizontalStack(); firstStack = stacks[i]; getButton = uiNewButton("Move Here"); uiButtonOnClicked(getButton, moveToFirst, NULL); - uiStackAppend(stacks[i], getButton, 0); + uiStackAppend(stacks[i], uiControl(getButton), 0); movingLabel = uiNewLabel("This label moves!"); - uiStackAppend(stacks[i], movingLabel, 1); - uiStackAppend(stacks[page2stack], stacks[i], 0);; + uiStackAppend(stacks[i], uiControl(movingLabel), 1); + uiStackAppend(stacks[page2stack], uiControl(stacks[i]), 0); i++; stacks[i] = uiNewHorizontalStack(); secondStack = stacks[i]; getButton = uiNewButton("Move Here"); uiButtonOnClicked(getButton, moveToSecond, NULL); - uiStackAppend(stacks[i], getButton, 0); - uiStackAppend(stacks[page2stack], stacks[i], 0); + uiStackAppend(stacks[i], uiControl(getButton), 0); + uiStackAppend(stacks[page2stack], uiControl(stacks[i]), 0); i++; if (i != nStacks) { diff --git a/new/ui.idl b/new/ui.idl index d6a1c1c..a0f0fa2 100644 --- a/new/ui.idl +++ b/new/ui.idl @@ -98,7 +98,7 @@ interface Parent { // It is called when a widget is shown or hidden or when a control is added or removed from a container such as uiStack. func Update(void); }; -func uiNewParent(osParent uintptr_t) *Parent; +func NewParent(osParent uintptr_t) *Parent; interface Window { field Internal *void; @@ -108,12 +108,12 @@ interface Window { func SetTitle(title *const char); func Show(void); func Hide(void); - func OnClosing(f *func(w *Window, data *void), data *void); + func OnClosing(f *func(w *Window, data *void) int, data *void); func SetChild(c *Control); func Margined(void) int; func SetMargined(margined int); }; -func uiNewWindow(title *const char, width int, height int) *Window; +func NewWindow(title *const char, width int, height int) *Window; interface Button from Control { func Text(void) *char; @@ -150,7 +150,7 @@ interface Label from Control { func Text(void) *char; func SetText(text *const char); }; -func NewLabel(void) *Label; +func NewLabel(text *const char) *Label; interface Tab from Control { func AddPage(name *const char, c *Control);