Refactor addon structure and introduce new speech frame.
This commit is contained in:
parent
f00edc16fc
commit
4660216504
27 changed files with 698 additions and 441 deletions
29
Addon/Frames/Settings/OptionsFrame.lua
Executable file
29
Addon/Frames/Settings/OptionsFrame.lua
Executable file
|
@ -0,0 +1,29 @@
|
|||
-- define FontOptions
|
||||
function GetFontOptions()
|
||||
local container = Settings.CreateControlTextContainer()
|
||||
container:Add("morpheus_cz.ttf", "Morpheus (cz)")
|
||||
container:Add("frizquadratatt_cz.ttf", "Friz Quadrata TT (cz)")
|
||||
container:Add("quicksand.ttf", "Quicksand")
|
||||
container:Add("caveat.ttf", "Caveat")
|
||||
return container:GetData()
|
||||
end
|
||||
|
||||
function CzechQuestsAddon:InitializeSettings()
|
||||
CzechQuestsAddon.optionsFrame = {};
|
||||
CzechQuestsAddon.optionsFrame, layout = Settings.RegisterVerticalLayoutCategory("CzechQuests")
|
||||
|
||||
-- Add options for quests
|
||||
layout:AddInitializer(CreateSettingsListSectionHeaderInitializer("Questy"))
|
||||
CzechQuestsAddon:AddQuestOptions(CzechQuestsAddon.optionsFrame)
|
||||
|
||||
-- Add options for speech
|
||||
layout:AddInitializer(CreateSettingsListSectionHeaderInitializer("Projevy"))
|
||||
CzechQuestsAddon:AddSpeechOptions(CzechQuestsAddon.optionsFrame)
|
||||
|
||||
-- Add options for speech
|
||||
layout:AddInitializer(CreateSettingsListSectionHeaderInitializer("Ostatní"))
|
||||
CzechQuestsAddon:AddOthersOptions(CzechQuestsAddon.optionsFrame)
|
||||
|
||||
-- Store it into Addon options
|
||||
Settings.RegisterAddOnCategory(CzechQuestsAddon.optionsFrame)
|
||||
end
|
15
Addon/Frames/Settings/OptionsOthersFrame.lua
Executable file
15
Addon/Frames/Settings/OptionsOthersFrame.lua
Executable file
|
@ -0,0 +1,15 @@
|
|||
function CzechQuestsAddon:AddOthersOptions(optionsFrame)
|
||||
|
||||
-- Add DEBUG checkbox
|
||||
local debugCheckbox = Settings.RegisterAddOnSetting(
|
||||
optionsFrame,
|
||||
"CzechQuestsAddon__DEBUG_MODE",
|
||||
"DEBUG_MODE",
|
||||
CzechQuestsAddon_Store.config,
|
||||
type(CzechQuestsAddon_Store.config.DEBUG_MODE),
|
||||
"Zapnout DEBUG",
|
||||
CzechQuestsAddon_Store.config.DEBUG_MODE
|
||||
)
|
||||
Settings.CreateCheckbox(optionsFrame, debugCheckbox)
|
||||
|
||||
end
|
137
Addon/Frames/Settings/OptionsQuestFrame.lua
Executable file
137
Addon/Frames/Settings/OptionsQuestFrame.lua
Executable file
|
@ -0,0 +1,137 @@
|
|||
function CzechQuestsAddon:AddQuestOptions(optionsFrame)
|
||||
|
||||
if (WOW_PROJECT_ID == WOW_PROJECT_CLASSIC) then
|
||||
-- Add DARK mode checkbox
|
||||
local darkModeCheckbox = Settings.RegisterAddOnSetting(
|
||||
optionsFrame,
|
||||
"CzechQuestsAddon__TRANSLATION_QUEST_FRAME_DARK_MODE",
|
||||
"TRANSLATION_QUEST_FRAME_DARK_MODE",
|
||||
CzechQuestsAddon_Store.config,
|
||||
type(CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_DARK_MODE),
|
||||
"Použít tmavý režim",
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_DARK_MODE
|
||||
)
|
||||
Settings.CreateCheckbox(optionsFrame, darkModeCheckbox)
|
||||
end
|
||||
|
||||
-- define FontOptions
|
||||
local function GetFontOptions()
|
||||
local container = Settings.CreateControlTextContainer()
|
||||
container:Add("morpheus_cz.ttf", "Morpheus (cz)")
|
||||
container:Add("frizquadratatt_cz.ttf", "Friz Quadrata TT (cz)")
|
||||
container:Add("quicksand.ttf", "Quicksand")
|
||||
container:Add("caveat.ttf", "Caveat")
|
||||
return container:GetData()
|
||||
end
|
||||
|
||||
-- Add header font dropdown menu
|
||||
local headerFontFamilyDropdown = Settings.RegisterProxySetting(
|
||||
optionsFrame,
|
||||
"CzechQuestsAddon__TRANSLATION_QUEST_FRAME_HEADER_FONT_FAMILY",
|
||||
type(CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_HEADER_FONT_FAMILY),
|
||||
"Písmo nadpisu",
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_HEADER_FONT_FAMILY,
|
||||
function()
|
||||
return CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_HEADER_FONT_FAMILY
|
||||
end,
|
||||
function(value)
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_HEADER_FONT_FAMILY = value
|
||||
CzechQuestsAddon:UpdateTranslationQuestFrameFontSettings()
|
||||
end
|
||||
)
|
||||
Settings.CreateDropdown(optionsFrame, headerFontFamilyDropdown, GetFontOptions)
|
||||
|
||||
-- Add text font dropdown menu
|
||||
local textFontFamilyDropdown = Settings.RegisterProxySetting(
|
||||
optionsFrame,
|
||||
"CzechQuestsAddon__TRANSLATION_QUEST_FRAME_TEXT_FONT_FAMILY",
|
||||
type(CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_TEXT_FONT_FAMILY),
|
||||
"Písmo textu",
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_TEXT_FONT_FAMILY,
|
||||
function()
|
||||
return CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_TEXT_FONT_FAMILY
|
||||
end,
|
||||
function(value)
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_TEXT_FONT_FAMILY = value
|
||||
CzechQuestsAddon:UpdateTranslationQuestFrameFontSettings()
|
||||
end
|
||||
)
|
||||
Settings.CreateDropdown(optionsFrame, textFontFamilyDropdown, GetFontOptions)
|
||||
|
||||
-- Add slider for change primary header font size
|
||||
local primaryHeaderFontSizeSlider = Settings.RegisterProxySetting(
|
||||
optionsFrame,
|
||||
"CzechQuestsAddon__TRANSLATION_QUEST_FRAME_PRIMARY_HEADER_FONT_SIZE",
|
||||
type(CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_PRIMARY_HEADER_FONT_SIZE),
|
||||
"Velikost názvu",
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_PRIMARY_HEADER_FONT_SIZE,
|
||||
function()
|
||||
return CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_PRIMARY_HEADER_FONT_SIZE
|
||||
end,
|
||||
function(value)
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_PRIMARY_HEADER_FONT_SIZE = value
|
||||
CzechQuestsAddon:UpdateTranslationQuestFrameFontSettings()
|
||||
end
|
||||
)
|
||||
local primaryHeaderFontSizeSliderOptions = Settings.CreateSliderOptions(10, 30, 1)
|
||||
primaryHeaderFontSizeSliderOptions:SetLabelFormatter(MinimalSliderWithSteppersMixin.Label.Right);
|
||||
Settings.CreateSlider(optionsFrame, primaryHeaderFontSizeSlider, primaryHeaderFontSizeSliderOptions)
|
||||
|
||||
-- Add slider for change secondary header font size
|
||||
local secondaryHeaderFontSizeSlider = Settings.RegisterProxySetting(
|
||||
optionsFrame,
|
||||
"CzechQuestsAddon__TRANSLATION_QUEST_FRAME_SECONDARY_HEADER_FONT_SIZE",
|
||||
type(CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_SECONDARY_HEADER_FONT_SIZE),
|
||||
"Velikost nadpisu",
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_SECONDARY_HEADER_FONT_SIZE,
|
||||
function()
|
||||
return CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_SECONDARY_HEADER_FONT_SIZE
|
||||
end,
|
||||
function(value)
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_SECONDARY_HEADER_FONT_SIZE = value
|
||||
CzechQuestsAddon:UpdateTranslationQuestFrameFontSettings()
|
||||
end
|
||||
)
|
||||
local secondaryHeaderFontSizeSliderOptions = Settings.CreateSliderOptions(10, 30, 1)
|
||||
secondaryHeaderFontSizeSliderOptions:SetLabelFormatter(MinimalSliderWithSteppersMixin.Label.Right);
|
||||
Settings.CreateSlider(optionsFrame, secondaryHeaderFontSizeSlider, secondaryHeaderFontSizeSliderOptions)
|
||||
|
||||
|
||||
-- Add slider for change secondary header font size
|
||||
local textFontSizeSlider = Settings.RegisterProxySetting(
|
||||
optionsFrame,
|
||||
"CzechQuestsAddon__TRANSLATION_QUEST_FRAME_TEXT_FONT_SIZE",
|
||||
type(CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_TEXT_FONT_SIZE),
|
||||
"Velikost textu",
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_TEXT_FONT_SIZE,
|
||||
function()
|
||||
return CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_TEXT_FONT_SIZE
|
||||
end,
|
||||
function(value)
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_TEXT_FONT_SIZE = value
|
||||
CzechQuestsAddon:UpdateTranslationQuestFrameFontSettings()
|
||||
end
|
||||
)
|
||||
local textFontSizeSliderOptions = Settings.CreateSliderOptions(10, 30, 1)
|
||||
textFontSizeSliderOptions:SetLabelFormatter(MinimalSliderWithSteppersMixin.Label.Right);
|
||||
Settings.CreateSlider(optionsFrame, textFontSizeSlider, textFontSizeSliderOptions)
|
||||
|
||||
-- Add slider for change secondary header font size
|
||||
local textureAlphaSlider = Settings.RegisterProxySetting(
|
||||
optionsFrame,
|
||||
"CzechQuestsAddon__TRANSLATION_QUEST_FRAME_TEXTURE_ALPHA",
|
||||
type(CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_TEXTURE_ALPHA),
|
||||
"Pruhlednost pozadí",
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_TEXTURE_ALPHA,
|
||||
function()
|
||||
return CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_TEXTURE_ALPHA
|
||||
end,
|
||||
function(value)
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_TEXTURE_ALPHA = value
|
||||
end
|
||||
)
|
||||
local textureAlphaSliderOptions = Settings.CreateSliderOptions(10, 100, 10)
|
||||
textureAlphaSliderOptions:SetLabelFormatter(MinimalSliderWithSteppersMixin.Label.Right);
|
||||
Settings.CreateSlider(optionsFrame, textureAlphaSlider, textureAlphaSliderOptions)
|
||||
|
||||
end
|
94
Addon/Frames/Settings/OptionsSpeechFrame.lua
Executable file
94
Addon/Frames/Settings/OptionsSpeechFrame.lua
Executable file
|
@ -0,0 +1,94 @@
|
|||
function CzechQuestsAddon:AddSpeechOptions(optionsFrame)
|
||||
|
||||
-- Add header font dropdown menu
|
||||
local npcFontFamilyDropdown = Settings.RegisterProxySetting(
|
||||
optionsFrame,
|
||||
"CzechQuestsAddon__TRANSLATION_SPEECH_FRAME_NPC_FONT_FAMILY",
|
||||
type(CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_NPC_FONT_FAMILY),
|
||||
"Písmo jména",
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_NPC_FONT_FAMILY,
|
||||
function()
|
||||
return CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_NPC_FONT_FAMILY
|
||||
end,
|
||||
function(value)
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_NPC_FONT_FAMILY = value
|
||||
CzechQuestsAddon:UpdateTranslationSpeechFrameSettings()
|
||||
end
|
||||
)
|
||||
Settings.CreateDropdown(optionsFrame, npcFontFamilyDropdown, GetFontOptions)
|
||||
|
||||
-- Add text font dropdown menu
|
||||
local textFontFamilyDropdown = Settings.RegisterProxySetting(
|
||||
optionsFrame,
|
||||
"CzechQuestsAddon__TRANSLATION_SPEECH_FRAME_TEXT_FONT_FAMILY",
|
||||
type(CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_TEXT_FONT_FAMILY),
|
||||
"Písmo textu",
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_TEXT_FONT_FAMILY,
|
||||
function()
|
||||
return CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_TEXT_FONT_FAMILY
|
||||
end,
|
||||
function(value)
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_TEXT_FONT_FAMILY = value
|
||||
CzechQuestsAddon:UpdateTranslationSpeechFrameSettings()
|
||||
end
|
||||
)
|
||||
Settings.CreateDropdown(optionsFrame, textFontFamilyDropdown, GetFontOptions)
|
||||
|
||||
-- Add slider for change primary header font size
|
||||
local npcFontSizeSlider = Settings.RegisterProxySetting(
|
||||
optionsFrame,
|
||||
"CzechQuestsAddon__TRANSLATION_SPEECH_FRAME_NPC_FONT_SIZE",
|
||||
type(CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_NPC_FONT_SIZE),
|
||||
"Velikost jméma",
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_NPC_FONT_SIZE,
|
||||
function()
|
||||
return CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_NPC_FONT_SIZE
|
||||
end,
|
||||
function(value)
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_NPC_FONT_SIZE = value
|
||||
CzechQuestsAddon:UpdateTranslationSpeechFrameSettings()
|
||||
end
|
||||
)
|
||||
local npcFontSizeOption = Settings.CreateSliderOptions(8, 30, 1)
|
||||
npcFontSizeOption:SetLabelFormatter(MinimalSliderWithSteppersMixin.Label.Right);
|
||||
Settings.CreateSlider(optionsFrame, npcFontSizeSlider, npcFontSizeOption)
|
||||
|
||||
-- Add slider for change secondary header font size
|
||||
local textFontSizeSlider = Settings.RegisterProxySetting(
|
||||
optionsFrame,
|
||||
"CzechQuestsAddon__TRANSLATION_SPEECH_FRAME_TEXT_FONT_SIZE",
|
||||
type(CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_TEXT_FONT_SIZE),
|
||||
"Velikost textu",
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_TEXT_FONT_SIZE,
|
||||
function()
|
||||
return CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_TEXT_FONT_SIZE
|
||||
end,
|
||||
function(value)
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_TEXT_FONT_SIZE = value
|
||||
CzechQuestsAddon:UpdateTranslationSpeechFrameSettings()
|
||||
end
|
||||
)
|
||||
local textFontSizeSliderOptions = Settings.CreateSliderOptions(8, 30, 1)
|
||||
textFontSizeSliderOptions:SetLabelFormatter(MinimalSliderWithSteppersMixin.Label.Right);
|
||||
Settings.CreateSlider(optionsFrame, textFontSizeSlider, textFontSizeSliderOptions)
|
||||
|
||||
-- Add slider for change secondary header font size
|
||||
local windowWidthSizeSlider = Settings.RegisterProxySetting(
|
||||
optionsFrame,
|
||||
"CzechQuestsAddon__TRANSLATION_SPEECH_FRAME_WIDTH",
|
||||
type(CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_WIDTH),
|
||||
"Šírka zpráva",
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_WIDTH,
|
||||
function()
|
||||
return CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_WIDTH
|
||||
end,
|
||||
function(value)
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_WIDTH = value
|
||||
CzechQuestsAddon:UpdateTranslationSpeechFrameSettings()
|
||||
end
|
||||
)
|
||||
local windowWidthSizeSliderOption = Settings.CreateSliderOptions(200, 800, 10)
|
||||
windowWidthSizeSliderOption:SetLabelFormatter(MinimalSliderWithSteppersMixin.Label.Right);
|
||||
Settings.CreateSlider(optionsFrame, windowWidthSizeSlider, windowWidthSizeSliderOption)
|
||||
|
||||
end
|
194
Addon/Frames/TranslationQuestFrame.lua
Executable file
194
Addon/Frames/TranslationQuestFrame.lua
Executable file
|
@ -0,0 +1,194 @@
|
|||
function CzechQuestsAddon:CreateTranslationQuestFrame()
|
||||
local frame = {};
|
||||
|
||||
-- Quest Translation Frame
|
||||
frame = CreateFrame("Frame", "CzechQuestTranslationQuestFrame", nil, BackdropTemplateMixin and "BackdropTemplate")
|
||||
frame:SetWidth(300)
|
||||
frame:SetBackdrop({ edgeFile = "Interface/Tooltips/UI-Tooltip-Border", edgeSize = 8 })
|
||||
frame:Hide()
|
||||
|
||||
-- Background Parchment texture
|
||||
frame.texture = frame:CreateTexture(nil, "BACKGROUND", nil, -1);
|
||||
frame.texture:SetAllPoints(true)
|
||||
frame.texture:SetHorizTile(true)
|
||||
|
||||
frame.primaryHeader = CzechQuestsAddon:CreateTranslationQuestFont(
|
||||
frame,
|
||||
"CzechQuestTranslationQuestPrimaryHeader",
|
||||
CzechQuestsAddon.fontPath .. CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_HEADER_FONT_FAMILY,
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_PRIMARY_HEADER_FONT_SIZE
|
||||
)
|
||||
frame.secondaryHeader = CzechQuestsAddon:CreateTranslationQuestFont(
|
||||
frame,
|
||||
"CzechQuestTranslationQuestSecondaryHeader",
|
||||
CzechQuestsAddon.fontPath .. CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_HEADER_FONT_FAMILY,
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_SECONDARY_HEADER_FONT_SIZE
|
||||
)
|
||||
frame.primaryText = CzechQuestsAddon:CreateTranslationQuestFont(
|
||||
frame,
|
||||
"CzechQuestTranslationQuestPrimaryText",
|
||||
CzechQuestsAddon.fontPath .. CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_TEXT_FONT_FAMILY,
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_TEXT_FONT_SIZE
|
||||
)
|
||||
frame.secondaryText = CzechQuestsAddon:CreateTranslationQuestFont(
|
||||
frame,
|
||||
"CzechQuestTranslationQuestSecondaryText",
|
||||
CzechQuestsAddon.fontPath .. CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_TEXT_FONT_FAMILY,
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_TEXT_FONT_SIZE
|
||||
)
|
||||
|
||||
-- Apply correct texture for wow version
|
||||
CzechQuestsAddon:SetTranslationQuestFrameTextureFromSettings(frame)
|
||||
|
||||
return frame;
|
||||
end
|
||||
|
||||
function CzechQuestsAddon:CreateTranslationQuestFont(frame, name, font, size)
|
||||
local label = frame:CreateFontString(name, "OVERLAY")
|
||||
label:SetWidth(frame:GetWidth() - 20)
|
||||
label:SetJustifyH("LEFT")
|
||||
label:SetTextColor(0, 0, 0, 1)
|
||||
label:SetFont(font, size, nil)
|
||||
return label;
|
||||
end
|
||||
|
||||
function CzechQuestsAddon:ResetTranslationQuestText(frame)
|
||||
frame.primaryHeader:SetText("")
|
||||
frame.secondaryHeader:SetText("")
|
||||
frame.primaryText:SetText("")
|
||||
frame.secondaryText:SetText("")
|
||||
end
|
||||
|
||||
function CzechQuestsAddon:SetTranslationQuestFrameTextureFromSettings(frame)
|
||||
if (WOW_PROJECT_ID == WOW_PROJECT_CLASSIC) then
|
||||
-- setup default
|
||||
frame.texture:SetTexture("Interface/QUESTFRAME/QuestBG");
|
||||
frame.texture:SetTexCoord(0, .58, 0.005, 0.66)
|
||||
frame.primaryHeader:SetTextColor(0, 0, 0, 1)
|
||||
frame.secondaryHeader:SetTextColor(0, 0, 0, 1)
|
||||
frame.primaryText:SetTextColor(0, 0, 0, 1)
|
||||
frame.secondaryText:SetTextColor(0, 0, 0, 1)
|
||||
|
||||
if CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_DARK_MODE then
|
||||
frame:SetBackdropColor(0, 0, 0, 1)
|
||||
frame.texture:SetColorTexture(0, 0, 0, 1)
|
||||
frame.primaryHeader:SetTextColor(255, 255, 255, 1)
|
||||
frame.secondaryHeader:SetTextColor(255, 255, 255, 1)
|
||||
frame.primaryText:SetTextColor(255, 255, 255, 1)
|
||||
frame.secondaryText:SetTextColor(255, 255, 255, 1)
|
||||
end
|
||||
else
|
||||
-- setup default
|
||||
frame.texture:SetTexture("Interface/QUESTFRAME/QuestBackgroundParchment");
|
||||
frame.texture:SetTexCoord(0, .01, 0, 0.4)
|
||||
frame.primaryHeader:SetTextColor(0, 0, 0, 1)
|
||||
frame.secondaryHeader:SetTextColor(0, 0, 0, 1)
|
||||
frame.primaryText:SetTextColor(0, 0, 0, 1)
|
||||
frame.secondaryText:SetTextColor(0, 0, 0, 1)
|
||||
|
||||
-- Read CVar from settings to setup same parchment as Quest frame
|
||||
if C_CVar.GetCVar("questTextContrast") == "1" then -- Brown
|
||||
frame.texture:SetTexCoord(0, .01, .4, .8)
|
||||
elseif C_CVar.GetCVar("questTextContrast") == "2"
|
||||
or C_CVar.GetCVar("questTextContrast") == "3" then -- Gray
|
||||
frame.texture:SetColorTexture(255, 255, 255, 1)
|
||||
elseif C_CVar.GetCVar("questTextContrast") == "4" then -- Black
|
||||
frame.texture:SetColorTexture(0, 0, 0, 1)
|
||||
frame.primaryHeader:SetTextColor(255, 255, 255, 1)
|
||||
frame.secondaryHeader:SetTextColor(255, 255, 255, 1)
|
||||
frame.primaryText:SetTextColor(255, 255, 255, 1)
|
||||
frame.secondaryText:SetTextColor(255, 255, 255, 1)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function CzechQuestsAddon:UpdateTranslationQuestFrameFontSettings()
|
||||
CzechQuestsAddon.translationQuestFrame.primaryHeader:SetFont(
|
||||
CzechQuestsAddon.fontPath .. CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_HEADER_FONT_FAMILY,
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_PRIMARY_HEADER_FONT_SIZE,
|
||||
nil
|
||||
)
|
||||
CzechQuestsAddon.translationQuestFrame.secondaryHeader:SetFont(
|
||||
CzechQuestsAddon.fontPath .. CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_HEADER_FONT_FAMILY,
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_SECONDARY_HEADER_FONT_SIZE,
|
||||
nil
|
||||
)
|
||||
CzechQuestsAddon.translationQuestFrame.primaryText:SetFont(
|
||||
CzechQuestsAddon.fontPath .. CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_TEXT_FONT_FAMILY,
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_TEXT_FONT_SIZE,
|
||||
nil
|
||||
)
|
||||
CzechQuestsAddon.translationQuestFrame.secondaryText:SetFont(
|
||||
CzechQuestsAddon.fontPath .. CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_TEXT_FONT_FAMILY,
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_TEXT_FONT_SIZE,
|
||||
nil
|
||||
)
|
||||
CzechQuestsAddon.translationQuestFrame.texture:SetAlpha(
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_QUEST_FRAME_TEXTURE_ALPHA / 100
|
||||
)
|
||||
end
|
||||
|
||||
function CzechQuestsAddon:ShowTranslationQuestFrame(primaryHeader, primaryText, secondaryHeader, secondaryText, parentFrame, yOffset, xOffset)
|
||||
-- replace placeholders with current values
|
||||
primaryText = CzechQuestsAddon:replacePlaceholders(primaryText);
|
||||
secondaryText = CzechQuestsAddon:replacePlaceholders(secondaryText);
|
||||
|
||||
-- when user change own setting, does not require reload, just apply it
|
||||
CzechQuestsAddon:SetTranslationQuestFrameTextureFromSettings(CzechQuestsAddon.translationQuestFrame)
|
||||
|
||||
-- reset all texts
|
||||
CzechQuestsAddon:ResetTranslationQuestText(CzechQuestsAddon.translationQuestFrame)
|
||||
|
||||
-- set text to labels
|
||||
CzechQuestsAddon.translationQuestFrame.primaryHeader:SetText(primaryHeader)
|
||||
CzechQuestsAddon.translationQuestFrame.primaryText:SetText(primaryText)
|
||||
CzechQuestsAddon.translationQuestFrame.secondaryHeader:SetText(secondaryHeader)
|
||||
CzechQuestsAddon.translationQuestFrame.secondaryText:SetText(secondaryText)
|
||||
|
||||
local primaryTextTopMargin = -CzechQuestsAddon.translationQuestFrame.primaryHeader:GetHeight() - 15
|
||||
local secondaryHeaderTopMargin = primaryTextTopMargin - CzechQuestsAddon.translationQuestFrame.primaryText:GetHeight() - 20
|
||||
local secondaryTextTopMargin = secondaryHeaderTopMargin - CzechQuestsAddon.translationQuestFrame.secondaryHeader:GetHeight() - 5
|
||||
|
||||
-- apply gap between headers and texts
|
||||
local gap = 10
|
||||
local function addPadding(text, value)
|
||||
if text ~= "" then
|
||||
gap = gap + value
|
||||
end
|
||||
end
|
||||
|
||||
addPadding(primaryHeader, 10)
|
||||
addPadding(primaryText, 5)
|
||||
addPadding(secondaryHeader, 25)
|
||||
addPadding(secondaryText, 5)
|
||||
|
||||
-- apply positions
|
||||
CzechQuestsAddon.translationQuestFrame.primaryHeader:SetPoint("TOPLEFT", 10, -10)
|
||||
CzechQuestsAddon.translationQuestFrame.primaryText:SetPoint("TOPLEFT", 10, primaryTextTopMargin)
|
||||
CzechQuestsAddon.translationQuestFrame.secondaryHeader:SetPoint("TOPLEFT", 10, secondaryHeaderTopMargin)
|
||||
CzechQuestsAddon.translationQuestFrame.secondaryText:SetPoint("TOPLEFT", 10, secondaryTextTopMargin)
|
||||
|
||||
-- apply changes per wow
|
||||
if (WOW_PROJECT_ID == WOW_PROJECT_CLASSIC) then
|
||||
CzechQuestsAddon.translationQuestFrame:SetPoint("TOPLEFT", parentFrame, "TOPRIGHT", -8 + xOffset, yOffset)
|
||||
else
|
||||
CzechQuestsAddon.translationQuestFrame:SetPoint("TOPLEFT", parentFrame, "TOPRIGHT", 8 + xOffset, yOffset)
|
||||
end
|
||||
|
||||
-- calculate height
|
||||
local height = 0;
|
||||
local heights = {
|
||||
CzechQuestsAddon.translationQuestFrame.primaryHeader:GetHeight(),
|
||||
CzechQuestsAddon.translationQuestFrame.primaryText:GetHeight(),
|
||||
CzechQuestsAddon.translationQuestFrame.secondaryHeader:GetHeight(),
|
||||
CzechQuestsAddon.translationQuestFrame.secondaryText:GetHeight(),
|
||||
gap,
|
||||
10
|
||||
}
|
||||
for _, value in ipairs(heights) do
|
||||
height = height + value
|
||||
end
|
||||
|
||||
CzechQuestsAddon.translationQuestFrame:SetParent(parentFrame)
|
||||
CzechQuestsAddon.translationQuestFrame:SetHeight(height < 200 and 200 or height)
|
||||
end
|
59
Addon/Frames/TranslationSpeechFrame.lua
Executable file
59
Addon/Frames/TranslationSpeechFrame.lua
Executable file
|
@ -0,0 +1,59 @@
|
|||
function CzechQuestsAddon:CreateTranslationSpeechFrame()
|
||||
local frame = {};
|
||||
|
||||
-- Speech Translation Frame
|
||||
frame = CreateFrame("Frame", "CzechQuestsTranslationSpeechFrame", UIParant, "BackdropTemplate")
|
||||
frame:SetSize(CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_WIDTH, 50)
|
||||
frame:SetPoint("CENTER", UIParent, "CENTER")
|
||||
|
||||
-- Make draggable
|
||||
frame:EnableMouse(true)
|
||||
frame:SetMovable(true)
|
||||
frame:RegisterForDrag("LeftButton")
|
||||
frame:SetScript("OnDragStart", function(self) self:StartMoving() end)
|
||||
frame:SetScript("OnDragStop", function(self) self:StopMovingOrSizing() end)
|
||||
|
||||
frame:Hide()
|
||||
|
||||
frame.npcName = frame:CreateFontString("CzechQuestsTranslationSpeechNpcName", "OVERLAY")
|
||||
frame.npcName:SetTextColor(1, 1, 0)
|
||||
frame.npcName:SetFont(
|
||||
CzechQuestsAddon.fontPath .. CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_NPC_FONT_FAMILY,
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_NPC_FONT_SIZE,
|
||||
"OUTLINE"
|
||||
)
|
||||
frame.npcName:SetPoint("LEFT", frame, "LEFT", 0, 5)
|
||||
|
||||
frame.text = frame:CreateFontString("CzechQuestsTranslationSpeechText", "OVERLAY")
|
||||
frame.text:SetTextColor(1, 1, 1)
|
||||
frame.text:SetWordWrap(true)
|
||||
frame.text:SetFont(
|
||||
CzechQuestsAddon.fontPath .. CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_TEXT_FONT_FAMILY,
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_TEXT_FONT_SIZE,
|
||||
"OUTLINE"
|
||||
)
|
||||
frame.text:SetTextColor(1, 1, 1)
|
||||
frame.text:SetWidth(CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_WIDTH)
|
||||
frame.text:SetJustifyH("LEFT")
|
||||
frame.text:SetJustifyV("TOP")
|
||||
|
||||
return frame;
|
||||
end
|
||||
|
||||
function CzechQuestsAddon:UpdateTranslationSpeechFrameSettings()
|
||||
-- Font
|
||||
CzechQuestsAddon.translationSpeechFrame.npcName:SetFont(
|
||||
CzechQuestsAddon.fontPath .. CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_NPC_FONT_FAMILY,
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_NPC_FONT_SIZE,
|
||||
"OUTLINE"
|
||||
)
|
||||
CzechQuestsAddon.translationSpeechFrame.text:SetFont(
|
||||
CzechQuestsAddon.fontPath .. CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_TEXT_FONT_FAMILY,
|
||||
CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_TEXT_FONT_SIZE,
|
||||
"OUTLINE"
|
||||
)
|
||||
|
||||
-- Width
|
||||
CzechQuestsAddon.translationSpeechFrame.text:SetWidth(CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_WIDTH)
|
||||
CzechQuestsAddon.translationSpeechFrame:SetWidth(CzechQuestsAddon_Store.config.TRANSLATION_SPEECH_FRAME_WIDTH)
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue