ui/qt/window.cpp

changeset 690
c1fc788d982d
parent 688
a3a057c0a0b6
child 822
54e43e4efac2
--- 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);

mercurial