ui/ui/display.h

branch
newapi
changeset 219
527a66c0afb2
parent 149
479209198de3
child 220
e377456302df
--- 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);
 

mercurial