From 0304df4d4e607cc53a8302e2da0a51131cd6bcbd Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Mon, 13 Apr 2015 13:43:29 -0400 Subject: Added uiStackRemove(), the first removal function in package ui! That took long enough... Now I can piece together all the control and parent logic... --- new/test.c | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) (limited to 'new/test.c') diff --git a/new/test.c b/new/test.c index 5acfdc4..978cb55 100644 --- a/new/test.c +++ b/new/test.c @@ -67,7 +67,7 @@ static void setCheckboxText(uiControl *b, void *data) } uiWindow *w; -#define nStacks 9 +#define nStacks 11 uiControl *stacks[nStacks]; uiControl *spaced; @@ -148,6 +148,22 @@ static void setLabelText(uiControl *b, void *data) uiFreeText(text); } +uiControl *firstStack; +uiControl *secondStack; +uiControl *movingLabel; + +static void moveToFirst(uiControl *c, void *data) +{ + uiStackRemove(secondStack, 1); + uiStackAdd(firstStack, movingLabel, 1); +} + +static void moveToSecond(uiControl *c, void *data) +{ + uiStackRemove(firstStack, 1); + uiStackAdd(secondStack, movingLabel, 1); +} + int main(int argc, char *argv[]) { uiInitOptions o; @@ -289,6 +305,24 @@ int main(int argc, char *argv[]) uiTabAddPage(tab, "Page 2", stacks[i]); i++; + stacks[i] = uiNewHorizontalStack(); + firstStack = stacks[i]; + getButton = uiNewButton("Move Here"); + uiButtonOnClicked(getButton, moveToFirst, NULL); + uiStackAdd(stacks[i], getButton, 0); + movingLabel = uiNewLabel("This label moves!"); + uiStackAdd(stacks[i], movingLabel, 1); + uiStackAdd(stacks[page2stack], stacks[i], 0);; + i++; + + stacks[i] = uiNewHorizontalStack(); + secondStack = stacks[i]; + getButton = uiNewButton("Move Here"); + uiButtonOnClicked(getButton, moveToSecond, NULL); + uiStackAdd(stacks[i], getButton, 0); + uiStackAdd(stacks[page2stack], stacks[i], 0); + i++; + if (i != nStacks) { fprintf(stderr, "forgot to update nStacks (expected %d)\n", i); return 1; -- cgit v1.2.3