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.

815 lines
30 KiB

local SLE, _, E, L, _, P = unpack(select(2, ...))
local ENH = SLE.EnhancedShadows
local SUF = SLE.UnitFrames
local DT = E.DataTexts
local UF = E.UnitFrames
-- GLOBALS: MICRO_BUTTONS
local _G = _G
local unpack = unpack
local format, gsub, strlower = format, gsub, strlower
local tinsert, pairs = tinsert, pairs
local COLOR = COLOR
function ENH:UpdateDatatextOptions()
ENH:UpdateDefaults()
-- for name, frame in next, DT.db.panels do
for name, frame in next, DT.RegisteredPanels do
E.Options.args.sle.args.modules.args.shadows.args.datatexts.args[name] = {
order = 1,
type = 'group',
name = function() return format(E.db.datatexts.panels[name].enable and '%s' or '|cffFF3333%s|r', name) end,
get = function(info) return E.db.sle.shadows.datatexts.panels[name][info[#info]] end,
set = function(info, value) E.db.sle.shadows.datatexts.panels[name][info[#info]] = value; ENH:ToggleDTShadows() end,
args = {
backdrop = {
order = 2,
type = 'toggle',
name = L["Panel"],
desc = L["Enables a shadow for the panel or backdrop of this frame."],
disabled = function() return not E.db.datatexts.panels[name].enable end,
},
size = {
order = 3,
type = 'range',
name = L["Size"],
min = 2, max = 10, step = 1,
disabled = function() return not E.db.datatexts.panels[name].enable end,
set = function(info, value)
E.db.sle.shadows.datatexts.panels[name][info[#info]] = value
if ENH.DummyPanels[name] and ENH.DummyPanels[name].enhshadow then
frame = ENH.DummyPanels[name]
end
frame.enhshadow.size = value
ENH:UpdateShadow(frame.enhshadow)
end,
},
},
}
if name == 'LeftChatDataPanel' or name == 'RightChatDataPanel' then
E.Options.args.sle.args.modules.args.shadows.args.datatexts.args[name].args.backdrop.set = function(info, value)
E.db.sle.shadows.datatexts.panels[name][info[#info]] = value
if ENH.DummyPanels[name] and ENH.DummyPanels[name].enhshadow then
frame = ENH.DummyPanels[name]
end
frame.enhshadow.backdrop = value
ENH:UpdateShadow(frame.enhshadow)
ENH:UpdateShadow(_G.LeftChatPanel.enhshadow)
ENH:UpdateShadow(_G.RightChatPanel.enhshadow)
ENH:ToggleDTShadows()
end
end
end
end
local function updateFrame(frame, size, backdrop)
if not frame or not frame.enhshadow then return end
if size then frame.enhshadow.size = size end
if backdrop then frame.enhshadow.backdrop = backdrop end
ENH:UpdateShadow(frame.enhshadow)
end
local function configTable()
if not SLE.initialized then return end
local ACH = E.Libs.ACH
E.Options.args.sle.args.modules.args.shadows = {
order = 1,
type = 'group',
name = L["Enhanced Shadows"],
childGroups = 'tab',
args = {
enable = {
order = 1,
type = 'toggle',
name = L["Enable"],
get = function(info) return E.private.sle.module.shadows[info[#info]] end,
set = function(info, value) E.private.sle.module.shadows[info[#info]] = value; E:StaticPopup_Show('PRIVATE_RL') end,
},
shadowcolor = {
order = 2,
type = 'color',
hasAlpha = false,
name = COLOR,
disabled = function() return not E.private.sle.module.shadows.enable end,
get = function(info)
local t = E.db.sle.shadows[info[#info]]
local d = P.sle.shadows[info[#info]]
return t.r, t.g, t.b, t.a, d.r, d.g, d.b
end,
set = function(info, r, g, b)
local t = E.db.sle.shadows[info[#info]]
t.r, t.g, t.b = r, g, b
SLE:UpdateMedia()
ENH:UpdateShadows()
SUF:UpdateShadows()
end,
},
general = {
order = 1,
type = 'group',
name = L["General"],
disabled = function() return not E.private.sle.module.shadows.enable end,
args = {
chat = {
order = 1,
type = 'group',
-- name = L["Chat"],
name = function() return format(E.db.chat.panelBackdrop ~= 'HIDEBOTH' and '%s' or '|cffFF3333%s|r', L["Chat"]) end,
-- disabled = function() return not (E.db.chat.panelBackdrop == 'SHOWBOTH' or E.db.chat.panelBackdrop == 'LEFT') end,
get = function(info) return E.db.sle.shadows.chat[info[#info-1]][info[#info]] end,
args = {
elvconfig = {
order = 0,
type = 'execute',
name = 'ElvUI: '..L["Chat"],
width = 'full',
func = function() E.Libs['AceConfigDialog']:SelectGroup('ElvUI', 'chat', 'panels') end,
},
LeftChatPanel = {
order = 1,
type = 'group',
name = '',
guiInline = true,
args = {
backdrop = {
order = 1,
type = 'toggle',
name = L["Left Chat"],
desc = L["Enables a shadow for the panel or backdrop of this frame."],
disabled = function() return not (E.db.chat.panelBackdrop == 'SHOWBOTH' or E.db.chat.panelBackdrop == 'LEFT') end,
-- disabled = function() return not (E.db.chat.panelBackdrop ~= 'HIDEBOTH') end,
set = function(info, value)
E.db.sle.shadows.chat.LeftChatPanel[info[#info]] = value
updateFrame(_G.LeftChatPanel, nil, value)
ENH:UpdateShadow(ENH.DummyPanels.LeftChatDataPanel.enhshadow)
ENH:ToggleCHShadows()
end,
},
size = {
order = 2,
type = 'range',
name = L["Size"],
min = 2, max = 10, step = 1,
disabled = function() return not E.db.sle.shadows.chat.LeftChatPanel.backdrop or not (E.db.chat.panelBackdrop == 'SHOWBOTH' or E.db.chat.panelBackdrop == 'LEFT') end,
set = function(info, value) E.db.sle.shadows.chat.LeftChatPanel[info[#info]] = value; updateFrame(_G.LeftChatPanel, value) end,
},
},
},
RightChatPanel = {
order = 2,
type = 'group',
name = '',
guiInline = true,
args = {
backdrop = {
order = 1,
type = 'toggle',
name = L["Right Chat"],
desc = L["Enables a shadow for the panel or backdrop of this frame."],
disabled = function() return not (E.db.chat.panelBackdrop == 'SHOWBOTH' or E.db.chat.panelBackdrop == 'LEFT') end,
set = function(info, value)
E.db.sle.shadows.chat.RightChatPanel[info[#info]] = value
updateFrame(_G.RightChatPanel, nil, value)
ENH:UpdateShadow(ENH.DummyPanels.RightChatDataPanel.enhshadow)
ENH:ToggleCHShadows()
end,
},
size = {
order = 2,
type = 'range',
name = L["Size"],
min = 2, max = 10, step = 1,
disabled = function() return not E.db.sle.shadows.chat.RightChatPanel.backdrop end,
set = function(info, value) E.db.sle.shadows.chat.RightChatPanel[info[#info]] = value; updateFrame(_G.RightChatPanel, value) end,
},
},
},
},
},
minimap = { --* Minimap config looks good
order = 1,
type = 'group',
name = function() return format(E.private.general.minimap.enable and '%s' or '|cffFF3333%s|r', L["Minimap"]) end,
args = {
elvconfig = {
order = 0,
type = 'execute',
name = 'ElvUI: '..L["Minimap"],
width = 'full',
func = function() E.Libs['AceConfigDialog']:SelectGroup('ElvUI', 'maps', 'minimap') end,
},
minimap = {
order = 1,
type = 'group',
name = '',
guiInline = true,
get = function(info) return E.db.sle.shadows.minimap[info[#info]] end,
args = {
backdrop = {
order = 1,
type = 'toggle',
name = L["Minimap"],
desc = L["Enables a shadow for the panel or backdrop of this frame."],
disabled = function() return not E.private.general.minimap.enable end,
set = function(info, value) E.db.sle.shadows.minimap[info[#info]] = value; ENH:HandleMinimap() end,
},
size = {
order = 2,
type = 'range',
name = L["Size"],
min = 2, max = 10, step = 1,
disabled = function() return not E.private.general.minimap.enable or not E.db.sle.shadows.minimap.backdrop end,
set = function(info, value)
E.db.sle.shadows.minimap[info[#info]] = value
updateFrame(_G.MMHolder, value)
updateFrame(ENH.DummyPanels.Minimap, value)
end,
},
},
},
},
},
objectiveframe = {
order = 1,
type = 'group',
name = L["Objective Frame"],
args = {
elvconfig = {
order = 0,
type = 'execute',
name = 'ElvUI: '..L["Objective Frame"],
width = 'full',
func = function() E.Libs['AceConfigDialog']:SelectGroup('ElvUI', 'general', 'blizzUIImprovements') end,
},
objectiveframe = {
order = 2,
type = 'group',
name = L["Objective Frame"],
guiInline = true,
get = function(info) return E.db.sle.shadows.objectiveframe[info[#info]] end,
args = {
backdrop = {
order = 1,
type = 'toggle',
name = L["Backdrop"],
desc = L["Enables a shadow for the panel or backdrop of this frame."],
set = function(info, value) E.db.sle.shadows.objectiveframe[info[#info]] = value; ENH:HandleObjectiveFrame() end,
},
size = {
order = 2,
type = 'range',
name = L["Size"],
min = 2, max = 10, step = 1,
disabled = function() return not E.db.sle.shadows.objectiveframe.backdrop end,
set = function(info, value)
E.db.sle.shadows.objectiveframe[info[#info]] = value
if _G.ScenarioStageBlock_SLE_Block then
updateFrame(_G.ScenarioStageBlock_SLE_Block, value)
end
end,
},
},
},
torghastPowers = {
order = 2,
type = 'group',
name = L["Torghast Powers Bar"],
guiInline = true,
get = function(info) return E.db.sle.shadows.torghastPowers[info[#info]] end,
args = {
backdrop = {
order = 1,
type = 'toggle',
name = L["Backdrop"],
desc = L["Enables a shadow for the panel or backdrop of this frame."],
set = function(info, value) E.db.sle.shadows.torghastPowers[info[#info]] = value; ENH:HandleObjectiveFrame() end,
},
size = {
order = 2,
type = 'range',
name = L["Size"],
min = 2, max = 10, step = 1,
disabled = function() return not E.db.sle.shadows.torghastPowers.backdrop end,
set = function(info, value)
E.db.sle.shadows.torghastPowers[info[#info]] = value
if _G.ScenarioBlocksFrame.MawBuffsBlock.SLE_Block then
updateFrame(_G.ScenarioBlocksFrame.MawBuffsBlock.SLE_Block, value)
end
if _G.ScenarioBlocksFrame.MawBuffsBlock.Container.List then
updateFrame(_G.ScenarioBlocksFrame.MawBuffsBlock.Container.List, value)
end
end,
},
},
},
},
},
panels = {
order = 1,
type = 'group',
name = function() return format((E.db.general.bottomPanel or E.db.general.topPanel) and '%s' or '|cffFF3333%s|r', L["Panels"]) end,
args = {
elvconfig = {
order = 0,
type = 'execute',
name = 'ElvUI: '..L["Panels"],
width = 'full',
func = function() E.Libs['AceConfigDialog']:SelectGroup('ElvUI', 'general', 'general') end,
},
bottomPanel = {
order = 1,
type = 'group',
name = '',
guiInline = true,
get = function(info) return E.db.sle.shadows.general.bottomPanel[info[#info]] end,
set = function(info, value) E.db.sle.shadows.general.bottomPanel[info[#info]] = value; ENH:HandleElvUIPanels() end,
args = {
backdrop = {
order = 1,
type = 'toggle',
name = L["Bottom Panel"],
desc = L["Enables a shadow for the panel or backdrop of this frame."],
disabled = function() return not E.db.general.bottomPanel end,
},
size = {
order = 2,
type = 'range',
name = L["Size"],
min = 2, max = 10, step = 1,
disabled = function() return not E.db.general.bottomPanel or not E.db.sle.shadows.general.bottomPanel.backdrop end,
set = function(info, value)
E.db.sle.shadows.general.bottomPanel[info[#info]] = value
updateFrame(_G.ElvUI_BottomPanel, value)
-- local frame = _G.ElvUI_BottomPanel
-- if frame and frame.enhshadow then
-- frame.enhshadow.size = value
-- ENH:UpdateShadow(frame.enhshadow)
-- end
end,
-- get = function(info) return E.db.sle.shadows.minimap[info[#info]] end,
-- set = function(info, value)
-- E.db.sle.shadows.minimap[info[#info]] = value
-- _G.MMHolder.enhshadow.size = value
-- ENH:UpdateShadow(_G.MMHolder.enhshadow)
-- ENH.DummyPanels.Minimap.enhshadow.size = value
-- ENH:UpdateShadow(ENH.DummyPanels.Minimap.enhshadow)
-- end,
},
},
},
topPanel = {
order = 1,
type = 'group',
name = '',
guiInline = true,
get = function(info) return E.db.sle.shadows.general.topPanel[info[#info]] end,
set = function(info, value) E.db.sle.shadows.general.topPanel[info[#info]] = value; ENH:HandleElvUIPanels() end,
-- disabled = function() return not E.private.general.minimap.enable end,
args = {
backdrop = {
order = 1,
type = 'toggle',
name = L["Top Panel"],
desc = L["Enables a shadow for the panel or backdrop of this frame."],
disabled = function() return not E.db.general.topPanel end,
},
size = {
order = 2,
type = 'range',
name = L["Size"],
min = 2, max = 10, step = 1,
disabled = function() return not E.db.general.topPanel or not E.db.sle.shadows.general.topPanel.backdrop end,
-- get = function(info) return E.db.sle.shadows.minimap[info[#info]] end,
-- set = function(info, value)
-- E.db.sle.shadows.minimap[info[#info]] = value
-- _G.MMHolder.enhshadow.size = value
-- ENH:UpdateShadow(_G.MMHolder.enhshadow)
-- ENH.DummyPanels.Minimap.enhshadow.size = value
-- ENH:UpdateShadow(ENH.DummyPanels.Minimap.enhshadow)
-- end,
},
},
},
},
},
},
},
actionbars = {
order = 10,
type = 'group',
name = L["ActionBars"],
disabled = function() return not E.private.sle.module.shadows.enable or not E.private.actionbar.enable end,
args = {
barPet = {
order = 11,
type = 'group',
name = function() return format(E.db.actionbar.barPet.enabled and '%s' or '|cffFF3333%s|r', L["Pet Bar"]) end,
disabled = function() return not E.ActionBars.Initialized end,
get = function(info) return E.db.sle.shadows.actionbars.petbar[info[#info]] end,
set = function(info, value) E.db.sle.shadows.actionbars.petbar[info[#info]] = value; ENH:ToggleABShadows() end,
args = {
buttons = {
order = 1,
type = 'toggle',
name = L["Buttons"],
desc = format(L["Enables a shadow on the %s when it's enabled."], strlower(L["Buttons"])),
},
backdrop = {
order = 2,
type = 'toggle',
name = L["Backdrop"],
desc = format(L["Enables a shadow on the %s when it's enabled."], strlower(L["Backdrop"])),
},
size = {
order = 3,
type = 'range',
name = L["Size"],
min = 2, max = 10, step = 1,
set = function(info, value)
E.db.sle.shadows.actionbars.petbar[info[#info]] = value
_G.ElvUI_BarPet.enhshadow.size = value
ENH:UpdateShadow(_G.ElvUI_BarPet.enhshadow)
for i = 1, 12 do
local button = _G['PetActionButton'..i]
if not button then break end
button.enhshadow.size = value
ENH:UpdateShadow(button.enhshadow)
end
end,
},
},
},
microbar = {
order = 11,
type = 'group',
name = function() return format(E.db.actionbar.microbar.enabled and '%s' or '|cffFF3333%s|r', L["Micro Bar"]) end,
disabled = function() return not E.ActionBars.Initialized end,
get = function(info) return E.db.sle.shadows.actionbars.microbar[info[#info]] end,
set = function(info, value) E.db.sle.shadows.actionbars.microbar[info[#info]] = value; ENH:ToggleABShadows() end,
args = {
buttons = {
order = 1,
type = 'toggle',
name = L["Buttons"],
desc = format(L["Enables a shadow on the %s when it's enabled."], strlower(L["Buttons"])),
},
backdrop = {
order = 2,
type = 'toggle',
name = L["Backdrop"],
desc = format(L["Enables a shadow on the %s when it's enabled."], strlower(L["Backdrop"])),
},
size = {
order = 3,
type = 'range',
name = L["Size"],
min = 2, max = 10, step = 1,
set = function(info, value)
E.db.sle.shadows.actionbars.microbar[info[#info]] = value
_G.ElvUI_MicroBar.enhshadow.size = value
ENH:UpdateShadow(_G.ElvUI_MicroBar.enhshadow)
for i=1, (#MICRO_BUTTONS) do
local button = _G[MICRO_BUTTONS[i]]
if not button then break end
button.enhshadow.size = value
ENH:UpdateShadow(button.enhshadow)
end
end,
},
},
},
stancebar = {
order = 11,
type = 'group',
name = function() return format(E.db.actionbar.stanceBar.enabled and '%s' or '|cffFF3333%s|r', L["Stance Bar"]) end,
disabled = function() return not E.ActionBars.Initialized end,
get = function(info) return E.db.sle.shadows.actionbars.stancebar[info[#info]] end,
set = function(info, value) E.db.sle.shadows.actionbars.stancebar[info[#info]] = value; ENH:ToggleABShadows() end,
args = {
buttons = {
order = 1,
type = 'toggle',
name = L["Buttons"],
desc = format(L["Enables a shadow on the %s when it's enabled."], strlower(L["Buttons"])),
},
backdrop = {
order = 2,
type = 'toggle',
name = L["Backdrop"],
desc = format(L["Enables a shadow on the %s when it's enabled."], strlower(L["Backdrop"])),
},
size = {
order = 3,
type = 'range',
name = L["Size"],
min = 2, max = 10, step = 1,
set = function(info, value)
E.db.sle.shadows.actionbars.stancebar[info[#info]] = value
_G.ElvUI_StanceBar.enhshadow.size = value
ENH:UpdateShadow(_G.ElvUI_StanceBar.enhshadow)
for i = 1, 12 do
local button = _G['ElvUI_StanceBarButton'..i]
if not button then break end
button.enhshadow.size = value
ENH:UpdateShadow(button.enhshadow)
end
end,
},
},
},
vehicle = {
order = i,
type = 'group',
name = function() return format(E.db.sle.actionbar.vehicle.enabled and '%s' or '|cffFF3333%s|r', L["Dedicated Vehicle Bar"]) end,
disabled = function() return not E.ActionBars.Initialized end,
get = function(info) return E.db.sle.shadows.actionbars.vehicle[info[#info]] end,
set = function(info, value) E.db.sle.shadows.actionbars.vehicle[info[#info]] = value; ENH:ToggleABShadows() end,
args = {
buttons = {
order = 1,
type = 'toggle',
name = L["Buttons"],
desc = format(L["Enables a shadow on the %s when it's enabled."], strlower(L["Buttons"])),
},
backdrop = {
order = 2,
type = 'toggle',
name = L["Backdrop"],
desc = format(L["Enables a shadow on the %s when it's enabled."], strlower(L["Backdrop"])),
},
size = {
order = 3,
type = 'range',
name = L["Size"],
min = 2, max = 10, step = 1,
set = function(info, value)
E.db.sle.shadows.actionbars.vehicle[info[#info]] = value
_G['SL_DedicatedVehicleBar'].enhshadow.size = value
ENH:UpdateShadow(_G['SL_DedicatedVehicleBar'].enhshadow)
for k = 1, 7 do
local buttonBars = {_G['SL_DedicatedVehicleBarButton'..k]}
for _, button in pairs(buttonBars) do
button.enhshadow.size = value
ENH:UpdateShadow(button.enhshadow)
end
end
end,
},
},
}
},
},
databars = {
order = 10,
type = 'group',
name = L["DataBars"],
disabled = function() return not E.private.sle.module.shadows.enable end,
args = {},
},
datatexts = {
order = 10,
type = 'group',
name = L["DataTexts"],
disabled = function() return not E.private.sle.module.shadows.enable end,
args = {},
},
unitframes = {
order = 10,
type = 'group',
name = L["UnitFrames"],
disabled = function() return not E.private.sle.module.shadows.enable or not E.UnitFrames.Initialized end,
args = {
size = {
order = 0,
type = 'range',
name = L["Size"],
min = 2, max = 10, step = 1,
get = function(info) return E.db.sle.shadows.unitframes[info[#info]] end,
set = function(info, value)
E.db.sle.shadows.unitframes[info[#info]] = value
UF:Update_AllFrames()
end,
disabled = function() return not E.UnitFrames.Initialized end,
},
},
},
},
}
-- Inserts Azerite, Experience, Honor, Reputation, & Threat Databars shadow options into the config
for bar, tbl in next, ENH.frames.databars do
local frame, name = unpack(tbl)
frame = _G[frame]
E.Options.args.sle.args.modules.args.shadows.args.databars.args[bar] = {
order = 50,
type = 'group',
name = function() return format(E.db.databars[bar].enable and '%s' or '|cffFF3333%s|r', name) end,
get = function(info) return E.db.sle.shadows.databars[bar][info[#info]] end,
set = function(info, value) E.db.sle.shadows.databars[bar][info[#info]] = value; ENH:ToggleDBShadows() end,
args = {
elvconfig = {
order = 0,
type = 'execute',
name = 'ElvUI: '..name,
width = 'full',
func = function() E.Libs['AceConfigDialog']:SelectGroup('ElvUI', 'databars', bar) end,
},
backdrop = {
order = 2,
type = 'toggle',
name = L["Panel"],
desc = L["Enables a shadow for the panel or backdrop of this frame."],
disabled = function() return not E.db.databars[bar].enable end,
},
size = {
order = 3,
type = 'range',
name = L["Size"],
min = 2, max = 10, step = 1,
disabled = function() return not E.db.databars[bar].enable end,
set = function(info, value)
E.db.sle.shadows.databars[bar][info[#info]] = value
frame.enhshadow.size = value
ENH:UpdateShadow(frame.enhshadow)
end,
},
},
}
end
ENH:UpdateDatatextOptions()
-- -- for name, frame in next, DT.db.panels do
-- for name, frame in next, DT.RegisteredPanels do
-- E.Options.args.sle.args.modules.args.shadows.args.datatexts.args[name] = {
-- order = 1,
-- type = 'group',
-- name = function() return format(E.db.datatexts.panels[name].enable and '%s' or '|cffFF3333%s|r', name) end,
-- get = function(info) return E.db.sle.shadows.datatexts.panels[name][info[#info]] end,
-- set = function(info, value) E.db.sle.shadows.datatexts.panels[name][info[#info]] = value; ENH:ToggleDTShadows() end,
-- args = {
-- backdrop = {
-- order = 2,
-- type = 'toggle',
-- name = L["Panel"],
-- disabled = function() return not E.db.datatexts.panels[name].enable end,
-- },
-- size = {
-- order = 3,
-- type = 'range',
-- name = L["Size"],
-- min = 2, max = 10, step = 1,
-- disabled = function() return not E.db.datatexts.panels[name].enable end,
-- set = function(info, value)
-- E.db.sle.shadows.datatexts.panels[name][info[#info]] = value
-- if ENH.DummyPanels[name] and ENH.DummyPanels[name].enhshadow then
-- frame = ENH.DummyPanels[name]
-- end
-- frame.enhshadow.size = value
-- ENH:UpdateShadow(frame.enhshadow)
-- end,
-- },
-- },
-- }
-- if name == 'LeftChatDataPanel' or name == 'RightChatDataPanel' then
-- E.Options.args.sle.args.modules.args.shadows.args.datatexts.args[name].args.backdrop.set = function(info, value)
-- E.db.sle.shadows.datatexts.panels[name][info[#info]] = value
-- if ENH.DummyPanels[name] and ENH.DummyPanels[name].enhshadow then
-- frame = ENH.DummyPanels[name]
-- end
-- frame.enhshadow.backdrop = value
-- ENH:UpdateShadow(frame.enhshadow)
-- ENH:UpdateShadow(_G.LeftChatPanel.enhshadow)
-- ENH:UpdateShadow(_G.RightChatPanel.enhshadow)
-- ENH:ToggleDTShadows()
-- end
-- end
-- end
for unit, config in pairs(ENH.frames.unitframes) do
E.Options.args.sle.args.modules.args.shadows.args.unitframes.args[unit] = {
order = config.order,
type = 'group',
name = function() return format(E.db.unitframe.units[unit].enable and '%s' or '|cffFF3333%s|r', gsub(E:StringTitle(unit), 't(arget)', 'T%1')) end,
disabled = function() return not E.private.unitframe.enable end,
get = function(info) return E.db.sle.shadows.unitframes[unit][info[#info]] end,
set = function(info, value)
E.db.sle.shadows.unitframes[unit][info[#info]] = value
-- local ufname = E:StringTitle(unit):gsub('t(arget)', 'T%1')
UF:Update_AllFrames()
end,
args = {
elvuiconfig = {
order = 0,
type = 'execute',
name = gsub('ElvUI: '..E:StringTitle(unit)..' '..L["Frame"], 't(arget)', 'T%1'),
width = 'full',
func = function() E.Libs['AceConfigDialog']:SelectGroup('ElvUI', 'unitframe', config.group, unit, 'generalGroup') end,
disabled = function() return false end,
},
legacy = {
order = 1,
type = 'toggle',
name = L["Legacy Shadows"],
desc = L["Tries to place a shadow around the health, power, and classbars as one frame instead of individual frames."],
disabled = function() return not E.db.unitframe.units[unit].enable end,
},
health = {
order = 2,
type = 'toggle',
name = L["Health"],
disabled = function() return not E.db.unitframe.units[unit].enable end,
},
power = {
order = 3,
type = 'toggle',
name = L["Power"],
disabled = function() return not E.db.unitframe.units[unit].enable end,
},
},
}
if unit == 'player' then
E.Options.args.sle.args.modules.args.shadows.args.unitframes.args[unit].args.classbar = {
order = 4,
type = 'toggle',
name = L["Classbar"],
disabled = function() return not E.db.unitframe.units[unit].enable or not (E.db.unitframe.units[unit].classbar.detachFromFrame or E.db.unitframe.units[unit].classbar.fill ~= 'fill') end,
}
end
end
-- TODO: Adds a section for a button (to return to S&L enhshadows) or to mirror shadow options
-- * The idea is to make options we have more known
-- E.Options.args.unitframe.args.groupUnits.args[unit].args.generalGroup.args.slshadow = {
-- order = -1,
-- name = 'S&L Shadows',
-- type = 'group',
-- inline = true,
-- args = {
-- configplayer = {
-- order = 0,
-- type = 'execute',
-- name = 'S&L: '..E:StringTitle(unit)..' Shadows',
-- width = 'full',
-- func = function() E.Libs["AceConfigDialog"]:SelectGroup("ElvUI", "sle", 'modules', "shadows", "unitframes", unit) end,
-- hidden = function()
-- if not E.private.skins.blizzard.enable then return true end
-- return not (E.private.skins.blizzard.character or E.private.skins.blizzard.inspect)
-- end,
-- }
-- }
-- }
-- Inserts Actionbars 1-10 shadow options into the config
for i = 1, 10 do
E.Options.args.sle.args.modules.args.shadows.args.actionbars.args['bar'..i] = {
order = i,
type = 'group',
name = function() return format(E.db.actionbar['bar'..i].enabled and '%s' or '|cffFF3333%s|r', L["Bar "]..i) end,
disabled = function() return not E.ActionBars.Initialized end,
get = function(info) return E.db.sle.shadows.actionbars['bar'..i][info[#info]] end,
set = function(info, value) E.db.sle.shadows.actionbars['bar'..i][info[#info]] = value; ENH:ToggleABShadows() end,
args = {
buttons = {
order = 1,
type = 'toggle',
name = L["Buttons"],
desc = format(L["Enables a shadow on the %s when it's enabled."], strlower(L["Buttons"])),
},
backdrop = {
order = 2,
type = 'toggle',
name = L["Backdrop"],
desc = format(L["Enables a shadow on the %s when it's enabled."], strlower(L["Backdrop"])),
},
size = {
order = 3,
type = 'range',
name = L["Size"],
min = 2, max = 10, step = 1,
set = function(info, value)
E.db.sle.shadows.actionbars['bar'..i][info[#info]] = value
_G['ElvUI_Bar'..i].enhshadow.size = value
ENH:UpdateShadow(_G['ElvUI_Bar'..i].enhshadow)
for k = 1, 12 do
local buttonBars = {_G['ElvUI_Bar'..i..'Button'..k]}
for _, button in pairs(buttonBars) do
button.enhshadow.size = value
ENH:UpdateShadow(button.enhshadow)
end
end
end,
},
},
}
end
end
tinsert(SLE.Configs, configTable)