Post by Elesarr on Jul 10, 2007 17:28:46 GMT -5
Taken from wowinterface.com article:
Thought Id post here for those who don't dig through the WoW Community Forums.
Ele
From Iriel's post on the official Blizz UI forum:
This is a consolidated list of the announced (and sometimes observed) changes in the User Interface API's and functionality for the 2.2.0 release. Please note that this thread is to discuss the upcoming changes and any clarifications or features that are a direct result of those changes, or things which we've been asked to remind slouken of.
IMPORTANT: Off-topic or entirely redundant posts are liable to get deleted. It is however in everyone's best interest to not post them in the first place - We'd rather slouken could spend his time coding us cool things than moderating this thread!
Last updated: 2007-07-07 10:46 Pacific
Key Bindings
The game will distinguish between right and left modifier keys:
* Key bindings and modified clicks may optionally specify LSHIFT, RSHIFT, LCTRL, RCTRL, LALT, RALT instead of the normal SHIFT, CTRL, ALT modifiers. The default UI will not set L/R modifiers and will continue to use the normal (either side) modifiers.
* Macro conditionals may use lshift, rshift, lctrl, rctrl, lalt, ralt in addition to the normal modifiers.
* There are several new API functions to query each modifier individually: IsLeftShiftKeyDown(), IsRightShiftKeyDown(), IsLeftControlKeyDown(), IsRightControlKeyDown(), IsLeftAltKeyDown(), IsRightAltKeyDown()
There will be a unified system for customizing modified clicks in the UI:
Modified Clicks are specified using a new section in Bindings.xml, e.g.
<ModifiedClick name="DRESSUP" default="CTRL-BUTTON1"/>
These click actions are context sensitive, and Lua code chooses which action is appropriate based on the current context.
Script API:
* count = GetNumModifiedClickActions()
* action = GetModifiedClickAction(index)
* SetModifiedClick("action", "binding")
* binding = GetModifiedClick("action")
* active = IsModifiedClick(["action"])
A 'binding' is in the form of MOD-BUTTONX, e.g. CTRL-BUTTON1, or a simple modifier, e.g. CTRL
These modified click bindings are loaded and saved with the normal key bindings, so if you make changes you'll need to save them with:
SaveBindings(GetCurrentBindingSet()) ;
The Blizzard code has been reworked to use the following modified click actions:
<ModifiedClick action="SELFCAST" default="ALT"/>
<ModifiedClick action="AUTOLOOTTOGGLE" default="SHIFT"/>
<ModifiedClick action="STICKYCAMERA" default="CTRL"/>
<ModifiedClick action="CHATLINK" default="SHIFT-BUTTON1"/>
<ModifiedClick action="DRESSUP" default="CTRL-BUTTON1"/>
<ModifiedClick action="SOCKETITEM" default="SHIFT-BUTTON2"/>
<ModifiedClick action="SPLITSTACK" default="SHIFT"/>
<ModifiedClick action="PICKUPACTION" default="SHIFT"/>
<ModifiedClick action="COMPAREITEMS" default="SHIFT"/>
<ModifiedClick action="OPENALLBAGS" default="SHIFT"/>
<ModifiedClick action="QUESTWATCHTOGGLE" default="SHIFT"/>
This system replaces the following functions:
SetAutoLootToggleKey(), GetAutoLootToggleKey(), IsAutoLootKeyDown()
SetActionSelfCastKey(), GetActionSelfCastKey(), IsActionSelfCastKeyDown()
Settings
* The pitchLimit setting will be re-enabled.
Bug Fixes
* Fixed issue where frame sizes/positions aren't correctly recalculated on demand.
* Fixed unnecessary chopping of FontString contents when scaled.
Targetting
* If you specify a target for a spell cast in a macro that does not exist, it will show an error instead of defaulting to your current target.
Macros
* Conditional macros with multiple targets will use the appropriate context sensitive target for visual range feedback.
* The entire dynamic macro update system has been moved into highly optimized C++ for 2.2, resulting in a roughly 100x speedup (That's times, not percent). Please keep an eye out for bugs in macro options and dynamic feedback, since it's all completely rewritten from scratch. TEST COMPLEX MACROS THOROUGHLY IN THE PTR
Frame Support
* Frame:RegisterEvent() and Frame:UnregisterEvent() have been optimized and can be used in conjunction with OnShow() and OnHide() to greatly improve performance of the UI. This technique has been used to optimize the bank, bags, inventory, spellbook, and unit frames for a decent speed improvement in 2.2.0.
* The game tooltip now handles periodic updates directly instead of requiring OnUpdate functions in each button that might have a tooltip. Many of the related OnEnter functions now take a 'self' parameter, so AddOns will need to be updated to reflect this change.
* Frame positions are saved relative to the nearest corner rather than the upper left corner, so that they don't move when changing resolution and screen aspect ratio.
Events
* All UNIT_SPELLCAST_* events now have the name and rank of the spell as arg2 and arg3.
This is a consolidated list of the announced (and sometimes observed) changes in the User Interface API's and functionality for the 2.2.0 release. Please note that this thread is to discuss the upcoming changes and any clarifications or features that are a direct result of those changes, or things which we've been asked to remind slouken of.
IMPORTANT: Off-topic or entirely redundant posts are liable to get deleted. It is however in everyone's best interest to not post them in the first place - We'd rather slouken could spend his time coding us cool things than moderating this thread!
Last updated: 2007-07-07 10:46 Pacific
Key Bindings
The game will distinguish between right and left modifier keys:
* Key bindings and modified clicks may optionally specify LSHIFT, RSHIFT, LCTRL, RCTRL, LALT, RALT instead of the normal SHIFT, CTRL, ALT modifiers. The default UI will not set L/R modifiers and will continue to use the normal (either side) modifiers.
* Macro conditionals may use lshift, rshift, lctrl, rctrl, lalt, ralt in addition to the normal modifiers.
* There are several new API functions to query each modifier individually: IsLeftShiftKeyDown(), IsRightShiftKeyDown(), IsLeftControlKeyDown(), IsRightControlKeyDown(), IsLeftAltKeyDown(), IsRightAltKeyDown()
There will be a unified system for customizing modified clicks in the UI:
Modified Clicks are specified using a new section in Bindings.xml, e.g.
<ModifiedClick name="DRESSUP" default="CTRL-BUTTON1"/>
These click actions are context sensitive, and Lua code chooses which action is appropriate based on the current context.
Script API:
* count = GetNumModifiedClickActions()
* action = GetModifiedClickAction(index)
* SetModifiedClick("action", "binding")
* binding = GetModifiedClick("action")
* active = IsModifiedClick(["action"])
A 'binding' is in the form of MOD-BUTTONX, e.g. CTRL-BUTTON1, or a simple modifier, e.g. CTRL
These modified click bindings are loaded and saved with the normal key bindings, so if you make changes you'll need to save them with:
SaveBindings(GetCurrentBindingSet()) ;
The Blizzard code has been reworked to use the following modified click actions:
<ModifiedClick action="SELFCAST" default="ALT"/>
<ModifiedClick action="AUTOLOOTTOGGLE" default="SHIFT"/>
<ModifiedClick action="STICKYCAMERA" default="CTRL"/>
<ModifiedClick action="CHATLINK" default="SHIFT-BUTTON1"/>
<ModifiedClick action="DRESSUP" default="CTRL-BUTTON1"/>
<ModifiedClick action="SOCKETITEM" default="SHIFT-BUTTON2"/>
<ModifiedClick action="SPLITSTACK" default="SHIFT"/>
<ModifiedClick action="PICKUPACTION" default="SHIFT"/>
<ModifiedClick action="COMPAREITEMS" default="SHIFT"/>
<ModifiedClick action="OPENALLBAGS" default="SHIFT"/>
<ModifiedClick action="QUESTWATCHTOGGLE" default="SHIFT"/>
This system replaces the following functions:
SetAutoLootToggleKey(), GetAutoLootToggleKey(), IsAutoLootKeyDown()
SetActionSelfCastKey(), GetActionSelfCastKey(), IsActionSelfCastKeyDown()
Settings
* The pitchLimit setting will be re-enabled.
Bug Fixes
* Fixed issue where frame sizes/positions aren't correctly recalculated on demand.
* Fixed unnecessary chopping of FontString contents when scaled.
Targetting
* If you specify a target for a spell cast in a macro that does not exist, it will show an error instead of defaulting to your current target.
Macros
* Conditional macros with multiple targets will use the appropriate context sensitive target for visual range feedback.
* The entire dynamic macro update system has been moved into highly optimized C++ for 2.2, resulting in a roughly 100x speedup (That's times, not percent). Please keep an eye out for bugs in macro options and dynamic feedback, since it's all completely rewritten from scratch. TEST COMPLEX MACROS THOROUGHLY IN THE PTR
Frame Support
* Frame:RegisterEvent() and Frame:UnregisterEvent() have been optimized and can be used in conjunction with OnShow() and OnHide() to greatly improve performance of the UI. This technique has been used to optimize the bank, bags, inventory, spellbook, and unit frames for a decent speed improvement in 2.2.0.
* The game tooltip now handles periodic updates directly instead of requiring OnUpdate functions in each button that might have a tooltip. Many of the related OnEnter functions now take a 'self' parameter, so AddOns will need to be updated to reflect this change.
* Frame positions are saved relative to the nearest corner rather than the upper left corner, so that they don't move when changing resolution and screen aspect ratio.
Events
* All UNIT_SPELLCAST_* events now have the name and rank of the spell as arg2 and arg3.
Thought Id post here for those who don't dig through the WoW Community Forums.
Ele