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-06-07 15:32:54 -04: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'] },
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    { name: 'Custom File Type', extensions: ['as'] },
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  ],
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											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
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								`['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 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  *  `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-02-12 13:52:28 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  *  `icon`  [NativeImage ](native-image.md )
							 
						 
					
						
							
								
									
										
										
										
											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.