--- a/ui/gtk/text.c Sun Sep 15 20:59:48 2024 +0200 +++ b/ui/gtk/text.c Mon Sep 16 22:09:32 2024 +0200 @@ -82,17 +82,17 @@ G_CALLBACK(ui_textarea_destroy), uitext); - GtkWidget *scroll_area = gtk_scrolled_window_new (NULL, NULL); + GtkWidget *scroll_area = SCROLLEDWINDOW_NEW(); gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW(scroll_area), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); // GTK_POLICY_ALWAYS - gtk_container_add(GTK_CONTAINER(scroll_area), text_area); + SCROLLEDWINDOW_SET_CHILD(scroll_area, text_area); // font and padding PangoFontDescription *font; font = pango_font_description_from_string("Monospace"); - gtk_widget_modify_font(text_area, font); + //gtk_widget_modify_font(text_area, font); // TODO pango_font_description_free(font); gtk_text_view_set_left_margin(GTK_TEXT_VIEW(text_area), 2); @@ -180,7 +180,7 @@ } UIWIDGET ui_textarea_gettextwidget(UIWIDGET textarea) { - return gtk_bin_get_child(GTK_BIN(textarea)); + return SCROLLEDWINDOW_GET_CHILD(textarea); } char* ui_textarea_get(UiText *text) { @@ -557,7 +557,10 @@ uitext); if(args.width > 0) { + // TODO: gtk4 +#if GTK_MAJOR_VERSION <= 3 gtk_entry_set_width_chars(GTK_ENTRY(textfield), args.width); +#endif } if(frameless) { // TODO: gtk2legacy workaroud @@ -573,7 +576,7 @@ if(var) { UiString *value = var->value; if(value->value.ptr) { - gtk_entry_set_text(GTK_ENTRY(textfield), value->value.ptr); + ENTRY_SET_TEXT(textfield, value->value.ptr); value->value.free(value->value.ptr); value->value.ptr = NULL; value->value.free = NULL; @@ -631,13 +634,13 @@ if(str->value.ptr) { str->value.free(str->value.ptr); } - str->value.ptr = g_strdup(gtk_entry_get_text(str->obj)); + str->value.ptr = g_strdup(ENTRY_GET_TEXT(str->obj)); str->value.free = (ui_freefunc)g_free; return str->value.ptr; } void ui_textfield_set(UiString *str, const char *value) { - gtk_entry_set_text(str->obj, value); + ENTRY_SET_TEXT(str->obj, value); if(str->value.ptr) { str->value.free(str->value.ptr); str->value.ptr = NULL; @@ -688,6 +691,16 @@ return elms; } + +#if GTK_MAJOR_VERSION >= 4 + +UIWIDGET ui_path_textfield_create(UiObject* obj, UiPathTextFieldArgs args) { + // TODO + return NULL; +} + +#else + static gboolean path_textfield_btn_pressed(GtkWidget *widget, GdkEventButton *event, UiPathTextField *pathtf) { gtk_box_pack_start(GTK_BOX(pathtf->hbox), pathtf->entry, TRUE, TRUE, 0); gtk_container_remove(GTK_CONTAINER(pathtf->hbox), pathtf->buttonbox); @@ -932,3 +945,5 @@ str->value.free = NULL; } } + +#endif