From 8671435c7802d9e0d5ef82c3ec392bdb94fe22f9 Mon Sep 17 00:00:00 2001 From: shagu Date: Sun, 10 Oct 2021 14:32:02 +0200 Subject: [PATCH] config: split modules into categories --- config.lua | 74 +++++++++++++++++++++++++--------- mods/blue-shaman.lua | 1 + mods/chat-links.lua | 1 + mods/chat-tweaks.lua | 1 + mods/dark-ui-elements.lua | 2 + mods/health-numbers.lua | 1 + mods/item-colors.lua | 1 + mods/minimap-clock.lua | 1 + mods/minimap-square.lua | 1 + mods/minimap-tweaks.lua | 1 + mods/move-unitframes.lua | 1 + mods/sell-junk.lua | 1 + mods/social-colors.lua | 1 + mods/target-castbar.lua | 1 + mods/target-debufftimer.lua | 1 + mods/tooltip-details.lua | 1 + mods/unitframes-classcolor.lua | 1 + mods/vendor-values.lua | 1 + mods/worldmap-coordinates.lua | 1 + mods/worldmap-window.lua | 1 + 20 files changed, 75 insertions(+), 19 deletions(-) diff --git a/config.lua b/config.lua index 1f2c7f4..22e50b1 100644 --- a/config.lua +++ b/config.lua @@ -79,21 +79,65 @@ end) settings.load = function(self) settings.entries = settings.entries or {} local expansion = ShaguTweaks:GetExpansion() - local entry = 1 + -- sort all configs into categories + local gui = {} for title, module in pairs(ShaguTweaks.mods) do - if module.expansions[expansion] or ShaguTweaks.debug then - if not settings.entries[entry] then - settings.entries[entry] = CreateFrame("CheckButton", "AdvancedSettingsGUI" .. entry, settings, "OptionsCheckButtonTemplate") + if module.expansions[expansion] then + local category = module.category or "General" + gui[category] = gui[category] or {} + gui[category][title] = module + end + end + + local yoff = 25 + local entrysize = 25 + for category, entries in ShaguTweaks.spairs(gui) do + local entry, spacing = 1, 20 + yoff = yoff + 12 + + -- add category background + settings.category = settings.category or {} + settings.category[category] = settings.category[category] or CreateFrame("Frame", nil, settings) + settings.category[category]:SetPoint("TOPLEFT", settings, "TOPLEFT", spacing, -yoff) + settings.category[category]:SetBackdrop({ + bgFile = "Interface\\Tooltips\\UI-Tooltip-Background", + edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border", + tile = true, tileSize = 8, edgeSize = 16, + insets = { left = 3, right = 3, top = 3, bottom = 3 } + }) + + if ShaguTweaks.DarkMode then + settings.category[category]:SetBackdropColor(.1,.1,.1,1) + settings.category[category]:SetBackdropBorderColor(.2,.2,.2,1) + else + settings.category[category]:SetBackdropColor(.2,.2,.2,1) + settings.category[category]:SetBackdropBorderColor(.5,.5,.5,1) + end + + -- add category title + settings.category[category].text = settings.category[category].text or settings.category[category]:CreateFontString(nil, "HIGH", "GameFontHighlightSmall") + settings.category[category].text:SetText(category) + settings.category[category].text:SetPoint("TOPLEFT", 5, 10) + yoff = yoff + spacing/2 + + for title, module in ShaguTweaks.spairs(entries) do + if not settings.entries[title] then + settings.entries[title] = CreateFrame("CheckButton", "AdvancedSettingsGUI" .. title, settings.category[category], "OptionsCheckButtonTemplate") + settings.entries[title]:SetHeight(24) + settings.entries[title]:SetWidth(24) end - local button = _G["AdvancedSettingsGUI" .. entry] - local text = _G["AdvancedSettingsGUI" .. entry .. "Text"] + local button = _G["AdvancedSettingsGUI" .. title] + local text = _G["AdvancedSettingsGUI" .. title .. "Text"] button.title = title button:SetChecked(current_config[title] == 1 and true or nil) - button:SetPoint("TOPLEFT", settings, "TOPLEFT", mod(entry, 2) == 1 and 17 or 17+200, math.ceil(entry/2)*-30) + button:SetPoint("TOPLEFT", settings.category[category], "TOPLEFT", mod(entry, 2) == 1 and 17 or 17+200, math.ceil(entry/2-1)*-entrysize-spacing/2) + + -- add another yoff row + if mod(entry, 2) == 1 then yoff = yoff + entrysize end local description = module.description button:SetScript("OnEnter", function() @@ -115,21 +159,13 @@ settings.load = function(self) end) text:SetText(title) entry = entry + 1 - - -- show unavailable modules in debug mode - if ShaguTweaks.debug then - if module.expansions[expansion] then - button:Enable() - text:SetTextColor(1,.8,0,1) - elseif not module.expansions[expansion] then - button:Disable() - text:SetTextColor(.5,.5,.5,.5) - end - end end + + yoff = yoff + spacing/2 + settings.category[category]:SetPoint("BOTTOMRIGHT", settings, "TOPRIGHT", -spacing, -yoff) end - settings:SetHeight(80 + math.floor(entry/2)*30) + settings:SetHeight(yoff + 40) end settings.defaults = function() diff --git a/mods/blue-shaman.lua b/mods/blue-shaman.lua index b82e3da..3ca6836 100644 --- a/mods/blue-shaman.lua +++ b/mods/blue-shaman.lua @@ -5,6 +5,7 @@ local module = ShaguTweaks:register({ title = "Blue Shaman Class Colors", description = "Changes the class color code of shamans to blue, as known from TBC+.", expansions = { ["vanilla"] = true, ["tbc"] = nil }, + category = "Social & Chat", enabled = true, }) diff --git a/mods/chat-links.lua b/mods/chat-links.lua index a42696a..1702f59 100644 --- a/mods/chat-links.lua +++ b/mods/chat-links.lua @@ -11,6 +11,7 @@ local module = ShaguTweaks:register({ title = "Chat Hyperlinks", description = "Copy website URLs from the chat, transforms CLINKs into real items and handles quest links.", expansions = { ["vanilla"] = true, ["tbc"] = true }, + category = "Social & Chat", enabled = true, }) diff --git a/mods/chat-tweaks.lua b/mods/chat-tweaks.lua index d618d9d..de917a3 100644 --- a/mods/chat-tweaks.lua +++ b/mods/chat-tweaks.lua @@ -5,6 +5,7 @@ local module = ShaguTweaks:register({ title = "Chat Tweaks", description = "Allows to scroll using the mouse wheel, enables sticky chat channels and repeats message on arrow up.", expansions = { ["vanilla"] = true, ["tbc"] = true }, + category = "Social & Chat", enabled = true, }) diff --git a/mods/dark-ui-elements.lua b/mods/dark-ui-elements.lua index 8028e70..10cfe9e 100644 --- a/mods/dark-ui-elements.lua +++ b/mods/dark-ui-elements.lua @@ -192,6 +192,8 @@ module.enable = function(self) DarkenFrame(DropDownList2) DarkenFrame(DropDownList3) + ShaguTweaks.DarkMode = true + for _, button in pairs({ MinimapZoomOut, MinimapZoomIn }) do for _, func in pairs({ "GetNormalTexture", "GetDisabledTexture", "GetPushedTexture" }) do if button[func] then diff --git a/mods/health-numbers.lua b/mods/health-numbers.lua index 0d0e485..9aef7f0 100644 --- a/mods/health-numbers.lua +++ b/mods/health-numbers.lua @@ -7,6 +7,7 @@ local module = ShaguTweaks:register({ title = "Real Health Numbers", description = "Estimates health numbers, and shows numbers on player, pet and target unit frames.", expansions = { ["vanilla"] = true, ["tbc"] = true }, + category = "Unit Frames", enabled = true, }) diff --git a/mods/item-colors.lua b/mods/item-colors.lua index 65bf1a0..87d7026 100644 --- a/mods/item-colors.lua +++ b/mods/item-colors.lua @@ -7,6 +7,7 @@ local module = ShaguTweaks:register({ title = "Item Rarity Borders", description = "Show item rarity as the border color on bags, bank, character and inspect frames.", expansions = { ["vanilla"] = true, ["tbc"] = true }, + category = "Tooltip & Items", enabled = true, }) diff --git a/mods/minimap-clock.lua b/mods/minimap-clock.lua index a45b1cd..7e89cda 100644 --- a/mods/minimap-clock.lua +++ b/mods/minimap-clock.lua @@ -4,6 +4,7 @@ local module = ShaguTweaks:register({ title = "MiniMap Clock", description = "Adds a small 24h clock to the mini map.", expansions = { ["vanilla"] = true, ["tbc"] = nil }, + category = "World & MiniMap", enabled = nil, }) diff --git a/mods/minimap-square.lua b/mods/minimap-square.lua index 89bc6af..321159e 100644 --- a/mods/minimap-square.lua +++ b/mods/minimap-square.lua @@ -4,6 +4,7 @@ local module = ShaguTweaks:register({ title = "MiniMap Square", description = "Draw the mini map in a squared shape instead of a round one.", expansions = { ["vanilla"] = true, ["tbc"] = true }, + category = "World & MiniMap", enabled = nil, }) diff --git a/mods/minimap-tweaks.lua b/mods/minimap-tweaks.lua index 7495f50..1b8170a 100644 --- a/mods/minimap-tweaks.lua +++ b/mods/minimap-tweaks.lua @@ -4,6 +4,7 @@ local module = ShaguTweaks:register({ title = "MiniMap Tweaks", description = "Hides unnecessary mini map buttons and allows to zoom using the mouse wheel.", expansions = { ["vanilla"] = true, ["tbc"] = true }, + category = "World & MiniMap", enabled = nil, }) diff --git a/mods/move-unitframes.lua b/mods/move-unitframes.lua index 45c606a..9ecdfa7 100644 --- a/mods/move-unitframes.lua +++ b/mods/move-unitframes.lua @@ -4,6 +4,7 @@ local module = ShaguTweaks:register({ title = "Movable Unit Frames", description = "Player and Target unit frames can be moved while and are pressed together.", expansions = { ["vanilla"] = true, ["tbc"] = true }, + category = "Unit Frames", enabled = nil, }) diff --git a/mods/sell-junk.lua b/mods/sell-junk.lua index 71d5dab..15f1bcc 100644 --- a/mods/sell-junk.lua +++ b/mods/sell-junk.lua @@ -4,6 +4,7 @@ local module = ShaguTweaks:register({ title = "Sell Junk", description = "Adds a “Sell Junk” button to every merchant window, that sells all grey items.", expansions = { ["vanilla"] = true, ["tbc"] = true }, + category = "Tooltip & Items", enabled = true, }) diff --git a/mods/social-colors.lua b/mods/social-colors.lua index deb9b0d..fcba033 100644 --- a/mods/social-colors.lua +++ b/mods/social-colors.lua @@ -13,6 +13,7 @@ local module = ShaguTweaks:register({ title = "Social Colors", description = "Show class colors in Who, Guild, Friends and Chat.", expansions = { ["vanilla"] = true, ["tbc"] = true }, + category = "Social & Chat", enabled = nil, }) diff --git a/mods/target-castbar.lua b/mods/target-castbar.lua index fe42645..56dd345 100644 --- a/mods/target-castbar.lua +++ b/mods/target-castbar.lua @@ -7,6 +7,7 @@ local module = ShaguTweaks:register({ title = "Enemy Castbars", description = "Shows an enemy castbar on target unit frame.", expansions = { ["vanilla"] = true, ["tbc"] = nil }, + category = "Unit Frames", enabled = true, }) diff --git a/mods/target-debufftimer.lua b/mods/target-debufftimer.lua index cf8910c..c761f99 100644 --- a/mods/target-debufftimer.lua +++ b/mods/target-debufftimer.lua @@ -4,6 +4,7 @@ local module = ShaguTweaks:register({ title = "Debuff Timer", description = "Show debuff durations on the target unit frame.", expansions = { ["vanilla"] = true, ["tbc"] = nil }, + category = "Unit Frames", enabled = true, }) diff --git a/mods/tooltip-details.lua b/mods/tooltip-details.lua index 1743075..a41feb2 100644 --- a/mods/tooltip-details.lua +++ b/mods/tooltip-details.lua @@ -7,6 +7,7 @@ local module = ShaguTweaks:register({ title = "Tooltip Details", description = "Display health, class color, guild name, guild rank and current target on unit tooltips.", expansions = { ["vanilla"] = true, ["tbc"] = true }, + category = "Tooltip & Items", enabled = nil, }) diff --git a/mods/unitframes-classcolor.lua b/mods/unitframes-classcolor.lua index 0df06c0..e91f45e 100644 --- a/mods/unitframes-classcolor.lua +++ b/mods/unitframes-classcolor.lua @@ -4,6 +4,7 @@ local module = ShaguTweaks:register({ title = "Unit Frame Class Colors", description = "Adds class colors to the player, target and party unit frames.", expansions = { ["vanilla"] = true, ["tbc"] = true }, + category = "Unit Frames", enabled = nil, }) diff --git a/mods/vendor-values.lua b/mods/vendor-values.lua index ede1417..8fee500 100644 --- a/mods/vendor-values.lua +++ b/mods/vendor-values.lua @@ -5,6 +5,7 @@ local module = ShaguTweaks:register({ title = "Vendor Values", description = "Shows the vendor sell values on all item tooltips.", expansions = { ["vanilla"] = true, ["tbc"] = true }, + category = "Tooltip & Items", enabled = true, }) diff --git a/mods/worldmap-coordinates.lua b/mods/worldmap-coordinates.lua index 3b021f4..0175fca 100644 --- a/mods/worldmap-coordinates.lua +++ b/mods/worldmap-coordinates.lua @@ -4,6 +4,7 @@ local module = ShaguTweaks:register({ title = "WorldMap Coordinates", description = "Adds coordinates to the bottom of the World Map.", expansions = { ["vanilla"] = true, ["tbc"] = true }, + category = "World & MiniMap", enabled = nil, }) diff --git a/mods/worldmap-window.lua b/mods/worldmap-window.lua index c64f5ba..a433d96 100644 --- a/mods/worldmap-window.lua +++ b/mods/worldmap-window.lua @@ -4,6 +4,7 @@ local module = ShaguTweaks:register({ title = "WorldMap Window", description = "Turns the world map into a movable window. The map can be scaled with + Mousewheel.", expansions = { ["vanilla"] = true, ["tbc"] = true }, + category = "World & MiniMap", enabled = true, })