electron/docs/api/dialog.md

98 lines
3.5 KiB
Markdown
Raw Normal View History

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
2015-06-07 19:32:54 +00:00
applications can deliver the same user experience as 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' ]}));
```
2015-06-07 19:32:54 +00: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.
## 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
* `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
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-08-06 07:00:31 +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(filenames)`
2015-06-07 19:32:54 +00: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
`['openFile', 'openDirectory']` on these platforms, a directory selector will be shown.
2013-08-14 22:43:35 +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
2015-06-07 19:32:54 +00:00
On success, returns the path of the 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.
2015-06-07 19:32:54 +00:00
If a `callback` is passed, the API call will be asynchronous and the result
will be passed via `callback(filename)`
2013-08-14 22:43:35 +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"`, `"error"`, `"question"` or `"warning"`
2013-08-14 22:43:35 +00: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 05:52:28 +00:00
* `icon` [NativeImage](native-image.md)
2015-07-07 10:51:49 +00: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
buttons. On OS X and Windows the index of "Cancel" button will always be
used as `cancelId`, not matter whether it is already specified.
2014-03-13 06:09:30 +00:00
* `callback` Function
2013-08-14 22:43:35 +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
2015-06-07 19:32:54 +00:00
If a `callback` is passed, the API call will be asynchronous and the result
will be passed via `callback(response)`
## 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.