Add RETAIL support (big refactor)
This commit is contained in:
parent
578142977f
commit
cde428a4f1
36 changed files with 1951 additions and 1878 deletions
|
@ -1,56 +1,70 @@
|
|||
local defaultOptions = {
|
||||
DEBUG_MODE = false,
|
||||
DARK_MODE = false,
|
||||
}
|
||||
|
||||
local addonName = ...
|
||||
local optionsFrame = CreateFrame("Frame")
|
||||
|
||||
local function CreateCheckBox(parent, optionsPanel, text, onClick)
|
||||
local checkbox = CreateFrame("CheckButton", nil, optionsPanel, "InterfaceOptionsCheckButtonTemplate")
|
||||
local function CreateCheckbox(parent, frame, text, optionKey)
|
||||
local checkbox = CreateFrame("CheckButton", nil, frame, "InterfaceOptionsCheckButtonTemplate")
|
||||
checkbox.Text:SetText(text)
|
||||
checkbox:SetScript("OnClick", onClick)
|
||||
return checkbox
|
||||
end
|
||||
|
||||
local function createOptionCheckbox(parent, optionsPanel, text, optionKey)
|
||||
local checkbox = CreateCheckBox(parent, optionsPanel, text, function(self)
|
||||
local checked = self:GetChecked()
|
||||
CzechQuestsOptions[optionKey] = checked
|
||||
checkbox:SetScript("OnClick", function(self)
|
||||
CzechQuestsAddon.options[optionKey] = self:GetChecked()
|
||||
end)
|
||||
checkbox:SetPoint("TOPLEFT", parent, "BOTTOMLEFT", 0, -8)
|
||||
checkbox:SetChecked(CzechQuestsOptions[optionKey])
|
||||
checkbox:SetChecked(CzechQuestsAddon.options[optionKey])
|
||||
return checkbox
|
||||
end
|
||||
|
||||
local function InitializeOptions()
|
||||
local optionsPanel = CreateFrame("Frame", "CzechQuestsOptionsPanel", UIParent)
|
||||
optionsPanel.name = "CzechQuests"
|
||||
function CzechQuestsAddon:InitializeOptions()
|
||||
CzechQuestsAddon.optionsFrame = {};
|
||||
|
||||
local title = optionsPanel:CreateFontString(nil, "ARTWORK", "GameFontNormalLarge")
|
||||
title:SetPoint("TOPLEFT", 16, -16)
|
||||
title:SetText("CzechQuests")
|
||||
if (WOW_PROJECT_ID == WOW_PROJECT_CLASSIC) then
|
||||
local frame
|
||||
-- Create Frame
|
||||
CzechQuestsAddon.optionsFrame = CreateFrame("Frame", "CzechQuestsOptionsPanel", UIParent)
|
||||
CzechQuestsAddon.optionsFrame.name = "CzechQuests"
|
||||
|
||||
local enableDebugModeCheckbox = createOptionCheckbox(title, optionsPanel,"Enable DEBUG mode", "DEBUG_MODE")
|
||||
enableDebugModeCheckbox:SetPoint("TOPLEFT", title, "BOTTOMLEFT", 16, -8)
|
||||
-- Create frame title
|
||||
local title = CzechQuestsAddon.optionsFrame:CreateFontString(nil, "ARTWORK", "GameFontNormalLarge")
|
||||
title:SetPoint("TOPLEFT", 16, -16)
|
||||
title:SetText("CzechQuests")
|
||||
|
||||
local enableDarkModeCheckbox = createOptionCheckbox(enableDebugModeCheckbox, optionsPanel,"Dark mode (require reload)", "DARK_MODE")
|
||||
enableDarkModeCheckbox:SetPoint("TOPLEFT", enableDebugModeCheckbox, "BOTTOMLEFT", 0, -8)
|
||||
-- Add DEBUG checkbox
|
||||
local debugModeCheckbox = CreateCheckbox(title, CzechQuestsAddon.optionsFrame, "Enable DEBUG mode", "DEBUG_MODE")
|
||||
debugModeCheckbox:SetPoint("TOPLEFT", title, "BOTTOMLEFT", 16, -16)
|
||||
|
||||
InterfaceOptions_AddCategory(optionsPanel)
|
||||
end
|
||||
-- Add Dark Mode checkbox
|
||||
local darkModeCheckbox = CreateCheckbox(debugModeCheckbox, CzechQuestsAddon.optionsFrame, "Dark mode (require reload)", "DARK_MODE")
|
||||
darkModeCheckbox:SetPoint("TOPLEFT", debugModeCheckbox, "BOTTOMLEFT", 0, -4)
|
||||
|
||||
local function addonLoaded(self, event, addonLoadedName)
|
||||
if addonLoadedName == addonName then
|
||||
CzechQuestsOptions = CzechQuestsOptions or defaultOptions
|
||||
for key, value in pairs(defaultOptions) do
|
||||
if CzechQuestsOptions[key] == nil then
|
||||
CzechQuestsOptions[key] = value
|
||||
end
|
||||
end
|
||||
InitializeOptions()
|
||||
-- Store it into Addon options
|
||||
InterfaceOptions_AddCategory(CzechQuestsAddon.optionsFrame)
|
||||
|
||||
else
|
||||
CzechQuestsAddon.optionsFrame = Settings.RegisterVerticalLayoutCategory("CzechQuests")
|
||||
|
||||
-- Add DEBUG checkbox
|
||||
local debugCheckbox = Settings.RegisterAddOnSetting(
|
||||
CzechQuestsAddon.optionsFrame,
|
||||
"CzechQuestsAddon__DEBUG_MODE",
|
||||
"DEBUG_MODE",
|
||||
CzechQuestsAddon.options,
|
||||
type(CzechQuestsAddon.options.DEBUG_MODE),
|
||||
"Enable DEBUG mode",
|
||||
CzechQuestsAddon.options.DEBUG_MODE
|
||||
)
|
||||
Settings.CreateCheckbox(CzechQuestsAddon.optionsFrame, debugCheckbox)
|
||||
|
||||
-- Add DARK mode checkbox
|
||||
local darkModeCheckbox = Settings.RegisterAddOnSetting(
|
||||
CzechQuestsAddon.optionsFrame,
|
||||
"CzechQuestsAddon__DARK_MODE",
|
||||
"DARK_MODE",
|
||||
CzechQuestsAddon.options,
|
||||
type(CzechQuestsAddon.options.DARK_MODE),
|
||||
"Use dark mode",
|
||||
CzechQuestsAddon.options.DARK_MODE
|
||||
)
|
||||
Settings.CreateCheckbox(CzechQuestsAddon.optionsFrame, darkModeCheckbox)
|
||||
|
||||
-- Store it into Addon options
|
||||
Settings.RegisterAddOnCategory(CzechQuestsAddon.optionsFrame)
|
||||
end
|
||||
end
|
||||
|
||||
optionsFrame:RegisterEvent("ADDON_LOADED")
|
||||
optionsFrame:SetScript("OnEvent", addonLoaded)
|
||||
-- initialize options frame
|
||||
CzechQuestsAddon:InitializeOptions()
|
||||
|
|
70
Quests/Frames/TranslationFrame.lua
Executable file
70
Quests/Frames/TranslationFrame.lua
Executable file
|
@ -0,0 +1,70 @@
|
|||
local headerFont = "Interface\\AddOns\\CzechQuests\\morpheus_cz.ttf"
|
||||
local textFont = "Interface\\AddOns\\CzechQuests\\frizquadratatt_cz.ttf"
|
||||
|
||||
function CzechQuestsAddon:CreateTranslationFrame()
|
||||
local frame = {};
|
||||
|
||||
-- Main Translation Frame
|
||||
frame = CreateFrame("Frame", "CzechQuestTranslationFrame", 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)
|
||||
|
||||
-- Apply correct texture for wow version
|
||||
if (WOW_PROJECT_ID == WOW_PROJECT_CLASSIC) then
|
||||
frame.texture:SetTexture("Interface/QUESTFRAME/QuestBG");
|
||||
frame.texture:SetTexCoord(0, .58, 0.005, 0.66)
|
||||
else
|
||||
frame.texture:SetTexture("Interface/QUESTFRAME/QuestBackgroundParchment");
|
||||
CzechQuestsAddon:SetTextureFromSettings(frame)
|
||||
end
|
||||
|
||||
frame.primaryHeader = CzechQuestsAddon:CreateTranslationFont(frame,"CzechQuestTranslationPrimaryHeader", headerFont, 18)
|
||||
frame.secondaryHeader = CzechQuestsAddon:CreateTranslationFont(frame,"CzechQuestTranslationSecondaryHeader", headerFont, 16)
|
||||
frame.primaryText = CzechQuestsAddon:CreateTranslationFont(frame,"CzechQuestTranslationPrimaryText", textFont, 13)
|
||||
frame.secondaryText = CzechQuestsAddon:CreateTranslationFont(frame,"CzechQuestTranslationSecondaryText", textFont, 13)
|
||||
|
||||
return frame;
|
||||
end
|
||||
|
||||
function CzechQuestsAddon:CreateTranslationFont(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:ResetTranslationText(frame)
|
||||
frame.primaryHeader:SetText("")
|
||||
frame.secondaryHeader:SetText("")
|
||||
frame.primaryText:SetText("")
|
||||
frame.secondaryText:SetText("")
|
||||
end
|
||||
|
||||
function CzechQuestsAddon:SetTextureFromSettings(frame)
|
||||
if (WOW_PROJECT_ID == WOW_PROJECT_CLASSIC) then
|
||||
if CzechQuestsAddon.options.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
|
||||
-- TODO add DARK MODE support for retail
|
||||
-- Read CVar from settings to setup same parchment as Quest frame
|
||||
if C_CVar.GetCVar("questTextContrast") == "0" then
|
||||
frame.texture:SetTexCoord(0, .01, 0, 0.4) -- Parchment (brown)
|
||||
else
|
||||
frame.texture:SetTexCoord(0, .01, .4, .8) -- Parchment (white)
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,47 +0,0 @@
|
|||
local headerFontPath = "Interface\\AddOns\\CzechQuests\\morpheus_cz.ttf"
|
||||
local textFontPath = "Interface\\AddOns\\CzechQuests\\frizquadratatt_cz.ttf"
|
||||
|
||||
local tooltipFrame = CreateFrame("Frame", "TranslationInfoFrame", nil, BackdropTemplateMixin and "BackdropTemplate")
|
||||
tooltipFrame:SetWidth(300)
|
||||
|
||||
local translationInfoFrameTexture = tooltipFrame:CreateTexture(nil, "BACKGROUND", nil, -1);
|
||||
translationInfoFrameTexture:SetAllPoints(true);
|
||||
translationInfoFrameTexture:SetTexture("Interface/QUESTFRAME/QuestBG");
|
||||
translationInfoFrameTexture:SetTexCoord(0, .58, 0.005, 0.66)
|
||||
translationInfoFrameTexture:SetHorizTile(true)
|
||||
tooltipFrame:SetBackdrop({
|
||||
edgeFile = "Interface/Tooltips/UI-Tooltip-Border",
|
||||
edgeSize = 8,
|
||||
})
|
||||
tooltipFrame:Hide()
|
||||
|
||||
local primaryHeader = tooltipFrame:CreateFontString("TranslationInfoFramePrimaryHeader", "OVERLAY", "QuestTitleFont")
|
||||
primaryHeader:SetWidth(tooltipFrame:GetWidth() - 20)
|
||||
primaryHeader:SetJustifyH("LEFT")
|
||||
primaryHeader:SetTextColor(0, 0, 0, 1)
|
||||
primaryHeader:SetFont(headerFontPath, 20, nil)
|
||||
|
||||
local secondaryHeader = tooltipFrame:CreateFontString("TranslationInfoFrameSecondaryHeader", "OVERLAY", "QuestTitleFont")
|
||||
secondaryHeader:SetWidth(tooltipFrame:GetWidth() - 20)
|
||||
secondaryHeader:SetJustifyH("LEFT")
|
||||
secondaryHeader:SetTextColor(0, 0, 0, 1)
|
||||
secondaryHeader:SetFont(headerFontPath, 17, nil)
|
||||
|
||||
local primaryText = tooltipFrame:CreateFontString("TranslationInfoFramePrimaryText", "OVERLAY", "QuestFont")
|
||||
primaryText:SetWidth(tooltipFrame:GetWidth() - 20)
|
||||
primaryText:SetJustifyH("LEFT")
|
||||
primaryText:SetTextColor(0, 0, 0, 1)
|
||||
primaryText:SetFont(textFontPath, 15, nil)
|
||||
|
||||
local secondaryText = tooltipFrame:CreateFontString("TranslationInfoFrameSecondaryText", "OVERLAY", "QuestFont")
|
||||
secondaryText:SetWidth(tooltipFrame:GetWidth() - 20)
|
||||
secondaryText:SetJustifyH("LEFT")
|
||||
secondaryText:SetTextColor(0, 0, 0, 1)
|
||||
secondaryText:SetFont(textFontPath, 15, nil)
|
||||
|
||||
TranslationInfoFrame:RegisterEvent("QUEST_PROGRESS")
|
||||
TranslationInfoFrame:RegisterEvent("QUEST_COMPLETE")
|
||||
TranslationInfoFrame:RegisterEvent("QUEST_FINISHED")
|
||||
TranslationInfoFrame:RegisterEvent("QUEST_DETAIL")
|
||||
|
||||
TranslationInfoFrame:RegisterEvent("ITEM_TEXT_READY")
|
Loading…
Add table
Add a link
Reference in a new issue