A web application starts with an empty Menu Bar. Using wa
we can create menus and register callbacks for the menu events.
Use wa.window.createMenu(menu)
to create and add the menu to the menu bar.
The parameter menu
is a plain object with the structure of your menu.
var menu ={
"label": "File",
"tag": "fileMenu",
"menu": "menubar",
"submenus": [
{
"label": "Open",
"tag": "dothis",
"shortcut": "Cmd-O"
}
]
};
wa.window.createMenu( menu );
The menu
object requires the following keys:
tag
key is a unique string to identify your menu. We use this tag to identify the menu when handling a menu event. REQUIRED
A tag
label
key is the actual caption that will be displayed on the menu. REQUIRED
menu
key tells Deskframe where to insert this menu. Specify a menu using it'stag
value or use the special tag"menubar"
to add the menu to your applications menu bar. REQUIRED
submenus
key is an array of child menus. Each entry in this array follow the same structure as themenu
object. OPTIONAL
shortcut
key specifies the keyboard shortcut of a menu. This entry only applies to sub-menus. OPTIONAL
Non-printable keys are represented with the following:Use a dash to combine keys like"Cmd"
which will use the command key on Mac or the control key on Windows.
"Ctrl"
,"Shift"
,"Enter"
,"Space"
,"Del"
,"Bksp"
,
"Return"
,"Esc"
,"Clear"
,"PageUp"
,"PageDown"
,"Tab"
"Left"
,"Right"
,"Up"
,"Down"
,"Help"
, and"Ins"
(Insert)."Cmd-Shift-M"
.
The easiest way to handle a menu action is to set the callback
property when you define your menu and submenus with wa.window.createMenu()
.
Another route is to add an event listener for the event menuAction
.
window.addEventListener("menuAction", function(o){
wa.log("got menuAction for [" + o.tag + "]" );
if(o.tag == "dothis"){
wa.log("menu dothis");
}
});