Added a control gallery example.
This commit is contained in:
parent
eb7372f7c4
commit
4fc345077b
|
@ -0,0 +1,29 @@
|
|||
# 2 september 2015
|
||||
|
||||
OUT = controlgallery
|
||||
|
||||
ifeq ($(OS),windows)
|
||||
linkto = ../../out/new.dll
|
||||
CC = i686-w64-mingw32-gcc
|
||||
OUT = controlgallery.exe
|
||||
else
|
||||
ifeq ($(OS),darwin)
|
||||
linkto = ../../out/new.dylib
|
||||
else
|
||||
linkto = ../../out/new.so
|
||||
endif
|
||||
endif
|
||||
|
||||
CFILES = \
|
||||
main.c
|
||||
|
||||
OFILES = $(CFILES:%.c=%.o)
|
||||
|
||||
controlgallery: $(OFILES)
|
||||
$(CC) -g -o $(OUT) $(OFILES) $(linkto)
|
||||
|
||||
%.o: %.c
|
||||
$(CC) -c -g -o $@ $<
|
||||
|
||||
clean:
|
||||
rm -f $(OUT) $(OFILES)
|
|
@ -0,0 +1,218 @@
|
|||
// 2 september 2015
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include "../../ui.h"
|
||||
|
||||
static uiWindow *mainwin;
|
||||
|
||||
static int onClosing(uiWindow *w, void *data)
|
||||
{
|
||||
uiControlDestroy(uiControl(mainwin));
|
||||
uiQuit();
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int shouldQuit(void *data)
|
||||
{
|
||||
uiControlDestroy(uiControl(mainwin));
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void openClicked(uiMenuItem *item, uiWindow *w, void *data)
|
||||
{
|
||||
char *filename;
|
||||
|
||||
filename = uiOpenFile();
|
||||
if (filename == NULL) {
|
||||
uiMsgBoxError("No file selected", "Don't be alarmed!");
|
||||
return;
|
||||
}
|
||||
uiMsgBox("File selected", filename);
|
||||
uiFreeText(filename);
|
||||
}
|
||||
|
||||
static void saveClicked(uiMenuItem *item, uiWindow *w, void *data)
|
||||
{
|
||||
char *filename;
|
||||
|
||||
filename = uiSaveFile();
|
||||
if (filename == NULL) {
|
||||
uiMsgBoxError("No file selected", "Don't be alarmed!");
|
||||
return;
|
||||
}
|
||||
uiMsgBox("File selected (don't worry, it's still there)", filename);
|
||||
uiFreeText(filename);
|
||||
}
|
||||
|
||||
static uiSpinbox *spinbox;
|
||||
static uiSlider *slider;
|
||||
static uiProgressBar *progressbar;
|
||||
|
||||
static void update(intmax_t value)
|
||||
{
|
||||
uiSpinboxSetValue(spinbox, value);
|
||||
uiSliderSetValue(slider, value);
|
||||
uiProgressBarSetValue(progressbar, value);
|
||||
}
|
||||
|
||||
static void onSpinboxChanged(uiSpinbox *s, void *data)
|
||||
{
|
||||
update(uiSpinboxValue(spinbox));
|
||||
}
|
||||
|
||||
static void onSliderChanged(uiSlider *s, void *data)
|
||||
{
|
||||
update(uiSliderValue(slider));
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
uiInitOptions o;
|
||||
const char *err;
|
||||
uiMenu *menu;
|
||||
uiMenuItem *item;
|
||||
uiBox *box;
|
||||
uiGroup *group;
|
||||
uiBox *inner;
|
||||
uiBox *inner2;
|
||||
uiEntry *entry;
|
||||
uiCombobox *cbox;
|
||||
uiRadioButtons *rb;
|
||||
uiTab *tab;
|
||||
|
||||
memset(&o, 0, sizeof (uiInitOptions));
|
||||
err = uiInit(&o);
|
||||
if (err != NULL) {
|
||||
fprintf(stderr, "error initializing ui: %s\n", err);
|
||||
uiFreeInitError(err);
|
||||
return 1;
|
||||
}
|
||||
|
||||
menu = uiNewMenu("File");
|
||||
item = uiMenuAppendItem(menu, "Open");
|
||||
uiMenuItemOnClicked(item, openClicked, NULL);
|
||||
item = uiMenuAppendItem(menu, "Save");
|
||||
uiMenuItemOnClicked(item, saveClicked, NULL);
|
||||
item = uiMenuAppendQuitItem(menu);
|
||||
uiOnShouldQuit(shouldQuit, NULL);
|
||||
|
||||
menu = uiNewMenu("Edit");
|
||||
item = uiMenuAppendCheckItem(menu, "Checkable Item");
|
||||
uiMenuAppendSeparator(menu);
|
||||
item = uiMenuAppendItem(menu, "Disabled Item");
|
||||
uiMenuItemDisable(item);
|
||||
item = uiMenuAppendPreferencesItem(menu);
|
||||
|
||||
menu = uiNewMenu("Help");
|
||||
item = uiMenuAppendItem(menu, "Help");
|
||||
item = uiMenuAppendAboutItem(menu);
|
||||
|
||||
mainwin = uiNewWindow("libui Control Gallery", 640, 480, 1);
|
||||
uiWindowSetMargined(mainwin, 1);
|
||||
uiWindowOnClosing(mainwin, onClosing, NULL);
|
||||
|
||||
box = uiNewVerticalBox();
|
||||
uiBoxSetPadded(box, 1);
|
||||
uiWindowSetChild(mainwin, uiControl(box));
|
||||
|
||||
group = uiNewGroup("Buttons and Text");
|
||||
uiGroupSetMargined(group, 1);
|
||||
uiBoxAppend(box, uiControl(group), 0);
|
||||
|
||||
inner = uiNewHorizontalBox();
|
||||
uiBoxSetPadded(inner, 1);
|
||||
uiGroupSetChild(group, uiControl(inner));
|
||||
|
||||
inner2 = uiNewVerticalBox();
|
||||
uiBoxSetPadded(inner2, 1);
|
||||
uiBoxAppend(inner, uiControl(inner2), 1);
|
||||
|
||||
uiBoxAppend(inner2,
|
||||
uiControl(uiNewButton("Button")),
|
||||
0);
|
||||
uiBoxAppend(inner2,
|
||||
uiControl(uiNewCheckbox("Checkbox")),
|
||||
0);
|
||||
entry = uiNewEntry();
|
||||
uiEntrySetText(entry, "Entry");
|
||||
uiBoxAppend(inner2,
|
||||
uiControl(entry),
|
||||
0);
|
||||
uiBoxAppend(inner2,
|
||||
uiControl(uiNewLabel("Label")),
|
||||
0);
|
||||
|
||||
inner2 = uiNewVerticalBox();
|
||||
uiBoxSetPadded(inner2, 1);
|
||||
uiBoxAppend(inner, uiControl(inner2), 1);
|
||||
|
||||
uiBoxAppend(inner2,
|
||||
uiControl(uiNewDatePicker()),
|
||||
0);
|
||||
uiBoxAppend(inner2,
|
||||
uiControl(uiNewTimePicker()),
|
||||
0);
|
||||
uiBoxAppend(inner2,
|
||||
uiControl(uiNewDateTimePicker()),
|
||||
0);
|
||||
|
||||
group = uiNewGroup("Numbers");
|
||||
uiGroupSetMargined(group, 1);
|
||||
uiBoxAppend(box, uiControl(group), 0);
|
||||
|
||||
inner = uiNewVerticalBox();
|
||||
uiBoxSetPadded(inner, 1);
|
||||
uiGroupSetChild(group, uiControl(inner));
|
||||
|
||||
spinbox = uiNewSpinbox(0, 100);
|
||||
uiSpinboxOnChanged(spinbox, onSpinboxChanged, NULL);
|
||||
uiBoxAppend(inner, uiControl(spinbox), 0);
|
||||
|
||||
slider = uiNewSlider(0, 100);
|
||||
uiSliderOnChanged(slider, onSliderChanged, NULL);
|
||||
uiBoxAppend(inner, uiControl(slider), 0);
|
||||
|
||||
progressbar = uiNewProgressBar();
|
||||
uiBoxAppend(inner, uiControl(progressbar), 0);
|
||||
|
||||
group = uiNewGroup("Lists");
|
||||
uiGroupSetMargined(group, 1);
|
||||
uiBoxAppend(box, uiControl(group), 0);
|
||||
|
||||
inner = uiNewHorizontalBox();
|
||||
uiBoxSetPadded(inner, 1);
|
||||
uiGroupSetChild(group, uiControl(inner));
|
||||
|
||||
inner2 = uiNewVerticalBox();
|
||||
uiBoxSetPadded(inner2, 1);
|
||||
uiBoxAppend(inner, uiControl(inner2), 1);
|
||||
|
||||
cbox = uiNewCombobox();
|
||||
uiComboboxAppend(cbox, "Combobox Item 1");
|
||||
uiComboboxAppend(cbox, "Combobox Item 2");
|
||||
uiComboboxAppend(cbox, "Combobox Item 3");
|
||||
uiBoxAppend(inner2, uiControl(cbox), 0);
|
||||
|
||||
cbox = uiNewEditableCombobox();
|
||||
uiComboboxAppend(cbox, "Editable Item 1");
|
||||
uiComboboxAppend(cbox, "Editable Item 2");
|
||||
uiComboboxAppend(cbox, "Editable Item 3");
|
||||
uiBoxAppend(inner2, uiControl(cbox), 0);
|
||||
|
||||
rb = uiNewRadioButtons();
|
||||
uiRadioButtonsAppend(rb, "Radio Button 1");
|
||||
uiRadioButtonsAppend(rb, "Radio Button 2");
|
||||
uiRadioButtonsAppend(rb, "Radio Button 3");
|
||||
uiBoxAppend(inner, uiControl(rb), 1);
|
||||
|
||||
tab = uiNewTab();
|
||||
uiTabAppend(tab, "Page 1", uiControl(uiNewHorizontalBox()));
|
||||
uiTabAppend(tab, "Page 2", uiControl(uiNewHorizontalBox()));
|
||||
uiTabAppend(tab, "Page 3", uiControl(uiNewHorizontalBox()));
|
||||
uiBoxAppend(box, uiControl(tab), 1);
|
||||
|
||||
uiControlShow(uiControl(mainwin));
|
||||
uiMain();
|
||||
uiUninit();
|
||||
return 0;
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 39 KiB |
Loading…
Reference in New Issue