| 
									
										
										
										
											2023-03-29 15:02:13 -04:00
										 |  |  | <!DOCTYPE html> | 
					
						
							|  |  |  | <html> | 
					
						
							|  |  |  |   <head> | 
					
						
							|  |  |  |     <meta charset="UTF-8" /> | 
					
						
							|  |  |  |     <title>Drag and drop files</title> | 
					
						
							|  |  |  |   </head> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   <body> | 
					
						
							|  |  |  |     <div> | 
					
						
							|  |  |  |       <h1>Drag and drop files</h1> | 
					
						
							|  |  |  |       <div>Supports: Win, macOS, Linux <span>|</span> Process: Both</div> | 
					
						
							|  |  |  |       <h3> | 
					
						
							|  |  |  |         Electron supports dragging files and content out from web content into | 
					
						
							|  |  |  |         the operating system's world. | 
					
						
							|  |  |  |       </h3> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       <p> | 
					
						
							|  |  |  |         Open the | 
					
						
							| 
									
										
										
										
											2023-08-10 11:55:52 +02:00
										 |  |  |         <a href="https://www.electronjs.org/docs/latest/tutorial/native-file-drag-drop"> | 
					
						
							| 
									
										
										
										
											2023-03-29 15:02:13 -04:00
										 |  |  |           full API documentation (opens in new window) | 
					
						
							|  |  |  |         </a> | 
					
						
							|  |  |  |         in your browser. | 
					
						
							|  |  |  |       </p> | 
					
						
							|  |  |  |     </div> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     <div> | 
					
						
							|  |  |  |       <div> | 
					
						
							|  |  |  |         <h2>Dragging files</h2> | 
					
						
							|  |  |  |         <div> | 
					
						
							|  |  |  |           <div> | 
					
						
							|  |  |  |             <a href="#" id="drag-file-link">Drag Demo</a> | 
					
						
							|  |  |  |           </div> | 
					
						
							|  |  |  |           <p> | 
					
						
							|  |  |  |             Click and drag the link above to copy the renderer process | 
					
						
							|  |  |  |             javascript file on to your machine. | 
					
						
							|  |  |  |           </p> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |           <p> | 
					
						
							|  |  |  |             In this demo, the <code>webContents.startDrag()</code> API is called | 
					
						
							|  |  |  |             in response to the <code>ondragstart</code> event. | 
					
						
							|  |  |  |           </p> | 
					
						
							|  |  |  |           <h5>Renderer Process</h5> | 
					
						
							|  |  |  |           <pre><code> | 
					
						
							|  |  |  | const {ipcRenderer} = require('electron') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const dragFileLink = document.getElementById('drag-file-link') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | dragFileLink.addEventListener('dragstart', (event) => { | 
					
						
							|  |  |  |   event.preventDefault() | 
					
						
							|  |  |  |   ipcRenderer.send('ondragstart', __filename) | 
					
						
							|  |  |  | }) | 
					
						
							|  |  |  |         </code></pre> | 
					
						
							|  |  |  |           <h5>Main Process</h5> | 
					
						
							|  |  |  |           <pre> | 
					
						
							|  |  |  |             <code> | 
					
						
							|  |  |  | const {ipcMain} = require('electron') | 
					
						
							|  |  |  | const path = require('path') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ipcMain.on('ondragstart', (event, filepath) => { | 
					
						
							|  |  |  |   const iconName = 'codeIcon.png' | 
					
						
							|  |  |  |   event.sender.startDrag({ | 
					
						
							|  |  |  |     file: filepath, | 
					
						
							|  |  |  |     icon: path.join(__dirname, iconName) | 
					
						
							|  |  |  |   }) | 
					
						
							|  |  |  | }) | 
					
						
							|  |  |  |             </code></pre> | 
					
						
							|  |  |  |         </div> | 
					
						
							|  |  |  |       </div> | 
					
						
							|  |  |  |     </div> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-29 21:52:16 +02:00
										 |  |  |     <script src="renderer.js"></script> | 
					
						
							| 
									
										
										
										
											2023-03-29 15:02:13 -04:00
										 |  |  |   </body> | 
					
						
							|  |  |  | </html> |