init
This commit is contained in:
@@ -0,0 +1,317 @@
|
||||
local E, _, V, P, G = unpack(ElvUI); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local C, L = unpack(select(2, ...))
|
||||
|
||||
local pairs = pairs
|
||||
|
||||
local function profile(db)
|
||||
return (db == "global" and E.db.cooldown) or E.db[db].cooldown
|
||||
end
|
||||
|
||||
local function private(db)
|
||||
return (db == "global" and P.cooldown) or P[db].cooldown
|
||||
end
|
||||
|
||||
local function group(order, db, label)
|
||||
E.Options.args.cooldown.args[db] = {
|
||||
order = order,
|
||||
type = "group",
|
||||
name = label,
|
||||
get = function(info)
|
||||
local t = (profile(db))[info[#info]]
|
||||
local d = (private(db))[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 = (profile(db))[info[#info]]
|
||||
t.r, t.g, t.b = r, g, b
|
||||
E:UpdateCooldownSettings(db)
|
||||
end,
|
||||
args = {
|
||||
header = {
|
||||
order = 1,
|
||||
type = "header",
|
||||
name = label
|
||||
},
|
||||
reverse = {
|
||||
order = 2,
|
||||
type = "toggle",
|
||||
name = L["Reverse Toggle"],
|
||||
desc = L["Reverse Toggle will enable Cooldown Text on this module when the global setting is disabled and disable them when the global setting is enabled."],
|
||||
get = function(info) return (profile(db))[info[#info]] end,
|
||||
set = function(info, value) (profile(db))[info[#info]] = value; E:UpdateCooldownSettings(db) end
|
||||
},
|
||||
secondsGroup = {
|
||||
order = 5,
|
||||
type = "group",
|
||||
name = L["Text Threshold"],
|
||||
guiInline = true,
|
||||
get = function(info) return (profile(db))[info[#info]] end,
|
||||
set = function(info, value) (profile(db))[info[#info]] = value; E:UpdateCooldownSettings(db) end,
|
||||
args = {
|
||||
checkSeconds = {
|
||||
order = 1,
|
||||
type = "toggle",
|
||||
name = L["Enable"],
|
||||
desc = L["This will override the global cooldown settings."],
|
||||
disabled = E.noop
|
||||
},
|
||||
threshold = {
|
||||
order = 2,
|
||||
type = "range",
|
||||
name = L["Low Threshold"],
|
||||
desc = L["Threshold before text turns red and is in decimal form. Set to -1 for it to never turn red"],
|
||||
min = -1, max = 20, step = 1,
|
||||
disabled = function() return not (profile(db)).override end,
|
||||
get = function(info) return (profile(db))[info[#info]] end,
|
||||
set = function(info, value) (profile(db))[info[#info]] = value; E:UpdateCooldownSettings(db) end,
|
||||
},
|
||||
mmssThreshold = {
|
||||
order = 3,
|
||||
type = "range",
|
||||
name = L["MM:SS Threshold"],
|
||||
desc = L["Threshold (in seconds) before text is shown in the MM:SS format. Set to -1 to never change to this format."],
|
||||
min = -1, max = 10800, step = 1,
|
||||
disabled = function() return not (profile(db)).checkSeconds end
|
||||
},
|
||||
hhmmThreshold = {
|
||||
order = 4,
|
||||
type = "range",
|
||||
name = L["HH:MM Threshold"],
|
||||
desc = L["Threshold (in minutes) before text is shown in the HH:MM format. Set to -1 to never change to this format."],
|
||||
min = -1, max = 1440, step = 1,
|
||||
disabled = function() return not (profile(db)).checkSeconds end
|
||||
}
|
||||
}
|
||||
},
|
||||
colorGroup = {
|
||||
order = 10,
|
||||
type = "group",
|
||||
name = L["Color Override"],
|
||||
guiInline = true,
|
||||
args = {
|
||||
override = {
|
||||
order = 1,
|
||||
type = "toggle",
|
||||
name = L["Enable"],
|
||||
desc = L["This will override the global cooldown settings."],
|
||||
get = function(info) return (profile(db))[info[#info]] end,
|
||||
set = function(info, value) (profile(db))[info[#info]] = value; E:UpdateCooldownSettings(db) end,
|
||||
},
|
||||
spacer1 = {
|
||||
order = 2,
|
||||
type = "description",
|
||||
name = " "
|
||||
},
|
||||
expiringColor = {
|
||||
order = 3,
|
||||
type = "color",
|
||||
name = L["Expiring"],
|
||||
desc = L["Color when the text is about to expire"],
|
||||
disabled = function() return not (profile(db)).override end,
|
||||
},
|
||||
secondsColor = {
|
||||
order = 4,
|
||||
type = "color",
|
||||
name = L["Seconds"],
|
||||
desc = L["Color when the text is in the seconds format."],
|
||||
disabled = function() return not (profile(db)).override end,
|
||||
},
|
||||
minutesColor = {
|
||||
order = 5,
|
||||
type = "color",
|
||||
name = L["Minutes"],
|
||||
desc = L["Color when the text is in the minutes format."],
|
||||
disabled = function() return not (profile(db)).override end,
|
||||
},
|
||||
hoursColor = {
|
||||
order = 6,
|
||||
type = "color",
|
||||
name = L["Hours"],
|
||||
desc = L["Color when the text is in the hours format."],
|
||||
disabled = function() return not (profile(db)).override end,
|
||||
},
|
||||
daysColor = {
|
||||
order = 7,
|
||||
type = "color",
|
||||
name = L["Days"],
|
||||
desc = L["Color when the text is in the days format."],
|
||||
disabled = function() return not (profile(db)).override end,
|
||||
},
|
||||
mmssColor = {
|
||||
order = 8,
|
||||
type = "color",
|
||||
name = L["MM:SS"],
|
||||
disabled = function() return not (profile(db)).override end,
|
||||
},
|
||||
hhmmColor = {
|
||||
order = 9,
|
||||
type = "color",
|
||||
name = L["HH:MM"],
|
||||
disabled = function() return not (profile(db)).override end,
|
||||
},
|
||||
spacer3 = {
|
||||
order = 10,
|
||||
type = "header",
|
||||
name = L["Time Indicator Colors"]
|
||||
},
|
||||
useIndicatorColor = {
|
||||
order = 11,
|
||||
type = "toggle",
|
||||
name = L["Use Indicator Color"],
|
||||
get = function(info) return (profile(db))[info[#info]] end,
|
||||
set = function(info, value) (profile(db))[info[#info]] = value; E:UpdateCooldownSettings(db) end,
|
||||
disabled = function() return not (profile(db)).override end,
|
||||
},
|
||||
spacer4 = {
|
||||
order = 12,
|
||||
type = "description",
|
||||
name = " "
|
||||
},
|
||||
expireIndicator = {
|
||||
order = 13,
|
||||
type = "color",
|
||||
name = L["Expiring"],
|
||||
desc = L["Color when the text is about to expire"],
|
||||
disabled = function() return not (profile(db)).override end,
|
||||
},
|
||||
secondsIndicator = {
|
||||
order = 14,
|
||||
type = "color",
|
||||
name = L["Seconds"],
|
||||
desc = L["Color when the text is in the seconds format."],
|
||||
disabled = function() return not (profile(db)).override end,
|
||||
},
|
||||
minutesIndicator = {
|
||||
order = 15,
|
||||
type = "color",
|
||||
name = L["Minutes"],
|
||||
desc = L["Color when the text is in the minutes format."],
|
||||
disabled = function() return not (profile(db)).override end,
|
||||
},
|
||||
hoursIndicator = {
|
||||
order = 16,
|
||||
type = "color",
|
||||
name = L["Hours"],
|
||||
desc = L["Color when the text is in the hours format."],
|
||||
disabled = function() return not (profile(db)).override end,
|
||||
},
|
||||
daysIndicator = {
|
||||
order = 17,
|
||||
type = "color",
|
||||
name = L["Days"],
|
||||
desc = L["Color when the text is in the days format."],
|
||||
disabled = function() return not (profile(db)).override end,
|
||||
},
|
||||
hhmmColorIndicator = {
|
||||
order = 18,
|
||||
type = "color",
|
||||
name = L["MM:SS"],
|
||||
disabled = function() return not (profile(db)).override end,
|
||||
},
|
||||
mmssColorIndicator = {
|
||||
order = 19,
|
||||
type = "color",
|
||||
name = L["HH:MM"],
|
||||
disabled = function() return not (profile(db)).override end,
|
||||
},
|
||||
}
|
||||
},
|
||||
fontGroup = {
|
||||
order = 20, -- keep this at the bottom
|
||||
type = "group",
|
||||
name = L["Fonts"],
|
||||
guiInline = true,
|
||||
get = function(info) return (profile(db)).fonts[info[#info]] end,
|
||||
set = function(info, value) (profile(db)).fonts[info[#info]] = value; E:UpdateCooldownSettings(db) end,
|
||||
disabled = function() return not (profile(db)).fonts.enable end,
|
||||
args = {
|
||||
enable = {
|
||||
order = 1,
|
||||
type = "toggle",
|
||||
name = L["Enable"],
|
||||
desc = L["This will override the global cooldown settings."],
|
||||
disabled = E.noop
|
||||
},
|
||||
spacer1 = {
|
||||
order = 2,
|
||||
type = "description",
|
||||
name = " "
|
||||
},
|
||||
fontSize = {
|
||||
order = 3,
|
||||
type = "range",
|
||||
name = L["FONT_SIZE"],
|
||||
min = 10, max = 32, step = 1
|
||||
},
|
||||
font = {
|
||||
order = 4,
|
||||
type = "select",
|
||||
name = L["Font"],
|
||||
dialogControl = "LSM30_Font",
|
||||
values = AceGUIWidgetLSMlists.font
|
||||
},
|
||||
fontOutline = {
|
||||
order = 5,
|
||||
type = "select",
|
||||
name = L["Font Outline"],
|
||||
values = C.Values.FontFlags
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if db == "global" then
|
||||
-- clean up the main one
|
||||
E.Options.args.cooldown.args[db].args.reverse = nil
|
||||
E.Options.args.cooldown.args[db].args.secondsGroup.args.threshold.disabled = nil
|
||||
E.Options.args.cooldown.args[db].args.colorGroup.args.override = nil
|
||||
E.Options.args.cooldown.args[db].args.colorGroup.args.spacer1 = nil
|
||||
|
||||
-- remove disables
|
||||
for _, x in pairs(E.Options.args.cooldown.args[db].args.colorGroup.args) do
|
||||
if x.disabled then x.disabled = nil end
|
||||
end
|
||||
|
||||
-- rename the tab
|
||||
E.Options.args.cooldown.args[db].args.colorGroup.name = L["COLORS"]
|
||||
else
|
||||
E.Options.args.cooldown.args[db].args.colorGroup.args.spacer2 = nil
|
||||
end
|
||||
|
||||
if db == "auras" or db == "nameplates" then
|
||||
-- even though the top auras can support hiding the text don't allow this to be a setting to prevent confusion
|
||||
E.Options.args.cooldown.args[db].args.reverse = nil
|
||||
|
||||
-- this is basically creates a second way to change font, we only really need one
|
||||
E.Options.args.cooldown.args[db].args.fontGroup = nil
|
||||
end
|
||||
end
|
||||
|
||||
E.Options.args.cooldown = {
|
||||
type = "group",
|
||||
name = L["Cooldown Text"],
|
||||
childGroups = "tab",
|
||||
get = function(info) return E.db.cooldown[info[#info]] end,
|
||||
set = function(info, value) E.db.cooldown[info[#info]] = value; E:UpdateCooldownSettings("global") end,
|
||||
args = {
|
||||
intro = {
|
||||
order = 1,
|
||||
type = "description",
|
||||
name = L["COOLDOWN_DESC"],
|
||||
},
|
||||
enable = {
|
||||
order = 2,
|
||||
type = "toggle",
|
||||
name = L["Enable"],
|
||||
desc = L["Display cooldown text on anything with the cooldown spiral."]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
group(5, "global", L["Global"])
|
||||
group(6, "auras", L["BUFFOPTIONS_LABEL"])
|
||||
group(7, "actionbar", L["ActionBars"])
|
||||
group(8, "bags", L["Bags"])
|
||||
group(9, "nameplates", L["NamePlates"])
|
||||
group(10, "unitframe", L["UnitFrames"])
|
||||
Reference in New Issue
Block a user