Enhance speech frame behavior and settings

This commit is contained in:
Roman Jaroš 2025-03-04 07:49:19 +01:00
parent e37886072f
commit 8b53a5247c
12 changed files with 65 additions and 43 deletions

View file

@ -51,7 +51,7 @@ function CzechQuestsAddon:AddSpeechOptions(category, layout)
category,
"CzechQuestsAddon__TRANSLATION_SPEECH_FRAME_WIDTH",
type(CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_WIDTH),
"Šírka zprávy",
"Šírka okna",
CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_WIDTH,
function()
return CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_WIDTH
@ -66,18 +66,29 @@ function CzechQuestsAddon:AddSpeechOptions(category, layout)
)
end
)
local windowWidthSizeSliderOption = Settings.CreateSliderOptions(200, 800, 10)
local windowWidthSizeSliderOption = Settings.CreateSliderOptions(200, 1000, 10)
windowWidthSizeSliderOption:SetLabelFormatter(MinimalSliderWithSteppersMixin.Label.Right);
Settings.CreateSlider(category, windowWidthSizeSlider, windowWidthSizeSliderOption)
-- Show original
local originalWhenMissingCheckbox = Settings.RegisterAddOnSetting(
category,
"CzechQuestsAddon__TRANSLATION_SPEECH_FRAME_ORIGINAL_WHEN_MISSING",
"TRANSLATION_SPEECH_FRAME_ORIGINAL_WHEN_MISSING",
CzechQuestsAddon_Store.config,
type(CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_ORIGINAL_WHEN_MISSING),
"Original pokud není preklad",
CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_ORIGINAL_WHEN_MISSING
)
Settings.CreateCheckbox(category, originalWhenMissingCheckbox)
local initializer= CreateSettingsButtonInitializer(
'Resetovat pozici okna',
'RESET',
function()
CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_POSITION = { x = 0, y = 0}
CzechQuestsAddon.translationSpeechFrame:ClearAllPoints()
CzechQuestsAddon.translationSpeechFrame:SetPoint(
"CENTER", UIParent, "CENTER",
"TOPLEFT", UIParent, "TOPLEFT",
CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_POSITION.x,
CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_POSITION.y
)

View file

@ -2,8 +2,9 @@ function CzechQuestsAddon:CreateTranslationSpeechFrame()
local scroll = {};
-- Speech Translation Frame
scroll = CreateFrame("ScrollFrame", "CzechQuestsTranslationSpeechFrame", UIParent, "MinimalScrollFrameTemplate")
scroll = CreateFrame("ScrollFrame", "CzechQuestsTranslationSpeechFrame", UIParent, "UIPanelScrollFrameTemplate")
scroll:SetSize(CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_WIDTH, 150)
scroll:Hide()
-- Make movable
scroll:SetMovable(true)
@ -57,13 +58,12 @@ function CzechQuestsAddon:CreateTranslationSpeechFrame()
CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_POSITION.y
)
scroll:Hide()
scroll.content:SetPoint("BOTTOMLEFT", scroll, "BOTTOMLEFT", 0, 0)
return scroll;
end
function CzechQuestsAddon:CreateTranslationSpeechFrameMessage(message)
local frame = {};
@ -71,6 +71,9 @@ function CzechQuestsAddon:CreateTranslationSpeechFrameMessage(message)
frame = CreateFrame("Frame", nil, CzechQuestsAddon.translationSpeechFrame.content)
frame:SetSize(CzechQuestsAddon.translationSpeechFrame.content:GetWidth() - 20, 1)
-- Hide
frame:Hide()
-- Message
frame.string = frame:CreateFontString(nil, "OVERLAY")
frame.string:SetWidth(frame:GetWidth())