Initial hotkey infra

- Duplicate keyhandler into hotkeyhandler
- Define some view to handle hot keys, like AppView and MenuBarView
- Catalog app binds some menus to hot keys
- Bind all normal keys a-z with alt
- Relates #823
- Relates #826
This commit is contained in:
Janne Valkealahti
2023-08-10 08:27:49 +01:00
parent 9e6da01351
commit 7391d0d24f
8 changed files with 141 additions and 10 deletions

View File

@@ -46,6 +46,7 @@ import org.springframework.shell.component.view.control.cell.ListCell;
import org.springframework.shell.component.view.event.EventLoop;
import org.springframework.shell.component.view.event.KeyEvent;
import org.springframework.shell.component.view.event.KeyEvent.Key;
import org.springframework.shell.component.view.event.KeyEvent.KeyMask;
import org.springframework.shell.component.view.geom.Rectangle;
import org.springframework.shell.component.view.message.ShellMessageBuilder;
import org.springframework.shell.component.view.screen.Screen;
@@ -281,11 +282,13 @@ public class Catalog {
.toArray(MenuItem[]::new);
MenuBarView menuBar = MenuBarView.of(
MenuBarItem.of("File",
MenuItem.of("Quit", MenuItemCheckStyle.NOCHECK, quitAction)),
MenuItem.of("Quit", MenuItemCheckStyle.NOCHECK, quitAction))
.setHotKey(Key.f | KeyMask.AltMask),
MenuBarItem.of("Theme",
themeItems),
themeItems)
.setHotKey(Key.t | KeyMask.AltMask),
MenuBarItem.of("Help",
MenuItem.of("About"))
MenuItem.of("About"))
);
menuBar.setThemeResolver(themeResolver);