ui/motif/button.c

changeset 595
e62047c59658
parent 499
0a386bd871be
child 659
d6baaa93f7be
--- a/ui/motif/button.c	Thu May 29 12:03:32 2025 +0200
+++ b/ui/motif/button.c	Thu May 29 13:23:11 2025 +0200
@@ -41,7 +41,7 @@
 #include <Xm/XmAll.h>
 
 
-UIWIDGET ui_button_create(UiObject* obj, UiButtonArgs args) {
+UIWIDGET ui_button_create(UiObject* obj, UiButtonArgs *args) {
     Arg xargs[16];
     int n = 0;
     
@@ -51,22 +51,22 @@
     Widget parent = ctn->prepare(ctn, xargs, &n);
        
     XmString label = NULL;
-    if(args.label) {
-        label = XmStringCreateLocalized((char*)args.label);
+    if(args->label) {
+        label = XmStringCreateLocalized((char*)args->label);
         XtSetArg(xargs[n], XmNlabelString, label); n++;
     }
     
-    char *name = args.name ? (char*)args.name : "button";
+    char *name = args->name ? (char*)args->name : "button";
     Widget button = XmCreatePushButton(parent, name, xargs, n);
     XtManageChild(button);
     ctn->add(ctn, button);
     
-    ui_set_widget_groups(obj->ctx, button, args.groups);
+    ui_set_widget_groups(obj->ctx, button, args->groups);
     
-    if(args.onclick) {
+    if(args->onclick) {
         UiEventData *eventdata = malloc(sizeof(UiEventData));
-        eventdata->callback = args.onclick;
-        eventdata->userdata = args.onclickdata;
+        eventdata->callback = args->onclick;
+        eventdata->userdata = args->onclickdata;
         eventdata->obj = obj;
         eventdata->value = 0;
         XtAddCallback(
@@ -96,7 +96,7 @@
     event->callback(&e, event->userdata);
 }
 
-UIWIDGET ui_togglebutton_create(UiObject* obj, UiToggleArgs args) {
+UIWIDGET ui_togglebutton_create(UiObject* obj, UiToggleArgs *args) {
     Arg xargs[16];
     int n = 0;
     
@@ -108,25 +108,25 @@
     XtSetArg(xargs[n], XmNindicatorOn, False); n++;
     
     XmString label = NULL;
-    if(args.label) {
-        label = XmStringCreateLocalized((char*)args.label);
+    if(args->label) {
+        label = XmStringCreateLocalized((char*)args->label);
         XtSetArg(xargs[n], XmNlabelString, label); n++;
     }
     
-    char *name = args.name ? (char*)args.name : "togglebutton";
+    char *name = args->name ? (char*)args->name : "togglebutton";
     Widget button = XmCreateToggleButton(parent, name, xargs, n);
     XtManageChild(button);
     ctn->add(ctn, button);
     
-    ui_set_widget_groups(obj->ctx, button, args.groups);
+    ui_set_widget_groups(obj->ctx, button, args->groups);
     
-    ui_bind_togglebutton(obj, button, args.varname, args.value, args.onchange, args.onchangedata, args.enable_group);
+    ui_bind_togglebutton(obj, button, args->varname, args->value, args->onchange, args->onchangedata, args->enable_group);
     
     XmStringFree(label);
     return button;
 }
 
-UIWIDGET ui_checkbox_create(UiObject* obj, UiToggleArgs args) {
+UIWIDGET ui_checkbox_create(UiObject* obj, UiToggleArgs *args) {
     Arg xargs[16];
     int n = 0;
     
@@ -136,25 +136,25 @@
     Widget parent = ctn->prepare(ctn, xargs, &n);
     
     XmString label = NULL;
-    if(args.label) {
-        label = XmStringCreateLocalized((char*)args.label);
+    if(args->label) {
+        label = XmStringCreateLocalized((char*)args->label);
         XtSetArg(xargs[n], XmNlabelString, label); n++;
     }
     
-    char *name = args.name ? (char*)args.name : "button";
+    char *name = args->name ? (char*)args->name : "button";
     Widget button = XmCreateToggleButton(parent, name, xargs, n);
     XtManageChild(button);
     ctn->add(ctn, button);
     
-    ui_set_widget_groups(obj->ctx, button, args.groups);
+    ui_set_widget_groups(obj->ctx, button, args->groups);
     
-    ui_bind_togglebutton(obj, button, args.varname, args.value, args.onchange, args.onchangedata, args.enable_group);
+    ui_bind_togglebutton(obj, button, args->varname, args->value, args->onchange, args->onchangedata, args->enable_group);
     
     XmStringFree(label);
     return button;
 }
 
-UIWIDGET ui_switch_create(UiObject* obj, UiToggleArgs args) {
+UIWIDGET ui_switch_create(UiObject* obj, UiToggleArgs *args) {
     return ui_checkbox_create(obj, args);
 }
 
@@ -343,7 +343,7 @@
             event);
 }
 
-UIWIDGET ui_radiobutton_create(UiObject* obj, UiToggleArgs args) {
+UIWIDGET ui_radiobutton_create(UiObject* obj, UiToggleArgs *args) {
     Arg xargs[16];
     int n = 0;
     
@@ -353,19 +353,19 @@
     Widget parent = ctn->prepare(ctn, xargs, &n);
     XtSetArg(xargs[n], XmNindicatorType, XmONE_OF_MANY_ROUND); n++;
     XmString label = NULL;
-    if(args.label) {
-        label = XmStringCreateLocalized((char*)args.label);
+    if(args->label) {
+        label = XmStringCreateLocalized((char*)args->label);
         XtSetArg(xargs[n], XmNlabelString, label); n++;
     }
     
-    char *name = args.name ? (char*)args.name : "button";
+    char *name = args->name ? (char*)args->name : "button";
     Widget button = XmCreateToggleButton(parent, name, xargs, n);
     XtManageChild(button);
     ctn->add(ctn, button);
     
-    ui_set_widget_groups(obj->ctx, button, args.groups);
+    ui_set_widget_groups(obj->ctx, button, args->groups);
     
-    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 = var->value;
         CxList *rb = value->obj;
@@ -396,11 +396,11 @@
     // other buttons in the radio button group
     UiVarEventData *event = malloc(sizeof(UiVarEventData));
     event->obj = obj;
-    event->callback = args.onchange;
-    event->userdata = args.onchangedata;
+    event->callback = args->onchange;
+    event->userdata = args->onchangedata;
     event->observers = NULL;
     event->var = var;
-    event->value = args.enable_group;
+    event->value = args->enable_group;
     XtAddCallback(
             button,
             XmNvalueChangedCallback,

mercurial