You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
4.5 KiB
80 lines
4.5 KiB
local SLE, T, E, L, V, P, G = unpack(ElvUI_SLE)
|
|
local M = SLE.Media
|
|
local ACH = E.Libs.ACH
|
|
local C
|
|
|
|
local ApplyAllDefaults = {
|
|
font = 'PT Sans Narrow',
|
|
fontSize = 12,
|
|
fontOutline = 'OUTLINE'
|
|
}
|
|
|
|
local function getFont(info)
|
|
local db = info[#info-2] == 'scenarioStage' and E.db.sle.media.fonts[info[#info-2]][info[#info-1]][info[#info]] or E.db.sle.media.fonts[info[#info-1]][info[#info]]
|
|
return db
|
|
end
|
|
|
|
local function setFont(info, value)
|
|
if info[#info-2] == 'scenarioStage' then
|
|
E.db.sle.media.fonts[info[#info-2]][info[#info-1]][info[#info]] = value
|
|
else
|
|
E.db.sle.media.fonts[info[#info-1]][info[#info]] = value
|
|
end
|
|
E:UpdateMedia()
|
|
end
|
|
|
|
local function GetFontOptions(groupName, order, hideOutline)
|
|
local config = ACH:Group(groupName, nil, order, nil, function(info) return getFont(info) end, function(info, value) setFont(info, value) end, function() return not E.private.general.replaceBlizzFonts end)
|
|
config.guiInline = true
|
|
|
|
config.args.font = ACH:SharedMediaFont(L["Font"], nil, 1)
|
|
config.args.fontSize = ACH:Range(L["Font Size"], nil, 2, C.Values.FontSize)
|
|
config.args.fontOutline = ACH:FontFlags(L["Font Outline"], L["Set the font outline."], 3, nil, nil, nil, nil, function() return hideOutline and hideOutline or false end)
|
|
-- config.args.fontOutlineWarning = ACH:Description(L["|cffFF0000Warning: "], 4, nil, nil, nil, nil, nil, width, function() return not hideOutline and true or false end) --* Maybe add this again for gossip text but under advanced option selected?
|
|
|
|
return config
|
|
end
|
|
|
|
local function ApplyAll()
|
|
E.PopupDialogs["SLE_APPLY_FONT_WARNING"].font = ApplyAllDefaults.font
|
|
E.PopupDialogs["SLE_APPLY_FONT_WARNING"].fontSize = ApplyAllDefaults.fontSize
|
|
E.PopupDialogs["SLE_APPLY_FONT_WARNING"].fontOutline = ApplyAllDefaults.fontOutline
|
|
E:StaticPopup_Show("SLE_APPLY_FONT_WARNING")
|
|
end
|
|
|
|
local function configTable()
|
|
if not SLE.initialized then return end
|
|
C = unpack(E.Config)
|
|
|
|
E.Options.args.sle.args.media = ACH:Group(L["Media"], nil, 20, 'tab', nil, nil)
|
|
local Media = E.Options.args.sle.args.media.args
|
|
Media.enable = ACH:Toggle(L["Enable"], nil, 1,nil, nil, nil, function(info) return E.private.sle.media[info[#info]] end, function(info, value) E.private.sle.media[info[#info]] = value E:StaticPopup_Show('PRIVATE_RL') end)
|
|
|
|
--* Objective Tracker Tab
|
|
local ObjectiveTracker = ACH:Group(L["Objective Tracker"], nil, 10, nil, nil, nil, function() return not E.private.sle.media.enable or not E.private.general.replaceBlizzFonts end)
|
|
Media.objectiveTracker = ObjectiveTracker
|
|
ObjectiveTracker.args.objectiveHeader = GetFontOptions(L["Category Headers"], 1)
|
|
ObjectiveTracker.args.objectiveHeader.args.description = ACH:Description(format('%s%s|r', E:RGBToHex(1, 0.82, 0), L["The header text of each block/section of the objective tracker. For example, \"Campaign\" & \"Quests\" that break the tracker into a sections."]), 5)
|
|
ObjectiveTracker.args.objective = GetFontOptions(L["Tracker Entries"], 2)
|
|
ObjectiveTracker.args.scenarioStage = ACH:Group(L["Scenario Stage Block"], nil, 10, nil)
|
|
ObjectiveTracker.args.scenarioStage.guiInline = true
|
|
ObjectiveTracker.args.scenarioStage.args.HeaderText = GetFontOptions(L["Header"], 1)
|
|
ObjectiveTracker.args.scenarioStage.args.TimerText = GetFontOptions(L["Timer"], 2)
|
|
ObjectiveTracker.args.example = ACH:Description(nil, 20, nilfontSize, [[Interface\AddOns\ElvUI_SLE\media\options\ObjectiveTracker]], nil, 256, 256, 256)
|
|
|
|
--* Misc Tab
|
|
local MiscTexts = ACH:Group(L["Misc Texts"], nil, 15, nil, nil, nil, function() return not E.private.sle.media.enable or not E.private.general.replaceBlizzFonts end)
|
|
Media.misc = MiscTexts
|
|
MiscTexts.args.mail = GetFontOptions(L["Mail Text"], 1)
|
|
MiscTexts.args.questFontSuperHuge = GetFontOptions(L["Banner Big Text"], 3)
|
|
|
|
--* Apply To All
|
|
local ApplyToAll = ACH:Group(L["Apply Font To All"], nil, 20, nil, function(info) return ApplyAllDefaults[info[#info]] end, function(info, value) ApplyAllDefaults[info[#info]] = value end, function() return not E.private.sle.media.enable or not E.private.general.replaceBlizzFonts end)
|
|
Media.applyAll = ApplyToAll
|
|
ApplyToAll.args.font = ACH:SharedMediaFont(L["Font"], nil, 1, nil, nil, nil)
|
|
ApplyToAll.args.fontSize = ACH:Range(L["Font Size"], nil, 2, C.Values.FontSize)
|
|
ApplyToAll.args.fontOutline = ACH:FontFlags(L["Font Outline"], L["Set the font outline."], 3)
|
|
ApplyToAll.args.apply = ACH:Execute(L["Apply Font To All"], nildesc, 4, function() ApplyAll() end)
|
|
end
|
|
|
|
tinsert(SLE.Configs, configTable)
|
|
|