diff -r 7061c9cf3b52 -r fc854e0ab924 ui/gtk/text.c --- a/ui/gtk/text.c Thu May 15 12:55:54 2025 +0200 +++ b/ui/gtk/text.c Thu May 29 12:03:32 2025 +0200 @@ -107,13 +107,13 @@ return buf; } -UIWIDGET ui_textarea_create(UiObject *obj, UiTextAreaArgs args) { +UIWIDGET ui_textarea_create(UiObject *obj, UiTextAreaArgs *args) { UiObject* current = uic_current_obj(obj); - UiVar* var = uic_widget_var(obj->ctx, current->ctx, args.value, args.varname, UI_VAR_TEXT); + UiVar* var = uic_widget_var(obj->ctx, current->ctx, args->value, args->varname, UI_VAR_TEXT); GtkWidget *text_area = gtk_text_view_new(); - ui_set_name_and_style(text_area, args.name, args.style_class); - ui_set_widget_groups(obj->ctx, text_area, args.groups); + ui_set_name_and_style(text_area, args->name, args->style_class); + ui_set_widget_groups(obj->ctx, text_area, args->groups); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(text_area), GTK_WRAP_WORD_CHAR); g_signal_connect( @@ -127,8 +127,8 @@ uitext->ctx = obj->ctx; uitext->var = var; uitext->last_selection_state = 0; - uitext->onchange = args.onchange; - uitext->onchangedata = args.onchangedata; + uitext->onchange = args->onchange; + uitext->onchangedata = args->onchangedata; g_object_set_data(G_OBJECT(text_area), "ui_textarea", uitext); @@ -155,7 +155,7 @@ gtk_text_view_set_right_margin(GTK_TEXT_VIEW(text_area), 2); // add - UI_APPLY_LAYOUT1(current, args); + UI_APPLY_LAYOUT2(current, args); current->container->add(current->container, scroll_area, TRUE); // bind value @@ -592,21 +592,21 @@ -static UIWIDGET create_textfield(UiObject *obj, UiBool frameless, UiBool password, UiTextFieldArgs args) { +static UIWIDGET create_textfield(UiObject *obj, UiBool frameless, UiBool password, UiTextFieldArgs *args) { GtkWidget *textfield = gtk_entry_new(); - ui_set_name_and_style(textfield, args.name, args.style_class); - ui_set_widget_groups(obj->ctx, textfield, args.groups); + ui_set_name_and_style(textfield, args->name, args->style_class); + ui_set_widget_groups(obj->ctx, textfield, args->groups); 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, current->ctx, args->value, args->varname, UI_VAR_STRING); UiTextField *uitext = malloc(sizeof(UiTextField)); uitext->obj = obj; uitext->var = var; - uitext->onchange = args.onchange; - uitext->onchangedata = args.onchangedata; - uitext->onactivate = args.onactivate; - uitext->onactivatedata = args.onactivatedata; + uitext->onchange = args->onchange; + uitext->onchangedata = args->onchangedata; + uitext->onactivate = args->onactivate; + uitext->onactivatedata = args->onactivatedata; g_signal_connect( textfield, @@ -614,10 +614,10 @@ G_CALLBACK(ui_textfield_destroy), uitext); - if(args.width > 0) { + if(args->width > 0) { // TODO: gtk4 #if GTK_MAJOR_VERSION <= 3 - gtk_entry_set_width_chars(GTK_ENTRY(textfield), args.width); + gtk_entry_set_width_chars(GTK_ENTRY(textfield), args->width); #endif } if(frameless) { @@ -628,7 +628,7 @@ gtk_entry_set_visibility(GTK_ENTRY(textfield), FALSE); } - UI_APPLY_LAYOUT1(current, args); + UI_APPLY_LAYOUT2(current, args); current->container->add(current->container, textfield, FALSE); if(var) { @@ -647,7 +647,7 @@ value->obj = GTK_ENTRY(textfield); } - if(args.onchange || var) { + if(args->onchange || var) { g_signal_connect( textfield, "changed", @@ -655,7 +655,7 @@ uitext); } - if(args.onactivate) { + if(args->onactivate) { g_signal_connect( textfield, "activate", @@ -666,15 +666,15 @@ return textfield; } -UIWIDGET ui_textfield_create(UiObject *obj, UiTextFieldArgs args) { +UIWIDGET ui_textfield_create(UiObject *obj, UiTextFieldArgs *args) { return create_textfield(obj, FALSE, FALSE, args); } -UIWIDGET ui_frameless_textfield_create(UiObject* obj, UiTextFieldArgs args) { +UIWIDGET ui_frameless_textfield_create(UiObject* obj, UiTextFieldArgs *args) { return create_textfield(obj, TRUE, FALSE, args); } -UIWIDGET ui_passwordfield_create(UiObject* obj, UiTextFieldArgs args) { +UIWIDGET ui_passwordfield_create(UiObject* obj, UiTextFieldArgs *args) { return create_textfield(obj, FALSE, TRUE, args); } @@ -915,22 +915,22 @@ return FALSE; } -UIWIDGET ui_path_textfield_create(UiObject* obj, UiPathTextFieldArgs args) { +UIWIDGET ui_path_textfield_create(UiObject* obj, UiPathTextFieldArgs *args) { UiObject* current = uic_current_obj(obj); UiPathTextField *pathtf = malloc(sizeof(UiPathTextField)); memset(pathtf, 0, sizeof(UiPathTextField)); pathtf->obj = obj; - pathtf->getpathelm = args.getpathelm; - pathtf->getpathelmdata = args.getpathelmdata; - pathtf->onactivate = args.onactivate; - pathtf->onactivatedata = args.onactivatedata; - pathtf->ondragcomplete = args.ondragcomplete; - pathtf->ondragcompletedata = args.ondragcompletedata; - pathtf->ondragstart = args.ondragstart; - pathtf->ondragstartdata = args.ondragstartdata; - pathtf->ondrop = args.ondrop; - pathtf->ondropdata = args.ondropsdata; + pathtf->getpathelm = args->getpathelm; + pathtf->getpathelmdata = args->getpathelmdata; + pathtf->onactivate = args->onactivate; + pathtf->onactivatedata = args->onactivatedata; + pathtf->ondragcomplete = args->ondragcomplete; + pathtf->ondragcompletedata = args->ondragcompletedata; + pathtf->ondragstart = args->ondragstart; + pathtf->ondragstartdata = args->ondragstartdata; + pathtf->ondrop = args->ondrop; + pathtf->ondropdata = args->ondropsdata; if(!pathtf->getpathelm) { pathtf->getpathelm = default_pathelm_func; @@ -940,7 +940,7 @@ pathtf->stack = gtk_stack_new(); gtk_widget_set_name(pathtf->stack, "path-textfield-box"); - UI_APPLY_LAYOUT1(current, args); + UI_APPLY_LAYOUT2(current, args); current->container->add(current->container, pathtf->stack, FALSE); pathtf->entry_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); @@ -973,7 +973,7 @@ gtk_stack_set_visible_child(GTK_STACK(pathtf->stack), pathtf->entry_box); - UiVar* var = uic_widget_var(obj->ctx, current->ctx, args.value, args.varname, UI_VAR_STRING); + UiVar* var = uic_widget_var(obj->ctx, current->ctx, args->value, args->varname, UI_VAR_STRING); if (var) { UiString* value = (UiString*)var->value; value->obj = pathtf; @@ -1076,22 +1076,22 @@ return bb; } -UIWIDGET ui_path_textfield_create(UiObject* obj, UiPathTextFieldArgs args) { +UIWIDGET ui_path_textfield_create(UiObject* obj, UiPathTextFieldArgs *args) { UiObject* current = uic_current_obj(obj); UiPathTextField *pathtf = malloc(sizeof(UiPathTextField)); memset(pathtf, 0, sizeof(UiPathTextField)); pathtf->obj = obj; - pathtf->getpathelm = args.getpathelm; - pathtf->getpathelmdata = args.getpathelmdata; - pathtf->onactivate = args.onactivate; - pathtf->onactivatedata = args.onactivatedata; - pathtf->ondragcomplete = args.ondragcomplete; - pathtf->ondragcompletedata = args.ondragcompletedata; - pathtf->ondragstart = args.ondragstart; - pathtf->ondragstartdata = args.ondragstartdata; - pathtf->ondrop = args.ondrop; - pathtf->ondropdata = args.ondropsdata; + pathtf->getpathelm = args->getpathelm; + pathtf->getpathelmdata = args->getpathelmdata; + pathtf->onactivate = args->onactivate; + pathtf->onactivatedata = args->onactivatedata; + pathtf->ondragcomplete = args->ondragcomplete; + pathtf->ondragcompletedata = args->ondragcompletedata; + pathtf->ondragstart = args->ondragstart; + pathtf->ondragstartdata = args->ondragstartdata; + pathtf->ondrop = args->ondrop; + pathtf->ondropdata = args->ondropsdata; if(!pathtf->getpathelm) { pathtf->getpathelm = default_pathelm_func; @@ -1112,7 +1112,7 @@ G_CALLBACK(ui_path_textfield_destroy), pathtf); - UI_APPLY_LAYOUT1(current, args); + UI_APPLY_LAYOUT2(current, args); current->container->add(current->container, eventbox, FALSE); // hbox as parent for the GtkEntry and GtkButtonBox @@ -1137,7 +1137,7 @@ G_CALLBACK(ui_path_textfield_key_press), pathtf); - UiVar* var = uic_widget_var(obj->ctx, current->ctx, args.value, args.varname, UI_VAR_STRING); + UiVar* var = uic_widget_var(obj->ctx, current->ctx, args->value, args->varname, UI_VAR_STRING); if (var) { UiString* value = (UiString*)var->value; value->obj = pathtf;