| 
									
										
										
										
											2013-05-14 19:24:52 +08:00
										 |  |  | EventEmitter = require('events').EventEmitter | 
					
						
							| 
									
										
										
										
											2013-05-15 19:19:35 +08:00
										 |  |  | BrowserWindow = require 'browser_window' | 
					
						
							| 
									
										
										
										
											2013-05-14 19:24:52 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-16 10:54:37 +08:00
										 |  |  | bindings = process.atomBinding 'menu' | 
					
						
							|  |  |  | Menu = bindings.Menu | 
					
						
							| 
									
										
										
										
											2013-05-14 19:24:52 +08:00
										 |  |  | Menu::__proto__ = EventEmitter.prototype | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | popup = Menu::popup | 
					
						
							|  |  |  | Menu::popup = (window) -> | 
					
						
							| 
									
										
										
										
											2013-05-15 19:19:35 +08:00
										 |  |  |   throw new TypeError('Invalid window') unless window?.constructor is BrowserWindow | 
					
						
							| 
									
										
										
										
											2013-05-14 19:24:52 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |   popup.call this, window | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-14 22:17:25 +08:00
										 |  |  | insertSubMenu = Menu::insertSubMenu | 
					
						
							|  |  |  | Menu::insertSubMenu = (index, command_id, label, submenu) -> | 
					
						
							|  |  |  |   throw new TypeError('Invalid menu') unless submenu?.constructor is Menu | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   @menus = [] unless Array.isArray @menus | 
					
						
							|  |  |  |   @menus.push submenu # prevent submenu from getting destroyed
 | 
					
						
							|  |  |  |   insertSubMenu.apply this, arguments | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-14 19:24:52 +08:00
										 |  |  | Menu::appendItem = (args...) -> @insertItem -1, args... | 
					
						
							|  |  |  | Menu::appendCheckItem = (args...) -> @insertCheckItem -1, args... | 
					
						
							|  |  |  | Menu::appendRadioItem = (args...) -> @insertRadioItem -1, args... | 
					
						
							|  |  |  | Menu::appendSeparator = (args...) -> @insertSeparator -1, args... | 
					
						
							|  |  |  | Menu::appendSubMenu = (args...) -> @insertSubMenu -1, args... | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-16 10:54:37 +08:00
										 |  |  | Menu.setApplicationMenu = (menu) -> | 
					
						
							|  |  |  |   throw new TypeError('Invalid menu') unless menu?.constructor is Menu | 
					
						
							|  |  |  |   bindings.setApplicationMenu menu | 
					
						
							| 
									
										
										
										
											2013-05-16 17:25:02 +08:00
										 |  |  | Menu.sendActionToFirstResponder = bindings.sendActionToFirstResponder | 
					
						
							| 
									
										
										
										
											2013-05-16 10:54:37 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-05-14 19:24:52 +08:00
										 |  |  | module.exports = Menu |