--- a/ui/qt/text.cpp Wed Mar 26 20:27:20 2025 +0100 +++ b/ui/qt/text.cpp Wed Mar 26 20:39:04 2025 +0100 @@ -32,164 +32,4 @@ #include "../common/context.h" #include "../common/document.h" -UIWIDGET ui_textarea(UiObject *obj, UiText *value) { - QTextDocument *txtdoc = value && value->obj ? (QTextDocument*)value->obj : new QTextDocument(); - - if(value) { - if(value->value && value->obj) { - QString str = QString::fromUtf8(value->value); - txtdoc->setPlainText(str); - } - - value->get = ui_textarea_get; - value->set = ui_textarea_set; - value->getsubstr = ui_textarea_getsubstr; - value->insert = ui_textarea_insert; - value->setposition = ui_textarea_setposition; - value->position = ui_textarea_position; - value->selection = ui_textarea_selection; - value->length = ui_textarea_length; - value->remove = ui_textarea_remove; - value->obj = txtdoc; - value->value = NULL; - } - - UiContainer *ct = uic_get_current_container(obj); - QTextEdit *textedit = new QTextEdit(); - textedit->setDocument(txtdoc); - ct->add(textedit, true); - - return textedit; -} -UIWIDGET ui_textarea_nv(UiObject *obj, char *varname) { - UiVar *var = uic_connect_var(obj->ctx, varname, UI_VAR_TEXT); - if(var) { - UiText *value = (UiText*)var->value; - return ui_textarea(obj, value); - } else { - // TODO: error - } - return NULL; -} - - -char* ui_textarea_get(UiText *text) { - if(text->value) { - free(text->value); - } - - QTextDocument *doc = (QTextDocument*)text->obj; - QString str = doc->toPlainText(); - QByteArray array = str.toLocal8Bit(); - const char *cstr = array.constData(); - - if(text->value) { - free(text->value); - } - text->value = strdup(cstr); - return text->value; -} - -void ui_textarea_set(UiText *text, char *str) { - // set text - QTextDocument *doc = (QTextDocument*)text->obj; - QString qstr = QString::fromUtf8(str); - doc->setPlainText(qstr); - // cleanup - if(text->value) { - free(text->value); - } - text->value = NULL; -} - -char* ui_textarea_getsubstr(UiText *text, int begin, int end) { - QTextDocument *doc = (QTextDocument*)text->obj; - return NULL; // TODO -} - -void ui_textarea_insert(UiText *text, int pos, char *str) { - QTextDocument *doc = (QTextDocument*)text->obj; -} - -void ui_textarea_setposition(UiText *text, int pos) { - // TODO -} - -int ui_textarea_position(UiText *text) { - QTextDocument *doc = (QTextDocument*)text->obj; - return 0; // TODO -} - -void ui_textarea_selection(UiText *text, int *begin, int *end) { - QTextDocument *doc = (QTextDocument*)text->obj; -} - -int ui_textarea_length(UiText *text) { - QTextDocument *doc = (QTextDocument*)text->obj; - return 0; // TODO -} - -void ui_textarea_remove(UiText *text, int begin, int end) { - QTextDocument *doc = (QTextDocument*)text->obj; -} - - -/* ------------------- TextField ------------------- */ - -UIWIDGET ui_textfield(UiObject *obj, UiString *value) { - QLineEdit *textfield = new QLineEdit(); - - UiContainer *ct = uic_get_current_container(obj); - ct->add(textfield, false); - - if(value) { - if(value->value) { - QString str = QString::fromUtf8(value->value); - textfield->setText(str); - free(value->value); - value->value = NULL; - } - value->set = ui_textfield_set; - value->get = ui_textfield_get; - value->obj = textfield; - } - - return textfield; -} - -UIWIDGET ui_textfield_nv(UiObject *obj, char *varname) { - UiVar *var = uic_connect_var(obj->ctx, varname, UI_VAR_STRING); - if(var) { - UiString *value = (UiString*)var->value; - return ui_textfield(obj, value); - } else { - // TODO: error - } - return NULL; -} - -char* ui_textfield_get(UiString *str) { - QLineEdit *textfield = (QLineEdit*)str->obj; - QString qstr = textfield->text(); - - if(str->value) { - free(str->value); - } - QByteArray array = qstr.toLocal8Bit(); - const char *cstr = array.constData(); - str->value = strdup(cstr); - - return str->value; -} - -void ui_textfield_set(UiString *str, char *value) { - QLineEdit *textfield = (QLineEdit*)str->obj; - QString qstr = QString::fromUtf8(value); - textfield->setText(qstr); - - if(str->value) { - free(str->value); - } - str->value = NULL; -}