Sat, 02 May 2026 18:07:12 +0200
implement textarea widget functions (QT)
| ui/qt/text.cpp | file | annotate | diff | comparison | revisions |
--- a/ui/qt/text.cpp Fri May 01 20:51:17 2026 +0200 +++ b/ui/qt/text.cpp Sat May 02 18:07:12 2026 +0200 @@ -96,6 +96,10 @@ return textarea; } +UIWIDGET ui_textarea_gettextwidget(UIWIDGET textarea) { + return textarea; +} + void ui_textarea_save(UiText *text) { // NOOP } @@ -189,10 +193,7 @@ void ui_textarea_setselection(UiText *text, int begin, int end) { QTextEdit *textview = (QTextEdit*)text->obj; - QTextCursor cursor = textview->textCursor(); - cursor.setPosition(begin, QTextCursor::MoveAnchor); - cursor.setPosition(end, QTextCursor::KeepAnchor); - textview->setTextCursor(cursor); + ui_textarea_set_selection(textview, begin, end); } int ui_textarea_length(UiText *text) { @@ -208,6 +209,56 @@ cursor.removeSelectedText(); } + +void ui_textarea_focus(UIWIDGET textarea) { + QTextEdit *edit = static_cast<QTextEdit*>(textarea); + edit->setFocus(); +} + +void ui_textarea_set_selection(UIWIDGET textarea, int begin, int end) { + QTextEdit *edit = static_cast<QTextEdit*>(textarea); + QTextCursor cursor = edit->textCursor(); + cursor.setPosition(begin, QTextCursor::MoveAnchor); + cursor.setPosition(end, QTextCursor::KeepAnchor); + edit->setTextCursor(cursor); +} + +void ui_textarea_select_all(UIWIDGET textarea) { + QTextEdit *edit = static_cast<QTextEdit*>(textarea); + edit->selectAll(); +} + +void ui_textarea_set_editable(UIWIDGET textarea, UiBool editable) { + QTextEdit *edit = static_cast<QTextEdit*>(textarea); + edit->setReadOnly(!editable); +} + +UiBool ui_textarea_is_editable(UIWIDGET textarea) { + QTextEdit *edit = static_cast<QTextEdit*>(textarea); + return !edit->isReadOnly(); +} + +void ui_textarea_set_position(UIWIDGET textarea, int pos) { + QTextEdit *edit = static_cast<QTextEdit*>(textarea); + QTextCursor cursor = edit->textCursor(); + cursor.setPosition(pos); + edit->setTextCursor(cursor); +} + +int ui_textarea_get_position(UIWIDGET textarea) { + QTextEdit *edit = static_cast<QTextEdit*>(textarea); + QTextCursor cursor = edit->textCursor(); + return cursor.position(); +} + +void ui_textarea_scroll_to(UIWIDGET textarea, int pos) { + QTextEdit *edit = static_cast<QTextEdit*>(textarea); + QTextCursor cursor = edit->textCursor(); + cursor.setPosition(pos); + edit->setTextCursor(cursor); + edit->ensureCursorVisible(); +} + /* ------------------------------ TextField ------------------------------ */ static UIWIDGET create_textfield(UiObject *obj, UiTextFieldArgs *args, bool password, bool frameless) {