local SLE, T, E, L, V, P, G = unpack(ElvUI_SLE) local BG = SLE.Backgrounds local ceil = ceil local tinsert = tinsert local DEFAULT = DEFAULT local function configTable() if not SLE.initialized then return end local ACH = E.Libs.ACH local function CreateEnable(i) local config = { order = i+5, type = "toggle", name = L["SLE_BG_"..i], desc = L["Show/Hide this frame."], get = function() return E.db.sle.backgrounds["bg"..i].enabled end, set = function(_, value) E.db.sle.backgrounds["bg"..i].enabled = value; BG:FramesVisibility(i) end } return config end local screenWidth = ceil(E.screenWidth) local screenHeight = ceil(E.screenHeight) local function CreateGroup(i) local config = { type = "group", name = L["SLE_BG_"..i], order = i, get = function(info) return E.db.sle.backgrounds["bg"..i][ info[#info] ] end, disabled = function() return not E.db.sle.backgrounds["bg"..i].enabled end, --or not E.private.sle.backgrounds end, args = { width = { order = 1, type = "range", name = L["Width"], desc = L["Sets width of the frame"], min = 50, max = screenWidth, step = 1, set = function(_, value) E.db.sle.backgrounds["bg"..i].width = value; BG:FramesSize(i) end, }, height = { order = 2, type = "range", name = L["Height"], desc = L["Sets height of the frame"], min = 20, max = screenHeight/2, step = 1, set = function(_, value) E.db.sle.backgrounds["bg"..i].height = value; BG:FramesSize(i) end, }, spacer = ACH:Spacer(3), texture = { order = 6, type = 'input', width = 'full', name = L["Texture"], desc = L["Set the texture to use in this frame. Requirements are the same as the chat textures."], set = function(_, value) E.db.sle.backgrounds["bg"..i].texture = value E:UpdateMedia() BG:UpdateTexture(i) end, }, template = { order = 7, type = "select", name = L["Backdrop Template"], get = function() return E.db.sle.backgrounds["bg"..i].template end, set = function(_, value) E.db.sle.backgrounds["bg"..i].template = value; BG:FrameTemplate(i) end, values = { ["Default"] = DEFAULT, ["Transparent"] = L["Transparent"], }, }, pethide = { order = 8, type = "toggle", name = L["Hide in Pet Battle"], desc = L["Show/Hide this frame during Pet Battles."], set = function(_, value) E.db.sle.backgrounds["bg"..i].pethide = value; BG:RegisterHide(i) end }, clickthrough = { order = 9, type = "toggle", name = L["Click Through"], set = function(_, value) E.db.sle.backgrounds["bg"..i].clickthrough = value; BG:MouseCatching(i) end }, alpha = { order = 12, type = 'range', name = L["Alpha"], isPercent = true, min = 0, max = 1, step = 0.01, get = function() return E.db.sle.backgrounds["bg"..i].alpha end, set = function(_, value) E.db.sle.backgrounds["bg"..i].alpha = value; BG:Alpha(i) end, }, visibility = { order = 13, type = 'input', width = 'full', name = L["Visibility State"], get = function() return E.db.sle.backgrounds["bg"..i].visibility end, set = function(_, value) E.db.sle.backgrounds["bg"..i].visibility = value; BG:FramesVisibility(i) end, }, }, } return config end E.Options.args.sle.args.modules.args.backgrounds = { type = "group", name = L["Backgrounds"], order = 1, childGroups = 'tab', args = { header = ACH:Header(L["Additional Background Panels"], 1), intro = ACH:Description(L["BG_DESC"], 2), -- Reset = { -- order = 4, -- type = 'execute', -- name = L["Restore Defaults"], -- func = function() E.SLE:Reset("backgrounds") end, -- }, spacer1 = ACH:Spacer(5), bg1 = CreateEnable(1), bg2 = CreateEnable(2), spacer2 = ACH:Spacer(8), bg3 = CreateEnable(3), bg4 = CreateEnable(4), bg1gr = CreateGroup(1), bg2gr = CreateGroup(2), bg3gr = CreateGroup(3), bg4gr = CreateGroup(4), }, } end tinsert(SLE.Configs, configTable)