--- a/ui/qt/button.cpp Sat Apr 05 17:57:04 2025 +0200 +++ b/ui/qt/button.cpp Sun Jul 20 22:04:39 2025 +0200 @@ -1,7 +1,7 @@ /* * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * - * Copyright 2015 Olaf Wintermann. All rights reserved. + * Copyright 2025 Olaf Wintermann. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -30,20 +30,20 @@ #include "container.h" #include "toolkit.h" -UIWIDGET ui_button_create(UiObject* obj, UiButtonArgs args) { +UIWIDGET ui_button_create(UiObject* obj, UiButtonArgs *args) { UiContainerPrivate *ctn = ui_obj_container(obj); UI_APPLY_LAYOUT(ctn->layout, args); - QString str = QString::fromUtf8(args.label); + QString str = QString::fromUtf8(args->label); QPushButton *button = new QPushButton(str); - if(args.onclick) { - UiEventWrapper *event = new UiEventWrapper(obj, args.onclick, args.onclickdata); + if(args->onclick) { + UiEventWrapper *event = new UiEventWrapper(obj, args->onclick, args->onclickdata); button->connect(button, SIGNAL(clicked()), event, SLOT(slot())); button->connect(button, SIGNAL(destroyed()), event, SLOT(destroy())); } - ctn->add(button, false); + ctn->add(button); return button; } @@ -53,21 +53,22 @@ event->intval = button->isChecked(); if(wrapper->var) { event->eventdata = wrapper->var->value; + event->eventdatatype = UI_EVENT_DATA_INTEGER_VALUE; } } -UIWIDGET ui_togglebutton_create(UiObject* obj, UiToggleArgs args) { +UIWIDGET ui_togglebutton_create(UiObject* obj, UiToggleArgs *args) { UiContainerPrivate *ctn = ui_obj_container(obj); UI_APPLY_LAYOUT(ctn->layout, args); - QString str = QString::fromUtf8(args.label); + QString str = QString::fromUtf8(args->label); QPushButton *button = new QPushButton(str); button->setCheckable(true); - UiVar* var = uic_widget_var(obj->ctx, obj->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(args.onchange) { - UiEventWrapper *event = new UiEventWrapper(obj, args.onchange, args.onchangedata); + if(args->onchange) { + UiEventWrapper *event = new UiEventWrapper(obj, args->onchange, args->onchangedata); event->var = var; event->customdata1 = button; event->prepare_event = togglebutton_event; @@ -87,7 +88,7 @@ i->set = ui_togglebutton_set; } - ctn->add(button, false); + ctn->add(button); return button; } @@ -111,21 +112,22 @@ event->intval = button->isChecked(); if(wrapper->var) { event->eventdata = wrapper->var->value; + event->eventdatatype = UI_EVENT_DATA_INTEGER_VALUE; } } -UIWIDGET ui_checkbox_create(UiObject* obj, UiToggleArgs args) { +UIWIDGET ui_checkbox_create(UiObject* obj, UiToggleArgs *args) { UiContainerPrivate *ctn = ui_obj_container(obj); UI_APPLY_LAYOUT(ctn->layout, args); - QString str = QString::fromUtf8(args.label); + QString str = QString::fromUtf8(args->label); QCheckBox *checkbox = new QCheckBox(str); - UiVar* var = uic_widget_var(obj->ctx, obj->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(args.onchange) { - UiEventWrapper *event = new UiEventWrapper(obj, args.onchange, args.onchangedata); + if(args->onchange) { + UiEventWrapper *event = new UiEventWrapper(obj, args->onchange, args->onchangedata); event->var = var; event->customdata1 = checkbox; event->prepare_event = checkbox_event; @@ -145,7 +147,7 @@ i->set = ui_checkbox_set; } - ctn->add(checkbox, false); + ctn->add(checkbox); return checkbox; } @@ -167,21 +169,22 @@ static void radiobutton_event(UiEvent *event, UiEventWrapper *wrapper) { if(wrapper->var) { - UiInteger *value = wrapper->var->value; + UiInteger *value = (UiInteger*)wrapper->var->value; event->eventdata = value; - event->intval = ui_get(value); + event->eventdatatype = UI_EVENT_DATA_INTEGER_VALUE; + event->intval = value->get(value); } } -UIWIDGET ui_radiobutton_create(UiObject *obj, UiToggleArgs args) { +UIWIDGET ui_radiobutton_create(UiObject *obj, UiToggleArgs *args) { UiContainerPrivate *ctn = ui_obj_container(obj); UI_APPLY_LAYOUT(ctn->layout, args); - QString str = QString::fromUtf8(args.label); + QString str = QString::fromUtf8(args->label); QRadioButton *button = new QRadioButton(str); button->setAutoExclusive(false); - UiVar* var = uic_widget_var(obj->ctx, obj->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 = (UiInteger*)var->value; QButtonGroup *buttonGroup = (QButtonGroup*)value->obj; @@ -198,14 +201,14 @@ value->set = ui_radiobutton_set; } - UiEventWrapper *event = new UiEventWrapper(obj, args.onchange, args.onchangedata); + UiEventWrapper *event = new UiEventWrapper(obj, args->onchange, args->onchangedata); event->var = var; event->customdata1 = button; event->prepare_event = togglebutton_event; button->connect(button, SIGNAL(clicked()), event, SLOT(slot())); button->connect(button, SIGNAL(destroyed()), event, SLOT(destroy())); - ctn->add(button, false); + ctn->add(button); return button; }