19 lines
		
	
	
	
		
			538 B
			
		
	
	
	
		
			CoffeeScript
		
	
	
	
	
	
		
		
			
		
	
	
			19 lines
		
	
	
	
		
			538 B
			
		
	
	
	
		
			CoffeeScript
		
	
	
	
	
	
|   | nextCommandId = 0 | ||
|  | 
 | ||
|  | class MenuItem | ||
|  |   @types = ['normal', 'separator', 'submenu', 'checkbox', 'radio'] | ||
|  | 
 | ||
|  |   constructor: (options) -> | ||
|  |     {@type, @label, @sublabel, @click, @checked, @groupId, @submenu} = options | ||
|  | 
 | ||
|  |     @type = @type ? 'normal' | ||
|  |     @label = @label ? '' | ||
|  |     @sublabel = @sublabel ? '' | ||
|  | 
 | ||
|  |     throw new Error('Unknown menu type') if MenuItem.types.indexOf(@type) is -1 | ||
|  |     throw new Error('Invalid menu') if @type is 'submenu' and @submenu?.constructor.name isnt 'Menu' | ||
|  | 
 | ||
|  |     @commandId = ++nextCommandId | ||
|  | 
 | ||
|  | module.exports = MenuItem |