cascading menus: actions triggered by short key sequences
e.g. I have a 10 item menu with 10 hotkeys: F1 - F10
Each of each these can load a submenu with up to 10 items also bound to F1 - F10.
And then again with 1 more level of depth.
Some keys may have depth of only 2 or even 1.
This gives me up to 1000 actions accessible with only 10 keys, and is great for less common actions - so I can have EVERYTHING bound to keys without running out of keys or problems with modifier collisions.
All menus are "click-thru" and invoked only via keys.
Depth 1:
F1 (primary rotation spam key)
Depth 2:
F4 (Heal submenu) -> F1 (SLOT1)
Depth 3:
F5 (Remove debuffs submenu) -> F2 (Decurse submenu) -> F1 (SLOT1)
Your brain will quickly learn the most common sequences, so you wont be looking at the menu except for the items you have not memorized yet.
If the menus can be triggered "On Press", then you can type e.g. F5 F2 F1 quite quickly.
Benefits:
* in-game documentation of your key->action mappings via the menu text
* a tree structure to organize your actions instead of a flat mess of keys
* retain most of the speed of a flat set of key bindings
* can still direct-bind spam keys (i.e. depth of 1)
In practice, I am doing this with a 4x5 menu grid on an OrbWeaver.
The popup menu grid is a very nice visual to match the OW keys.
Maybe half the keys are bound with depth of 1 (primary attacks etc)
The rest popup submenus varying from 1 - 4 rows.
Things looked very promising when I built the first few menus.
When I popup (menu action -> Load and the menu has "Popup" checked) a menu, the hotkeys I have defined for the menu are "overriding" existing HotKeys I have defined in keymaps. By "override" I mean that the actions on the menu are being triggered, while the actions from keymaps are not being triggered.
This is ideal behavior for what I am doing - I want transient modal popup menus.
And it means I do not need to disable existing keymaps or pause hotkeys of parent menus every time I popup a menu (and I will be popping up lots and lots of menus).
The first problems I had:
If the button to load a menu was triggered "On Press" then it behaved as "On Hold".
If I selected "On Hold" it did nothing. And if I used "On Release" it worked, but the key (I assume the Press event) fell thru to the active game window.
But then later when I created a barebones example from a clean ISboxer config, things behaved totally differently.
If I use "On Release" the popups work once only. After a menu item is invoked and the popup disappears, the parent menu keys no longer respond.
I tried sending an "unpause" menu action to the parent - added a hotkey outside the menu and manually pressed after the menu stopped responding.
Questions:
What is going on internally when I load a menu that has HotKeys which conflict with HKs from keymaps or other menus?
How are menu buttons supposed to behave with respect to the "On Press, On Release, Hold" ?
For this to work well, a popup menu needs to consume both the press and release of the HotKey bound to the button. Is there any way to do this?
Config:
http://www.privatepaste.com/9424748069