You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
114 lines
4.2 KiB
114 lines
4.2 KiB
local L = DBM_CORE_L
|
|
|
|
---@class DBM
|
|
local DBM = DBM
|
|
|
|
local frame, fontstring, fontstringFooter, editBox, urlText
|
|
|
|
local function CreateOurFrame()
|
|
---@class DBMUpdateFrame: Frame, BackdropTemplate
|
|
frame = CreateFrame("Frame", "DBMUpdateReminder", UIParent, "BackdropTemplate")
|
|
frame:SetFrameStrata("FULLSCREEN_DIALOG") -- yes, this isn't a fullscreen dialog, but I want it to be in front of other DIALOG frames (like DBM GUI which might open this frame...)
|
|
frame:SetWidth(430)
|
|
frame:SetHeight(100)
|
|
frame:SetPoint("TOP", 0, -230)
|
|
frame.backdropInfo = {
|
|
bgFile = "Interface\\DialogFrame\\UI-DialogBox-Background-Dark", -- ????
|
|
edgeFile = "Interface\\DialogFrame\\UI-DialogBox-Border", -- 131072
|
|
tile = true,
|
|
tileSize = 32,
|
|
edgeSize = 32,
|
|
insets = { left = 11, right = 12, top = 12, bottom = 11 },
|
|
}
|
|
frame:ApplyBackdrop()
|
|
fontstring = frame:CreateFontString(nil, "ARTWORK", "GameFontNormal")
|
|
fontstring:SetWidth(410)
|
|
fontstring:SetHeight(0)
|
|
fontstring:SetPoint("TOP", 0, -16)
|
|
editBox = CreateFrame("EditBox", nil, frame)
|
|
do
|
|
local editBoxLeft = editBox:CreateTexture(nil, "BACKGROUND")
|
|
editBoxLeft:SetTexture(130959)--"Interface\\ChatFrame\\UI-ChatInputBorder-Left"
|
|
editBoxLeft:SetHeight(32)
|
|
editBoxLeft:SetWidth(32)
|
|
editBoxLeft:SetPoint("LEFT", -14, 0)
|
|
editBoxLeft:SetTexCoord(0, 0.125, 0, 1)
|
|
local editBoxRight = editBox:CreateTexture(nil, "BACKGROUND")
|
|
editBoxRight:SetTexture(130960)--"Interface\\ChatFrame\\UI-ChatInputBorder-Right"
|
|
editBoxRight:SetHeight(32)
|
|
editBoxRight:SetWidth(32)
|
|
editBoxRight:SetPoint("RIGHT", 6, 0)
|
|
editBoxRight:SetTexCoord(0.875, 1, 0, 1)
|
|
local editBoxMiddle = editBox:CreateTexture(nil, "BACKGROUND")
|
|
editBoxMiddle:SetTexture(130960)--"Interface\\ChatFrame\\UI-ChatInputBorder-Right"
|
|
editBoxMiddle:SetHeight(32)
|
|
editBoxMiddle:SetWidth(1)
|
|
editBoxMiddle:SetPoint("LEFT", editBoxLeft, "RIGHT")
|
|
editBoxMiddle:SetPoint("RIGHT", editBoxRight, "LEFT")
|
|
editBoxMiddle:SetTexCoord(0, 0.9375, 0, 1)
|
|
end
|
|
editBox:SetHeight(32)
|
|
editBox:SetWidth(250)
|
|
editBox:SetPoint("TOP", fontstring, "BOTTOM", 0, -4)
|
|
editBox:SetFontObject(GameFontHighlight)
|
|
editBox:SetTextInsets(0, 0, 0, 1)
|
|
editBox:SetFocus()
|
|
editBox:SetScript("OnTextChanged", function(self)
|
|
editBox:SetText(urlText)
|
|
editBox:HighlightText()
|
|
end)
|
|
editBox:SetScript("OnEscapePressed", function()
|
|
frame:Hide()
|
|
end)
|
|
fontstringFooter = frame:CreateFontString(nil, "ARTWORK", "GameFontNormal")
|
|
fontstringFooter:SetWidth(410)
|
|
fontstringFooter:SetHeight(0)
|
|
fontstringFooter:SetPoint("TOP", editBox, "BOTTOM", 0, 0)
|
|
local button = CreateFrame("Button", nil, frame)
|
|
button:SetHeight(24)
|
|
button:SetWidth(75)
|
|
button:SetPoint("BOTTOM", 0, 13)
|
|
button:SetNormalFontObject(GameFontNormal)
|
|
button:SetHighlightFontObject(GameFontHighlight)
|
|
button:SetNormalTexture(button:CreateTexture(nil, nil, "UIPanelButtonUpTexture"))
|
|
button:SetPushedTexture(button:CreateTexture(nil, nil, "UIPanelButtonDownTexture"))
|
|
button:SetHighlightTexture(button:CreateTexture(nil, nil, "UIPanelButtonHighlightTexture"))
|
|
button:SetText(OKAY)
|
|
button:SetScript("OnClick", function()
|
|
frame:Hide()
|
|
end)
|
|
end
|
|
|
|
local function setFrameWidth(extraWidth)
|
|
extraWidth = extraWidth or 0
|
|
frame:SetWidth(430 + extraWidth)
|
|
fontstringFooter:SetWidth(410 + extraWidth)
|
|
editBox:SetWidth(250 + extraWidth)
|
|
fontstring:SetWidth(400 + extraWidth)
|
|
end
|
|
|
|
function DBM:ShowUpdateReminder(newVersion, newRevision, text, url, extraWidth, textJustify)
|
|
urlText = url or "https://github.com/DeadlyBossMods/DeadlyBossMods/wiki"
|
|
if not frame then
|
|
CreateOurFrame()
|
|
end
|
|
setFrameWidth(extraWidth)
|
|
editBox:SetText(url or "https://github.com/DeadlyBossMods/DeadlyBossMods/wiki")
|
|
editBox:HighlightText()
|
|
editBox:SetFocus()
|
|
frame:Show()
|
|
if newVersion then
|
|
fontstring:SetText(L.UPDATEREMINDER_HEADER:format(newVersion, newRevision))
|
|
fontstringFooter:SetText(L.UPDATEREMINDER_FOOTER)
|
|
elseif text then
|
|
fontstring:SetText(text)
|
|
fontstringFooter:SetText(L.UPDATEREMINDER_FOOTER_GENERIC)
|
|
end
|
|
if textJustify == "LEFT" then
|
|
fontstring:SetPoint("TOP", 10, -16)
|
|
else
|
|
fontstring:SetPoint("TOP", 0, -16)
|
|
end
|
|
fontstring:SetJustifyH(textJustify or "CENTER")
|
|
frame:SetHeight(110 + fontstring:GetHeight())
|
|
end
|
|
|