Menu on canvas

This is an on-canvas menu with keyboard selection of items and nested levels.

Menu opens and closed with Escape. Control with arrow-keys or Tab/Shift+Tab and select with Enter.

Menu items perform actions, which are defined in callbacks when setting up the menu structure.