WoW:Using bindings.xml to create key bindings for your addon
Jump to navigation
Jump to search
Example:
bindings.xml
<Bindings>
<Binding name="DOSTUFF" description="Default description" header="MYDOSTUFF">
DoSomething();
</Binding>
<Binding name="DOOTHERSTUFF" description="Other default description" runOnUp="true">
if ( keystate == "down" ) then
DoSomethingElse();
else
DoSomethingYetDifferent();
end
</Binding>
<Binding name="DOMORESTUFF" description="Yet another default description">
DoOneThing();
</Binding>
</Bindings>
dostuff.lua
-- Binding Variables BINDING_HEADER_MYDOSTUFF = "The header"; BINDING_NAME_DOSTUFF = "a name"; BINDING_NAME_DOOTHERSTUFF = "another name"; BINDING_NAME_DOMORESTUFF = "yet another name";
Notes
- The Binding attribute
runOnUp="true"is needed to use the keystate variable; unneeded otherwise.
- A binding with no keystate will fire on key down.
- WoW starts a new header when it finds a header="MYDOSTUFF" in a binding definition.
You can not "hook into" a previous header using this way because the variables die after the Bindings.xml file has been processed.
- WoW tries to look for a lua variable BINDING_HEADER_MYDOSTUFF if you use header="MYDOSTUFF".
If it can not find that, your binding will end up with the previous header.
- If you use name="DOSTUFF" then WoW tries to look for a lua variable
named BINDING_NAME_DOSTUFF. If that is not found, it uses description.
If description is not present, it uses the name.
This last case will look ugly.
- As of 2.1, the code blocks cannot be empty or the keybindings interface will ignore the binding. A comment is enough, i.e. "-- dummy".
The juggling about with LUA variable names is to make it possible to localize your addon.
See HOWTO: Localize an AddOn for standard localization practices.