diff -r 00be546d3b38 -r 91d4f0391282 ui/gtk/text.c --- a/ui/gtk/text.c Sun Oct 13 14:02:43 2024 +0200 +++ b/ui/gtk/text.c Sun Oct 13 14:34:12 2024 +0200 @@ -62,8 +62,13 @@ } } -UIWIDGET ui_textarea_var(UiObject *obj, UiVar *var) { +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); + GtkWidget *text_area = gtk_text_view_new(); + ui_set_name_and_style(text_area, args.name, args.style_class); + gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(text_area), GTK_WRAP_WORD_CHAR); g_signal_connect( text_area, @@ -90,17 +95,17 @@ SCROLLEDWINDOW_SET_CHILD(scroll_area, text_area); // font and padding - PangoFontDescription *font; - font = pango_font_description_from_string("Monospace"); + //PangoFontDescription *font; + //font = pango_font_description_from_string("Monospace"); //gtk_widget_modify_font(text_area, font); // TODO - pango_font_description_free(font); + //pango_font_description_free(font); gtk_text_view_set_left_margin(GTK_TEXT_VIEW(text_area), 2); gtk_text_view_set_right_margin(GTK_TEXT_VIEW(text_area), 2); // add - UiContainer *ct = uic_get_current_container(obj); - ct->add(ct, scroll_area, TRUE); + UI_APPLY_LAYOUT1(current, args); + current->container->add(current->container, scroll_area, TRUE); // bind value UiText *value = var->value; @@ -160,25 +165,6 @@ free(textarea); } -UIWIDGET ui_textarea(UiObject *obj, UiText *value) { - UiVar *var = malloc(sizeof(UiVar)); - var->value = value; - var->type = UI_VAR_SPECIAL; - var->from = NULL; - var->from_ctx = NULL; - return ui_textarea_var(obj, var); -} - -UIWIDGET ui_textarea_nv(UiObject *obj, char *varname) { - UiVar *var = uic_create_var(obj->ctx, varname, UI_VAR_TEXT); - if(var) { - return ui_textarea_var(obj, var); - } else { - // TODO: error - } - return NULL; -} - UIWIDGET ui_textarea_gettextwidget(UIWIDGET textarea) { return SCROLLEDWINDOW_GET_CHILD(textarea); } @@ -571,8 +557,8 @@ gtk_entry_set_visibility(GTK_ENTRY(textfield), FALSE); } - UiContainer *ct = uic_get_current_container(obj); - ct->add(ct, textfield, FALSE); + UI_APPLY_LAYOUT1(current, args); + current->container->add(current->container, textfield, FALSE); if(var) { UiString *value = var->value;