ui/gtk/text.c

changeset 594
fc854e0ab924
parent 506
02ddf1044cbc
child 659
d6baaa93f7be
--- 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;

mercurial