2015-04-06 11:20:51 -05:00
|
|
|
// 6 april 2015
|
|
|
|
|
|
|
|
#ifndef __UI_UI_H__
|
|
|
|
#define __UI_UI_H__
|
|
|
|
|
|
|
|
#include <stdint.h>
|
|
|
|
|
|
|
|
typedef struct uiInitError uiInitError;
|
|
|
|
typedef struct uiInitOptions uiInitOptions;
|
|
|
|
|
|
|
|
uiInitError *uiInit(uiInitOptions *);
|
|
|
|
const char *uiInitErrorMessage(uiInitError *);
|
|
|
|
void uiInitErrorFree(uiInitError *);
|
|
|
|
|
|
|
|
void uiMain(void);
|
|
|
|
void uiQuit(void);
|
|
|
|
|
2015-04-09 01:43:49 -05:00
|
|
|
void uiFreeText(char *);
|
|
|
|
|
2015-04-09 15:37:04 -05:00
|
|
|
typedef struct uiSizing uiSizing;
|
2015-04-09 16:57:08 -05:00
|
|
|
typedef struct uiSizingSys uiSizingSys;
|
2015-04-09 15:37:04 -05:00
|
|
|
struct uiSizing {
|
|
|
|
intmax_t xPadding;
|
|
|
|
intmax_t yPadding;
|
2015-04-09 16:57:08 -05:00
|
|
|
uiSizingSys *sys;
|
2015-04-09 15:37:04 -05:00
|
|
|
};
|
|
|
|
|
2015-04-07 03:02:21 -05:00
|
|
|
typedef struct uiControl uiControl;
|
2015-04-09 15:37:04 -05:00
|
|
|
struct uiControl {
|
|
|
|
void *data; // for use by implementations only
|
|
|
|
void *internal; // for use by ui only
|
|
|
|
void (*destroy)(uiControl *);
|
|
|
|
uintptr_t (*handle)(uiControl *);
|
|
|
|
void (*setParent)(uiControl *, uintptr_t);
|
|
|
|
void (*removeParent)(uiControl *);
|
|
|
|
void (*preferredSize)(uiControl *, uiSizing *, intmax_t *, intmax_t *);
|
|
|
|
void (*resize)(uiControl *, intmax_t, intmax_t, intmax_t, intmax_t, uiSizing *);
|
|
|
|
};
|
2015-04-07 23:43:35 -05:00
|
|
|
void uiControlDestroy(uiControl *);
|
2015-04-07 03:12:03 -05:00
|
|
|
uintptr_t uiControlHandle(uiControl *);
|
2015-04-09 15:37:04 -05:00
|
|
|
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 *);
|
2015-04-07 03:02:21 -05:00
|
|
|
|
2015-04-06 11:20:51 -05:00
|
|
|
typedef struct uiWindow uiWindow;
|
|
|
|
uiWindow *uiNewWindow(char *, int, int);
|
|
|
|
void uiWindowDestroy(uiWindow *);
|
|
|
|
uintptr_t uiWindowHandle(uiWindow *);
|
2015-04-09 01:43:49 -05:00
|
|
|
char *uiWindowTitle(uiWindow *);
|
|
|
|
void uiWindowSetTitle(uiWindow *, const char *);
|
2015-04-06 11:20:51 -05:00
|
|
|
void uiWindowShow(uiWindow *);
|
|
|
|
void uiWindowHide(uiWindow *);
|
|
|
|
void uiWindowOnClosing(uiWindow *, int (*)(uiWindow *, void *), void *);
|
2015-04-07 03:02:21 -05:00
|
|
|
void uiWindowSetChild(uiWindow *, uiControl *);
|
2015-04-09 12:42:42 -05:00
|
|
|
// TODO uiWindowMargined()
|
|
|
|
void uiWindowSetMargined(uiWindow *, int);
|
2015-04-06 11:20:51 -05:00
|
|
|
|
2015-04-07 03:02:21 -05:00
|
|
|
uiControl *uiNewButton(const char *);
|
2015-04-09 01:43:49 -05:00
|
|
|
char *uiButtonText(uiControl *);
|
|
|
|
void uiButtonSetText(uiControl *, const char *);
|
2015-04-07 03:02:21 -05:00
|
|
|
void uiButtonOnClicked(uiControl *, void (*)(uiControl *, void *), void *);
|
2015-04-07 02:12:34 -05:00
|
|
|
|
2015-04-07 17:53:09 -05:00
|
|
|
uiControl *uiNewHorizontalStack(void);
|
|
|
|
uiControl *uiNewVerticalStack(void);
|
|
|
|
void uiStackAdd(uiControl *, uiControl *, int);
|
2015-04-09 14:59:40 -05:00
|
|
|
// TODO get padded
|
|
|
|
void uiStackSetPadded(uiControl *, int);
|
2015-04-07 17:53:09 -05:00
|
|
|
|
2015-04-08 22:22:59 -05:00
|
|
|
uiControl *uiNewEntry(void);
|
2015-04-09 01:43:49 -05:00
|
|
|
char *uiEntryText(uiControl *);
|
|
|
|
void uiEntrySetText(uiControl *, const char *);
|
2015-04-08 22:22:59 -05:00
|
|
|
|
2015-04-09 11:14:18 -05:00
|
|
|
uiControl *uiNewCheckbox(const char *);
|
2015-04-09 11:32:59 -05:00
|
|
|
char *uiCheckboxText(uiControl *);
|
2015-04-09 11:14:18 -05:00
|
|
|
void uiCheckboxSetText(uiControl *, const char *);
|
2015-04-09 11:26:59 -05:00
|
|
|
void uiCheckboxOnToggled(uiControl *, void (*)(uiControl *, void *), void *);
|
2015-04-09 11:52:34 -05:00
|
|
|
int uiCheckboxChecked(uiControl *);
|
|
|
|
// TODO should this trigger an event?
|
2015-04-09 12:01:23 -05:00
|
|
|
void uiCheckboxSetChecked(uiControl *, int);
|
2015-04-09 11:14:18 -05:00
|
|
|
|
2015-04-06 11:20:51 -05:00
|
|
|
#endif
|