Menus¶
Menus¶
Menu = ‘menu’ <id:IDENT>? ‘{’ MenuChild* ‘}’ MenuChild = ( MenuSection | MenuSubmenu | MenuItemShorthand | MenuItem ) MenuSection = ‘section’ <id:IDENT>? ‘{’ ( MenuChild | MenuAttribute )* ‘}’ MenuSubmenu = ‘submenu’ <id:IDENT>? ‘{’ ( MenuChild | MenuAttribute )* ‘}’ MenuItem = ‘item’ ‘{’ MenuAttribute* ‘}’ MenuAttribute = <name:IDENT> ‘:’ StringValue ‘;’
Menus, such as the application menu, are defined using the menu
keyword. Menus have the type Gio.MenuModel and can be referenced by ID. They cannot be defined inline.
Example¶
menu my_menu {
submenu {
label: _("File");
item {
label: _("New");
action: "app.new";
icon: "document-new-symbolic";
}
}
}
MenuButton {
menu-model: my_menu;
}
Item Shorthand¶
MenuItemShorthand = ‘item’ ‘(’ StringValue ( ‘,’ ( StringValue ( ‘,’ StringValue? )? )? )? ‘)’
The most common menu attributes are label
, action
, and icon
. Because they’re so common, Blueprint provides a shorter syntax for menu items with just these properties.
Example¶
menu {
item ("label")
item ("label", "action")
item ("label", "action", "icon")
}