dialog.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. const {dialog} = require('electron');
  2. const dlg = {};
  3. dlg.messagePromise = function(title, content, type = '', buttons = ['Ok'], defaultButton = 0, attach = true) {
  4. const opts = {
  5. type: type,
  6. title: title,
  7. message: content,
  8. buttons: buttons,
  9. defaultId: defaultButton
  10. };
  11. if (attach) {
  12. return dialog.showMessageBox(mainWindow, opts);
  13. } else {
  14. return dialog.showMessageBox(opts);
  15. }
  16. }
  17. dlg.message = function(title, content, type = 'info', buttons = ['Ok'], defaultButton = 0, attach = true, callback = null) {
  18. const promise = dlg.messagePromise(title, content, type, buttons, defaultButton, attach);
  19. if (callback !== null) {
  20. promise.then(data => {
  21. callback(data.response, buttons[data.response]);
  22. });
  23. }
  24. }
  25. dlg.fileSelectorPromise = function(openFile = true, openDir = false, filters = [{name: 'Tous les fichiers', extensions: ['*']}]) {
  26. const opts = {
  27. properties: [],
  28. filters: filters
  29. }
  30. if (openFile) {
  31. opts.properties.push('openFile');
  32. }
  33. if (openDir) {
  34. opts.properties.push('openDirectory');
  35. }
  36. return dialog.showOpenDialog(opts)
  37. }
  38. dlg.fileSelector = function(openFile = true, openDir = false, filters = [{name: 'Tous les fichiers', extensions: ['*']}], callback = null) {
  39. const promise = dlg.fileSelectorPromise(openFile, openDir, filters);
  40. if (callback !== null) {
  41. promise.then(data => {
  42. callback(data.canceled, data.filePaths[0]);
  43. });
  44. }
  45. }
  46. dlg.error = function (title, content) {
  47. dialog.showErrorBox(title, content);
  48. }
  49. module.exports = dlg;