summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--new/control.c45
-rw-r--r--new/test.c54
-rw-r--r--new/ui.h18
3 files changed, 116 insertions, 1 deletions
diff --git a/new/control.c b/new/control.c
index aab5ea0..5c56f0a 100644
--- a/new/control.c
+++ b/new/control.c
@@ -30,3 +30,48 @@ void uiControlResize(uiControl *c, intmax_t x, intmax_t y, intmax_t width, intma
{
(*(c->resize))(c, x, y, width, height, d);
}
+
+int uiControlVisible(uiControl *c)
+{
+ return (*(c->visible))(c);
+}
+
+void uiControlShow(uiControl *c)
+{
+ (*(c->show))(c);
+}
+
+void uiControlHide(uiControl *c)
+{
+ (*(c->hide))(c);
+}
+
+void uiControlContainerShow(uiControl *c)
+{
+ (*(c->containerShow))(c);
+}
+
+void uiControlContainerHide(uiControl *c)
+{
+ (*(c->containerHide))(c);
+}
+
+void uiControlEnable(uiControl *c)
+{
+ (*(c->enable))(c);
+}
+
+void uiControlDisable(uiControl *c)
+{
+ (*(c->disable))(c);
+}
+
+void uiControlContainerEnable(uiControl *c)
+{
+ (*(c->containerEnable))(c);
+}
+
+void uiControlContainerDisable(uiControl *c)
+{
+ (*(c->containerDisable))(c);
+}
diff --git a/new/test.c b/new/test.c
index f61038e..643d52c 100644
--- a/new/test.c
+++ b/new/test.c
@@ -67,7 +67,7 @@ static void setCheckboxText(uiControl *b, void *data)
}
uiWindow *w;
-#define nStacks 5
+#define nStacks 7
uiControl *stacks[nStacks];
uiControl *spaced;
@@ -110,6 +110,26 @@ static void showSpaced(uiControl *c, void *data)
uiEntrySetText(e, msg);
}
+static void showControl(uiControl *c, void *data)
+{
+ uiControlShow((uiControl *) data);
+}
+
+static void hideControl(uiControl *c, void *data)
+{
+ uiControlHide((uiControl *) data);
+}
+
+static void enableControl(uiControl *c, void *data)
+{
+ uiControlEnable((uiControl *) data);
+}
+
+static void disableControl(uiControl *c, void *data)
+{
+ uiControlDisable((uiControl *) data);
+}
+
int main(int argc, char *argv[])
{
uiInitOptions o;
@@ -186,6 +206,38 @@ int main(int argc, char *argv[])
uiStackAdd(stacks[4], setButton, 0);
uiStackAdd(stacks[0], stacks[4], 0);
+ stacks[5] = uiNewHorizontalStack();
+ getButton = uiNewButton("Button");
+ uiStackAdd(stacks[5], getButton, 1);
+ setButton = uiNewButton("Show");
+ uiButtonOnClicked(setButton, showControl, getButton);
+ uiStackAdd(stacks[5], setButton, 0);
+ setButton = uiNewButton("Hide");
+ uiButtonOnClicked(setButton, hideControl, getButton);
+ uiStackAdd(stacks[5], setButton, 0);
+ setButton = uiNewButton("Enable");
+ uiButtonOnClicked(setButton, enableControl, getButton);
+ uiStackAdd(stacks[5], setButton, 0);
+ setButton = uiNewButton("Disable");
+ uiButtonOnClicked(setButton, disableControl, getButton);
+ uiStackAdd(stacks[5], setButton, 0);
+ uiStackAdd(stacks[0], stacks[5], 0);
+
+ stacks[6] = uiNewHorizontalStack();
+ setButton = uiNewButton("Show Stack");
+ uiButtonOnClicked(setButton, showControl, stacks[5]);
+ uiStackAdd(stacks[6], setButton, 1);
+ setButton = uiNewButton("Hide Stack");
+ uiButtonOnClicked(setButton, hideControl, stacks[5]);
+ uiStackAdd(stacks[6], setButton, 1);
+ setButton = uiNewButton("Enable Stack");
+ uiButtonOnClicked(setButton, enableControl, stacks[5]);
+ uiStackAdd(stacks[6], setButton, 1);
+ setButton = uiNewButton("Disable Stack");
+ uiButtonOnClicked(setButton, disableControl, stacks[5]);
+ uiStackAdd(stacks[6], setButton, 1);
+ uiStackAdd(stacks[0], stacks[6], 0);
+
uiWindowShow(w);
uiMain();
printf("after uiMain()\n");
diff --git a/new/ui.h b/new/ui.h
index 0625bd0..fb803c4 100644
--- a/new/ui.h
+++ b/new/ui.h
@@ -42,6 +42,15 @@ struct uiControl {
void (*removeParent)(uiControl *);
void (*preferredSize)(uiControl *, uiSizing *, intmax_t *, intmax_t *);
void (*resize)(uiControl *, intmax_t, intmax_t, intmax_t, intmax_t, uiSizing *);
+ int (*visible)(uiControl *);
+ void (*show)(uiControl *);
+ void (*hide)(uiControl *);
+ void (*containerShow)(uiControl *);
+ void (*containerHide)(uiControl *);
+ void (*enable)(uiControl *);
+ void (*disable)(uiControl *);
+ void (*containerEnable)(uiControl *);
+ void (*containerDisable)(uiControl *);
};
void uiControlDestroy(uiControl *);
uintptr_t uiControlHandle(uiControl *);
@@ -49,6 +58,15 @@ void uiControlSetParent(uiControl *, uintptr_t);
void uiControlRemoveParent(uiControl *);
void uiControlPreferredSize(uiControl *, uiSizing *, intmax_t *width, intmax_t *height);
void uiControlResize(uiControl *, intmax_t, intmax_t, intmax_t, intmax_t, uiSizing *);
+int uiControlVisible(uiControl *);
+void uiControlShow(uiControl *);
+void uiControlHide(uiControl *);
+void uiControlContainerShow(uiControl *);
+void uiControlContainerHide(uiControl *);
+void uiControlEnable(uiControl *);
+void uiControlDisable(uiControl *);
+void uiControlContainerEnable(uiControl *);
+void uiControlContainerDisable(uiControl *);
typedef struct uiWindow uiWindow;
uiWindow *uiNewWindow(char *, int, int);