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.

386 lines
14 KiB

local SLE, T, E, L, V, P, G = unpack(ElvUI_SLE)
local Sk = SLE.Skins
local B = SLE.Blizzard
local C_AddOns_IsAddOnLoaded = C_AddOns.IsAddOnLoaded
local function configTable()
if not SLE.initialized then return end
local ACH = E.Libs.ACH
E.Options.args.sle.args.skins = {
order = 30,
type = 'group',
name = L["Skins"],
childGroups = 'tab',
args = {
header = ACH:Header(L["Skins"], 1),
desc = ACH:Description(L["SLE_SKINS_DESC"], 2),
GoToSkins = {
order = 2,
type = 'execute',
name = L["ElvUI Skins"],
func = function() E.Libs['AceConfigDialog']:SelectGroup('ElvUI', 'skins') end,
},
objectiveTracker = {
order = 10,
type = 'group',
name = OBJECTIVES_TRACKER_LABEL,
get = function(info) return E.private.sle.skins.objectiveTracker[info[#info]] end,
set = function(info, value) E.private.sle.skins.objectiveTracker[info[#info]] = value; E:StaticPopup_Show('PRIVATE_RL') end,
args = {
enable = {
order = 1,
type = 'toggle',
name = L["Enable"],
disabled = function() return not E.private.skins.blizzard.enable or not E.private.skins.blizzard.objectiveTracker end,
},
statusbars = {
order = 2,
type = 'group',
name = L["Statusbars"],
guiInline = true,
args = {
texture = {
order = 1,
type = 'select',
name = L["Texture"],
desc = L["Sets the texture for statusbars in quest tracker, e.g. bonus objectives/timers."],
disabled = function() return not E.private.sle.skins.objectiveTracker.enable or not E.private.skins.blizzard.enable or not E.private.skins.blizzard.objectiveTracker end,
dialogControl = 'LSM30_Statusbar',
values = AceGUIWidgetLSMlists.statusbar,
},
color = {
type = 'color',
order = 2,
name = L["Statusbar Color"],
disabled = function() return not E.private.sle.skins.objectiveTracker.enable or E.private.sle.skins.objectiveTracker.class or not E.private.skins.blizzard.enable or not E.private.skins.blizzard.objectiveTracker end,
get = function(info)
local t = E.private.sle.skins.objectiveTracker[info[#info]]
local d = V.sle.skins.objectiveTracker[info[#info]]
return t.r, t.g, t.b, t.a, d.r, d.g, d.b, d.a
end,
set = function(info, r, g, b, a)
E.private.sle.skins.objectiveTracker[info[#info]] = {}
local t = E.private.sle.skins.objectiveTracker[info[#info]]
t.r, t.g, t.b, t.a = r, g, b, a
E:StaticPopup_Show('PRIVATE_RL')
end,
},
class = {
order = 3,
type = 'toggle',
name = L["Class Colored Statusbars"],
disabled = function() return not E.private.sle.skins.objectiveTracker.enable or not E.private.skins.blizzard.enable or not E.private.skins.blizzard.objectiveTracker end,
},
},
},
underline = {
order = 3,
type = 'group',
guiInline = true,
name = L["Underline"],
args = {
underline = {
order = 1,
type = 'toggle',
name = L["Enable"],
desc = L["Creates a cosmetic line under objective headers."],
disabled = function() return not E.private.sle.skins.objectiveTracker.enable end,
get = function(info) return E.db.sle.skins.objectiveTracker[info[#info]] end,
set = function(info, value) E.db.sle.skins.objectiveTracker[info[#info]] = value; Sk:Update_ObjectiveTrackerUnderlinesVisibility() end,
},
underlineColor = {
order = 2,
type = 'color',
name = L["Underline Color"],
disabled = function() return not E.private.sle.skins.objectiveTracker.enable or not E.db.sle.skins.objectiveTracker.underline or E.db.sle.skins.objectiveTracker.underlineClass end,
get = function(info)
local t = E.db.sle.skins.objectiveTracker[info[#info]]
local d = P.sle.skins.objectiveTracker[info[#info]]
return t.r, t.g, t.b, d.r, d.g, d.b
end,
set = function(info, r, g, b)
E.db.sle.skins.objectiveTracker[info[#info]] = {}
local t = E.db.sle.skins.objectiveTracker[info[#info]]
t.r, t.g, t.b = r, g, b
Sk:Update_ObjectiveTrackerUnderlinesColor()
end,
},
underlineClass = {
order = 3,
type = 'toggle',
name = L["Class Colored Underline"],
disabled = function() return not E.private.sle.skins.objectiveTracker.enable or not E.db.sle.skins.objectiveTracker.underline end,
get = function(info) return E.db.sle.skins.objectiveTracker[info[#info]] end,
set = function(info, value) E.db.sle.skins.objectiveTracker[info[#info]] = value; Sk:Update_ObjectiveTrackerUnderlinesColor() end,
},
underlineHeight = {
order = 4,
type = 'range',
name = L["Underline Height"],
min = 1, max = 10, step = 1,
disabled = function() return not E.private.sle.skins.objectiveTracker.enable or not E.private.skins.blizzard.enable or not E.private.skins.blizzard.objectiveTracker end,
},
},
},
header = {
order = 5,
type = 'group',
name = L["Headers"],
guiInline = true,
args = {
colorHeader = {
order = 1,
type = 'color',
name = L["Header Text Color"],
disabled = function() return not E.private.sle.skins.objectiveTracker.enable or E.db.sle.skins.objectiveTracker.classHeader end,
get = function(info)
local t = E.db.sle.skins.objectiveTracker[info[#info]]
local d = P.sle.skins.objectiveTracker[info[#info]]
return t.r, t.g, t.b, d.r, d.g, d.b
end,
set = function(info, r, g, b)
E.db.sle.skins.objectiveTracker[info[#info]] = {}
local t = E.db.sle.skins.objectiveTracker[info[#info]]
t.r, t.g, t.b = r, g, b
E:UpdateBlizzardFonts()
end,
},
classHeader = {
order = 1,
type = 'toggle',
name = L["Class Colored Header Text"],
get = function(info) return E.db.sle.skins.objectiveTracker[info[#info]] end,
set = function(info, value) E.db.sle.skins.objectiveTracker[info[#info]] = value; E:UpdateBlizzardFonts() end,
},
scenarioBG = {
order = 3,
type = 'toggle',
name = L["Stage Background"],
},
BGbackdrop = {
order = 4,
type = 'toggle',
name = L["Skinned Background"],
disabled = function() return E.private.sle.skins.objectiveTracker.scenarioBG or not E.private.skins.blizzard.enable or not E.private.skins.blizzard.objectiveTracker end,
},
skinnedTextureLogo = {
order = 5,
type = 'select',
name = L["Texture"],
desc = L["Sets the texture for statusbars in quest tracker, e.g. bonus objectives/timers."],
disabled = function() return not E.private.sle.skins.objectiveTracker.enable or not E.private.skins.blizzard.enable or not E.private.skins.blizzard.objectiveTracker or not E.private.sle.skins.objectiveTracker.BGbackdrop or E.private.sle.skins.objectiveTracker.scenarioBG end,
set = function(info, value)
E.private.sle.skins.objectiveTracker[info[#info]] = value
Sk:UpdateObjectiveFrameLogos()
end,
values = {
["NONE"] = NONE,
["SLE"] = [[|TInterface\AddOns\ElvUI_SLE\media\textures\chat\Logo:16:16|t S&L]],
["CUSTOM"] = L["Custom"],
},
},
customTextureLogo = {
order = 6,
type = 'input',
name = L["Custom Texture"],
desc = L["Set the texture to use in this frame. Requirements are the same as the chat textures."],
width = 'full',
hidden = function() return E.private.sle.skins.objectiveTracker.skinnedTextureLogo ~= 'CUSTOM' end,
set = function(info, value)
E.private.sle.skins.objectiveTracker[info[#info]] = value
Sk:UpdateObjectiveFrameLogos()
end,
},
},
},
keyTimers = {
order = 6,
type = 'group',
name = L["Key Timers"],
guiInline = true,
args = {
enable = {
order = 1,
type = 'toggle',
name = L["Enable"],
desc = L["Enables timers for 2 & 3 chest times in M+"],
disabled = function() return not E.private.sle.skins.objectiveTracker.enable end,
get = function(info) return E.private.sle.skins.objectiveTracker.keyTimers[info[#info]] end,
set = function(info, value) E.private.sle.skins.objectiveTracker.keyTimers[info[#info]] = value; E:StaticPopup_Show('PRIVATE_RL') end,
},
showMarks = {
order = 2,
type = 'toggle',
name = L["Show Marks"],
desc = L["Show goal time markers on the timer bar"],
disabled = function() return not E.private.sle.skins.objectiveTracker.enable or not E.private.sle.skins.objectiveTracker.keyTimers.enable end,
get = function(info) return E.private.sle.skins.objectiveTracker.keyTimers[info[#info]] end,
set = function(info, value) E.private.sle.skins.objectiveTracker.keyTimers[info[#info]] = value end,
},
showBothTimers = {
order = 3,
type = 'toggle',
name = L["Show Both Timers"],
desc = L["Show timers for both milestones at the same time if available."],
disabled = function() return not E.private.sle.skins.objectiveTracker.enable or not E.private.sle.skins.objectiveTracker.keyTimers.enable end,
get = function(info) return E.private.sle.skins.objectiveTracker.keyTimers[info[#info]] end,
set = function(info, value) E.private.sle.skins.objectiveTracker.keyTimers[info[#info]] = value end,
},
},
},
torghastPowers = {
order = 6,
type = 'group',
name = L["Torghast Powers"],
guiInline = true,
get = function(info) return E.private.sle.skins.objectiveTracker.torghastPowers[info[#info]] end,
set = function(info, value) E.private.sle.skins.objectiveTracker.torghastPowers[info[#info]] = value; E:StaticPopup_Show('PRIVATE_RL') end,
args = {
enable = {
order = 1,
type = 'toggle',
name = L["Enable"],
desc = L["Torghast Powers Bar that contains your powers in the objective tracker will have the ElvUI look."],
disabled = function() return not E.private.sle.skins.objectiveTracker.enable end,
},
}
},
},
},
merchant = {
order = 20,
type = 'group',
name = L["Merchant Frame"],
get = function(info) return E.private.sle.skins.merchant[info[#info]] end,
set = function(info, value) E.private.sle.skins.merchant[info[#info]] = value; E:StaticPopup_Show('PRIVATE_RL') end,
args = {
enable = {
order = 1,
type = 'toggle',
name = L["Enable"],
},
subpages = {
order = 2,
type = 'range',
name = L["Subpages"],
desc = L["Subpages are blocks of 10 items. This option set how many of subpages will be shown on a single page."],
min = 2, max = 5, step = 1,
disabled = function() return not E.private.sle.skins.merchant.enable or E.private.sle.skins.merchant.style ~= 'Default' end,
},
style = {
order = 3,
type = 'select',
name = L["Style"],
values = {
["Default"] = DEFAULT,
["List"] = L["As List"],
},
},
listFonts = {
order = 4,
type = 'group',
name = L["List Style Fonts"],
guiInline = true,
disabled = function() return E.private.sle.skins.merchant.style ~= 'List' end,
get = function(info) return E.db.sle.skins.merchant.list[info[#info]] end,
set = function(info, value) E.db.sle.skins.merchant.list[info[#info]] = value; Sk:Media() end,
args = {
nameFont = {
order = 1,
type = 'select',
name = L["Item Name Font"],
dialogControl = 'LSM30_Font',
values = AceGUIWidgetLSMlists.font,
},
nameSize = {
order = 2,
type = 'range',
name = L["Item Name Size"],
min = 8, max = 32, step = 1,
},
nameOutline = ACH:FontFlags(L["Item Name Outline"], L["Set the font outline."], 3),
subFont = {
order = 4,
type = 'select',
name = L["Item Info Font"],
dialogControl = 'LSM30_Font',
values = AceGUIWidgetLSMlists.font,
},
subSize = {
order = 5,
type = 'range',
name = L["Item Info Size"],
min = 8, max = 32, step = 1,
},
subOutline = ACH:FontFlags(L["Item Info Outline"], L["Set the font outline."], 6),
}
},
},
},
petbattles = {
order = 30,
type = 'group',
name = L["Pet Battles skinning"],
args = {
enable = {
order = 1,
type = 'toggle',
name = L["Enable"],
desc = L["Make some elements of pet battles movable via toggle anchors."],
get = function(info) return E.private.sle.skins.petbattles[info[#info]] end,
set = function(info, value) E.private.sle.skins.petbattles[info[#info]] = value; E:StaticPopup_Show('PRIVATE_RL') end,
},
},
},
blizzardframes = {
order = 40,
type = 'group',
name = 'Blizzard',
args = {
talkinghead = {
order = 1,
type = 'group',
name = L["Talking Head"],
args = {
hide = {
order = 1,
type = 'toggle',
name = HIDE,
desc = L["Hide the talking head frame at the top center of the screen."],
get = function(info) return E.db.sle.skins.talkinghead[info[#info]] end,
set = function(info, value) E.db.sle.skins.talkinghead[info[#info]] = value end,
},
},
},
},
},
},
}
if C_AddOns_IsAddOnLoaded('QuestGuru') then
E.Options.args.sle.args.skins.args.QuestGuru = {
order = 12,
type = 'group',
name = 'QuestGuru',
get = function(info) return E.private.sle.skins.questguru[info[#info]] end,
set = function(info, value) E.private.sle.skins.questguru[info[#info]] = value; E:StaticPopup_Show('PRIVATE_RL') end,
args = {
enable = {
order = 1,
type = 'toggle',
name = L["Enable"],
},
removeParchment = {
order = 1,
type = 'toggle',
name = L["Remove Parchment"],
},
},
}
end
end
tinsert(SLE.Configs, configTable)