--- a/ui/winui/container.cpp Mon Jun 09 08:47:57 2025 +0200 +++ b/ui/winui/container.cpp Tue Jun 10 12:28:30 2025 +0200 @@ -34,6 +34,7 @@ #include "../common/object.h" #include "util.h" +#include "../ui/widget.h" void ui_container_begin_close(UiObject* obj) { @@ -51,13 +52,13 @@ } -UIEXPORT UIWIDGET ui_customwidget_create(UiObject *obj, ui_createwidget_func create_widget, void *userdata, UiWidgetArgs args) { +UIWIDGET ui_customwidget_create(UiObject *obj, ui_createwidget_func create_widget, void *userdata, UiWidgetArgs *args) { UiObject* current = uic_current_obj(obj); UIWIDGET widget = create_widget(obj, args, userdata); FrameworkElement w = widget->uielement.as<FrameworkElement>(); - UI_APPLY_LAYOUT1(current, args); + UI_APPLY_LAYOUT2(current, args); current->container->Add(w, false); @@ -66,9 +67,9 @@ // --------------------- UiBoxContainer --------------------- -static UIWIDGET ui_box(UiObject* obj, UiContainerArgs args, UiBoxContainerType type) { +static UIWIDGET ui_box(UiObject* obj, UiContainerArgs *args, UiBoxContainerType type) { UiObject* current = uic_current_obj(obj); - UI_APPLY_LAYOUT1(current, args); + UI_APPLY_LAYOUT2(current, args); Grid grid = Grid(); current->container->Add(grid, true); @@ -78,18 +79,18 @@ ui_context_add_widget_destructor(current->ctx, widget); UiObject* newobj = uic_object_new(obj, widget); - newobj->container = new UiBoxContainer(grid, type, args.margin, args.spacing); + newobj->container = new UiBoxContainer(grid, type, args->margin, args->spacing); ui_context_add_container_destructor(current->ctx, newobj->container); uic_obj_add(obj, newobj); return widget; } -UIWIDGET ui_vbox_create(UiObject* obj, UiContainerArgs args) { +UIWIDGET ui_vbox_create(UiObject* obj, UiContainerArgs *args) { return ui_box(obj, args, UI_BOX_CONTAINER_VBOX); } -UIWIDGET ui_hbox_create(UiObject* obj, UiContainerArgs args) { +UIWIDGET ui_hbox_create(UiObject* obj, UiContainerArgs *args) { return ui_box(obj, args, UI_BOX_CONTAINER_HBOX); } @@ -861,28 +862,28 @@ // TODO: replace placeholder implementation -UIEXPORT UIWIDGET ui_headerbar_create(UiObject *obj, UiHeaderbarArgs args) { +UIEXPORT UIWIDGET ui_headerbar_create(UiObject *obj, UiHeaderbarArgs *args) { UiContainerArgs boxargs = { }; boxargs.fill = UI_OFF; - return ui_hbox_create(obj, boxargs); + return ui_hbox_create(obj, &boxargs); } UIEXPORT void ui_headerbar_start_create(UiObject *obj) { UiContainerArgs boxargs = { }; boxargs.fill = UI_OFF; - ui_hbox_create(obj, boxargs); + ui_hbox_create(obj, &boxargs); } UIEXPORT void ui_headerbar_center_create(UiObject *obj) { UiContainerArgs boxargs = { }; boxargs.fill = UI_OFF; - ui_hbox_create(obj, boxargs); + ui_hbox_create(obj, &boxargs); } UIEXPORT void ui_headerbar_end_create(UiObject *obj) { UiContainerArgs boxargs = { }; boxargs.fill = UI_OFF; - ui_hbox_create(obj, boxargs); + ui_hbox_create(obj, &boxargs); }