--- a/ui/cocoa/button.m Fri May 30 17:55:57 2025 +0200 +++ b/ui/cocoa/button.m Sat May 31 20:57:26 2025 +0200 @@ -31,15 +31,15 @@ #import "Container.h" #import <objc/runtime.h> -UIWIDGET ui_button_create(UiObject* obj, UiButtonArgs args) { +UIWIDGET ui_button_create(UiObject* obj, UiButtonArgs *args) { NSButton *button = [[NSButton alloc] init]; - if(args.label) { - NSString *label = [[NSString alloc] initWithUTF8String:args.label]; + if(args->label) { + NSString *label = [[NSString alloc] initWithUTF8String:args->label]; button.title = label; } - if(args.onclick) { - EventData *event = [[EventData alloc] init:args.onclick userdata:args.onclickdata]; + if(args->onclick) { + EventData *event = [[EventData alloc] init:args->onclick userdata:args->onclickdata]; event.obj = obj; button.target = event; button.action = @selector(handleEvent:); @@ -59,17 +59,17 @@ *value = (int)state; } -UIWIDGET togglebutton_create(UiObject* obj, UiToggleArgs args, enum NSButtonType type) { +UIWIDGET togglebutton_create(UiObject* obj, UiToggleArgs *args, enum NSButtonType type) { NSButton *button = [[NSButton alloc] init]; [button setButtonType:type]; //[button setAllowsMixedState:YES]; - if(args.label) { - NSString *label = [[NSString alloc] initWithUTF8String:args.label]; + if(args->label) { + NSString *label = [[NSString alloc] initWithUTF8String:args->label]; button.title = label; } - 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 *i = var->value; i->obj = (__bridge void*)button; @@ -77,8 +77,8 @@ i->set = ui_togglebutton_set; } - if(args.onchange) { - EventData *event = [[EventData alloc] init:args.onchange userdata:args.onchangedata]; + if(args->onchange) { + EventData *event = [[EventData alloc] init:args->onchange userdata:args->onchangedata]; event.get_eventdata = togglebutton_eventdata; event.obj = obj; event.var = var; @@ -113,11 +113,11 @@ button.state = state; } -UIWIDGET ui_togglebutton_create(UiObject* obj, UiToggleArgs args) { +UIWIDGET ui_togglebutton_create(UiObject* obj, UiToggleArgs *args) { return togglebutton_create(obj, args, NSButtonTypePushOnPushOff); } -UIWIDGET ui_checkbox_create(UiObject* obj, UiToggleArgs args) { +UIWIDGET ui_checkbox_create(UiObject* obj, UiToggleArgs *args) { return togglebutton_create(obj, args, NSButtonTypeSwitch); } @@ -127,10 +127,10 @@ *value = (int)state; } -UIWIDGET ui_switch_create(UiObject* obj, UiToggleArgs args) { +UIWIDGET ui_switch_create(UiObject* obj, UiToggleArgs *args) { NSSwitch *button = [[NSSwitch alloc] init]; - 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 *i = var->value; i->obj = (__bridge void*)button; @@ -138,8 +138,8 @@ i->set = ui_switch_set; } - if(args.onchange) { - EventData *event = [[EventData alloc] init:args.onchange userdata:args.onchangedata]; + if(args->onchange) { + EventData *event = [[EventData alloc] init:args->onchange userdata:args->onchangedata]; event.get_eventdata = switch_eventdata; event.obj = obj; event.var = var; @@ -204,14 +204,14 @@ } } -UIWIDGET ui_radiobutton_create(UiObject* obj, UiToggleArgs args) { +UIWIDGET ui_radiobutton_create(UiObject* obj, UiToggleArgs *args) { UiRadioButton *button = [[UiRadioButton alloc] init]; - if(args.label) { - button.title = [[NSString alloc] initWithUTF8String:args.label]; + if(args->label) { + button.title = [[NSString alloc] initWithUTF8String:args->label]; } - 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); button.var = var; NSMutableArray *buttons = nil; if(var) { @@ -227,8 +227,8 @@ objc_setAssociatedObject(button, "radiogroup", buttons, OBJC_ASSOCIATION_RETAIN); } - if(args.onchange || var) { - EventData *event = [[EventData alloc] init:args.onchange userdata:args.onchangedata]; + if(args->onchange || var) { + EventData *event = [[EventData alloc] init:args->onchange userdata:args->onchangedata]; event.get_eventdata = radiobutton_eventdata; event.obj = obj; event.var = var;