# Console Port

## [2.9.0](https://github.com/seblindfors/ConsolePort/tree/2.9.0) (2024-06-23)
[Full Changelog](https://github.com/seblindfors/ConsolePort/compare/2.7.37...2.9.0) [Previous Releases](https://github.com/seblindfors/ConsolePort/releases)

- Fix slash handler unable to set values to nil (back to default)  
- Merge pull request #100 from seblindfors/acbv2  
    Acbv2  
- Remove radial extended variable  
    Turns out we don't need this after all. May come back in the form of layered utility rings.  
- Add slot request logic when dropping spell on unbound proxy button  
- Add support for spell menu to handle combination of spell and button combo  
- More minor fixes  
- Fix default menu ring buttons to account for LB as modifier  
- Minor fixes  
- Prune dead templates  
- Allow the stick buttons in radial environment  
- Revamp game menu again  
    The V2 version had too many problems in testing.  
- Fix minor bugs in button handlers for game menu  
- Remove modifiers from imported v1 layouts  
    This is to prevent a jarring transition on launch day.  
- Clean up tools  
- Add ring background mask  
- Upgrade layouts when loaded  
- Update Menu.lua  
- Add options to choose which stick to use to control the game menu  
- Clarify hotkey modification only applies to page hotkeys  
- Handle stick axis button bindings trap  
    Some users, upon installing the addon, have tried to use the Blizzard key bindings to change how the character moves by setting bindings on the gamepad stick buttons. Since axis buttons are now enabled at all times when using extended ring features, these bindings need to be wiped when we haven't explicitly chosen to use the buttons for bindings.  
- Handle menu edge cases  
    - Force use the left stick and XYAB for menu interaction  
    - Use right stick to escape the ring override, enabling game menu options for those who don't use the interface cursor, but want to use the menu.  
- Revamp game menu  
    This was a necessary change due to the removal of macrotext in TWW (Stanzilla/WoWUIBugs#552). The game menu is now a ring menu where you assign key bindings (up to 3) for panels and open them by these key bindings after the selection is done.  
- Make ring button skin responsive to size changes  
- Add binding override condition to all action bar types  
- Adjust keyboard preset  
- Adjust default page action bar settings  
- Pie menus swap horizontal justification on texts  
- Fix UI handle not returning active hint  
- Enable spell flyout on classic clients  
- Fix tap bindings getting wiped when they are still possible  
- Add initial support for tiered radial menus  
- Fix cursor obstruction  
- Enter clicks first button on confirmation popups in action bar config  
- Update bindings for group buttons when modified in config  
- Handle mouseover transparent cluster buttons  
- Show binding name for XML bindings without custom information  
- Fix header refresh issue in action bar config  
- Second round of TWW bug swatting  
- Fix broken TWW flyout  
- Preparation for TWW  
- Add support for relative points to all action bar elements  
- Fix bug with catching button inputs in cvar section of config  
- Include page type  
- Add icon for vehicle exit button  
- Add utility to map drivers to conditions and responses  
    This is used for some action bar logic, and has the benefit of removing some user error if they are brave enough to modify the conditions.  
- Disable OverrideActionBar on Retail  
    I'm done with vehicle issues because Blizzard only exposed half the API for vehicles in the RE, so I'm just disabling vehicles and enforcing page widget type to replace it.  
- Add stylish lines to expandable layout widgets  
    Also account for deprecation; we may export stuff into presets that gets removed down the line.  
- Correct the mime frame size on mover  
    Width and height could be incorrectly shown as +/- 1 due to float rounding errors.  
- Add support for manager to juggle bindings for multiple active bars  
- Add health and power status to pet ring  
- Add exit vehicle button to toolbar, classic micro button skinning  
- Refactor cluster type  
- Refactor group type  
- Use common actionbar descriptor in advanced tab  
- Modify upgrade script  
- Clean up presets  
- Add page widget type  
    This can be used to create regular action bars, or a vehicle bar.  
- Add method to retrieve trigger button ID for the custom flyout  
- Add helper for LAB styling, refactor proxy button to slot button  
- Add support for common drivers in action bar template  
- Fix Cataclysm socials button on game menu  
- Remove [vehicleui] from pager  
    Vehicles are covered by possessbar anyway, and the condition yields faulty results for the vehicle APIs since it fires too early.  
- Tidy up  
- Add pet ring widget  
- Add button to open action bar config from main config  
- Merge branch 'master' into acbv2  
- Update ConsolePort\_Bar.toc  
- Adjust presets  
    - Rework orthodox preset  
    - Hide "the Eye" on crossbar templates  
- Add recursive upgrade to V2 layouts  
- Update Utils.lua  
- Add advanced action bar options  
- Add preset import/export and refactor  
    - Also add config shortcut to open the main config  
- Use Round to pixels in mover instead of custom function  
- Add rescale driver to cluster bars  
- Make toolbar micromenu somewhat dynamic  
- Fix CENTER missing from valid points selector  
    - Also add initial microbutton menu options to toolbar  
- Update import/export scripts for actionbar v2  
- Make pager responsive to condition changes  
- Add preset handling and skinning to classic crossbars  
- Refactoring, add upgrade script, fix group button ignore alpha  
- Clear unit from mapped raid cursor action buttons if previously unset  
- Allow setting bad values in table field (for compatibility purposes)  
- Copy table instead of inline changes when loading preset  
- Fix replaced layout not saving to disk  
- Assign layout index to micro buttons (for Classic)  
- Prevent disabled buttons from showing up in mutable button array  
- Fix LAB overwriting normal texture on cluster buttons in Classic  
- Add grid layout util for clients that don't have it  
- Assert link exist before matching on it in utility ring.  
- Adjust divider interface with better defaults  
- Adjust default preset  
- Update Config.lua  
- Add initial preset loading  
- Fix divider not appearing when reacquired  
- Change ownership of cluster button hotkeys  
- Style headers to fit widgets next to them  
- Fix toolbar hidden if instantiated during session  
- Convert drivers in action bar base template  
- Make cluster buttons reconfigure bindings if created during session  
    - Also enforce naming convention for widgets  
- Dispatch bindings to newly created objects  
- Add support for generative mutable options  
- Add macro condition instructions  
    - Also add divider intensity option  
- Add hiliting to mover frame  
- Stop interface cursor reactivating when gamepad is not in use  
- Fix delta range type widget  
- Simplify configuration tracking  
- Refactoring  
- Fix recursive issue in widget mover, attempting to copy its own point  
    - Also fix moving widgets with non-uniform scaling  
- Add ability to copy and delete configured widgets in loadout  
- Add LBG hook and flags management to utils  
- Add divider interface type  
- Add initial group (crossbar) interface type  
- Fix config widget bugs  
    - Range slider update min, max and step on every load (problem when recycled)  
    - Number sanitize input  
    - String fix invisible background and desynced checked state  
- Add rebind info on proxy buttons  
- Fancy highlights on emulation settings  
- Assert that Range types are fed numbers only  
- Add delete confirmation popup when editing mutable layouts  
- Move toolbar width to layout page  
- Add border style selection to cluster bars  
- Add movable widget type handler  
- Fix CVars not working after widgets/data rework  
- Pushed texture assert on action buttons  
- Rework mover because the built-in version is too buggy with relative frames  
- Add config support for mutable data, such as the cluster button array  
- Add initial support for customizing loadout  
- Add bw compat for text status bar changed  
- Config work  
- Preparation work for bar layout configuration  
- Add global action bar mover  
- Add initial config for simple settings  
- Refactor assets to action bar module  
- Add microbuttons to toolbar and convert popout to grid layout  
- Add support for config widget to run on a different database  
    Needed for the action bar module to use its own database.  
- Refine skins  
- Increase font size on pie texts  
- Add transparent square mask  
    Apparently Classic omitted this.  
- Add helpers for fetching specific mapping profile data  
- Update .gitignore  
- Various action bar related fixes  
- Refactor button binding handling  
- Add new assets  
- Add updated charge cooldown edge  
- Initial toolbar work  
- Use both sticks for spell flyout  
    Since we can no longer intercept only one stick, may as well allow both sticks to select items on the ring simultaneously.  
- Use securecallfunction for acquiring action bar widgets  
    Intended to stop bugs from breaking the entire action bar system.  
- Add initial cluster flyout modifications and settings  
- Add support for dependencies in variables  
    This is to reduce the amount of settings visible at the same time.  
- Initialize secure systems in action bar manager  
- Use metamethod for UI fade  
- Move color swatch proc to main addon so it can be reused  
- Remove HQ class animation atlas  
- Add spell proc skinning  
- Add initial rebuilt modifier swapping to cluster bar  
- Refactor action bar database utilities to separate file  
- Add flyout support for LibActionButton  
- Simplify tooltip format for binding information  
- Add radial method for mounting several bindings for an owner button  
- Add infrastructure required for the original cluster action bar  
- Remove action bar templates from main addon  
- Rename button texture assets  
    - Remove M2 texture because it's just a copy  
- Add utility to skin charge cooldowns  
- Add enum utility  
- Remove GetMouseFocus from mouse driver  
    In preparation for upcomong War Within changes  
- Replace /clearfocus on raid cursor with none unit  
    In preparation for 11.0 where macrotext is being removed.  
- Add initial watch bar template for action bars  
- Use proxy for console data model  
- Remove unused pager references to Blizzard frames  
- Refactor popup frame widget for future use  
- Fix color normalizer sometimes returning full hex code instead of alpha  
- Fix stuck highlight on popup menu buttons  
- Fix flickering tooltips on utility ring focus  
- Replace pie textures with PNG  
- Fix bar names in spell menu grid  
- Refresh option list when interacting with a merchant  
- Add util function to grab the current device config  
- Fix issue with wrong number of pie slices shown due to active (but invisible) widgets  
- Add new cancel action to interface cursor  
    - Will be used to cancel some contexts.  
    - Rename special button to context button.  
    - Add attribute to skip mime animations.  
- Redesign spell and item menus  
- Disable tooltip hints for controls that don't use standard controls  
- Ring fixes  
    - Reorganize radial menu options  
    - Add separators between slices  
    - Fix spells not loading correctly at login  
- Fix number sliders running frequent callbacks when value has not changed  
- Make radial API produce slice angles in radians  
    (so they don't need correcting in inheriting objects)  
- Refactoring for new action bar addon  
- Fix broken rings manager  
- Add text indicator support to pie slices  
- Add clamping to pie slice opacity  
- Add support for resetting individual config values to default  
    - Also add color options to radial menus  
- Bind radial dispatcher to color picker  
- Redesign spell flyout  
- Add remove button clears sticky state with no item selected  
- Fix shared data handler having same name as global storage  
- Fix bug in radial dispatcher  
    Fix issue with rings being unusable if reopened within the focus clear timing window.  
- Add injection to utilities  
- Update utility ring  
    - Indicate sticky select by showing the active ring slice  
    - Always show buttons (used for extra action button mapping)  
- Handle cooldowns and extra action button in ring button skin  
- Hide slicing rects when a ring has less than two slices  
- Rename dark swipe texture  
- Fixes  
    - Enforce default item size on rings if not provided  
    - Fix utility ring spell load failure on first login  
    - Fix axis inversion on pet ring  
    - Set default ring size to 400 px (down from 500)  
- Convert utility ring to new design  
- Make ring size dynamic  
    - Rings can scale dynamically to fit more items if the space is not sufficient  
    - Handle axis inversion for slices  
- Add new pet ring  
    - Redesign radial menus (new graphics, buttons based on LibActionButton)  
    - Add new pet ring  
    - Make radials hide crosshair when active  
- Move RelaTable and ConsolePortNode to external libs  
- Refactor libraries, add externals  
    In preparation for new action bar addon, and using modern solutions to keep external libs updated.  
