ui/gtk/text.c

branch
newapi
changeset 335
91d4f0391282
parent 326
3968180cdfb0
--- 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;

mercurial