/* This Source Code Form is subject to the terms of the Mozilla Public
* License , v . 2 . 0 . If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict" ;
/**
* A partial implementation of the MenuItem API provided by electron :
* https : //github.com/electron/electron/blob/master/docs/api/menu-item.md.
*
* See constructor for implemented feature .
* Missing features :
* - id String - Unique within a single menu . If defined then it can be used
* as a reference to this item by the position attribute .
* - role String - Define the action of the menu item ; when specified the
* click property will be ignored
* - sublabel String
* - accelerator Accelerator
* - position String - This field allows fine - grained definition of the
* specific location within a given menu .
*
*/
class MenuItem {
/**
* Implemented features :
*
* @ param { object } options
* @ param { string } options . accelerator
* Text that appears beside the menu label to indicate the shortcut key
* ( accelerator key ) to use to invoke the command .
* Unlike the Electron API , this is a label only and does not actually
* register a handler for the key .
* @ param { string } options . accesskey [ non - standard ]
* A single character used as the shortcut key . This should be one of the
* characters that appears in the label .
* @ param { Function } options . click
* Will be called with click ( menuItem , browserWindow ) when the menu item
* is clicked
* @ param { string } options . type
* Can be normal , separator , submenu , checkbox or radio
* @ param { string } options . label
* @ param { string } options . image
* @ param { boolean } options . enabled
* If false , the menu item will be greyed out and unclickable .
* @ param { boolean } options . checked
* Should only be specified for checkbox or radio type menu items .
* @ param { Menu } options . submenu
* Should be specified for submenu type menu items . If submenu is specified ,
* the type : ' submenu ' can be omitted .
* @ param { boolean } options . visible
* If false , the menu item will be entirely hidden .
*/
constructor({
accelerator =
null ,
accesskey =
null ,
l10nID =
null ,
checked =
false ,
click = () => {},
disabled =
false ,
hover = () => {},
id =
null ,
label =
"" ,
image =
null ,
submenu =
null ,
type =
"normal" ,
visible =
true ,
} = {}) {
this .accelerator = accelerator;
this .accesskey = accesskey;
this .l10nID = l10nID;
this .checked = checked;
this .click = click;
this .disabled = disabled;
this .hover = hover;
this .id = id;
this .label = label;
this .image = image;
this .submenu = submenu;
this .type = type;
this .visible = visible;
}
}
module.exports = MenuItem;
Messung V0.5 in Prozent C=95 H=90 G=92
¤ Dauer der Verarbeitung: 0.5 Sekunden
¤
*© Formatika GbR, Deutschland