factor: fix UI layout overlaps and anchor constraints in options menu and update changelog
This commit is contained in:
Bluewhale1337
2026-06-24 22:24:47 +02:00
parent dd9cfc301a
commit 03634b37e4
4 changed files with 147 additions and 126 deletions
+7 -5
View File
@@ -391,7 +391,8 @@ function HealBot_Action_SetHeightWidth(width,height,bwidth)
end
HealBot_Action:SetHeight(height);
HealBot_ActionHeight = height;
HealBot_Action:SetWidth(width+bwidth+10)
local bpadding = (HealBot_Config.bpadding and HealBot_Config.bpadding[HealBot_Config.Current_Skin]) or 10
HealBot_Action:SetWidth(width+bwidth+bpadding)
end
function HealBot_Action_SetHealButton(index,unit)
@@ -776,7 +777,7 @@ if not HealBot_IsFighting then
if HealBot_Config.HideOptions==1 then
HealBot_Action_OptionsButton:Hide();
else
HealBot_Action_OptionsButton:SetPoint("BOTTOM","HealBot_Action","BOTTOM",0,10);
HealBot_Action_OptionsButton:SetPoint("BOTTOM","HealBot_Action","BOTTOM",0,bpadding);
HealBot_Action_OptionsButton:Show();
MaxOffsetY = MaxOffsetY+30;
end
@@ -804,8 +805,8 @@ if not HealBot_IsFighting then
HealBot_Action_AbortButton:SetWidth(width)
HealBot_Action_AbortButton:SetHeight(bheight+abortsize);
if HealBot_Config.HideOptions==1 then
HealBot_Action_AbortButton:SetPoint("BOTTOM","HealBot_Action","BOTTOM",0,10);
bar:SetPoint("BOTTOM","HealBot_Action","BOTTOM",0,10);
HealBot_Action_AbortButton:SetPoint("BOTTOM","HealBot_Action","BOTTOM",0,bpadding);
bar:SetPoint("BOTTOM","HealBot_Action","BOTTOM",0,bpadding);
else
HealBot_Action_AbortButton:SetPoint("BOTTOM","HealBot_Action_OptionsButton","TOP",0,10);
bar:SetPoint("BOTTOM","HealBot_Action_OptionsButton","TOP",0,10);
@@ -815,7 +816,7 @@ if not HealBot_IsFighting then
HealBot_Action_SetHeightWidth(OffsetX, MaxOffsetY+10, bwidth);
HealBot_Action_SetHeightWidth(OffsetX, MaxOffsetY+bpadding, bwidth);
end
HealBot_Action_RefreshButtons();
end
@@ -1304,3 +1305,4 @@ end
+10 -4
View File
@@ -1706,6 +1706,7 @@ function HealBot_Options_Buff_Initialize()
end
end
function HealBot_Options_Buff_OnClick()
local frameName = UIDROPDOWNMENU_OPEN_MENU
local frame = getglobal(frameName)
@@ -1747,6 +1748,15 @@ function HealBot_Options_SetBuffs()
UIDropDownMenu_Initialize(dropDown, HealBot_Options_Buff_Initialize)
UIDropDownMenu_SetSelectedID(dropDown, val + 1)
end
local selfCheck = getglobal("HealBot_Options_BuffSelf" .. i)
if selfCheck then
if HealBot_Config.BuffWatchSelf and HealBot_Config.BuffWatchSelf[i] then
selfCheck:SetChecked(HealBot_Config.BuffWatchSelf[i])
else
selfCheck:SetChecked(0)
end
end
end
end
@@ -1754,10 +1764,6 @@ end
function HealBot_Options_FramePaddingS_OnValueChanged(this)
if not HealBot_Config.bpadding then HealBot_Config.bpadding = {} end
HealBot_Config.bpadding[HealBot_Config.Current_Skin] = this:GetValue();
+38 -33
View File
@@ -241,8 +241,8 @@
<CheckButton name="HealBot_Options_ManaBarsHealersOnly" inherits="OptionsCheckButtonTemplate">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ShowManaBars" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="20" y="5" />
<Offset>
<AbsDimension x="20" y="-2" />
</Offset>
</Anchor>
</Anchors>
@@ -307,9 +307,9 @@
<CheckButton name="HealBot_Options_HideOptions" inherits="OptionsCheckButtonTemplate">
<Anchors>
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ShowManaBars" relativePoint="BOTTOMLEFT">
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ManaBarsHealersOnly" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="20" y="-10" />
<AbsDimension x="-20" y="-2" />
</Offset>
</Anchor>
</Anchors>
@@ -323,7 +323,7 @@
<Anchors>
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_HideOptions" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="5" />
<AbsDimension x="0" y="-2" />
</Offset>
</Anchor>
</Anchors>
@@ -336,7 +336,7 @@
<Anchors>
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_HideAbort" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="5" />
<AbsDimension x="0" y="-2" />
</Offset>
</Anchor>
</Anchors>
@@ -349,7 +349,7 @@
<Anchors>
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_QualityRange" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="5" />
<AbsDimension x="0" y="-2" />
</Offset>
</Anchor>
</Anchors>
@@ -1739,9 +1739,9 @@
<AbsDimension x="123" y="17" />
</Size>
<Anchors>
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_FramePaddingS" relativePoint="TOPLEFT">
<Offset>
<AbsDimension x="10" y="-35" />
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_BarBRSpaceS" relativePoint="TOPLEFT">
<Offset>
<AbsDimension x="0" y="-35" />
</Offset>
</Anchor>
</Anchors>
@@ -1843,9 +1843,9 @@
<AbsDimension x="87" y="20"/>
</Size>
<Anchors>
<Anchor point="BOTTOM" relativeTo="HealBot_Options_FontHeight" relativePoint="TOPLEFT">
<Offset>
<AbsDimension x="19" y="-50"/>
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_FontHeight" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="-15"/>
</Offset>
</Anchor>
</Anchors>
@@ -1858,9 +1858,9 @@
<AbsDimension x="87" y="20"/>
</Size>
<Anchors>
<Anchor point="BOTTOM" relativeTo="HealBot_Options_FontHeight" relativePoint="TOPLEFT">
<Offset>
<AbsDimension x="37" y="-50"/>
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_FontHeight" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="-15"/>
</Offset>
</Anchor>
</Anchors>
@@ -1888,9 +1888,9 @@
<AbsDimension x="87" y="20"/>
</Size>
<Anchors>
<Anchor point="BOTTOM" relativeTo="HealBot_Options_FontHeight" relativePoint="TOPLEFT">
<Offset>
<AbsDimension x="37" y="-50"/>
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_FontHeight" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="-15"/>
</Offset>
</Anchor>
</Anchors>
@@ -2575,9 +2575,9 @@
<AbsDimension x="80" y="22"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativeTo="HealBot_Options_ChatMsg1_Text" relativePoint="RIGHT">
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ChatMsg1_Text" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="10" y="0"/>
<AbsDimension x="0" y="-5"/>
</Offset>
</Anchor>
</Anchors>
@@ -2592,7 +2592,7 @@
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="0" y="-70" />
<AbsDimension x="0" y="-90" />
</Offset>
</Anchor>
</Anchors>
@@ -2621,9 +2621,9 @@
<AbsDimension x="80" y="22"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativeTo="HealBot_Options_ChatMsg2_Text" relativePoint="RIGHT">
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ChatMsg2_Text" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="10" y="0"/>
<AbsDimension x="0" y="-5"/>
</Offset>
</Anchor>
</Anchors>
@@ -2638,7 +2638,7 @@
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="0" y="-110" />
<AbsDimension x="0" y="-150" />
</Offset>
</Anchor>
</Anchors>
@@ -2667,9 +2667,9 @@
<AbsDimension x="80" y="22"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativeTo="HealBot_Options_ChatMsg3_Text" relativePoint="RIGHT">
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ChatMsg3_Text" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="10" y="0"/>
<AbsDimension x="0" y="-5"/>
</Offset>
</Anchor>
</Anchors>
@@ -2684,7 +2684,7 @@
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="0" y="-150" />
<AbsDimension x="0" y="-210" />
</Offset>
</Anchor>
</Anchors>
@@ -2713,9 +2713,9 @@
<AbsDimension x="80" y="22"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativeTo="HealBot_Options_ChatMsg4_Text" relativePoint="RIGHT">
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ChatMsg4_Text" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="10" y="0"/>
<AbsDimension x="0" y="-5"/>
</Offset>
</Anchor>
</Anchors>
@@ -2730,7 +2730,7 @@
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="0" y="-190" />
<AbsDimension x="0" y="-270" />
</Offset>
</Anchor>
</Anchors>
@@ -2759,9 +2759,9 @@
<AbsDimension x="80" y="22"/>
</Size>
<Anchors>
<Anchor point="LEFT" relativeTo="HealBot_Options_ChatMsg5_Text" relativePoint="RIGHT">
<Anchor point="TOPLEFT" relativeTo="HealBot_Options_ChatMsg5_Text" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="10" y="0"/>
<AbsDimension x="0" y="-5"/>
</Offset>
</Anchor>
</Anchors>
@@ -2857,3 +2857,8 @@
+13 -5
View File
@@ -1,6 +1,9 @@
**HealBotBlue**
By Bluewhale.
Original Vanilla HealBot, while being a staple healing addon in Wrath and later expansions, was in its infancy during Vanilla WoW. It was a memory and CPU hog that ate up resources, featured a clunky UI, and offered limited functions. To fix all of the above while still using it as a base framework, I refactored the entire codebase. The monolithic code structure was split to follow a more modern approach (MVC design pattern), making it more stable and easily editable. Additionally, the inefficient AURA scanning was replaced with lightweight (Observer Pattern) reactive programming. It now updates only what is necessary when a trigger fires, rather than performing clumsy, continuous scans of a 40-man raid. By doing so, I managed to throttle down CPU and memory usage significantly, placing it on par with modern addons. Additional functionalities are being added over time to provide a holistic, healer-centered raid frame.
> **NOTE:** For HealBot to work correctly, the **Selfcast** feature in WoW options needs to be disabled.
### Reporting Errors
@@ -19,6 +22,10 @@ Default installation path: `C:\Program Files\World of Warcraft\Interface\AddOns\
### Change Log
**v1.2.1**
* **UI Layout Fixes:** Fixed slider width constraints in the Skin menu causing layout overlaps. Realigned Chat tab buttons to ensure they do not exceed the window bounds. Fixed Color Picker anchors.
* **Menu Cleanup:** Fixed Options panel checkboxes overlapping due to incorrect vertical spacing offsets.
**v1.2**
* **Class Colors & Dimming:** Frame text now inherits class colors with black outline for better visibility. Missing buffs intelligently dim the class color and turn the text yellow.
* **Modern Skin Updates:** Fixed white background bugs in modern skins and brightened debuff indicators.
@@ -33,11 +40,12 @@ Default installation path: `C:\Program Files\World of Warcraft\Interface\AddOns\
* **Bug Fix:** Fixed division-by-zero math errors during UI scaling that caused the addon to crash.
**v1.0**
* **Buff tracking** - Added submenu for tracking buffs on element
* ***Hot tracking with icons** - Hots and DoTs display on player bars
* **Incoming heals use newer protocol**
* **Chat functionalities** - modified chat functionalities for spellcast announcements
* **Mana Bars** - Mana bars for healers in the grid added togglable from options menu.
* **Buff tracking:** Added a submenu for tracking buffs on elements.
* **HoT tracking with icons:** HoTs and DoTs display on player bars.
* **Incoming heals:** Now using a newer protocol.
* **Chat functionalities:** Modified chat functionalities for spellcast announcements.
* **Mana Bars:** Mana bars for healers in the grid added, toggleable from the options menu.