ui/qt/button.cpp

changeset 108
77254bd6dccb
parent 103
6606616eca9f
child 109
c3dfcb8f0be7
--- 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;
 }

mercurial