Checkbox also update settings

This commit is contained in:
Roman Jaroš 2025-03-07 13:57:47 +01:00
parent 414aef6924
commit b6d64d65b5
6 changed files with 45 additions and 40 deletions

View file

@ -29,29 +29,20 @@ local function RegisterProxySettings(name, title, setter)
)
end
local function CreateCheckbox(name, title)
Settings.CreateCheckbox(
Options.category,
RegisterAddOnSettings(name, title)
)
local function CreateCheckbox(name, title, setter)
local register = RegisterAddOnSettings(name, title)
register:SetValueChangedCallback(setter)
Settings.CreateCheckbox(Options.category, register)
end
local function CreateDropdown(name, title, items, setter)
Settings.CreateDropdown(
Options.category,
RegisterProxySettings(name, title, setter),
items
)
Settings.CreateDropdown(Options.category, RegisterProxySettings(name, title, setter), items)
end
local function CreateSlider(name, title, min, max, step, setter)
local options = Settings.CreateSliderOptions(min, max, step)
options:SetLabelFormatter(MinimalSliderWithSteppersMixin.Label.Right);
Settings.CreateSlider(
Options.category,
RegisterProxySettings(name, title, setter),
options
)
Settings.CreateSlider(Options.category, RegisterProxySettings(name, title, setter), options)
end
local function CreateButton(title, label, setter)
@ -61,27 +52,30 @@ local function CreateButton(title, label, setter)
end
local function InitQuests()
local function Update(name, value)
CzechQuestsAddon_Store.config[name] = value
addon.QuestFrame:UpdateSettings()
end
local function CreateQuestCheckbox(name, title)
CreateCheckbox(name, title, function (_, value) Update(name, value) end)
end
local function CreateQuestDropdown(name, title, items)
CreateDropdown(name, title, items, function (value)
CzechQuestsAddon_Store.config[name] = value
addon.QuestFrame:UpdateSettings()
end)
CreateDropdown(name, title, items, function (value) Update(name, value) end)
end
local function CreateQuestSlider(name, title, min, max, step)
CreateSlider(name, title, min, max, step, function (value)
CzechQuestsAddon_Store.config[name] = value
addon.QuestFrame:UpdateSettings()
end)
CreateSlider(name, title, min, max, step, function (value) Update(name, value) end)
end
local layout = Options.layout
layout:AddInitializer(CreateSettingsListSectionHeaderInitializer("Questy"))
CreateCheckbox("QUEST_ENABLED", "Zapnout")
CreateQuestCheckbox("QUEST_ENABLED", "Zapnout")
if (WOW_PROJECT_ID == WOW_PROJECT_CLASSIC) then
CreateCheckbox("QUEST_DARK_MODE", "Pouzit tmavy rezim")
CreateQuestCheckbox("QUEST_DARK_MODE", "Pouzit tmavy rezim")
end
CreateQuestDropdown("QUEST_HEADER_FONT_NAME", "Pismo nadpisu", addon.API.GetFontContainer)
@ -90,11 +84,18 @@ local function InitQuests()
CreateQuestSlider("QUEST_HEADER_FONT_SIZE", "Velikost nadpisu", 10, 30, 1)
CreateQuestSlider("QUEST_TEXT_FONT_SIZE", "Velikost textu", 10, 30, 1)
CreateSlider("QUEST_TEXTURE_ALPHA", "Pruhlednost pozadi", 10, 100, 10)
CreateCheckbox("QUEST_TEXTURE_ALPHA_ONLY_MOVING", "Pruhlednost pouze pri chuzi")
CreateQuestSlider("QUEST_TEXTURE_ALPHA", "Pruhlednost pozadi", 10, 100, 10)
CreateQuestCheckbox("QUEST_TEXTURE_ALPHA_ONLY_MOVING", "Pruhlednost pouze pri chuzi")
end
local function InitSpeeches()
local function CreateSpeechCheckbox(name, title)
CreateCheckbox(name, title, function (_, value)
CzechQuestsAddon_Store.config[name] = value
addon.SpeechFrame:UpdateSettings()
end)
end
local function CreateSpeechDropdown(name, title, items)
CreateDropdown(name, title, items, function (value)
CzechQuestsAddon_Store.config[name] = value
@ -112,14 +113,14 @@ local function InitSpeeches()
local layout = Options.layout
layout:AddInitializer(CreateSettingsListSectionHeaderInitializer("Bubliny"))
CreateCheckbox("SPEECH_ENABLED", "Zapnout")
CreateSpeechCheckbox("SPEECH_ENABLED", "Zapnout")
CreateSpeechDropdown("SPEECH_TEXT_FONT_NAME", "Pismo *", addon.API.GetFontContainer)
CreateSpeechSlider("SPEECH_TEXT_FONT_SIZE", "Velikost pisma *", 10, 30, 1)
CreateSpeechSlider("SPEECH_FRAME_WIDTH", "Sirka okna", 200, 1000, 10)
CreateCheckbox("SPEECH_ORIGINAL_WHEN_MISSING", "Original pokud není preklad ")
CreateSpeechCheckbox("SPEECH_ORIGINAL_WHEN_MISSING", "Original pokud není preklad ")
CreateButton('Resetovat pozici okna', "RESET", function()
CzechQuestsAddon_Store.config.SPEECH_FRAME_POSITION = { x = 0, y = 0}
@ -135,7 +136,7 @@ local function InitOthers()
local layout = Options.layout
layout:AddInitializer(CreateSettingsListSectionHeaderInitializer("Ostatni"))
CreateCheckbox("DEBUG_MODE", "Zapnout DEBUG")
CreateCheckbox("DEBUG_MODE", "Zapnout DEBUG", function() end)
end
local function InitOptions()