--- a/ui/qt/window.cpp Fri Aug 08 21:20:08 2025 +0200 +++ b/ui/qt/window.cpp Sat Aug 09 18:42:26 2025 +0200 @@ -39,6 +39,7 @@ #include <QFileDialog> #include <QPushButton> #include <QDockWidget> +#include <QMessageBox> static UiObject* create_window(const char *title, void *window_data, bool simple, bool sidebar = false) { UiObject *obj = uic_object_new_toplevel(); @@ -80,10 +81,52 @@ return create_window(title, window_data, true); } - UiObject *ui_sidebar_window(const char *title, void *window_data) { - return create_window(title, window_data, false, true); - } +UiObject *ui_sidebar_window(const char *title, void *window_data) { + return create_window(title, window_data, false, true); +} +void ui_dialog_create(UiObject *parent, UiDialogArgs *args) { + if(args->input || args->password) { + // TODO: QInputDialog + } else { + QMessageBox msgBox; + if(args->title) { + msgBox.setWindowTitle(args->title); + } + if(args->content) { + msgBox.setText(args->content); + } + QPushButton *btn1; + QPushButton *btn2; + if(args->button1_label) { + btn1 = msgBox.addButton(args->button1_label, QMessageBox::ActionRole); + } + if(args->button2_label) { + btn2 = msgBox.addButton(args->button2_label, QMessageBox::ActionRole); + } + if(args->closebutton_label) { + msgBox.addButton(args->closebutton_label, QMessageBox::DestructiveRole); + } + + msgBox.exec(); + + UiEvent evt; + evt.obj = parent; + evt.document = evt.obj->ctx->document; + evt.window = evt.obj->window; + evt.eventdata = NULL; + evt.eventdatatype = 0; + evt.intval = 0; + if(msgBox.clickedButton() == btn1) { + evt.intval = 1; + } else if(msgBox.clickedButton() == btn2) { + evt.intval = 2; + } + if(args->result) { + args->result(&evt, args->resultdata); + } + } +} char* ui_openfiledialog(UiObject *obj) { QString fileName = QFileDialog::getOpenFileName(obj->widget);