ui/qt/text.cpp

changeset 108
77254bd6dccb
parent 103
6606616eca9f
child 112
c3f2f16fa4b8
--- a/ui/qt/text.cpp	Sat Apr 05 17:57:04 2025 +0200
+++ b/ui/qt/text.cpp	Sun Jul 20 22:04:39 2025 +0200
@@ -57,16 +57,16 @@
     return document;
 }
 
-UIWIDGET ui_textarea_create(UiObject *obj, UiTextAreaArgs args) {
+UIWIDGET ui_textarea_create(UiObject *obj, UiTextAreaArgs *args) {
     UiContainerPrivate *ctn = ui_obj_container(obj);
     UI_APPLY_LAYOUT(ctn->layout, args);
     
     QTextEdit *textarea = new QTextEdit();
-    ctn->add(textarea, true);
+    ctn->add(textarea);
     
     QTextDocument *document = nullptr;
     
-    UiVar* var = uic_widget_var(obj->ctx, obj->ctx, args.value, args.varname, UI_VAR_STRING);
+    UiVar* var = uic_widget_var(obj->ctx, obj->ctx, args->value, args->varname, UI_VAR_STRING);
     if(var) {
         UiText *value = (UiText*)var->value;
         
@@ -201,23 +201,27 @@
 }
 
 void ui_textarea_remove(UiText *text, int begin, int end) {
-    // TODO
+    QTextDocument *doc = (QTextDocument*)text->data1;
+    QTextCursor cursor(doc);
+    cursor.setPosition(begin);
+    cursor.setPosition(end, QTextCursor::KeepAnchor);
+    cursor.removeSelectedText();
 }
 
 /* ------------------------------ TextField ------------------------------ */
 
-static UIWIDGET create_textfield(UiObject *obj, UiTextFieldArgs args, bool password, bool frameless) {
+static UIWIDGET create_textfield(UiObject *obj, UiTextFieldArgs *args, bool password, bool frameless) {
     UiContainerPrivate *ctn = ui_obj_container(obj);
     UI_APPLY_LAYOUT(ctn->layout, args);
     
     QLineEdit *textfield = new QLineEdit();
-    ctn->add(textfield, false);
+    ctn->add(textfield);
     
     if(password) {
         textfield->setEchoMode(QLineEdit::Password);
     }
     
-    UiVar* var = uic_widget_var(obj->ctx, obj->ctx, args.value, args.varname, UI_VAR_STRING);
+    UiVar* var = uic_widget_var(obj->ctx, obj->ctx, args->value, args->varname, UI_VAR_STRING);
     if(var) {
         UiString *value = (UiString*)var->value;
         if(value->value.ptr) {
@@ -237,15 +241,15 @@
     return textfield;
 }
 
-UIWIDGET ui_textfield_create(UiObject *obj, UiTextFieldArgs args) {
+UIWIDGET ui_textfield_create(UiObject *obj, UiTextFieldArgs *args) {
     return create_textfield(obj, args, false, false);
 }
 
-UIWIDGET ui_frameless_textfield_create(UiObject* obj, UiTextFieldArgs args) {
+UIWIDGET ui_frameless_textfield_create(UiObject* obj, UiTextFieldArgs *args) {
     return create_textfield(obj, args, false, true);
 }
 
-UIWIDGET ui_passwordfield_create(UiObject* obj, UiTextFieldArgs args) {
+UIWIDGET ui_passwordfield_create(UiObject* obj, UiTextFieldArgs *args) {
     return create_textfield(obj, args, true, false);
 }
 

mercurial