diff --git a/HealBot_Options_Auto.xml b/HealBot_Options_Auto.xml
index b813d1a..c2b9673 100644
--- a/HealBot_Options_Auto.xml
+++ b/HealBot_Options_Auto.xml
@@ -8,7 +8,7 @@
-
+
@@ -28,15 +28,15 @@
-
+
-
-
+
+
@@ -52,15 +52,15 @@
-
+
-
-
+
+
@@ -76,15 +76,15 @@
-
+
-
-
+
+
@@ -100,15 +100,15 @@
-
+
-
-
+
+
@@ -124,15 +124,15 @@
-
+
-
-
+
+
@@ -141,7 +141,6 @@
-
diff --git a/HealBot_Options_Buffs.xml b/HealBot_Options_Buffs.xml
index 87212d1..4d5d3d7 100644
--- a/HealBot_Options_Buffs.xml
+++ b/HealBot_Options_Buffs.xml
@@ -2,365 +2,372 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.blizzard.com/wow/ui/ ..\FrameXML\UI.xsd">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- HealBot_WarningSound_OnLoad(this,HEALBOT_OPTIONS_BUFFWATCH)
- HealBot_Options_BuffWatch_OnClick(this)
-
-
-
-
-
-
-
-
-
-
-
-
- HealBot_WarningSound_OnLoad(this,HEALBOT_OPTIONS_BUFFWATCHINCOMBAT)
- HealBot_Options_BuffWatchInCombat_OnClick(this)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- HealBot_Options_Buff_OnLoad(this)
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
-
- HealBot_Options_BuffSelf_OnLoad(this)
- HealBot_Options_BuffSelf_OnClick(this)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- HealBot_Options_Buff_OnLoad(this)
-
-
-
-
-
-
-
-
-
-
- HealBot_Options_BuffSelf_OnLoad(this)
- HealBot_Options_BuffSelf_OnClick(this)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- HealBot_Options_Buff_OnLoad(this)
-
-
-
-
-
-
-
-
-
-
- HealBot_Options_BuffSelf_OnLoad(this)
- HealBot_Options_BuffSelf_OnClick(this)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- HealBot_Options_Buff_OnLoad(this)
-
-
-
-
-
-
-
-
-
-
- HealBot_Options_BuffSelf_OnLoad(this)
- HealBot_Options_BuffSelf_OnClick(this)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- HealBot_Options_Buff_OnLoad(this)
-
-
-
-
-
-
-
-
-
-
- HealBot_Options_BuffSelf_OnLoad(this)
- HealBot_Options_BuffSelf_OnClick(this)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- HealBot_Options_Buff_OnLoad(this)
-
-
-
-
-
-
-
-
-
-
- HealBot_Options_BuffSelf_OnLoad(this)
- HealBot_Options_BuffSelf_OnClick(this)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- HealBot_Options_Buff_OnLoad(this)
-
-
-
-
-
-
-
-
-
-
- HealBot_Options_BuffSelf_OnLoad(this)
- HealBot_Options_BuffSelf_OnClick(this)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- HealBot_Options_Buff_OnLoad(this)
-
-
-
-
-
-
-
-
-
-
- HealBot_Options_BuffSelf_OnLoad(this)
- HealBot_Options_BuffSelf_OnClick(this)
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+ HealBot_WarningSound_OnLoad(this,HEALBOT_OPTIONS_BUFFWATCH)
+ HealBot_Options_BuffWatch_OnClick(this)
+
+
+
+
+
+
+
+
+
+
+
+
+ HealBot_WarningSound_OnLoad(this,HEALBOT_OPTIONS_BUFFWATCHINCOMBAT)
+ HealBot_Options_BuffWatchInCombat_OnClick(this)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HealBot_Options_Buff_OnLoad(this)
+
+
+
+
+
+
+
+
+
+
+ HealBot_Options_BuffSelf_OnLoad(this)
+ HealBot_Options_BuffSelf_OnClick(this)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HealBot_Options_Buff_OnLoad(this)
+
+
+
+
+
+
+
+
+
+
+ HealBot_Options_BuffSelf_OnLoad(this)
+ HealBot_Options_BuffSelf_OnClick(this)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HealBot_Options_Buff_OnLoad(this)
+
+
+
+
+
+
+
+
+
+
+ HealBot_Options_BuffSelf_OnLoad(this)
+ HealBot_Options_BuffSelf_OnClick(this)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HealBot_Options_Buff_OnLoad(this)
+
+
+
+
+
+
+
+
+
+
+ HealBot_Options_BuffSelf_OnLoad(this)
+ HealBot_Options_BuffSelf_OnClick(this)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HealBot_Options_Buff_OnLoad(this)
+
+
+
+
+
+
+
+
+
+
+ HealBot_Options_BuffSelf_OnLoad(this)
+ HealBot_Options_BuffSelf_OnClick(this)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HealBot_Options_Buff_OnLoad(this)
+
+
+
+
+
+
+
+
+
+
+ HealBot_Options_BuffSelf_OnLoad(this)
+ HealBot_Options_BuffSelf_OnClick(this)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HealBot_Options_Buff_OnLoad(this)
+
+
+
+
+
+
+
+
+
+
+ HealBot_Options_BuffSelf_OnLoad(this)
+ HealBot_Options_BuffSelf_OnClick(this)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HealBot_Options_Buff_OnLoad(this)
+
+
+
+
+
+
+
+
+
+
+ HealBot_Options_BuffSelf_OnLoad(this)
+ HealBot_Options_BuffSelf_OnClick(this)
+
+
+
+
diff --git a/HealBot_Options_Chat.xml b/HealBot_Options_Chat.xml
index 81ccb3a..acc548b 100644
--- a/HealBot_Options_Chat.xml
+++ b/HealBot_Options_Chat.xml
@@ -2,288 +2,292 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.blizzard.com/wow/ui/ ..\FrameXML\UI.xsd">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- if HealBot_Config.ChatMessages then
- HealBot_Config.ChatMessages[1].Spell = this:GetText();
- end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- if HealBot_Config.ChatMessages then
- HealBot_Config.ChatMessages[1].Message = this:GetText();
- end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- if HealBot_Config.ChatMessages then
- HealBot_Config.ChatMessages[2].Spell = this:GetText();
- end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- if HealBot_Config.ChatMessages then
- HealBot_Config.ChatMessages[2].Message = this:GetText();
- end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- if HealBot_Config.ChatMessages then
- HealBot_Config.ChatMessages[3].Spell = this:GetText();
- end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- if HealBot_Config.ChatMessages then
- HealBot_Config.ChatMessages[3].Message = this:GetText();
- end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- if HealBot_Config.ChatMessages then
- HealBot_Config.ChatMessages[4].Spell = this:GetText();
- end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- if HealBot_Config.ChatMessages then
- HealBot_Config.ChatMessages[4].Message = this:GetText();
- end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- if HealBot_Config.ChatMessages then
- HealBot_Config.ChatMessages[5].Spell = this:GetText();
- end
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- if HealBot_Config.ChatMessages then
- HealBot_Config.ChatMessages[5].Message = this:GetText();
- end
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if HealBot_Config.ChatMessages then
+ HealBot_Config.ChatMessages[1].Spell = this:GetText();
+ end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if HealBot_Config.ChatMessages then
+ HealBot_Config.ChatMessages[1].Message = this:GetText();
+ end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if HealBot_Config.ChatMessages then
+ HealBot_Config.ChatMessages[2].Spell = this:GetText();
+ end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if HealBot_Config.ChatMessages then
+ HealBot_Config.ChatMessages[2].Message = this:GetText();
+ end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if HealBot_Config.ChatMessages then
+ HealBot_Config.ChatMessages[3].Spell = this:GetText();
+ end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if HealBot_Config.ChatMessages then
+ HealBot_Config.ChatMessages[3].Message = this:GetText();
+ end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if HealBot_Config.ChatMessages then
+ HealBot_Config.ChatMessages[4].Spell = this:GetText();
+ end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if HealBot_Config.ChatMessages then
+ HealBot_Config.ChatMessages[4].Message = this:GetText();
+ end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if HealBot_Config.ChatMessages then
+ HealBot_Config.ChatMessages[5].Spell = this:GetText();
+ end
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if HealBot_Config.ChatMessages then
+ HealBot_Config.ChatMessages[5].Message = this:GetText();
+ end
+
+
+
+
+
\ No newline at end of file
diff --git a/HealBot_Options_Integrations.xml b/HealBot_Options_Integrations.xml
index 3611276..df1ce3b 100644
--- a/HealBot_Options_Integrations.xml
+++ b/HealBot_Options_Integrations.xml
@@ -8,7 +8,7 @@
-
+
@@ -27,7 +27,7 @@
-
+
@@ -44,9 +44,9 @@
-
+
-
+
@@ -65,7 +65,7 @@
-
+
@@ -84,7 +84,7 @@
-
+
@@ -97,27 +97,26 @@
-
-
+
-
+
-
+
-
+
-
+
diff --git a/HealBot_Options_Spells.xml b/HealBot_Options_Spells.xml
index e7be0b3..b9341ac 100644
--- a/HealBot_Options_Spells.xml
+++ b/HealBot_Options_Spells.xml
@@ -2,213 +2,229 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.blizzard.com/wow/ui/ ..\FrameXML\UI.xsd">
-
-
-
+
+
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- HealBot_ComboButtons_Button_OnLoad(this,HEALBOT_OPTIONS_BUTTONLEFT)
- HealBot_ComboButtons_Button_OnClick(this,this:GetID())
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
- HealBot_ComboButtons_Button_OnLoad(this,HEALBOT_OPTIONS_BUTTONMIDDLE)
- HealBot_ComboButtons_Button_OnClick(this,this:GetID())
-
-
-
-
-
-
-
-
-
-
-
- HealBot_ComboButtons_Button_OnLoad(this,HEALBOT_OPTIONS_BUTTONRIGHT)
- HealBot_ComboButtons_Button_OnClick(this,this:GetID())
-
-
-
-
-
-
-
-
-
-
-
- HealBot_ComboButtons_Button_OnLoad(this,HEALBOT_OPTIONS_BUTTON4)
- HealBot_ComboButtons_Button_OnClick(this,this:GetID())
-
-
-
-
-
-
-
-
-
-
-
- HealBot_ComboButtons_Button_OnLoad(this,HEALBOT_OPTIONS_BUTTON5)
- HealBot_ComboButtons_Button_OnClick(this,this:GetID())
-
-
+
+
+
+
+
+
+
+
+
+ HealBot_ComboButtons_Button_OnLoad(this,HEALBOT_OPTIONS_BUTTONLEFT)
+ HealBot_ComboButtons_Button_OnClick(this,this:GetID())
+
+
-
-
-
-
-
-
-
-
-
-
- HealBot_Options_EditBox_OnLoad(this,HEALBOT_OPTIONS_CLICK)
-
-
- HealBot_Options_Click_OnTextChanged(this)
-
-
-
-
-
-
-
-
-
-
-
-
-
- HealBot_Options_EditBox_OnLoad(this,HEALBOT_OPTIONS_SHIFT)
-
-
- HealBot_Options_Shift_OnTextChanged(this)
-
-
-
-
-
-
-
-
-
-
-
-
-
- HealBot_Options_EditBox_OnLoad(this,HEALBOT_OPTIONS_CTRL)
-
-
- HealBot_Options_Ctrl_OnTextChanged(this)
-
-
-
-
-
-
-
-
-
-
-
-
-
- HealBot_Options_EditBox_OnLoad(this,HEALBOT_OPTIONS_SHIFTCTRL)
-
-
- HealBot_Options_ShiftCtrl_OnTextChanged(this)
-
-
-
-
-
-
-
-
-
-
-
-
- HealBot_Options_EnableHealthy_OnLoad(this,HEALBOT_OPTIONS_ENABLEHEALTHY)
- HealBot_Options_EnableHealthy_OnClick(this)
-
-
+
+
+
+
+
+
+
+
+
+ HealBot_ComboButtons_Button_OnLoad(this,HEALBOT_OPTIONS_BUTTONMIDDLE)
+ HealBot_ComboButtons_Button_OnClick(this,this:GetID())
+
+
+
+
+
+
+
+
+
+
+
+
+ HealBot_ComboButtons_Button_OnLoad(this,HEALBOT_OPTIONS_BUTTONRIGHT)
+ HealBot_ComboButtons_Button_OnClick(this,this:GetID())
+
+
+
+
+
+
+
+
+
+
+
+
+ HealBot_ComboButtons_Button_OnLoad(this,HEALBOT_OPTIONS_BUTTON4)
+ HealBot_ComboButtons_Button_OnClick(this,this:GetID())
+
+
+
+
+
+
+
+
+
+
+
+
+ HealBot_ComboButtons_Button_OnLoad(this,HEALBOT_OPTIONS_BUTTON5)
+ HealBot_ComboButtons_Button_OnClick(this,this:GetID())
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HealBot_Options_EditBox_OnLoad(this,HEALBOT_OPTIONS_CLICK)
+
+
+ HealBot_Options_Click_OnTextChanged(this)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HealBot_Options_EditBox_OnLoad(this,HEALBOT_OPTIONS_SHIFT)
+
+
+ HealBot_Options_Shift_OnTextChanged(this)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HealBot_Options_EditBox_OnLoad(this,HEALBOT_OPTIONS_CTRL)
+
+
+ HealBot_Options_Ctrl_OnTextChanged(this)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HealBot_Options_EditBox_OnLoad(this,HEALBOT_OPTIONS_SHIFTCTRL)
+
+
+ HealBot_Options_ShiftCtrl_OnTextChanged(this)
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HealBot_Options_EnableHealthy_OnLoad(this,HEALBOT_OPTIONS_ENABLEHEALTHY)
+ HealBot_Options_EnableHealthy_OnClick(this)
+
+
@@ -217,86 +233,88 @@
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
- HealBot_Options_ShowTooltip_OnLoad(this,HEALBOT_OPTIONS_SHOWTOOLTIP)
- HealBot_Options_ShowTooltip_OnClick(this)
-
-
-
-
-
-
-
-
-
-
-
- HealBot_Options_TooltipPos_OnLoad(this)
-
-
-
-
-
-
-
-
-
-
-
- HealBot_Options_ShowTooltipTarget_OnLoad(this,HEALBOT_OPTIONS_SHOWUNITTOOLTIP)
- HealBot_Options_ShowTooltipTarget_OnClick(this)
-
-
-
-
-
-
-
-
-
-
-
- HealBot_Options_ShowTooltipSpellDetail_OnLoad(this,HEALBOT_OPTIONS_SHOWDETTOOLTIP)
- HealBot_Options_ShowTooltipSpellDetail_OnClick(this)
-
-
-
-
-
-
-
-
-
-
-
- HealBot_Options_ShowTooltipInstant_OnLoad(this,HEALBOT_OPTIONS_SHOWRECTOOLTIP)
- HealBot_Options_ShowTooltipInstant_OnClick(this)
-
-
+
+
+
+
+
+
+
+
+
+
+ HealBot_Options_ShowTooltip_OnLoad(this,HEALBOT_OPTIONS_SHOWTOOLTIP)
+ HealBot_Options_ShowTooltip_OnClick(this)
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+ HealBot_Options_TooltipPos_OnLoad(this)
+
+
+
+
+
+
+
+
+
+
+
+ HealBot_Options_ShowTooltipTarget_OnLoad(this,HEALBOT_OPTIONS_SHOWUNITTOOLTIP)
+ HealBot_Options_ShowTooltipTarget_OnClick(this)
+
+
+
+
+
+
+
+
+
+
+
+
+ HealBot_Options_ShowTooltipSpellDetail_OnLoad(this,HEALBOT_OPTIONS_SHOWDETTOOLTIP)
+ HealBot_Options_ShowTooltipSpellDetail_OnClick(this)
+
+
+
+
+
+
+
+
+
+
+
+
+ HealBot_Options_ShowTooltipInstant_OnLoad(this,HEALBOT_OPTIONS_SHOWRECTOOLTIP)
+ HealBot_Options_ShowTooltipInstant_OnClick(this)
+
+
+
+
+
+
diff --git a/README.md b/README.md
index c917193..148453d 100644
--- a/README.md
+++ b/README.md
@@ -54,6 +54,7 @@ Default installation path: `C:\Program Files\World of Warcraft\Interface\AddOns\
* **Feature - Test Bars** - Implemented a "Test Bars" button and slider in the Skins options tab, allowing you to spawn and adjust a dummy raid group of up to 40 members without being in a real raid. This allows for easy layout and appearance customization out of combat.
* **UI - Skins Options & Custom Health Gradients** - Added configurable Max HP and Min HP colour pickers with descriptive labels for custom gradient support. Fixed colour picker button click interceptors and hooked ColorPickerFrame callbacks. Integrated global font selector across raid frame text, headers, Options button, and preview bars. Reorganized Skins tab layout to anchor Test Bars cleanly in Column 2.
* **UI - Cleanup** - While adding new funcionalities the way menus look was ignored, new functions were added to each tab where there was free space, so attempt was made to clean up this convoluted mess I made. Menu Tabs are now aligned and grouped in a manner that makes more sense.
+* **UI - Options Tabs Relative Anchoring Fix** - Fixed layout skewing and margin drift across Spells, Buffs, Chat, Extras (Integrations), and Auto options tabs. Replaced arbitrary hardcoded coordinate shifts with clean relative-anchoring hierarchies centered across the dialog width.
* **Performance Fix - Table Pooling & GC Leaks** - Resolved critical table leaks in emergency heals where pooled tables (`order` and `units`) failed to release when pet heals were disabled, un-nested pet healing from emergency heals, eliminated high-frequency (4 Hz) anonymous closure allocations in `HealBot_Action_UpdatePlayerHoTs`, and implemented in-place key recycling for equipment scanning and grid button tables.
**v1.7.4**