libui/redo/test/page1.c

172 lines
5.3 KiB
C

// 29 april 2015
#include "test.h"
static uiEntry *entry;
static uiCheckbox *spaced;
#define TEXT(name, type, getter, setter) \
static void get ## name ## Text(uiButton *b, void *data) \
{ \
char *text; \
text = getter(type(data)); \
uiEntrySetText(entry, text); \
uiFreeText(text); \
} \
static void set ## name ## Text(uiButton *b, void *data) \
{ \
char *text; \
text = uiEntryText(entry); \
setter(type(data), text); \
uiFreeText(text); \
}
TEXT(Window, uiWindow, uiWindowTitle, uiWindowSetTitle)
TEXT(Button, uiButton, uiButtonText, uiButtonSetText)
TEXT(Checkbox, uiCheckbox, uiCheckboxText, uiCheckboxSetText)
TEXT(Label, uiLabel, uiLabelText, uiLabelSetText)
TEXT(Group, uiGroup, uiGroupTitle, uiGroupSetTitle)
static void onChanged(uiEntry *e, void *data)
{
printf("onChanged()\n");
}
static void toggleSpaced(uiCheckbox *c, void *data)
{
setSpaced(uiCheckboxChecked(spaced));
}
static void forceSpaced(uiButton *b, void *data)
{
uiCheckboxSetChecked(spaced, data != NULL);
}
static void showSpaced(uiButton *b, void *data)
{
char s[12];
querySpaced(s);
uiEntrySetText(entry, s);
}
#define SHED(method, Method) \
static void method ## Control(uiButton *b, void *data) \
{ \
uiControl ## Method(uiControl(data)); \
}
SHED(show, Show)
SHED(hide, Hide)
SHED(enable, Enable)
SHED(disable, Disable)
uiBox *page1;
void makePage1(uiWindow *w)
{
uiButton *getButton, *setButton;
uiBox *hbox;
uiBox *testBox;
uiLabel *label;
page1 = newVerticalBox();
entry = uiNewEntry();
uiEntryOnChanged(entry, onChanged, NULL);
uiBoxAppend(page1, uiControl(entry), 0);
spaced = uiNewCheckbox("Spaced");
uiCheckboxOnToggled(spaced, toggleSpaced, NULL);
label = uiNewLabel("Label");
hbox = newHorizontalBox();
getButton = uiNewButton("Get Window Text");
uiButtonOnClicked(getButton, getWindowText, w);
setButton = uiNewButton("Set Window Text");
uiButtonOnClicked(setButton, setWindowText, w);
uiBoxAppend(hbox, uiControl(getButton), 1);
uiBoxAppend(hbox, uiControl(setButton), 1);
uiBoxAppend(page1, uiControl(hbox), 0);
hbox = newHorizontalBox();
getButton = uiNewButton("Get Button Text");
uiButtonOnClicked(getButton, getButtonText, getButton);
setButton = uiNewButton("Set Button Text");
uiButtonOnClicked(setButton, setButtonText, getButton);
uiBoxAppend(hbox, uiControl(getButton), 1);
uiBoxAppend(hbox, uiControl(setButton), 1);
uiBoxAppend(page1, uiControl(hbox), 0);
hbox = newHorizontalBox();
getButton = uiNewButton("Get Checkbox Text");
uiButtonOnClicked(getButton, getCheckboxText, spaced);
setButton = uiNewButton("Set Checkbox Text");
uiButtonOnClicked(setButton, setCheckboxText, spaced);
uiBoxAppend(hbox, uiControl(getButton), 1);
uiBoxAppend(hbox, uiControl(setButton), 1);
uiBoxAppend(page1, uiControl(hbox), 0);
hbox = newHorizontalBox();
getButton = uiNewButton("Get Label Text");
uiButtonOnClicked(getButton, getLabelText, label);
setButton = uiNewButton("Set Label Text");
uiButtonOnClicked(setButton, setLabelText, label);
uiBoxAppend(hbox, uiControl(getButton), 1);
uiBoxAppend(hbox, uiControl(setButton), 1);
uiBoxAppend(page1, uiControl(hbox), 0);
hbox = newHorizontalBox();
getButton = uiNewButton("Get Group Text");
uiButtonOnClicked(getButton, getGroupText, page2group);
setButton = uiNewButton("Set Group Text");
uiButtonOnClicked(setButton, setGroupText, page2group);
uiBoxAppend(hbox, uiControl(getButton), 1);
uiBoxAppend(hbox, uiControl(setButton), 1);
uiBoxAppend(page1, uiControl(hbox), 0);
hbox = newHorizontalBox();
uiBoxAppend(hbox, uiControl(spaced), 1);
getButton = uiNewButton("On");
uiButtonOnClicked(getButton, forceSpaced, getButton);
uiBoxAppend(hbox, uiControl(getButton), 0);
getButton = uiNewButton("Off");
uiButtonOnClicked(getButton, forceSpaced, NULL);
uiBoxAppend(hbox, uiControl(getButton), 0);
getButton = uiNewButton("Show");
uiButtonOnClicked(getButton, showSpaced, NULL);
uiBoxAppend(hbox, uiControl(getButton), 0);
uiBoxAppend(page1, uiControl(hbox), 0);
testBox = newHorizontalBox();
setButton = uiNewButton("Button");
uiBoxAppend(testBox, uiControl(setButton), 1);
getButton = uiNewButton("Show");
uiButtonOnClicked(getButton, showControl, setButton);
uiBoxAppend(testBox, uiControl(getButton), 0);
getButton = uiNewButton("Hide");
uiButtonOnClicked(getButton, hideControl, setButton);
uiBoxAppend(testBox, uiControl(getButton), 0);
getButton = uiNewButton("Enable");
uiButtonOnClicked(getButton, enableControl, setButton);
uiBoxAppend(testBox, uiControl(getButton), 0);
getButton = uiNewButton("Disable");
uiButtonOnClicked(getButton, disableControl, setButton);
uiBoxAppend(testBox, uiControl(getButton), 0);
uiBoxAppend(page1, uiControl(testBox), 0);
hbox = newHorizontalBox();
getButton = uiNewButton("Show Box");
uiButtonOnClicked(getButton, showControl, testBox);
uiBoxAppend(hbox, uiControl(getButton), 1);
getButton = uiNewButton("Hide Box");
uiButtonOnClicked(getButton, hideControl, testBox);
uiBoxAppend(hbox, uiControl(getButton), 1);
getButton = uiNewButton("Enable Box");
uiButtonOnClicked(getButton, enableControl, testBox);
uiBoxAppend(hbox, uiControl(getButton), 1);
getButton = uiNewButton("Disable Box");
uiButtonOnClicked(getButton, disableControl, testBox);
uiBoxAppend(hbox, uiControl(getButton), 1);
uiBoxAppend(page1, uiControl(hbox), 0);
uiBoxAppend(page1, uiControl(label), 0);
}