#define UI_IMPLEMENTATION
#include <ui.h>
int main(int argc, char **argv)
{
/* lokalizált sztringek tömbje */
enum { WINDOW_TITLE, POPUP_TITLE, BUTTON_TITLE,
EASY_TITLE, HARD_TITLE, VOLUME_TITLE };
char *lang[] = { "Basic demo", "Show", "Button",
"easy", "hard", "Volume:" };
/* állapotok tárolására használt változók */
int button = 0, difficulty = 0, volume = 25;
/* ezekre hivatkozó űrlap, HTML-folyam szerű elrendezéssel */
ui_t ctx;
ui_form_t popup[] = {
{ .type = UI_BUTTON, .flags = UI_FORCEBR,
.ptr = &button, .value = 1,
.label = BUTTON_TITLE },
{ .type = UI_RADIO, .flags = UI_NOBR,
.ptr = &difficulty, .value = 0,
.y = 5, .label = EASY_TITLE },
{ .type = UI_RADIO, .flags = UI_FORCEBR,
.ptr = &difficulty, .value = 1,
.x = 20, .label = HARD_TITLE },
{ .type = UI_LABEL, .flags = UI_NOBR,
.y = 5, .label = VOLUME_TITLE },
{ .type = UI_SLIDER, .ptr = &volume, .max = 100 },
{ .type = UI_END }
};
ui_form_t form[] = {
{ .type = UI_POPUP, .align = UI_CENTER | UI_MIDDLE,
.ptr = &popup,
.x = UI_PERCENT(50), .y = UI_PERCENT(50),
.m = 10, .label = POPUP_TITLE },
{ .type = UI_END }
};
/* UI kontextus inicializálása */
ui_init(&ctx, sizeof(lang)/sizeof(lang[0]), lang, 640, 480, NULL);
/* várunk, amíg a felhasználó be nem zárja az ablakot */
while(ui_event(&ctx, form)) {
/* gomb lekezelése, ez akár másik szálban is lehetne */
if(button) {
printf("button clicked\n");
button = 0;
ui_refresh(&ctx);
}
}
/* ablak bezárása, erőforrások felszabadítása */
ui_free(&ctx);
return 0;
}