Add helper functions and assemble big boxes
This commit is contained in:
@@ -2,6 +2,57 @@ local addonname, shared = ...
|
|||||||
---@cast shared HeimdallShared
|
---@cast shared HeimdallShared
|
||||||
---@cast addonname string
|
---@cast addonname string
|
||||||
|
|
||||||
|
---@param str string
|
||||||
|
---@return table<string, boolean>
|
||||||
|
local function StringToMap(str, deliminer)
|
||||||
|
if not str then return {} end
|
||||||
|
local map = {}
|
||||||
|
local parts = { strsplit(deliminer, str) }
|
||||||
|
for _, line in ipairs(parts) do
|
||||||
|
line = strtrim(line)
|
||||||
|
if line ~= "" then
|
||||||
|
map[line] = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return map
|
||||||
|
end
|
||||||
|
|
||||||
|
---@param str string
|
||||||
|
---@return string[]
|
||||||
|
local function StringToArray(str, deliminer)
|
||||||
|
if not str then return {} end
|
||||||
|
local ret = {}
|
||||||
|
local array = { strsplit(deliminer, str) }
|
||||||
|
for i, line in ipairs(array) do
|
||||||
|
line = strtrim(line)
|
||||||
|
if line ~= "" then
|
||||||
|
ret[i] = line
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return ret
|
||||||
|
end
|
||||||
|
|
||||||
|
---@param map table<any, any>
|
||||||
|
---@param deliminer string
|
||||||
|
---@return string
|
||||||
|
local function MapKeyToString(map, deliminer)
|
||||||
|
local str = ""
|
||||||
|
for k, _ in pairs(map) do
|
||||||
|
str = str .. k .. deliminer
|
||||||
|
end
|
||||||
|
return str
|
||||||
|
end
|
||||||
|
---@param map table<any, any>
|
||||||
|
---@param deliminer string
|
||||||
|
---@return string
|
||||||
|
local function MapValueToString(map, deliminer)
|
||||||
|
local str = ""
|
||||||
|
for _, v in pairs(map) do
|
||||||
|
str = str .. tostring(v) .. deliminer
|
||||||
|
end
|
||||||
|
return str
|
||||||
|
end
|
||||||
|
|
||||||
---@class GridFrame:Frame
|
---@class GridFrame:Frame
|
||||||
---@field name string
|
---@field name string
|
||||||
---@field columns number
|
---@field columns number
|
||||||
@@ -96,8 +147,8 @@ GridFrame = {
|
|||||||
for _, child in pairs(children) do
|
for _, child in pairs(children) do
|
||||||
if child.gridData then
|
if child.gridData then
|
||||||
child:SetPos()
|
child:SetPos()
|
||||||
else
|
-- else
|
||||||
print("Child has no grid data", child)
|
-- print("Child has no grid data", child)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
@@ -577,81 +628,13 @@ function shared.Config.Init()
|
|||||||
|
|
||||||
local ignored = CreateBasicBigEditBox("HeimdallWhoerConfigIgnored",
|
local ignored = CreateBasicBigEditBox("HeimdallWhoerConfigIgnored",
|
||||||
whoerConfigFrame.frame, "Ignored",
|
whoerConfigFrame.frame, "Ignored",
|
||||||
table.concat(Heimdall_Data.config.who.ignored or {}, "\n"),
|
MapKeyToString(Heimdall_Data.config.who.ignored or {}, "\n"),
|
||||||
function(self)
|
function(self)
|
||||||
--Heimdall_Data.config.who.ignored = self:GetText()
|
local ignored = StringToMap(self:GetText(), "\n")
|
||||||
|
Heimdall_Data.config.who.ignored = ignored
|
||||||
end)
|
end)
|
||||||
whoerConfigFrame:Add(ignored, 6, 6)
|
whoerConfigFrame:Add(ignored, 6, 6)
|
||||||
end
|
end
|
||||||
|
|
||||||
--local spotterEveryoneButton = BasicButton("HeimdallSpotterEveryone", spotterConfigFrame, "Everyone", function(state)
|
|
||||||
-- Heimdall_Data.config.spotter.everyone = state
|
|
||||||
--end)
|
|
||||||
--spotterEveryoneButton:PutRight(spotterEnableButton)
|
|
||||||
--spotterEveryoneButton:SetChecked(Heimdall_Data.config.spotter.everyone)
|
|
||||||
|
|
||||||
--local spotterHostileButton = BasicButton("HeimdallSpotterHostile", spotterConfigFrame, "Hostile", function(state)
|
|
||||||
-- Heimdall_Data.config.spotter.hostile = state
|
|
||||||
--end)
|
|
||||||
--spotterHostileButton:PutBelow(spotterEnableButton)
|
|
||||||
--spotterHostileButton:SetChecked(Heimdall_Data.config.spotter.hostile)
|
|
||||||
|
|
||||||
--local spotterAllianceButton = BasicButton("HeimdallSpotterAlliance", spotterConfigFrame, "Alliance", function(state)
|
|
||||||
-- Heimdall_Data.config.spotter.alliance = state
|
|
||||||
--end)
|
|
||||||
--spotterAllianceButton:PutRight(spotterHostileButton)
|
|
||||||
--spotterAllianceButton:SetChecked(Heimdall_Data.config.spotter.alliance)
|
|
||||||
|
|
||||||
--local spotterStinkyButton = BasicButton("HeimdallSpotterStinky", spotterConfigFrame, "Stinky", function(state)
|
|
||||||
-- Heimdall_Data.config.spotter.stinky = state
|
|
||||||
--end)
|
|
||||||
--spotterStinkyButton:PutBelow(spotterHostileButton)
|
|
||||||
--spotterStinkyButton:SetChecked(Heimdall_Data.config.spotter.stinky)
|
|
||||||
|
|
||||||
--local spotterThrottleBox = CreateBasicSmallEditBox("HeimdallSpotterThrottle", spotterConfigFrame, "Throttle Time",
|
|
||||||
-- function(text)
|
|
||||||
-- Heimdall_Data.config.spotter.throttleTime = tonumber(text)
|
|
||||||
-- end)
|
|
||||||
--spotterThrottleBox:PutRight(spotterStinkyButton)
|
|
||||||
|
|
||||||
-- ---@type table
|
|
||||||
-- local spotterEnableButton = CreateFrame("Button", "HeimdallSpotterEnable", configFrame, "UIPanelButtonTemplate")
|
|
||||||
-- spotterEnableButton:SetText("Enable Spotter")
|
|
||||||
-- spotterEnableButton:SetSize(100, 30)
|
|
||||||
-- spotterEnableButton:SetPoint("TOPLEFT", configFrame, "TOPLEFT", 10, -40)
|
|
||||||
-- spotterEnableButton:SetScript("OnClick", function()
|
|
||||||
-- print("Button was clicked!")
|
|
||||||
-- end)
|
|
||||||
--
|
|
||||||
-- -- Create a text element
|
|
||||||
-- local text = configFrame:CreateFontString(nil, "ARTWORK", "GameFontHighlight")
|
|
||||||
-- text:SetText("This is some text in the frame.")
|
|
||||||
-- text:SetPoint("TOPLEFT", configFrame, "TOPLEFT", 10, -80)
|
|
||||||
--
|
|
||||||
-- -- Create a small edit box
|
|
||||||
-- local smallEditBox = CreateFrame("EditBox", nil, configFrame)
|
|
||||||
-- smallEditBox:SetSize(200, 20)
|
|
||||||
-- smallEditBox:SetPoint("TOPLEFT", configFrame, "TOPLEFT", 10, -110)
|
|
||||||
-- smallEditBox:SetAutoFocus(false)
|
|
||||||
-- smallEditBox:SetFontObject("GameFontNormal")
|
|
||||||
-- smallEditBox:SetScript("OnEnterPressed", function()
|
|
||||||
-- print("Entered text: " .. smallEditBox:GetText())
|
|
||||||
-- end)
|
|
||||||
--
|
|
||||||
-- -- Create a large edit box
|
|
||||||
-- local largeEditBox = CreateFrame("EditBox", nil, configFrame)
|
|
||||||
-- largeEditBox:SetSize(280, 100)
|
|
||||||
-- largeEditBox:SetPoint("TOP", configFrame, "TOP", 0, -150)
|
|
||||||
-- largeEditBox:SetAutoFocus(false)
|
|
||||||
-- largeEditBox:SetFontObject("GameFontNormal")
|
|
||||||
-- largeEditBox:SetMultiLine(true)
|
|
||||||
-- largeEditBox:EnableMouse(true)
|
|
||||||
-- largeEditBox:SetMaxLetters(0)
|
|
||||||
-- largeEditBox:SetScript("OnEscapePressed", function()
|
|
||||||
-- largeEditBox:ClearFocus()
|
|
||||||
-- end)
|
|
||||||
|
|
||||||
--configFrame:Hide()
|
|
||||||
print("Heimdall - Config loaded")
|
print("Heimdall - Config loaded")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user