2013-09-09 15:35:57 +08:00
|
|
|
# dialog
|
2013-08-14 15:43:35 -07:00
|
|
|
|
2014-03-13 14:09:30 +08:00
|
|
|
The `dialog` module provides APIs to show native system dialogs, so web
|
2015-06-07 15:32:54 -04:00
|
|
|
applications can deliver the same user experience as native applications.
|
2013-08-14 15:43:35 -07:00
|
|
|
|
|
|
|
An example of showing a dialog to select multiple files and directories:
|
|
|
|
|
|
|
|
```javascript
|
|
|
|
var win = ...; // window in which to show the dialog
|
|
|
|
var dialog = require('dialog');
|
|
|
|
console.log(dialog.showOpenDialog({ properties: [ 'openFile', 'openDirectory', 'multiSelections' ]}));
|
|
|
|
```
|
|
|
|
|
2015-08-22 05:09:37 +03:00
|
|
|
**Note for OS X**: If you want to present dialogs as sheets, the only thing you
|
|
|
|
have to do is provide a `BrowserWindow` reference in the `browserWindow`
|
|
|
|
parameter.
|
2014-07-12 00:35:41 +02:00
|
|
|
|
2014-09-06 18:55:01 +08:00
|
|
|
## dialog.showOpenDialog([browserWindow], [options], [callback])
|
2013-08-14 15:43:35 -07:00
|
|
|
|
2014-03-13 14:09:30 +08:00
|
|
|
* `browserWindow` BrowserWindow
|
2013-08-14 15:43:35 -07:00
|
|
|
* `options` Object
|
|
|
|
* `title` String
|
2014-03-13 14:09:30 +08:00
|
|
|
* `defaultPath` String
|
2014-08-06 15:00:31 +08:00
|
|
|
* `filters` Array
|
2013-08-29 16:37:51 +02:00
|
|
|
* `properties` Array - Contains which features the dialog should use, can
|
|
|
|
contain `openFile`, `openDirectory`, `multiSelections` and
|
|
|
|
`createDirectory`
|
2014-03-13 14:09:30 +08:00
|
|
|
* `callback` Function
|
2013-08-14 15:43:35 -07:00
|
|
|
|
2013-08-29 16:37:51 +02:00
|
|
|
On success, returns an array of file paths chosen by the user, otherwise
|
|
|
|
returns `undefined`.
|
2013-08-14 15:43:35 -07:00
|
|
|
|
2014-08-06 15:00:31 +08:00
|
|
|
The `filters` specifies an array of file types that can be displayed or
|
|
|
|
selected, an example is:
|
|
|
|
|
|
|
|
```javascript
|
|
|
|
{
|
|
|
|
filters: [
|
|
|
|
{ name: 'Images', extensions: ['jpg', 'png', 'gif'] },
|
|
|
|
{ name: 'Movies', extensions: ['mkv', 'avi', 'mp4'] },
|
2015-08-21 21:18:37 +03:00
|
|
|
{ name: 'Custom File Type', extensions: ['as'] },
|
|
|
|
{ name: 'All Files', extensions: ['*'] }
|
2015-06-09 17:59:53 +02:00
|
|
|
]
|
2014-08-06 15:00:31 +08:00
|
|
|
}
|
|
|
|
```
|
2015-08-22 05:09:37 +03:00
|
|
|
The `extensions` array should contain extensions without wildcards or dots (e.g.
|
|
|
|
`'png'` is good, `'.png'` and `'*.png'` are bad). To show all files, use the
|
|
|
|
`'*'` wildcard (no other wildcard is supported).
|
2014-08-06 15:00:31 +08:00
|
|
|
|
2014-03-13 14:09:30 +08:00
|
|
|
If a `callback` is passed, the API call would be asynchronous and the result
|
|
|
|
would be passed via `callback(filenames)`
|
|
|
|
|
2015-06-07 15:32:54 -04:00
|
|
|
**Note:** On Windows and Linux, an open dialog can not be both a file selector
|
|
|
|
and a directory selector, so if you set `properties` to
|
2015-08-22 05:09:37 +03:00
|
|
|
`['openFile', 'openDirectory']` on these platforms, a directory selector will be
|
|
|
|
shown.
|
2013-08-14 15:43:35 -07:00
|
|
|
|
2014-09-06 18:55:01 +08:00
|
|
|
## dialog.showSaveDialog([browserWindow], [options], [callback])
|
2013-08-14 15:43:35 -07:00
|
|
|
|
|
|
|
* `browserWindow` BrowserWindow
|
|
|
|
* `options` Object
|
|
|
|
* `title` String
|
|
|
|
* `defaultPath` String
|
2014-08-06 15:00:31 +08:00
|
|
|
* `filters` Array
|
2014-03-13 14:09:30 +08:00
|
|
|
* `callback` Function
|
2013-08-14 15:43:35 -07:00
|
|
|
|
2015-06-07 15:32:54 -04:00
|
|
|
On success, returns the path of the file chosen by the user, otherwise returns
|
2013-08-29 16:37:51 +02:00
|
|
|
`undefined`.
|
2013-08-14 15:43:35 -07:00
|
|
|
|
2014-08-06 15:00:31 +08:00
|
|
|
The `filters` specifies an array of file types that can be displayed, see
|
|
|
|
`dialog.showOpenDialog` for an example.
|
|
|
|
|
2015-06-07 15:32:54 -04:00
|
|
|
If a `callback` is passed, the API call will be asynchronous and the result
|
|
|
|
will be passed via `callback(filename)`
|
2013-08-14 15:43:35 -07:00
|
|
|
|
2015-03-25 19:20:32 +08:00
|
|
|
## dialog.showMessageBox([browserWindow], options, [callback])
|
2013-08-14 15:43:35 -07:00
|
|
|
|
|
|
|
* `browserWindow` BrowserWindow
|
|
|
|
* `options` Object
|
2015-08-22 05:09:37 +03:00
|
|
|
* `type` String - Can be `"none"`, `"info"`, `"error"`, `"question"` or
|
|
|
|
`"warning"`. On Windows, "question" displays the same icon as "info", unless
|
|
|
|
if you set an icon using the "icon" option
|
2013-08-14 15:43:35 -07:00
|
|
|
* `buttons` Array - Array of texts for buttons
|
|
|
|
* `title` String - Title of the message box, some platforms will not show it
|
|
|
|
* `message` String - Content of the message box
|
|
|
|
* `detail` String - Extra information of the message
|
2015-02-12 13:52:28 +08:00
|
|
|
* `icon` [NativeImage](native-image.md)
|
2015-07-07 18:51:49 +08:00
|
|
|
* `cancelId` Integer - The value will be returned when user cancels the dialog
|
|
|
|
instead of clicking the buttons of the dialog. By default it is the index
|
|
|
|
of the buttons that have "cancel" or "no" as label, or 0 if there is no such
|
2015-07-08 16:00:30 +08:00
|
|
|
buttons. On OS X and Windows the index of "Cancel" button will always be
|
2015-07-23 17:20:43 +08:00
|
|
|
used as `cancelId`, not matter whether it is already specified
|
|
|
|
* `noLink` Boolean - On Windows Electron would try to figure out which ones of
|
|
|
|
the `buttons` are common buttons (like "Cancel" or "Yes"), and show the
|
|
|
|
others as command links in the dialog, this can make the dialog appear in
|
|
|
|
the style of modern Windows apps. If you don't like this behavior, you can
|
|
|
|
specify `noLink` to `true`
|
2014-03-13 14:09:30 +08:00
|
|
|
* `callback` Function
|
2013-08-14 15:43:35 -07:00
|
|
|
|
2013-08-29 16:37:51 +02:00
|
|
|
Shows a message box, it will block until the message box is closed. It returns
|
|
|
|
the index of the clicked button.
|
2013-08-14 15:43:35 -07:00
|
|
|
|
2015-06-07 15:32:54 -04:00
|
|
|
If a `callback` is passed, the API call will be asynchronous and the result
|
|
|
|
will be passed via `callback(response)`
|
2015-01-04 21:56:45 -08:00
|
|
|
|
|
|
|
## dialog.showErrorBox(title, content)
|
|
|
|
|
|
|
|
Runs a modal dialog that shows an error message.
|
|
|
|
|
|
|
|
This API can be called safely before the `ready` event of `app` module emits, it
|
|
|
|
is usually used to report errors in early stage of startup.
|