diff -r d06e7e8e53e1 -r 527a66c0afb2 ui/ui/display.h --- a/ui/ui/display.h Sat Oct 14 10:55:11 2023 +0200 +++ b/ui/ui/display.h Tue Oct 17 21:00:48 2023 +0200 @@ -39,10 +39,44 @@ extern "C" { #endif +enum UiAlignment { + UI_ALIGN_DEFAULT = 0, + UI_ALIGN_LEFT, + UI_ALIGN_RIGHT, + UI_ALIGN_CENTER +}; + +typedef enum UiAlignment UiAlignment; + +typedef struct UiLabelArgs { + UiTri fill; + UiBool hexpand; + UiBool vexpand; + int colspan; + int rowspan; + int width; + + const char* label; + UiAlignment align; + UiString* value; + const char* varname; +} UiLabelArgs; + /* label widgets */ -UIWIDGET ui_label(UiObject *obj, char *label); -UIWIDGET ui_llabel(UiObject *obj, char *label); -UIWIDGET ui_rlabel(UiObject *obj, char *label); + +#define ui_label(obj, ...) ui_label_create(obj, (UiLabelArgs) { __VA_ARGS__ }) +#define ui_llabel(obj, ...) ui_llabel_create(obj, (UiLabelArgs) { __VA_ARGS__ }) +#define ui_rlabel(obj, ...) ui_rlabel_create(obj, (UiLabelArgs) { __VA_ARGS__ }) + + +UIEXPORT UIWIDGET ui_label_create(UiObject* obj, UiLabelArgs args); +UIEXPORT UIWIDGET ui_llabel_create(UiObject* obj, UiLabelArgs args); +UIEXPORT UIWIDGET ui_rlabel_create(UiObject* obj, UiLabelArgs args); + +UIWIDGET ui_label_deprecated(UiObject *obj, char *label); +UIWIDGET ui_llabel_deprecated(UiObject *obj, char *label); +UIWIDGET ui_rlabel_deprecated(UiObject *obj, char *label); + UIWIDGET ui_space(UiObject *obj); UIWIDGET ui_separator(UiObject *obj);