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.

200 lines
3.9 KiB

--[[
This file is part of 'Masque', an add-on for World of Warcraft. For bug reports,
documentation and license information, please visit https://github.com/SFX-WoW/Masque.
* File...: Options\About.lua
* Author.: StormFX
'About Masque' Group/Panel
]]
local _, Core = ...
----------------------------------------
-- Lua API
---
local concat, tostring = table.concat, tostring
----------------------------------------
-- Internal
---
-- @ Options\Core
local Setup = Core.Setup
----------------------------------------
-- Supporters
---
local COLOR_1 = "|cff0070dd"
--local COLOR_2 = "|cffa335ee"
--local COLOR_3 = "|cffff8000"
local Supporters = {
-- [1]
COLOR_1.."Amenitra|r",
COLOR_1.."S9th|r",
COLOR_1.."Stormseer|r",
-- [2]
-- [3]
}
----------------------------------------
-- Setup
---
-- Creates the 'About Masque' options group/panel.
function Setup.About(self)
-- @ Locales\enUS
local L = self.Locale
-- @ Masque
local CRLF = Core.CRLF
local Desc = L["Masque is a skinning engine for button-based add-ons."].." "..
L["You must have an add-on that supports Masque installed to use it."].." "..
L["For more information, please visit one of the sites listed below."]..CRLF
local Options = {
type = "group",
name = L["About Masque"],
desc = "|cffffffff"..L["Select to view."].."|r",
order = 3,
args = {
Head = {
type = "header",
name = L["About Masque"],
order = 1,
disabled = true,
dialogControl = "SFX-Header",
},
Desc = {
type = "description",
name = Desc,
order = 2,
fontSize = "medium",
},
Info = {
type = "group",
name = "",
order = 3,
inline = true,
get = self.GetArg,
set = self.NoOp,
args = {
Version = {
type = "input",
name = L["Version"],
arg = tostring(self.Version),
order = 1,
disabled = true,
dialogControl = "SFX-Info",
},
API = {
type = "input",
name = L["API"],
arg = tostring(self.API_VERSION),
order = 2,
disabled = true,
dialogControl = "SFX-Info",
},
SPC0 = {
type = "description",
name = " ",
order = 3,
},
},
},
},
}
local args = Options.args.Info.args
local Authors = self.Authors
local Websites = self.Websites
local Order = 4
local Count
-- Populate the Author fields.
Count = #Authors
if Count > 0 then
for i = 1, Count do
local Name = (i == 1 and L["Authors"]) or ""
local Key = "Author"..i
args[Key] = {
type = "input",
name = Name,
arg = Authors[i],
order = Order,
disabled = true,
dialogControl = "SFX-Info",
}
Order = Order + 1
end
args["SPC"..Order] = {
type = "description",
name = " ",
order = Order,
}
Order = Order + 1
end
-- Populate the Discord field.
args.Discord = {
type = "input",
name = "Discord",
arg = self.Discord,
order = Order,
dialogControl = "SFX-Info-URL",
}
Order = Order + 1
args["SPC"..Order] = {
type = "description",
name = " ",
order = Order,
}
Order = Order + 1
-- Populate the Website fields.
Count = #Websites
if Count > 0 then
for i = 1, Count do
local Name = (i == 1 and L["Websites"]) or ""
local Key = "Website"..i
args[Key] = {
type = "input",
name = Name,
arg = Websites[i],
order = Order,
dialogControl = "SFX-Info-URL",
}
Order = Order + 1
end
args["SPC"..Order] = {
type = "description",
name = " ",
order = Order,
}
Order = Order + 1
end
-- Populate the Supporters field.
args.Supporters = {
type = "input",
name = L["Supporters"],
arg = concat(Supporters, ", "),
order = Order,
disabled = true,
dialogControl = "SFX-Info",
}
self.Options.args.Core.args.About = Options
-- GC
Setup.About = nil
end