Skip to content

Commit 83edfcf

Browse files
committed
Minor visual improvements to the config UI
1 parent fd1c599 commit 83edfcf

File tree

3 files changed

+71
-7
lines changed

3 files changed

+71
-7
lines changed

config.lua

Lines changed: 53 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -273,18 +273,43 @@ do
273273
return headerInitializer;
274274
end
275275

276-
local heightCalculator = UIParent:CreateFontString(nil, "ARTWORK", "GameFontNormal");
277-
heightCalculator:SetWidth(635);
276+
local calculateHeight;
277+
do
278+
local heightCalculator = UIParent:CreateFontString(nil, "ARTWORK", "GameFontNormal");
279+
local deferrer = CreateFrame("Frame");
280+
deferrer:Hide();
281+
deferrer.callbacks = {};
282+
deferrer:SetScript("OnUpdate", function()
283+
for _, callback in pairs(deferrer.callbacks) do
284+
securecallfunction(callback);
285+
end
286+
deferrer.callbacks = {};
287+
end);
288+
function deferrer:Defer(callback)
289+
table.insert(self.callbacks, callback);
290+
self:Show();
291+
end
292+
calculateHeight = function(data, deferred)
293+
local text, indent = data.name, data.indent;
294+
heightCalculator:SetWidth(635 - (indent * 15));
295+
heightCalculator:SetText(text);
296+
297+
data.extent = heightCalculator:GetStringHeight();
298+
if not deferred then
299+
deferrer:Defer(function() calculateHeight(data, true); end);
300+
end
301+
end
302+
end
278303

279304
--- @param text string
305+
--- @param indent number? # default 0
280306
--- @return SettingsListElementInitializer
281-
function Config:MakeText(text)
282-
heightCalculator:SetText(text);
283-
307+
function Config:MakeText(text, indent)
284308
local data = {
285309
name = text,
286-
extent = heightCalculator:GetStringHeight(),
310+
indent = indent or 0,
287311
};
312+
calculateHeight(data);
288313
--- @type SettingsListElementInitializer
289314
local textInitializer = Settings.CreateElementInitializer("TransmogUpgradeMaster_SettingsTextTemplate", data);
290315

@@ -473,6 +498,8 @@ do
473498

474499
return initializer:GetExtent();
475500
end
501+
502+
frame:EvaluateVisibility(self.data.expanded);
476503
end
477504

478505
self.layout:AddInitializer(expandInitializer);
@@ -518,7 +545,7 @@ do
518545
function Config:MakeDonationPrompt()
519546
self:MakeText("Addon development takes a large amount of time and effort. If you enjoy using Transmog Upgrade Master, please consider supporting its development by donating. Your support helps ensure the continued improvement and maintenance of the addon. Thank you for your generosity!");
520547

521-
local function onClick(buttonIndex)
548+
local function onClick(_, buttonIndex)
522549
if buttonIndex == 1 then
523550
self:CopyText("https://www.paypal.com/cgi-bin/webscr?hosted_button_id=C8HP9WVKPCL8C&item_name=Transmog+Upgrade+Master&cmd=_s-xclick");
524551
else
@@ -696,6 +723,25 @@ do
696723
self.Text:SetText(data.name);
697724
self.Text:SetHeight(data.extent);
698725
self:SetHeight(data.extent);
726+
local indent = data.indent or 0;
727+
self.Text:SetPoint('TOPLEFT', (7 + (indent * 15)), 0);
728+
end
729+
end
730+
731+
TransmogUpgradeMaster_SettingsHeaderMixin = CreateFromMixins(DefaultTooltipMixin);
732+
do
733+
--- @class TUM_Config_HeaderMixin
734+
local mixin = TransmogUpgradeMaster_SettingsHeaderMixin;
735+
736+
function mixin:Init(initializer)
737+
local data = initializer:GetData();
738+
self.Title:SetTextToFit(data.name);
739+
local indent = data.indent or 0;
740+
self.Title:SetPoint('TOPLEFT', (7 + (indent * 15)), -16);
741+
742+
self:SetCustomTooltipAnchoring(self.Title, "ANCHOR_RIGHT");
743+
744+
self:SetTooltipFunc(function() Settings.InitTooltip(initializer:GetName(), initializer:GetTooltip()) end);
699745
end
700746
end
701747
end

settingsTemplates.xml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,4 +58,19 @@ https://raw.githubusercontent.com/Meorawr/wow-ui-schema/main/UI.xsd">
5858
</Layer>
5959
</Layers>
6060
</Frame>
61+
<Frame name="TransmogUpgradeMaster_SettingsHeaderTemplate" mixin="TransmogUpgradeMaster_SettingsHeaderMixin" virtual="true">
62+
<Size y="45"/>
63+
<Layers>
64+
<Layer level="OVERLAY">
65+
<FontString parentKey="Title" inherits="GameFontHighlightLarge" justifyH="LEFT" justifyV="TOP">
66+
<Anchors>
67+
<Anchor point="TOPLEFT" x="7" y="-16"/>
68+
</Anchors>
69+
</FontString>
70+
</Layer>
71+
</Layers>
72+
<Scripts>
73+
<OnLoad method="OnLoad"/>
74+
</Scripts>
75+
</Frame>
6176
</Ui>

types.lua

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,9 @@
7777
--- @class TUM_Config_TextMixin: Frame, DefaultTooltipMixin
7878
--- @field Text FontString
7979

80+
--- @class TUM_Config_HeaderMixin: Frame, DefaultTooltipMixin
81+
--- @field Title FontString
82+
8083
--- @class TUM_Config_SettingData
8184
--- @field setting AddOnSettingMixin
8285
--- @field name string

0 commit comments

Comments
 (0)