--- a/ui/ui/toolkit.h Sat Jan 27 17:50:19 2024 +0100 +++ b/ui/ui/toolkit.h Sun Jan 28 16:31:34 2024 +0100 @@ -69,8 +69,6 @@ #elif UI_WINUI -#include <Windows.h> - #define UIEXPORT __declspec(dllexport) #ifdef __cplusplus @@ -170,9 +168,12 @@ typedef struct UiTabbedPane UiTabbedPane; typedef enum UiTri UiTri; +typedef enum UiLabelType UiLabelType; enum UiMouseEventType { UI_PRESS = 0, UI_PRESS2 }; +enum UiLabelType { UI_LABEL_DEFAULT, UI_LABEL_TEXT, UI_LABEL_ICON, UI_LABEL_TEXT_ICON }; + typedef void(*ui_callback)(UiEvent*, void*); /* event, user data */ @@ -405,6 +406,28 @@ UIEXPORT UiText* ui_text_new(UiContext *ctx, char *name); UIEXPORT UiRange* ui_range_new(UiContext *ctx, char *name); +#define ui_get(v) _Generic(v, \ + UiInteger*: ui_int_get, \ + UiDouble*: ui_double_get, \ + UiString*: ui_string_get, \ + UiText*:ui_text_get) (v) + +#define ui_set(v, n) _Generic(v, \ + UiInteger*: ui_int_set, \ + UiDouble*: ui_double_set, \ + UiString*: ui_string_set, \ + UiText*:ui_text_set) (v, n) + +UIEXPORT void ui_int_set(UiInteger *i, int64_t value); +UIEXPORT int64_t ui_int_get(UiInteger *i); +UIEXPORT void ui_double_set(UiDouble *d, double value); +UIEXPORT double ui_double_get(UiDouble *d); +UIEXPORT void ui_string_set(UiString *s, const char *value); +UIEXPORT char* ui_string_get(UiString *s); +UIEXPORT void ui_text_set(UiText *s, const char* value); +UIEXPORT char* ui_text_get(UiText *s); + + UIEXPORT UiObserver* ui_observer_new(ui_callback f, void *data); UIEXPORT UiObserver* ui_obsvlist_add(UiObserver *list, UiObserver *observer); UIEXPORT UiObserver* ui_add_observer(UiObserver *list, ui_callback f, void *data);