Port XML templates to Lua, update AceGUI/AceConfig, fix $parent nil frame issues on our game version

This commit is contained in:
NoM0Re
2025-07-29 18:02:22 +02:00
committed by GitHub
parent dce683db43
commit 9d0cc562b9
48 changed files with 1235 additions and 1128 deletions
+2 -2
View File
@@ -24,7 +24,7 @@ do -- boilerplate & static values
Archivist.storeMap = {}
Archivist.activeStores = {}
namespace.Archivist = Archivist
local unloader = CreateFrame("FRAME")
local unloader = CreateFrame("Frame")
unloader:RegisterEvent("PLAYER_LOGOUT")
unloader:SetScript("OnEvent", function()
Archivist:DeInitialize()
@@ -33,7 +33,7 @@ do -- boilerplate & static values
-- Archivist is installed as a standalone addon.
-- The Archive is in the default location, ACHV_DB
_G.Archivist = Archivist
local loader = CreateFrame("frame")
local loader = CreateFrame("Frame")
loader:RegisterEvent("ADDON_LOADED")
loader:SetScript("OnEvent", function(self, _, addon)
if addon == addonName then
+6 -3
View File
@@ -13,7 +13,8 @@ profileData.auras = {}
local currentProfileState, ProfilingTimer
local RealTimeProfilingWindow = CreateFrame("Frame", "WeakAurasRealTimeProfiling", UIParent, "WA_PortraitFrameTemplate")
local RealTimeProfilingWindow = CreateFrame("Frame", "WeakAurasRealTimeProfiling", UIParent)
WeakAuras.XMLTemplates["PortraitFrameTemplate"](RealTimeProfilingWindow)
RealTimeProfilingWindow:HidePortrait(RealTimeProfilingWindow)
Private.frames["RealTime Profiling Window"] = RealTimeProfilingWindow
RealTimeProfilingWindow.width = 500
@@ -57,7 +58,8 @@ end
local profilePopup
local function CreateProfilePopup()
local frame = CreateFrame("Frame", "WeakAurasProfilingReport", UIParent, "WA_PortraitFrameTemplate")
local frame = CreateFrame("Frame", "WeakAurasProfilingReport", UIParent)
WeakAuras.XMLTemplates["PortraitFrameTemplate"](frame)
frame:HidePortrait(frame)
WeakAurasProfilingReportTitleText:SetText(L["WeakAuras Profiling Report"])
frame:SetMovable(true)
@@ -598,7 +600,8 @@ function RealTimeProfilingWindow:Init()
self.statsFrameText = statsFrameText
statsFrameText:SetPoint("BOTTOMLEFT", 15, 25)
local minimizeButton = CreateFrame("Button", nil, self, "WA_MaximizeMinimizeButtonFrameTemplate")
local minimizeButton = CreateFrame("Button", nil, self)
WeakAuras.XMLTemplates["MaximizeMinimizeButtonFrameTemplate"](minimizeButton)
minimizeButton:SetPoint("RIGHT", self.CloseButton, "LEFT")
minimizeButton:SetOnMaximizedCallback(function()
self.minimized = false
+458 -111
View File
@@ -1,129 +1,476 @@
if not WeakAuras.IsLibsOK() then return end
function WA_MaximizeMinimizeButtonFrame_Mixin(frame)
if frame and frame.init then return end
frame.init = true
frame.isMinimized = false
frame.maximizedCallback = nil
frame.minimizedCallback = nil
local methods = {
OnShow = function(self)
if self.isMinimized then
self:SetMaximizedLook()
else
self:SetMinimizedLook()
end
end,
IsMinimized = function(self)
return self.isMinimized
end,
SetOnMaximizedCallback = function(self, callback)
self.maximizedCallback = callback
end,
SetOnMinimizedCallback = function(self, callback)
self.minimizedCallback = callback
end,
Maximize = function(self, skipCallback)
if self.maximizedCallback and not skipCallback then
self:maximizedCallback()
end
self.isMinimized = false
self:SetMinimizedLook()
end,
Minimize = function(self, skipCallback)
if self.minimizedCallback and not skipCallback then
self:minimizedCallback()
end
self.isMinimized = true
self:SetMaximizedLook()
end,
SetMinimizedLook = function(self)
self.MaximizeButton:Hide()
self.MinimizeButton:Show()
end,
SetMaximizedLook = function(self)
self.MaximizeButton:Show()
self.MinimizeButton:Hide()
end,
}
for name, func in pairs(methods) do
frame[name] = func
end
end
function WA_PortraitFrameTemplate_Mixin(frame)
if frame and frame.init then return end
frame.init = true
frame.Bg:SetVertexColor(0.5882, 0.6275, 0.6706, 0.8) -- approx. PANEL_BACKGROUND_COLOR #ff1f1e21
frame.layoutType = "PortraitMode"
local methods = {
ShowPortrait = function(self)
self.PortraitContainer:Show();
self.NineSlice.TopLeftCorner:Show();
self.NineSlice.TopLeftCornerNoPortrait:Hide();
self.layoutType = "PortraitMode"
end,
HidePortrait = function(self)
self.PortraitContainer:Hide();
self.NineSlice.TopLeftCorner:Hide();
self.NineSlice.TopLeftCornerNoPortrait:Show();
self.layoutType = "NoPortraitMode"
end,
GetFrameLayoutType = function(self)
return self.layoutType or self:GetParent().layoutType;
end
}
for name, func in pairs(methods) do
frame[name] = func
end
end
local AddonName = ...
local Private = select(2, ...)
local function setCorner(corner, point, relativeTo, x, y, width, height)
corner:ClearAllPoints()
corner:SetPoint(point, relativeTo, x, y)
corner:SetSize(width, height)
corner:ClearAllPoints()
corner:SetPoint(point, relativeTo, x, y)
corner:SetSize(width, height)
end
local function setEdge(edge, point1, relativeTo1, point2, relativeTo2, width, height)
edge:ClearAllPoints()
edge:SetSize(width, height)
edge:SetPoint(point1, relativeTo1, point2, 0, 0)
edge:SetPoint(point2, relativeTo2, point1, 0, 0)
edge:ClearAllPoints()
edge:SetSize(width, height)
edge:SetPoint(point1, relativeTo1, point2, 0, 0)
edge:SetPoint(point2, relativeTo2, point1, 0, 0)
end
function WA_UpdateNineSliceBorders(frame)
local NineSlice = frame.NineSlice
if not NineSlice then return end
local PortaitMode = frame:GetFrameLayoutType() == "PortraitMode"
local function UpdateNineSliceBorders(frame)
local NineSlice = frame.NineSlice
local PortaitMode = frame:GetFrameLayoutType() == "PortraitMode"
local topLeftCorner = PortaitMode and NineSlice.TopLeftCorner or NineSlice.TopLeftCornerNoPortrait
local topEdgeRelativeTo = PortaitMode and NineSlice.TopLeftCorner or NineSlice.TopLeftCornerNoPortrait
local leftEdgeRelativeTo = PortaitMode and NineSlice.TopLeftCorner or NineSlice.TopLeftCornerNoPortrait
-- Top Left Corner
setCorner(topLeftCorner, "TOPLEFT", NineSlice, -13, 16, 75, 75)
-- Top Right Corner
setCorner(NineSlice.TopRightCorner, "TOPRIGHT", NineSlice, 4, 16, 75, 75)
-- Bottom Left Corner
setCorner(NineSlice.BottomLeftCorner, "BOTTOMLEFT", NineSlice, -13, -3, 32, 32)
-- Bottom Right Corner
setCorner(NineSlice.BottomRightCorner, "BOTTOMRIGHT", NineSlice, 4, -3, 32, 32)
-- Top Edge
setEdge(NineSlice.TopEdge, "TOPLEFT", topEdgeRelativeTo, "TOPRIGHT", NineSlice.TopRightCorner, 32, 75)
-- Bottom Edge
setEdge(NineSlice.BottomEdge, "BOTTOMLEFT", NineSlice.BottomLeftCorner, "BOTTOMRIGHT", NineSlice.BottomRightCorner, 32, 32)
-- Left Edge
setEdge(NineSlice.LeftEdge, "TOPLEFT", leftEdgeRelativeTo, "BOTTOMLEFT", NineSlice.BottomLeftCorner, 75, 8)
-- Right Edge
setEdge(NineSlice.RightEdge, "TOPLEFT", NineSlice.TopRightCorner, "BOTTOMLEFT", NineSlice.BottomRightCorner, 75, 8)
end
local topLeftCorner = PortaitMode and NineSlice.TopLeftCorner or NineSlice.TopLeftCornerNoPortrait
local topEdgeRelativeTo = PortaitMode and NineSlice.TopLeftCorner or NineSlice.TopLeftCornerNoPortrait
local leftEdgeRelativeTo = PortaitMode and NineSlice.TopLeftCorner or NineSlice.TopLeftCornerNoPortrait
local function InputBoxInstructions_OnTextChanged(self)
if self:GetText() == "" then
self.Instructions:Show();
else
self.Instructions:Hide();
end
end
local function InputBoxInstructions_UpdateColorForEnabledState(self, color)
if color then
self:SetTextColor(color.r, color.g, color.b, color.a);
end
end
local function InputBoxInstructions_OnDisable(self)
InputBoxInstructions_UpdateColorForEnabledState(self, self.disabledColor);
end
local function InputBoxInstructions_OnEnable(self)
InputBoxInstructions_UpdateColorForEnabledState(self, self.enabledColor);
end
local function SearchBoxTemplate_OnEditFocusLost(self)
if ( self:GetText() == "" ) then
self.searchIcon:SetVertexColor(0.6, 0.6, 0.6);
self.clearButton:Hide();
end
end
local function SearchBoxTemplate_OnEditFocusGained(self)
self.searchIcon:SetVertexColor(1.0, 1.0, 1.0);
self.clearButton:Show();
end
function WA_SearchBoxTemplate_OnTextChanged(self)
if ( not self:HasFocus() and self:GetText() == "" ) then
self.searchIcon:SetVertexColor(0.6, 0.6, 0.6);
self.clearButton:Hide();
else
self.searchIcon:SetVertexColor(1.0, 1.0, 1.0);
self.clearButton:Show();
end
InputBoxInstructions_OnTextChanged(self);
end
local function SearchBoxTemplate_ClearText(self)
self:SetText("");
self:ClearFocus();
end
local function SearchBoxTemplateClearButton_OnClick(self)
PlaySound("igMainMenuOptionCheckBoxOn");
SearchBoxTemplate_ClearText(self:GetParent());
end
local function GetParentName(frame)
return frame:GetName() or frame
end
WeakAuras.XMLTemplates = {
-- InputBoxTemplate (Retail 11.1.7 (61967))
["InputBoxTemplate"] = function(frame)
frame:EnableMouse(true)
-- Left Texture
local left = frame:CreateTexture(nil, "BACKGROUND")
left:SetTexture("Interface\\AddOns\\WeakAuras\\Media\\Textures\\CommonSearch")
left:SetSize(8, 20)
left:SetPoint("LEFT", frame, "LEFT", -5, 0)
left:SetTexCoord(0.886719, 0.949219, 0.335938, 0.648438)
frame.Left = left
-- Right Texture
local right = frame:CreateTexture(nil, "BACKGROUND")
right:SetTexture("Interface\\AddOns\\WeakAuras\\Media\\Textures\\CommonSearch")
right:SetSize(8, 20)
right:SetPoint("RIGHT", frame, "RIGHT", 0, 0)
right:SetTexCoord(0.00390625, 0.0664062, 0.664062, 0.976562)
frame.Right = right
-- Middle Texture (zwischen Left und Right)
local middle = frame:CreateTexture(nil, "BACKGROUND")
middle:SetTexture("Interface\\AddOns\\WeakAuras\\Media\\Textures\\CommonSearch")
middle:SetSize(10, 20)
middle:SetTexCoord(0.00390625, 0.878906, 0.335938, 0.648438)
middle:SetPoint("LEFT", left, "RIGHT")
middle:SetPoint("RIGHT", right, "LEFT")
frame.Middle = middle
-- FontString
local fontString = frame:CreateFontString(nil, "ARTWORK", "ChatFontNormal")
frame.FontString = fontString
-- Scripts
frame:SetScript("OnEscapePressed", function(self)
EditBox_ClearFocus(self)
end)
frame:SetScript("OnEditFocusLost", function(self)
EditBox_ClearHighlight(self)
end)
frame:SetScript("OnEditFocusGained", function(self)
EditBox_HighlightText(self)
end)
end,
-- InputBoxInstructionsTemplate (Retail 11.1.7 (61967))
["InputBoxInstructionsTemplate"] = function(frame)
WeakAuras.XMLTemplates["InputBoxTemplate"](frame) -- Inherits from InputBoxTemplate
--[[ Optional
frame.disabledColor = { r = 0.35, g = 0.35, b = 0.35, a = 1 }
frame.enabledColor = { r = 1, g = 1, b = 1, a = 1 }
]]
-- Instructions FontString
local instructions = frame:CreateFontString(nil, "ARTWORK", "GameFontDisableSmall")
instructions:SetJustifyH("LEFT")
instructions:SetJustifyV("MIDDLE")
instructions:SetAllPoints(frame)
instructions:SetTextColor(0.35, 0.35, 0.35)
frame.Instructions = instructions
-- Skripts
frame:SetScript("OnTextChanged", InputBoxInstructions_OnTextChanged)
frame:SetScript("OnDisable", InputBoxInstructions_OnDisable)
frame:SetScript("OnEnable", InputBoxInstructions_OnEnable)
-- FontObject
frame:SetFontObject("GameFontHighlightSmall")
end,
-- SearchBoxTemplate (Retail 11.1.7 (61967))
["SearchBoxTemplate"] = function(frame)
WeakAuras.XMLTemplates["InputBoxInstructionsTemplate"](frame) -- Inherits from InputBoxInstructionsTemplate
frame:SetAutoFocus(false)
frame:SetTextInsets(16, 20, 0, 0);
frame.instructionText = SEARCH
frame.Instructions:SetText(frame.instructionText);
frame.Instructions:ClearAllPoints();
frame.Instructions:SetPoint("TOPLEFT", frame, "TOPLEFT", 16, 0);
frame.Instructions:SetPoint("BOTTOMRIGHT", frame, "BOTTOMRIGHT", -20, 0);
-- Search-Icon
local searchIcon = frame:CreateTexture(GetParentName(frame) .. "SearchIcon", "OVERLAY")
searchIcon:SetTexture("Interface\\AddOns\\WeakAuras\\Media\\Textures\\CommonSearch")
searchIcon:SetSize(10, 10)
searchIcon:SetPoint("LEFT", 1, -1)
searchIcon:SetTexCoord(0.0742188, 0.167969, 0.664062, 0.851562)
searchIcon:SetVertexColor(0.6, 0.6, 0.6);
frame.searchIcon = searchIcon
-- Clear-Button
local clearButton = CreateFrame("Button", GetParentName(frame) .. "ClearButton", frame)
clearButton:SetSize(17, 17)
clearButton:SetPoint("RIGHT", -3, 0)
clearButton:Hide()
frame.clearButton = clearButton
local texture = clearButton:CreateTexture(nil, "ARTWORK")
texture:SetTexture("Interface\\AddOns\\WeakAuras\\Media\\Textures\\CommonSearch")
texture:SetAlpha(0.5)
texture:SetSize(10, 10)
texture:SetPoint("TOPLEFT", 3, -3)
texture:SetTexCoord(0.175781, 0.253906, 0.664062, 0.820312)
clearButton.texture = texture
-- Clear-Button Scripts
clearButton:SetScript("OnEnter", function(self)
self.texture:SetAlpha(1.0)
end)
clearButton:SetScript("OnLeave", function(self)
self.texture:SetAlpha(0.5)
end)
clearButton:SetScript("OnMouseDown", function(self)
if self:IsEnabled() then
self.texture:SetPoint("TOPLEFT", self, "TOPLEFT", 4, -4)
end
end)
clearButton:SetScript("OnMouseUp", function(self)
self.texture:SetPoint("TOPLEFT", self, "TOPLEFT", 3, -3)
end)
clearButton:SetScript("OnClick", SearchBoxTemplateClearButton_OnClick)
-- EditBox Scripts
frame:SetScript("OnEscapePressed", EditBox_ClearFocus)
frame:SetScript("OnEnterPressed", EditBox_ClearFocus)
frame:SetScript("OnEditFocusLost", SearchBoxTemplate_OnEditFocusLost)
frame:SetScript("OnEditFocusGained", SearchBoxTemplate_OnEditFocusGained)
frame:SetScript("OnTextChanged", WA_SearchBoxTemplate_OnTextChanged)
end,
-- PortraitFrameTemplate (Retail 11.1.7 (61967))
-- This is an empty frame with space for a portrait/icon in the top left corner.
["PortraitFrameTemplate"] = function(frame)
frame:SetSize(338, 424)
-- NineSlice Borders
local nineSlice = CreateFrame("Frame", nil, frame)
nineSlice:SetAllPoints(frame)
nineSlice:SetFrameLevel(125)
frame.NineSlice = nineSlice
-- Top Left Corner
setCorner(topLeftCorner, "TOPLEFT", NineSlice, -13, 16, 75, 75)
local topLeftCorner = nineSlice:CreateTexture(nil, "OVERLAY")
topLeftCorner:SetTexture("Interface\\AddOns\\WeakAuras\\Media\\Textures\\UIFrameMetal2x")
topLeftCorner:SetSize(75, 75)
topLeftCorner:SetPoint("TOPLEFT", frame, "TOPLEFT", -13, 16)
topLeftCorner:SetTexCoord(0.00195312, 0.294922, 0.298828, 0.591797)
nineSlice.TopLeftCorner = topLeftCorner
-- Top Left Corner No Portrait
local topLeftCornerNoPortrait = nineSlice:CreateTexture(nil, "OVERLAY")
topLeftCornerNoPortrait:SetTexture("Interface\\AddOns\\WeakAuras\\Media\\Textures\\UIFrameMetal2x")
topLeftCornerNoPortrait:SetSize(75, 75)
topLeftCornerNoPortrait:SetPoint("TOPLEFT", frame, "TOPLEFT", -8, 16)
topLeftCornerNoPortrait:SetTexCoord(0.00195312, 0.294922, 0.00195312, 0.294922)
topLeftCornerNoPortrait:Hide()
nineSlice.TopLeftCornerNoPortrait = topLeftCornerNoPortrait
-- Top Right Corner
setCorner(NineSlice.TopRightCorner, "TOPRIGHT", NineSlice, 4, 16, 75, 75)
local topRightCorner = nineSlice:CreateTexture(nil, "OVERLAY")
topRightCorner:SetTexture("Interface\\AddOns\\WeakAuras\\Media\\Textures\\UIFrameMetal2x")
topRightCorner:SetSize(75, 75)
topRightCorner:SetPoint("TOPRIGHT", frame, "TOPRIGHT", 4, 16)
topRightCorner:SetTexCoord(0.298828, 0.591797, 0.00195312, 0.294922)
nineSlice.TopRightCorner = topRightCorner
-- Bottom Left Corner
setCorner(NineSlice.BottomLeftCorner, "BOTTOMLEFT", NineSlice, -13, -3, 32, 32)
local bottomLeftCorner = nineSlice:CreateTexture(nil, "OVERLAY")
bottomLeftCorner:SetTexture("Interface\\AddOns\\WeakAuras\\Media\\Textures\\UIFrameMetal2x")
bottomLeftCorner:SetSize(32, 32)
bottomLeftCorner:SetPoint("BOTTOMLEFT", frame, "BOTTOMLEFT", -13, -3)
bottomLeftCorner:SetTexCoord(0.298828, 0.423828, 0.298828, 0.423828)
nineSlice.BottomLeftCorner = bottomLeftCorner
-- Bottom Right Corner
setCorner(NineSlice.BottomRightCorner, "BOTTOMRIGHT", NineSlice, 4, -3, 32, 32)
local bottomRightCorner = nineSlice:CreateTexture(nil, "OVERLAY")
bottomRightCorner:SetTexture("Interface\\AddOns\\WeakAuras\\Media\\Textures\\UIFrameMetal2x")
bottomRightCorner:SetSize(32, 32)
bottomRightCorner:SetPoint("BOTTOMRIGHT", frame, "BOTTOMRIGHT", 4, -3)
bottomRightCorner:SetTexCoord(0.427734, 0.552734, 0.298828, 0.423828)
nineSlice.BottomRightCorner = bottomRightCorner
-- Top Edge
setEdge(NineSlice.TopEdge, "TOPLEFT", topEdgeRelativeTo, "TOPRIGHT", NineSlice.TopRightCorner, 32, 75)
local topEdge = nineSlice:CreateTexture(nil, "OVERLAY")
topEdge:SetTexture("Interface\\AddOns\\WeakAuras\\Media\\Textures\\UIFrameMetalHorizontal2x")
topEdge:SetSize(32, 75)
topEdge:SetPoint("TOPLEFT", topLeftCorner, "TOPRIGHT", 0, 0)
topEdge:SetPoint("TOPRIGHT", topRightCorner, "TOPLEFT", 0, 0)
topEdge:SetHorizTile(true)
topEdge:SetTexCoord(0.0, 1.0, 0.00390625, 0.589844)
nineSlice.TopEdge = topEdge
-- Bottom Edge
setEdge(NineSlice.BottomEdge, "BOTTOMLEFT", NineSlice.BottomLeftCorner, "BOTTOMRIGHT", NineSlice.BottomRightCorner, 32, 32)
local bottomEdge = nineSlice:CreateTexture(nil, "OVERLAY")
bottomEdge:SetTexture("Interface\\AddOns\\WeakAuras\\Media\\Textures\\UIFrameMetalHorizontal2x")
bottomEdge:SetSize(32, 32)
bottomEdge:SetPoint("BOTTOMLEFT", bottomLeftCorner, "BOTTOMRIGHT", 0, 0)
bottomEdge:SetPoint("BOTTOMRIGHT", bottomRightCorner, "BOTTOMLEFT", 0, 0)
bottomEdge:SetHorizTile(true)
bottomEdge:SetTexCoord(0.0, 0.5, 0.597656, 0.847656)
nineSlice.BottomEdge = bottomEdge
-- Left Edge
setEdge(NineSlice.LeftEdge, "TOPLEFT", leftEdgeRelativeTo, "BOTTOMLEFT", NineSlice.BottomLeftCorner, 75, 8)
local leftEdge = nineSlice:CreateTexture(nil, "OVERLAY")
leftEdge:SetTexture("Interface\\AddOns\\WeakAuras\\Media\\Textures\\UIFrameMetalVertical2x")
leftEdge:SetSize(75, 8)
leftEdge:SetPoint("TOPLEFT", topLeftCorner, "BOTTOMLEFT", 0, 0)
leftEdge:SetPoint("BOTTOMLEFT", bottomLeftCorner, "TOPLEFT", 0, 0)
leftEdge:SetVertTile(true)
leftEdge:SetTexCoord(0.00195312, 0.294922, 0.0, 1.0)
nineSlice.LeftEdge = leftEdge
-- Right Edge
setEdge(NineSlice.RightEdge, "TOPLEFT", NineSlice.TopRightCorner, "BOTTOMLEFT", NineSlice.BottomRightCorner, 75, 8)
end
local rightEdge = nineSlice:CreateTexture(nil, "OVERLAY")
rightEdge:SetTexture("Interface\\AddOns\\WeakAuras\\Media\\Textures\\UIFrameMetalVertical2x")
rightEdge:SetSize(75, 8)
rightEdge:SetPoint("TOPLEFT", topRightCorner, "BOTTOMLEFT", 0, 0)
rightEdge:SetPoint("BOTTOMLEFT", bottomRightCorner, "TOPLEFT", 0, 0)
rightEdge:SetVertTile(true)
rightEdge:SetTexCoord(0.298828, 0.591797, 0.0, 1.0)
nineSlice.RightEdge = rightEdge
-- Portrait Container
local portraitContainer = CreateFrame("Frame", nil, frame)
portraitContainer:SetSize(1, 1)
portraitContainer:SetPoint("TOPLEFT")
portraitContainer:SetFrameLevel(120)
frame.PortraitContainer = portraitContainer
-- Portrait
local portrait = portraitContainer:CreateTexture(nil, "ARTWORK")
portrait:SetSize(62, 62)
portrait:SetPoint("TOPLEFT", portraitContainer, "TOPLEFT", -5, 7)
portraitContainer.portrait = portrait
-- Title Container
local titleContainer = CreateFrame("Frame", nil, frame)
titleContainer:SetSize(0, 20)
titleContainer:SetPoint("TOPLEFT", frame, "TOPLEFT", 58, -1)
titleContainer:SetPoint("TOPRIGHT", frame, "TOPRIGHT", -24, -1)
titleContainer:SetFrameLevel(126)
frame.TitleContainer = titleContainer
-- Title Text
local titleText = titleContainer:CreateFontString(GetParentName(frame) .. "TitleText", "OVERLAY", "GameFontNormal")
titleText:SetText("")
titleText:SetWordWrap(false)
titleText:SetPoint("TOP", titleContainer, "TOP", 0, -5)
titleText:SetPoint("LEFT", titleContainer, "LEFT")
titleText:SetPoint("RIGHT", titleContainer, "RIGHT")
titleContainer.TitleText = titleText
-- Close Button
local closeButton = CreateFrame("Button", nil, frame, "UIPanelCloseButton")
closeButton:SetSize(24, 24)
closeButton:SetPoint("TOPRIGHT", frame, "TOPRIGHT", 0, 0)
closeButton:SetFrameLevel(128)
frame.CloseButton = closeButton
closeButton:SetNormalTexture("Interface\\AddOns\\WeakAuras\\Media\\Textures\\redbutton2x")
closeButton:GetNormalTexture():SetTexCoord(0.152344, 0.292969, 0.0078125, 0.304688)
closeButton:SetPushedTexture("Interface\\AddOns\\WeakAuras\\Media\\Textures\\redbutton2x")
closeButton:GetPushedTexture():SetTexCoord(0.152344, 0.292969, 0.320312, 0.617188)
closeButton:SetDisabledTexture("Interface\\AddOns\\WeakAuras\\Media\\Textures\\redbutton2x")
closeButton:GetDisabledTexture():SetTexCoord(0.152344, 0.292969, 0.632812, 0.929688)
closeButton:SetHighlightTexture("Interface\\AddOns\\WeakAuras\\Media\\Textures\\redbutton2x", "ADD")
closeButton:GetHighlightTexture():SetTexCoord(0.449219, 0.589844, 0.0078125, 0.304688)
-- Background
local bgTexture = frame:CreateTexture(nil, "BACKGROUND")
bgTexture:SetTexture("Interface\\AddOns\\WeakAuras\\Media\\Textures\\UI-Background-Rock")
bgTexture:SetHorizTile(true)
bgTexture:SetVertTile(true)
bgTexture:SetPoint("TOPLEFT", frame, "TOPLEFT", 2, -21)
bgTexture:SetPoint("BOTTOMRIGHT", frame, "BOTTOMRIGHT", -2, 2)
frame.Bg = bgTexture
-- Border
local topTileStreaks = frame:CreateTexture(nil, "BORDER")
topTileStreaks:SetTexture("Interface\\AddOns\\WeakAuras\\Media\\Textures\\UIFrameHorizontal")
topTileStreaks:SetSize(256, 43)
topTileStreaks:SetPoint("TOPLEFT", frame, "TOPLEFT", 6, -21)
topTileStreaks:SetPoint("TOPRIGHT", frame, "TOPRIGHT", -2, -21)
topTileStreaks:SetHorizTile(true)
topTileStreaks:SetTexCoord(0.0, 1.0, 0.0078125, 0.34375)
frame.TopTileStreaks = topTileStreaks
-- Mixin
frame.Bg:SetVertexColor(0.5882, 0.6275, 0.6706, 0.8) -- approx. PANEL_BACKGROUND_COLOR #ff1f1e21
frame.layoutType = "PortraitMode"
frame.ShowPortrait = function(self)
self.PortraitContainer:Show();
self.NineSlice.TopLeftCorner:Show();
self.NineSlice.TopLeftCornerNoPortrait:Hide();
self.layoutType = "PortraitMode"
end
frame.HidePortrait = function(self)
self.PortraitContainer:Hide();
self.NineSlice.TopLeftCorner:Hide();
self.NineSlice.TopLeftCornerNoPortrait:Show();
self.layoutType = "NoPortraitMode"
end
frame.GetFrameLayoutType = function(self)
return self.layoutType or self:GetParent().layoutType;
end
-- update NineSlice Borders on SizeChanged, since they like to be scuffed when the frame is resized
frame:SetScript("OnSizeChanged", function(self)
UpdateNineSliceBorders(self);
end)
end,
-- MaximizeMinimizeButtonFrameTemplate (Retail 11.1.7 (61967))
["MaximizeMinimizeButtonFrameTemplate"] = function(frame)
frame:SetSize(24, 24)
frame:SetFrameLevel(127)
-- Maximize Button
local maximizeButton = CreateFrame("Button", "MaximizeButton", frame)
maximizeButton:SetAllPoints(frame)
maximizeButton:Hide()
frame.MaximizeButton = maximizeButton
maximizeButton:SetNormalTexture("Interface\\AddOns\\WeakAuras\\Media\\Textures\\redbutton2x")
maximizeButton:GetNormalTexture():SetTexCoord(0.300781, 0.441406, 0.0078125, 0.304688)
maximizeButton:SetPushedTexture("Interface\\AddOns\\WeakAuras\\Media\\Textures\\redbutton2x")
maximizeButton:GetPushedTexture():SetTexCoord(0.300781, 0.441406, 0.320312, 0.617188)
maximizeButton:SetDisabledTexture("Interface\\AddOns\\WeakAuras\\Media\\Textures\\redbutton2x")
maximizeButton:GetDisabledTexture():SetTexCoord(0.300781, 0.441406, 0.632812, 0.929688)
maximizeButton:SetHighlightTexture("Interface\\AddOns\\WeakAuras\\Media\\Textures\\redbutton2x", "ADD")
maximizeButton:GetHighlightTexture():SetTexCoord(0.449219, 0.589844, 0.0078125, 0.304688)
-- Minimize Button
local minimizeButton = CreateFrame("Button", "MinimizeButton", frame)
minimizeButton:SetAllPoints(frame)
frame.MinimizeButton = minimizeButton
minimizeButton:SetNormalTexture("Interface\\AddOns\\WeakAuras\\Media\\Textures\\redbutton2x")
minimizeButton:GetNormalTexture():SetTexCoord(0.00390625, 0.144531, 0.0078125, 0.304688)
minimizeButton:SetPushedTexture("Interface\\AddOns\\WeakAuras\\Media\\Textures\\redbutton2x")
minimizeButton:GetPushedTexture():SetTexCoord(0.00390625, 0.144531, 0.320312, 0.617188)
minimizeButton:SetDisabledTexture("Interface\\AddOns\\WeakAuras\\Media\\Textures\\redbutton2x")
minimizeButton:GetDisabledTexture():SetTexCoord(0.00390625, 0.144531, 0.632812, 0.929688)
minimizeButton:SetHighlightTexture("Interface\\AddOns\\WeakAuras\\Media\\Textures\\redbutton2x", "ADD")
minimizeButton:GetHighlightTexture():SetTexCoord(0.449219, 0.589844, 0.0078125, 0.304688)
-- Mixin
frame.isMinimized = false
frame.OnShow = function(self)
if self.isMinimized then
self:SetMaximizedLook()
else
self:SetMinimizedLook()
end
end
frame.IsMinimized = function(self)
return self.isMinimized
end
frame.SetOnMaximizedCallback = function(self, callback)
self.maximizedCallback = callback
end
frame.SetOnMinimizedCallback = function(self, callback)
self.minimizedCallback = callback
end
frame.Maximize = function(self, skipCallback)
if self.maximizedCallback and not skipCallback then
self:maximizedCallback()
end
self.isMinimized = false
self:SetMinimizedLook()
end
frame.Minimize = function(self, skipCallback)
if self.minimizedCallback and not skipCallback then
self:minimizedCallback()
end
self.isMinimized = true
self:SetMaximizedLook()
end
frame.SetMinimizedLook = function(self)
self.MaximizeButton:Hide()
self.MinimizeButton:Show()
end
frame.SetMaximizedLook = function(self)
self.MaximizeButton:Show()
self.MinimizeButton:Hide()
end
frame:SetScript("OnShow", function(self)
self:OnShow();
end)
maximizeButton:SetScript("OnClick", function(self)
self:GetParent():Maximize();
PlaySound("igMainMenuOptionCheckBoxOn");
end)
minimizeButton:SetScript("OnClick", function(self)
self:GetParent():Minimize();
PlaySound("igMainMenuOptionCheckBoxOn");
end)
end,
}
-342
View File
@@ -1,342 +0,0 @@
<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/
..\FrameXML\UI.xsd">
<!--
*******************************************************************************
PortraitFrameTemplate (Retail 11.0.5 (57171))
This is an empty frame with space for a portrait/icon in the top left corner.
*******************************************************************************
-->
<Frame name="WA_PortraitFrameTemplate" virtual="true" frameLevel="1">
<Size x="338" y="424"/>
<Frames>
<!-- NineSlice Borders -->
<Frame name="$parentNineSlice" parentKey="NineSlice" setAllPoints="true" frameLevel="3">
<Layers>
<Layer level="OVERLAY">
<!-- Top Left Corner -->
<Texture name="$parentTopLeftCorner" file="Interface\AddOns\WeakAuras\Media\Textures\UIFrameMetal2x" parentKey="TopLeftCorner">
<Size x="75" y="75"/>
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="-13" y="16"/>
</Offset>
</Anchor>
</Anchors>
<TexCoords left="0.00195312" right="0.294922" top="0.298828" bottom="0.591797"/>
</Texture>
<Texture name="$parentTopLeftCornerNoPortrait" file="Interface\AddOns\WeakAuras\Media\Textures\UIFrameMetal2x" parentKey="TopLeftCornerNoPortrait" hidden="true">
<Size x="75" y="75"/>
<Anchors>
<Anchor point="TOPLEFT">
<Offset>
<AbsDimension x="-8" y="16"/>
</Offset>
</Anchor>
</Anchors>
<TexCoords left="0.00195312" right="0.294922" top="0.00195312" bottom="0.294922"/>
</Texture>
<!-- Top Right Corner -->
<Texture name="$parentTopRightCorner" file="Interface\AddOns\WeakAuras\Media\Textures\UIFrameMetal2x" parentKey="TopRightCorner">
<Size x="75" y="75"/>
<Anchors>
<Anchor point="TOPRIGHT">
<Offset>
<AbsDimension x="4" y="16"/>
</Offset>
</Anchor>
</Anchors>
<TexCoords left="0.298828" right="0.591797" top="0.00195312" bottom="0.294922"/>
</Texture>
<!-- Bottom Left Corner -->
<Texture name="$parentBottomLeftCorner" file="Interface\AddOns\WeakAuras\Media\Textures\UIFrameMetal2x" parentKey="BottomLeftCorner">
<Size x="32" y="32"/>
<Anchors>
<Anchor point="BOTTOMLEFT">
<Offset>
<AbsDimension x="-13" y="-3"/>
</Offset>
</Anchor>
</Anchors>
<TexCoords left="0.298828" right="0.423828" top="0.298828" bottom="0.423828"/>
</Texture>
<!-- Bottom Right Corner -->
<Texture name="$parentBottomRightCorner" file="Interface\AddOns\WeakAuras\Media\Textures\UIFrameMetal2x" parentKey="BottomRightCorner">
<Size x="32" y="32"/>
<Anchors>
<Anchor point="BOTTOMRIGHT">
<Offset>
<AbsDimension x="4" y="-3"/>
</Offset>
</Anchor>
</Anchors>
<TexCoords left="0.427734" right="0.552734" top="0.298828" bottom="0.423828"/>
</Texture>
<!-- Top Edge -->
<Texture name="$parentTopEdge" file="Interface\AddOns\WeakAuras\Media\Textures\UIFrameMetalHorizontal2x" parentKey="TopEdge" horizTile="true">
<Size x="32" y="75"/>
<Anchors>
<Anchor point="TOPLEFT" relativeTo="$parentTopLeftCorner" relativePoint="TOPRIGHT">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
<Anchor point="TOPRIGHT" relativeTo="$parentTopRightCorner" relativePoint="TOPLEFT">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
</Anchors>
<TexCoords left="0.00000000" right="1.00000000" top="0.00390625" bottom="0.589844"/>
</Texture>
<!-- Bottom Edge -->
<Texture name="$parentBottomEdge" file="Interface\AddOns\WeakAuras\Media\Textures\UIFrameMetalHorizontal2x" parentKey="BottomEdge" horizTile="true">
<Size x="32" y="32"/>
<Anchors>
<Anchor point="BOTTOMLEFT" relativeTo="$parentBottomLeftCorner" relativePoint="BOTTOMRIGHT">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
<Anchor point="BOTTOMRIGHT" relativeTo="$parentBottomRightCorner" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
</Anchors>
<TexCoords left="0.00000000" right="0.50000000" top="0.597656" bottom="0.847656"/>
</Texture>
<!-- Left Edge -->
<Texture name="$parentLeftEdge" file="Interface\AddOns\WeakAuras\Media\Textures\UIFrameMetalVertical2x" parentKey="LeftEdge" vertTile="true">
<Size x="75" y="8"/>
<Anchors>
<Anchor point="TOPLEFT" relativeTo="$parentTopLeftCorner" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
<Anchor point="BOTTOMLEFT" relativeTo="$parentBottomLeftCorner" relativePoint="TOPLEFT">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
</Anchors>
<TexCoords left="0.00195312" right="0.294922" top="0" bottom="1"/>
</Texture>
<!-- Right Edge -->
<Texture name="$parentRightEdge" file="Interface\AddOns\WeakAuras\Media\Textures\UIFrameMetalVertical2x" parentKey="RightEdge" vertTile="true">
<Size x="75" y="8"/>
<Anchors>
<Anchor point="TOPLEFT" relativeTo="$parentTopRightCorner" relativePoint="BOTTOMLEFT">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
<Anchor point="BOTTOMLEFT" relativeTo="$parentBottomRightCorner" relativePoint="TOPLEFT">
<Offset>
<AbsDimension x="0" y="0"/>
</Offset>
</Anchor>
</Anchors>
<TexCoords left="0.298828" right="0.591797" top="0" bottom="1"/>
</Texture>
</Layer>
</Layers>
</Frame>
<!-- Portrait Container -->
<Frame parentKey="PortraitContainer" frameLevel="3">
<Size x="1" y="1"/>
<Anchors>
<Anchor point="TOPLEFT"/>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<!-- Portrait -->
<Texture name="$parentPortrait" parentKey="portrait">
<Size x="62" y="62"/>
<Anchors>
<Anchor point="TOPLEFT" x="-5" y="7"/>
</Anchors>
</Texture>
</Layer>
</Layers>
</Frame>
<!-- Title Container -->
<Frame parentKey="TitleContainer" frameLevel="4">
<Size x="0" y="20"/>
<Anchors>
<Anchor point="TOPLEFT" x="58" y="-1"/>
<Anchor point="TOPRIGHT" x="-24" y="-1"/>
</Anchors>
<Layers>
<Layer level="OVERLAY">
<FontString name="$parentTitleText" inherits="GameFontNormal" text="" parentKey="TitleText" wordwrap="false">
<Anchors>
<Anchor point="TOP" x="0" y="-5"/>
<Anchor point="LEFT"/>
<Anchor point="RIGHT"/>
</Anchors>
</FontString>
</Layer>
</Layers>
</Frame>
<!-- Close Button -->
<Button parentKey="CloseButton" inherits="UIPanelCloseButton" frameLevel="4">
<Size x="24" y="24"/>
<Anchors>
<Anchor point="TOPRIGHT" x="0" y="0"/>
</Anchors>
<NormalTexture file="Interface\AddOns\WeakAuras\Media\Textures\redbutton2x">
<TexCoords left="0.152344" right="0.292969" top="0.0078125" bottom="0.304688"/>
</NormalTexture>
<PushedTexture file="Interface\AddOns\WeakAuras\Media\Textures\redbutton2x">
<TexCoords left="0.152344" right="0.292969" top="0.320312" bottom="0.617188"/>
</PushedTexture>
<DisabledTexture file="Interface\AddOns\WeakAuras\Media\Textures\redbutton2x">
<TexCoords left="0.152344" right="0.292969" top="0.632812" bottom="0.929688"/>
</DisabledTexture>
<HighlightTexture file="Interface\AddOns\WeakAuras\Media\Textures\redbutton2x" alphaMode="ADD">
<TexCoords left="0.449219" right="0.589844" top="0.0078125" bottom="0.304688"/>
</HighlightTexture>
</Button>
</Frames>
<Layers>
<Layer level="BACKGROUND">
<Texture parentKey="Bg" file="Interface\AddOns\WeakAuras\Media\Textures\UI-Background-Rock" horizTile="true" vertTile="true">
<Anchors>
<Anchor point="TOPLEFT" x="2" y="-21"/>
<Anchor point="BOTTOMRIGHT" x="-2" y="2"/>
</Anchors>
</Texture>
</Layer>
<Layer level="BORDER">
<Texture parentKey="TopTileStreaks" file="Interface\AddOns\WeakAuras\Media\Textures\UIFrameHorizontal" horizTile="true">
<Size x="256" y="43"/>
<Anchors>
<Anchor point="TOPLEFT" x="6" y="-21"/>
<Anchor point="TOPRIGHT" x="-2" y="-21"/>
</Anchors>
<TexCoords left="0.00000000" right="1.00000000" top="0.0078125" bottom="0.34375"/>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnLoad>
WA_PortraitFrameTemplate_Mixin(self);
</OnLoad>
<OnSizeChanged>
WA_UpdateNineSliceBorders(self);
</OnSizeChanged>
</Scripts>
</Frame>
<!--
*******************************************************************************
MaximizeMinimizeButtonFrameTemplate (Retail 11.0.5 (57171))
Maximize and Minimize Button with mixedin Callbacks.
*******************************************************************************
-->
<Frame name="WA_MaximizeMinimizeButtonFrameTemplate" virtual="true" frameLevel="4">
<Size x="24" y="24"/>
<Frames>
<Button name="MaximizeButton" parentKey="MaximizeButton" setAllPoints="true" hidden="true">
<Scripts>
<OnClick>
self:GetParent():Maximize();
PlaySound("igMainMenuOptionCheckBoxOn");
</OnClick>
</Scripts>
<NormalTexture file="Interface\AddOns\WeakAuras\Media\Textures\redbutton2x">
<TexCoords left="0.300781" right="0.441406" top="0.0078125" bottom="0.304688"/>
</NormalTexture>
<PushedTexture file="Interface\AddOns\WeakAuras\Media\Textures\redbutton2x">
<TexCoords left="0.300781" right="0.441406" top="0.320312" bottom="0.617188"/>
</PushedTexture>
<DisabledTexture file="Interface\AddOns\WeakAuras\Media\Textures\redbutton2x">
<TexCoords left="0.300781" right="0.441406" top="0.632812" bottom="0.929688"/>
</DisabledTexture>
<HighlightTexture file="Interface\AddOns\WeakAuras\Media\Textures\redbutton2x" alphaMode="ADD">
<TexCoords left="0.449219" right="0.589844" top="0.0078125" bottom="0.304688"/>
</HighlightTexture>
</Button>
<Button name="$parentMinimizeButton" parentKey="MinimizeButton" setAllPoints="true">
<Scripts>
<OnClick>
self:GetParent():Minimize();
PlaySound("igMainMenuOptionCheckBoxOn");
</OnClick>
</Scripts>
<NormalTexture file="Interface\AddOns\WeakAuras\Media\Textures\redbutton2x">
<TexCoords left="0.00390625" right="0.144531" top="0.0078125" bottom="0.304688"/>
</NormalTexture>
<PushedTexture file="Interface\AddOns\WeakAuras\Media\Textures\redbutton2x">
<TexCoords left="0.00390625" right="0.144531" top="0.320312" bottom="0.617188"/>
</PushedTexture>
<DisabledTexture file="Interface\AddOns\WeakAuras\Media\Textures\redbutton2x">
<TexCoords left="0.00390625" right="0.144531" top="0.632812" bottom="0.929688"/>
</DisabledTexture>
<HighlightTexture file="Interface\AddOns\WeakAuras\Media\Textures\redbutton2x" alphaMode="ADD">
<TexCoords left="0.449219" right="0.589844" top="0.0078125" bottom="0.304688"/>
</HighlightTexture>
</Button>
</Frames>
<Scripts>
<OnLoad>
WA_MaximizeMinimizeButtonFrame_Mixin(self);
</OnLoad>
<OnShow>
self:OnShow();
</OnShow>
</Scripts>
</Frame>
<!--
*******************************************************************************
InputBoxTemplate (Retail 11.0.5 (57171))
*******************************************************************************
-->
<EditBox name="WA_InputBoxTemplate" enableMouse="true" virtual="true">
<Layers>
<Layer level="BACKGROUND">
<Texture name="$parentLeft" parentKey="Left" file="Interface\AddOns\WeakAuras\Media\Textures\CommonSearch">
<Size x="8" y="20"/>
<Anchors>
<Anchor point="LEFT" x="-5" y="0"/>
</Anchors>
<TexCoords left="0.886719" right="0.949219" top="0.335938" bottom="0.648438"/>
</Texture>
<Texture name="$parentRight" parentKey="Right" file="Interface\AddOns\WeakAuras\Media\Textures\CommonSearch">
<Size x="8" y="20"/>
<Anchors>
<Anchor point="RIGHT" x="0" y="0"/>
</Anchors>
<TexCoords left="0.00390625" right="0.0664062" top="0.664062" bottom="0.976562"/>
</Texture>
<Texture name="$parentMiddle" parentKey="Middle" file="Interface\AddOns\WeakAuras\Media\Textures\CommonSearch">
<Size x="10" y="20"/>
<Anchors>
<Anchor point="LEFT" relativeTo="$parentLeft" relativePoint="RIGHT"/>
<Anchor point="RIGHT" relativeTo="$parentRight" relativePoint="LEFT"/>
</Anchors>
<TexCoords left="0.00390625" right="0.878906" top="0.335938" bottom="0.648438"/>
</Texture>
</Layer>
</Layers>
<Scripts>
<OnEscapePressed>
EditBox_ClearFocus(self);
</OnEscapePressed>
<OnEditFocusLost>
EditBox_ClearHighlight(self);
</OnEditFocusLost>
<OnEditFocusGained>
EditBox_HighlightText(self);
</OnEditFocusGained>
</Scripts>
<FontString inherits="ChatFontNormal"/>
</EditBox>
</Ui>
+1 -2
View File
@@ -21,14 +21,13 @@
## SavedVariables: WeakAurasSaved
## OptionalDeps: Ace3, LibCompress, LibSharedMedia-3.0, AceGUI-3.0-SharedMediaWidgets, Masque, GTFO, LibButtonGlow-1.0, LibSpellRange-1.0, LibRangeCheck-2.0, LibDBIcon-1.0, LibGetFrame-1.0, LibGroupTalents, !!AddonLocale, CustomNames, BigWigs, DBM-Core
Templates.lua
Templates.xml
Compatibility.lua
Pools.lua
# External code + initialization
embeds.xml
Init.lua
Templates.lua
locales.xml
TimeUtil.lua
ArchiveTypes\Repository.lua