ferronn-dev / ferronnizer

My personal WoW addon
MIT License
1 stars 0 forks source link

emote action board #80

Closed ferronn-dev closed 3 years ago

ferronn-dev commented 3 years ago

Some ideas:

ferronn-dev commented 3 years ago

Not just the arrangement of keybinds, but the swapping of them between the two tilings.

ferronn-dev commented 3 years ago

It's been two months since we've really engaged with this. Current state:

Things we should do next:

That will get us a working emote board, sans keybinds. Right now, keybinds are not in the action code at all except the UPDATE_BINDINGS event handler for setting the hotkey on the buttons. Moving keybinds around will probably result in a bunch of events being fired all the time etc which feels icky.

My current feeling on bindings is another layer of abstraction: introduce 48 hidden buttons that each click the corresponding button on the currently visible button page.

ferronn-dev commented 3 years ago

The whole "parent" thing may actually be unnecessary. We definitely need a notion of named "button pages" however. The entirety of the button page needs to be available in the header because of the manipulation that happens on page swaps and out-of-combat attr changes.

ferronn-dev commented 3 years ago

Okay! We now have the named button page concept, and divided actionids into action page names and indexes, and associated action page names with button pages, and have that threaded through everything so we have working emote buttons!

What we don't yet have are the keybindings. We still need to pick between changing keybindings or changing macrotext on phantom buttons.

ferronn-dev commented 3 years ago

Changing macrotext on phantom buttons seems more scalable since it doesn't involve causing the client to send a huge number of bindings events. Should be as straightforward as creating max(icon,text) buttons, giving them to the header, and then rewriting macrotext on button page changes, which the header already knows about.

ferronn-dev commented 3 years ago

fixed as of https://github.com/ferronn-dev/ferronnizer/tree/v149