Ver código fonte

Gestion des dialogues

Arthur Brandao 5 anos atrás
pai
commit
677f0903c9
2 arquivos alterados com 36 adições e 8 exclusões
  1. 8 8
      app/main/application-menu.js
  2. 28 0
      app/main/function/dialog.js

+ 8 - 8
app/main/application-menu.js

@@ -1,5 +1,6 @@
-const {Menu, shell, dialog} = require('electron');
+const {Menu, shell} = require('electron');
 const func = require('./function/menu');
+const dialog = require('./function/dialog');
 const demo = require('./function/demo-application-menu');
 
 let template = [
@@ -107,13 +108,12 @@ let template = [
       {
         label: 'Versions',
         click: () => {
-          const opts = {
-            'type': 'info',
-            'title': 'Versions',
-            'message': `Electron : ${process.versions.electron}\nChrome : ${process.versions.chrome}\nNode : ${process.versions.node}`,
-            'buttons': ['Fermer']
-          };
-          dialog.showMessageBox(mainWindow, opts);
+          dialog.message(
+            'Versions',
+            `Electron : ${process.versions.electron}\nChrome : ${process.versions.chrome}\nNode : ${process.versions.node}`,
+            'info',
+            ['Fermer']
+          );
         }
       }
     ]

+ 28 - 0
app/main/function/dialog.js

@@ -0,0 +1,28 @@
+const {dialog} = require('electron');
+const obj = {};
+
+obj.messagePromise = function(title, content, type = '', buttons = ['Ok'], defaultButton = 0, attach = true) {
+    const opts = {
+        type: type,
+        title: title,
+        message: content,
+        buttons: buttons,
+        defaultId: defaultButton
+    };
+    if (attach) {
+        return dialog.showMessageBox(mainWindow, opts);
+    } else {
+        return dialog.showMessageBox(opts);
+    }
+}
+
+obj.message = function(title, content, type = 'info', buttons = ['Ok'], defaultButton = 0, attach = true, callback = null) {
+    const promise = obj.messagePromise(title, content, type, buttons, defaultButton, attach);
+    if (callback !== null) {
+        promise.then(data => {
+            callback(data.response, buttons[data.response]);
+        });
+    }
+}
+
+module.exports = obj;