129 lines
3.8 KiB
Lua
129 lines
3.8 KiB
Lua
|
-- ------------------------------------------------------------------------------ --
|
||
|
-- TradeSkillMaster --
|
||
|
-- https://tradeskillmaster.com --
|
||
|
-- All Rights Reserved - Detailed license information included with addon. --
|
||
|
-- ------------------------------------------------------------------------------ --
|
||
|
|
||
|
local _, TSM = ...
|
||
|
local Util = TSM.UI:NewPackage("Util")
|
||
|
local L = TSM.Include("Locale").GetTable()
|
||
|
local Color = TSM.Include("Util.Color")
|
||
|
local Theme = TSM.Include("Util.Theme")
|
||
|
local private = {}
|
||
|
local THEME_COLOR_SETS = {
|
||
|
{
|
||
|
key = "midnight",
|
||
|
name = L["Midnight"],
|
||
|
colors = {
|
||
|
PRIMARY_BG = Color.NewFromHex("#000000"),
|
||
|
PRIMARY_BG_ALT = Color.NewFromHex("#121212"),
|
||
|
FRAME_BG = Color.NewFromHex("#232323"),
|
||
|
ACTIVE_BG = Color.NewFromHex("#404046"),
|
||
|
ACTIVE_BG_ALT = Color.NewFromHex("#a0a0a0"),
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
key = "duskwood",
|
||
|
name = L["Duskwood"],
|
||
|
colors = {
|
||
|
PRIMARY_BG = Color.NewFromHex("#000000"),
|
||
|
PRIMARY_BG_ALT = Color.NewFromHex("#2e2e2e"),
|
||
|
FRAME_BG = Color.NewFromHex("#404040"),
|
||
|
ACTIVE_BG = Color.NewFromHex("#585858"),
|
||
|
ACTIVE_BG_ALT = Color.NewFromHex("#9d9d9d"),
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
key = "dalaran",
|
||
|
name = L["Dalaran"],
|
||
|
colors = {
|
||
|
PRIMARY_BG = Color.NewFromHex("#15141f"),
|
||
|
PRIMARY_BG_ALT = Color.NewFromHex("#262537"),
|
||
|
FRAME_BG = Color.NewFromHex("#35334d"),
|
||
|
ACTIVE_BG = Color.NewFromHex("#4a476c"),
|
||
|
ACTIVE_BG_ALT = Color.NewFromHex("#958fd9"),
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
key = "swampOfSorrows",
|
||
|
name = L["Swamp of Sorrows"],
|
||
|
colors = {
|
||
|
PRIMARY_BG = Color.NewFromHex("#151e1b"),
|
||
|
PRIMARY_BG_ALT = Color.NewFromHex("#273430"),
|
||
|
FRAME_BG = Color.NewFromHex("#364942"),
|
||
|
ACTIVE_BG = Color.NewFromHex("#567551"),
|
||
|
ACTIVE_BG_ALT = Color.NewFromHex("#B5B28C"),
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
key = "orgrimmar",
|
||
|
name = L["Orgrimmar"],
|
||
|
colors = {
|
||
|
PRIMARY_BG = Color.NewFromHex("#120908"),
|
||
|
PRIMARY_BG_ALT = Color.NewFromHex("#40221b"),
|
||
|
FRAME_BG = Color.NewFromHex("#6F3A2F"),
|
||
|
ACTIVE_BG = Color.NewFromHex("#A25B3E"),
|
||
|
ACTIVE_BG_ALT = Color.NewFromHex("#E1D4C4"),
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
key = "stormwind",
|
||
|
name = L["Stormwind"],
|
||
|
colors = {
|
||
|
PRIMARY_BG = Color.NewFromHex("#191a1a"),
|
||
|
PRIMARY_BG_ALT = Color.NewFromHex("#2b3131"),
|
||
|
FRAME_BG = Color.NewFromHex("#4C585C"),
|
||
|
ACTIVE_BG = Color.NewFromHex("#6B7673"),
|
||
|
ACTIVE_BG_ALT = Color.NewFromHex("#D9DCD3"),
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
key = "winamp",
|
||
|
name = L["Winamp"],
|
||
|
colors = {
|
||
|
PRIMARY_BG = Color.NewFromHex("#000000"),
|
||
|
PRIMARY_BG_ALT = Color.NewFromHex("#1B1B2A"),
|
||
|
FRAME_BG = Color.NewFromHex("#383858"),
|
||
|
ACTIVE_BG = Color.NewFromHex("#6a6a7a"),
|
||
|
ACTIVE_BG_ALT = Color.NewFromHex("#bdced6"),
|
||
|
},
|
||
|
},
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
-- ============================================================================
|
||
|
-- Module Functions
|
||
|
-- ============================================================================
|
||
|
|
||
|
function Util.OnInitialize()
|
||
|
-- register themes
|
||
|
local foundCurrentColorSet = false
|
||
|
for _, info in ipairs(THEME_COLOR_SETS) do
|
||
|
Theme.RegisterColorSet(info.key, info.name, info.colors)
|
||
|
foundCurrentColorSet = foundCurrentColorSet or info.key == TSM.db.global.appearanceOptions.colorSet
|
||
|
end
|
||
|
if not foundCurrentColorSet then
|
||
|
TSM.db.global.appearanceOptions.colorSet = TSM.db:GetDefaultReadOnly("global", "appearanceOptions", "colorSet")
|
||
|
end
|
||
|
Theme.SetActiveColorSet(TSM.db.global.appearanceOptions.colorSet)
|
||
|
end
|
||
|
|
||
|
function Util.ColorSetIterator()
|
||
|
return private.ColorSetIterator, THEME_COLOR_SETS, 0
|
||
|
end
|
||
|
|
||
|
|
||
|
|
||
|
-- ============================================================================
|
||
|
-- Private Helper Functions
|
||
|
-- ============================================================================
|
||
|
|
||
|
function private.ColorSetIterator(tbl, index)
|
||
|
index = index + 1
|
||
|
if not tbl[index] then
|
||
|
return
|
||
|
end
|
||
|
return index, tbl[index].key, tbl[index].name
|
||
|
end
|