2013-09-09 07:35:57 +00:00
# dialog
2013-08-14 22:43:35 +00:00
2014-03-13 06:09:30 +00:00
The `dialog` module provides APIs to show native system dialogs, so web
2013-08-29 14:37:51 +00:00
applications can get the same user experience with native applications.
2013-08-14 22:43:35 +00: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' ]}));
```
2014-07-11 22:35:41 +00:00
**Note for OS X**: If you want to present dialogs as sheets, the only thing you have to do is to provide a `BrowserWindow` reference in the `browserWindow` parameter.
2014-09-06 10:55:01 +00:00
## dialog.showOpenDialog([browserWindow], [options], [callback])
2013-08-14 22:43:35 +00:00
2014-03-13 06:09:30 +00:00
* `browserWindow` BrowserWindow
2013-08-14 22:43:35 +00:00
* `options` Object
* `title` String
2014-03-13 06:09:30 +00:00
* `defaultPath` String
2014-08-06 07:00:31 +00:00
* `filters` Array
2013-08-29 14:37:51 +00:00
* `properties` Array - Contains which features the dialog should use, can
contain `openFile` , `openDirectory` , `multiSelections` and
`createDirectory`
2014-03-13 06:09:30 +00:00
* `callback` Function
2013-08-14 22:43:35 +00:00
2013-08-29 14:37:51 +00:00
On success, returns an array of file paths chosen by the user, otherwise
returns `undefined` .
2013-08-14 22:43:35 +00:00
2014-08-06 07:00:31 +00: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'] },
{ name: 'Custom File Type', extensions: ['as'] },
],
}
```
2014-03-13 06:09:30 +00:00
If a `callback` is passed, the API call would be asynchronous and the result
would be passed via `callback(filenames)`
**Note:** On Windows and Linux, an open dialog could not be both file selector
and directory selector at the same time, so if you set `properties` to
`['openFile', 'openDirectory']` on these platforms, a directory selector would
be showed.
2013-08-14 22:43:35 +00:00
2014-09-06 10:55:01 +00:00
## dialog.showSaveDialog([browserWindow], [options], [callback])
2013-08-14 22:43:35 +00:00
* `browserWindow` BrowserWindow
* `options` Object
* `title` String
* `defaultPath` String
2014-08-06 07:00:31 +00:00
* `filters` Array
2014-03-13 06:09:30 +00:00
* `callback` Function
2013-08-14 22:43:35 +00:00
2013-08-29 14:37:51 +00:00
On success, returns the path of file chosen by the user, otherwise returns
`undefined` .
2013-08-14 22:43:35 +00:00
2014-08-06 07:00:31 +00:00
The `filters` specifies an array of file types that can be displayed, see
`dialog.showOpenDialog` for an example.
2014-03-13 06:09:30 +00:00
If a `callback` is passed, the API call would be asynchronous and the result
would be passed via `callback(filename)`
2013-08-14 22:43:35 +00:00
2014-09-06 10:55:01 +00:00
## dialog.showMessageBox([browserWindow], [options], [callback])
2013-08-14 22:43:35 +00:00
* `browserWindow` BrowserWindow
* `options` Object
* `type` String - Can be `"none"` , `"info"` or `"warning"`
* `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-01-05 23:30:54 +00:00
* `icon` [Image ](image.md )
2014-03-13 06:09:30 +00:00
* `callback` Function
2013-08-14 22:43:35 +00:00
2013-08-29 14:37:51 +00: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 22:43:35 +00:00
2014-03-13 06:09:30 +00:00
If a `callback` is passed, the API call would be asynchronous and the result
would be passed via `callback(response)`
2015-01-05 05:56:45 +00: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.