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.

137 lines
4.1 KiB

local SLE, _, E, L = unpack(select(2, ...))
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)