ui/ui/container.h

branch
newapi
changeset 190
70fd1b24e395
parent 187
24ce2c326d85
child 193
74c688cc1839
--- a/ui/ui/container.h	Sun Oct 01 16:39:03 2023 +0200
+++ b/ui/ui/container.h	Sun Oct 01 16:53:02 2023 +0200
@@ -35,25 +35,32 @@
 extern "C" {
 #endif
    
+typedef struct UiContainerArgs {
+    UiTri fill;
+    UiBool hexpand;
+    UiBool vexpand;
+    int colspan;
+    int rowspan;
+
+    int margin;
+    int spacing;
+    int columnspacing;
+    int rowspacing;
+} UiContainerArgs;
 
 #define UI_CTN(obj, ctn) for(ctn;ui_container_finish(obj);ui_container_begin_close(obj))
-#define UI_VBOX(obj) for(ui_vbox(obj);ui_container_finish(obj);ui_container_begin_close(obj))
-#define UI_HBOX(obj) for(ui_hbox(obj);ui_container_finish(obj);ui_container_begin_close(obj))
-#define UI_VBOX_SP(obj, margin, spacing) for(ui_vbox_sp(obj,margin,spacing);ui_container_finish(obj);ui_container_begin_close(obj))
-#define UI_HBOX_SP(obj, margin, spacing) for(ui_hbox_sp(obj,margin,spacing);ui_container_finish(obj);ui_container_begin_close(obj))
-#define UI_GRID(obj) for(ui_grid(obj);ui_container_finish(obj);ui_container_begin_close(obj))
-#define UI_GRID_SP(obj, margin, columnspacing, rowspacing) for(ui_grid_sp(obj,margin,columnspacing,rowspacing);ui_container_finish(obj);ui_container_begin_close(obj))
-    
+
+#define ui_vbox(obj, ...) for(ui_vbox_create(obj, (UiContainerArgs){ __VA_ARGS__ });ui_container_finish(obj);ui_container_begin_close(obj))
+#define ui_hbox(obj, ...) for(ui_hbox_create(obj, (UiContainerArgs){ __VA_ARGS__ });ui_container_finish(obj);ui_container_begin_close(obj))
+#define ui_grid(obj, ...) for(ui_grid_create(obj, (UiContainerArgs){ __VA_ARGS__ });ui_container_finish(obj);ui_container_begin_close(obj))
+   
 
 void ui_end(UiObject *obj);
     
-UIWIDGET ui_vbox(UiObject *obj);
-UIWIDGET ui_hbox(UiObject *obj);
-UIWIDGET ui_vbox_sp(UiObject *obj, int margin, int spacing);
-UIWIDGET ui_hbox_sp(UiObject *obj, int margin, int spacing);
+UIWIDGET ui_vbox_create(UiObject *obj, UiContainerArgs args);
+UIWIDGET ui_hbox_create(UiObject *obj, UiContainerArgs args);
 
-UIWIDGET ui_grid(UiObject *obj);
-UIWIDGET ui_grid_sp(UiObject *obj, int margin, int columnspacing, int rowspacing);
+UIWIDGET ui_grid_create(UiObject *obj, UiContainerArgs args);
 
 UIWIDGET ui_scrolledwindow(UiObject *obj);
 

mercurial