--- a/ui/gtk/button.c Sun Oct 05 13:30:19 2025 +0200 +++ b/ui/gtk/button.c Sun Oct 05 18:13:15 2025 +0200 @@ -100,12 +100,12 @@ } UIWIDGET ui_button_create(UiObject *obj, UiButtonArgs *args) { - UiObject* current = uic_current_obj(obj); GtkWidget *button = ui_create_button(obj, args->label, args->icon, args->onclick, args->onclickdata, 0, FALSE); ui_set_name_and_style(button, args->name, args->style_class); ui_set_widget_groups(obj->ctx, button, args->groups); - UI_APPLY_LAYOUT2(current, args); - current->container->add(current->container, button); + UiContainerPrivate *ct = (UiContainerPrivate*)obj->container_end; + UiLayout layout = UI_ARGS2LAYOUT(args); + ct->add(ct, button, &layout); return button; } @@ -220,8 +220,7 @@ void (*enable_state_func)(void*, void*), int enable_state) { - UiObject* current = uic_current_obj(obj); - UiVar* var = uic_widget_var(obj->ctx, current->ctx, value, varname, UI_VAR_INTEGER); + UiVar* var = uic_widget_var(obj->ctx, obj->ctx, value, varname, UI_VAR_INTEGER); if (var) { UiInteger* value = (UiInteger*)var->value; value->obj = widget; @@ -291,8 +290,6 @@ } static UIWIDGET togglebutton_create(UiObject *obj, GtkWidget *widget, UiToggleArgs *args) { - UiObject* current = uic_current_obj(obj); - ui_setup_togglebutton( obj, widget, @@ -306,8 +303,9 @@ ui_set_name_and_style(widget, args->name, args->style_class); ui_set_widget_groups(obj->ctx, widget, args->groups); - UI_APPLY_LAYOUT2(current, args); - current->container->add(current->container, widget); + UiContainerPrivate *ct = (UiContainerPrivate*)obj->container_end; + UiLayout layout = UI_ARGS2LAYOUT(args); + ct->add(ct, widget, &layout); return widget; } @@ -350,9 +348,7 @@ } } -UIWIDGET ui_checkbox_create(UiObject* obj, UiToggleArgs *args) { - UiObject* current = uic_current_obj(obj); - +UIWIDGET ui_checkbox_create(UiObject* obj, UiToggleArgs *args) { GtkWidget *widget = gtk_check_button_new_with_label(args->label); ui_bind_togglebutton( obj, @@ -370,8 +366,9 @@ ui_set_name_and_style(widget, args->name, args->style_class); ui_set_widget_groups(obj->ctx, widget, args->groups); - UI_APPLY_LAYOUT2(current, args); - current->container->add(current->container, widget); + UiContainerPrivate *ct = (UiContainerPrivate*)obj->container_end; + UiLayout layout = UI_ARGS2LAYOUT(args); + ct->add(ct, widget, &layout); return widget; } @@ -411,12 +408,11 @@ } UIWIDGET ui_switch_create(UiObject* obj, UiToggleArgs *args) { - UiObject* current = uic_current_obj(obj); GtkWidget *widget = gtk_switch_new(); ui_set_name_and_style(widget, args->name, args->style_class); ui_set_widget_groups(obj->ctx, widget, args->groups); - UiVar* var = uic_widget_var(obj->ctx, current->ctx, args->value, args->varname, UI_VAR_INTEGER); + UiVar* var = uic_widget_var(obj->ctx, obj->ctx, args->value, args->varname, UI_VAR_INTEGER); if(var) { UiInteger *value = var->value; value->obj = widget; @@ -449,8 +445,9 @@ G_CALLBACK(ui_destroy_vardata), event); - UI_APPLY_LAYOUT2(current, args); - current->container->add(current->container, widget); + UiContainerPrivate *ct = (UiContainerPrivate*)obj->container_end; + UiLayout layout = UI_ARGS2LAYOUT(args); + ct->add(ct, widget, &layout); return widget; } @@ -519,12 +516,10 @@ } UIWIDGET ui_radiobutton_create(UiObject *obj, UiToggleArgs *args) { - UiObject* current = uic_current_obj(obj); - GSList *rg = NULL; UiInteger *rgroup; - UiVar* var = uic_widget_var(obj->ctx, current->ctx, args->value, args->varname, UI_VAR_INTEGER); + UiVar* var = uic_widget_var(obj->ctx, obj->ctx, args->value, args->varname, UI_VAR_INTEGER); UiBool first = FALSE; if(var) { @@ -600,8 +595,9 @@ event); } - UI_APPLY_LAYOUT2(current, args); - current->container->add(current->container, rbutton); + UiContainerPrivate *ct = (UiContainerPrivate*)obj->container_end; + UiLayout layout = UI_ARGS2LAYOUT(args); + ct->add(ct, rbutton, &layout); return rbutton; } @@ -860,8 +856,7 @@ data->widget = button; - UiObject* current = uic_current_obj(obj); - UiVar *var = uic_widget_var(obj->ctx, current->ctx, args->value, args->varname, UI_VAR_STRING); + UiVar *var = uic_widget_var(obj->ctx, obj->ctx, args->value, args->varname, UI_VAR_STRING); if(var) { UiString *str = var->value; char *current_value = ui_get(str); @@ -876,8 +871,9 @@ ui_set_name_and_style(button, args->name, args->style_class); ui_set_widget_groups(obj->ctx, button, args->groups); - UI_APPLY_LAYOUT2(current, args); - current->container->add(current->container, button); + UiContainerPrivate *ct = (UiContainerPrivate*)obj->container_end; + UiLayout layout = UI_ARGS2LAYOUT(args); + ct->add(ct, button, &layout); return button; }