Change all use of heroclass to use RAID_CLASS_COLORS instead. This can be changed to CUSTOM_CLASS_COLORS later with a color picker for each class, but to support CoA classes need to go back to being colored properly.

Fix remaining lua errors covered by ascension patches

Add Addon Skins
Add Enhanced Friends List
This commit is contained in:
Andrew6810
2022-10-28 07:12:13 -07:00
parent 60ef8a38af
commit df7cc26a64
205 changed files with 18480 additions and 35 deletions
@@ -0,0 +1,445 @@
local E, L, V, P, G = unpack(ElvUI)
local S = E:GetModule("Skins")
local AS = E:GetModule("AddOnSkins")
if not AS:IsAddonLODorEnabled("QuestGuru_Tracker") then return end
-- QuestGuru_Tracker 1.4.4
S:AddCallbackForAddon("QuestGuru_Tracker", "QuestGuru_Tracker", function()
if not E.private.addOnSkins.QuestGuru_Tracker then return end
E:GetModule("Tooltip"):SetStyle(QGT_QuestWatchFrameTooltip)
QGT_QuestWatchFrameTooltip.SetBackdropColor = E.noop
QGT_QuestWatchFrameTooltip.SetBackdropBorderColor = E.noop
QGT_QuestWatchFrame:SetBackdrop(nil)
QGT_QuestWatchFrame:CreateBackdrop(QGT_Settings.ShowBorder and "Transparent" or "NoBackdrop")
QGT_QuestWatchFrame:SetHitRectInsets(0, 0, 0, 0)
QGT_QuestWatchFrameBackground:Hide()
QGT_AchievementWatchFrame:SetBackdrop(nil)
QGT_AchievementWatchFrame:CreateBackdrop(QGT_Settings.ShowBorder and "Transparent" or "NoBackdrop")
QGT_AchievementWatchFrame:SetHitRectInsets(0, 0, 0, 0)
QGT_AchievementWatchFrameBackground:Hide()
S:HandleButton(QGT_QuestWatchFrameToggle)
S:HandleButton(QGT_QuestWatchFrameMinimize)
S:HandleButton(QGT_QuestWatchFrameOptions)
S:HandleButton(QGT_AchievementWatchFrameToggle)
S:HandleButton(QGT_AchievementWatchFrameMinimize)
S:HandleButton(QGT_AchievementWatchFrameOptions)
QGT_QuestWatchFrameMinimize:Point("RIGHT", QGT_QuestWatchFrameOptions, "LEFT", -1, 0)
QGT_QuestWatchFrameToggle:Point("RIGHT", QGT_QuestWatchFrameMinimize, "LEFT", -2, 0)
QGT_AchievementWatchFrameMinimize:Point("RIGHT", QGT_AchievementWatchFrameOptions, "LEFT", -1, 0)
QGT_AchievementWatchFrameToggle:Point("RIGHT", QGT_AchievementWatchFrameMinimize, "LEFT", -2, 0)
local _SetPoint = QGT_QuestWatchFrameSlider.SetPoint
local function sliderSetPoint(self, point)
if point == "TOPLEFT" then
_SetPoint(self, "TOPLEFT", -12, -17)
else
_SetPoint(self, "TOPRIGHT", 12, -17)
end
end
S:HandleSliderFrame(QGT_QuestWatchFrameSlider)
QGT_QuestWatchFrameSlider.SetPoint = sliderSetPoint
S:HandleSliderFrame(QGT_AchievementWatchFrameSlider)
QGT_AchievementWatchFrameSlider.SetPoint = sliderSetPoint
local function skinOptions(f)
for i = 1, f:GetNumChildren() do
local child = select(i, f:GetChildren())
if child then
if child:IsObjectType("CheckButton") then
S:HandleCheckBox(child)
elseif child:IsObjectType("EditBox") then
S:HandleEditBox(child)
elseif child:IsObjectType("Button") then
S:HandleButton(child)
elseif child:IsObjectType("Slider") then
S:HandleSliderFrame(child)
end
end
end
end
skinOptions(QGT_OptionsFrameTracker)
for i = 1, 40 do
local frame = _G["QGT_AchievementWatchLine"..i]
local icon = _G["QGT_AchievementWatchLine"..i.."Icon"]
icon:Size(14)
icon:SetTexCoord(unpack(E.TexCoords))
frame.statusBar:StripTextures()
frame.statusBar:CreateBackdrop("Transparent")
frame.statusBar:SetStatusBarTexture(E.media.normTex)
E:RegisterStatusBar(frame.statusBar)
end
do
local alpha = QGT_Settings.Alpha
local backdropR, backdropG, backdropB = unpack(E.media.backdropfadecolor, 1, 3)
local borderR, borderG, borderB = unpack(E.media.bordercolor, 1, 3)
QGT_QuestWatchFrame.backdrop:SetBackdropColor(backdropR, backdropG, backdropB, alpha)
QGT_QuestWatchFrame.backdrop:SetBackdropBorderColor(borderR, borderG, borderB, alpha)
QGT_AchievementWatchFrame.backdrop:SetBackdropColor(backdropR, backdropG, backdropB, alpha)
QGT_AchievementWatchFrame.backdrop:SetBackdropBorderColor(borderR, borderG, borderB, alpha)
end
QGT_SetQuestWatchBorder = function(enabled)
if enabled then
QGT_QuestWatchFrame.backdrop:SetTemplate("Transparent", nil, true)
else
QGT_QuestWatchFrame.backdrop:SetTemplate("NoBackdrop", nil, true)
end
end
QGT_SetAchievementWatchBorder = function(enabled)
if enabled then
QGT_AchievementWatchFrame.backdrop:SetTemplate("Transparent", nil, true)
else
QGT_AchievementWatchFrame.backdrop:SetTemplate("NoBackdrop", nil, true)
end
end
QGT_OptionsFrameTrackerAlpha:SetScript("OnValueChanged", function(self)
local alpha = self:GetValue()
local backdropR, backdropG, backdropB = unpack(E.media.backdropfadecolor, 1, 3)
local borderR, borderG, borderB = unpack(E.media.bordercolor, 1, 3)
QGT_Settings.Alpha = alpha
QGT_QuestWatchFrame.backdrop:SetBackdropColor(backdropR, backdropG, backdropB, alpha)
QGT_QuestWatchFrame.backdrop:SetBackdropBorderColor(borderR, borderG, borderB, alpha)
QGT_AchievementWatchFrame.backdrop:SetBackdropColor(backdropR, backdropG, backdropB, alpha)
QGT_AchievementWatchFrame.backdrop:SetBackdropBorderColor(borderR, borderG, borderB, alpha)
QGT_OptionsFrameTrackerAlphaText:SetFormattedText("%s (%d%%)", QG_OPT_TRACKER_ALPHA, math.abs(math.ceil(alpha * 100 - 0.5)))
end)
local skinnedButtons = 0
hooksecurefunc("QGT_QuestWatch_Update", function()
local questItemIcons = QGT_Settings.QuestItemIcons
if questItemIcons or QGT_WATCHFRAME_NUM_ITEMS > skinnedButtons then
local leftSide = (QGT_Settings.QuestWatch.Left * QGT_Settings.Scale) < 32
local sliderVisible = QGT_QuestWatchFrameSlider:GetAlpha() > 0
local sliderRightVisible = sliderVisible and ((QGT_Settings.QuestWatch.Left + 256) * QGT_Settings.Scale) > (UIParent:GetWidth() - 16)
for i = questItemIcons and 1 or skinnedButtons + 1, QGT_WATCHFRAME_NUM_ITEMS do
local button = _G["WatchFrameItem"..i]
if button then
if not button.isSkinned then
local icon = _G["WatchFrameItem"..i.."IconTexture"]
local normal = _G["WatchFrameItem"..i.."NormalTexture"]
local cooldown = _G["WatchFrameItem"..i.."Cooldown"]
button:CreateBackdrop()
button.backdrop:SetAllPoints()
button:StyleButton()
button:Size(25)
normal:SetAlpha(0)
icon:SetInside()
icon:SetTexCoord(unpack(E.TexCoords))
E:RegisterCooldown(cooldown)
button.isSkinned = true
end
if questItemIcons then
local _, watchText = button:GetPoint()
if leftSide then
if sliderVisible then
button:Point("TOPLEFT", watchText, "TOPRIGHT", 19, 0)
else
button:Point("TOPLEFT", watchText, "TOPRIGHT", 8, 0)
end
else
if sliderRightVisible then
button:Point("TOPRIGHT", watchText, "TOPLEFT", -19, 0)
else
button:Point("TOPRIGHT", watchText, "TOPLEFT", -8, 0)
end
end
end
end
end
skinnedButtons = QGT_WATCHFRAME_NUM_ITEMS
end
end)
do -- Fixes
local _G = _G
local tonumber = tonumber
local len, sub = string.len, string.sub
local ChatEdit_ChooseBoxForSend = ChatEdit_ChooseBoxForSend
local GetAchievementLink = GetAchievementLink
local GetItemInfo = GetItemInfo
local GetQuestLink = GetQuestLink
local GetQuestLogTitle = GetQuestLogTitle
local IsShiftKeyDown = IsShiftKeyDown
local QuestLog_OpenToQuest = QuestLog_OpenToQuest
local QuestLog_SetSelection = QuestLog_SetSelection
local RemoveTrackedAchievement = RemoveTrackedAchievement
local WatchFrame_Update = WatchFrame_Update
local function questOnClick(self, button)
local qID = self.qID
if button == "LeftButton" then
if IsShiftKeyDown() then
local ChatFrameEditBox = ChatEdit_ChooseBoxForSend()
-- header line
if not qID then
if ChatFrameEditBox:IsVisible() then
ChatFrameEditBox:Insert(self:GetText())
end
-- objective line
elseif not tonumber(qID) then
local objName = sub(self:GetText(), 3 + len(QGT_Settings.Bullet))
local objText
if qID == "item" then
local _, itemLink = GetItemInfo(objName)
if not itemLink then
objText = objName
else
objText = itemLink
end
else
objText = objName
end
if ChatFrameEditBox:IsVisible() then
ChatFrameEditBox:Insert(objText)
end
-- quest number
else
if ChatFrameEditBox:IsVisible() then
ChatFrameEditBox:Insert(GetQuestLink(qID))
end
end
else
-- header line
if not qID then
local headName = self:GetText()
if QGT_WatchHeaders[headName] then
QGT_WatchHeaders[headName] = false
else
QGT_WatchHeaders[headName] = true
end
WatchFrame_Update()
-- objective line
elseif not tonumber(qID) then
local objName = sub(self:GetText(), 3 + len(QGT_Settings.Bullet))
if qID == "item" then
local _, itemLink = GetItemInfo(objName)
if itemLink then
SetItemRef(itemLink, nil, button)
end
end
-- title line
else
QuestLog_OpenToQuest(qID)
if QuestGuru_QuestLogFrame then
QuestGuru_QuestLogFrame:Show()
end
end
end
elseif button == "RightButton" then
if IsShiftKeyDown() then
if qID and tonumber(qID) then
QuestLog_SetSelection(qID, button)
QuestLog_Update()
ToggleDropDownMenu(1, nil, QGT_QuestWatchTitleMenu, self:GetName(), 0, 0)
end
else
-- header line
if not qID then
local headName = self:GetText()
if QGT_WatchHeaders[headName] then
QGT_WatchHeaders[headName] = false
else
QGT_WatchHeaders[headName] = true
end
WatchFrame_Update()
-- title line
elseif tonumber(qID) then
local qName = GetQuestLogTitle(qID)
if QGT_WatchQuests[qName] then
QGT_WatchQuests[qName] = false
else
QGT_WatchQuests[qName] = true
end
WatchFrame_Update()
end
end
end
QGT_ShowQuestTrackerSlider(true)
end
local function achievementOnClick(self)
if self.achievementID then
if IsShiftKeyDown() then
local ChatFrameEditBox = ChatEdit_ChooseBoxForSend()
if ChatFrameEditBox:IsVisible() then
ChatFrameEditBox:Insert(GetAchievementLink(self.achievementID))
else
RemoveTrackedAchievement(self.achievementID)
end
else
if not AchievementFrame then
AchievementFrame_LoadUI()
end
if not AchievementFrame:IsShown() then
AchievementFrame_ToggleAchievementFrame()
AchievementFrame_SelectAchievement(self.achievementID)
elseif AchievementFrameAchievements.selection ~= self.achievementID then
AchievementFrame_SelectAchievement(self.achievementID)
else
AchievementFrame_ToggleAchievementFrame()
end
end
end
end
local frame1, frame2
for i = 1, 40 do
frame1 = _G["QGT_QuestWatchLine"..i]
frame2 = _G["QGT_AchievementWatchLine"..i]
if frame1 then
frame1:SetScript("OnClick", questOnClick)
end
if frame2 then
frame2:SetScript("OnClick", achievementOnClick)
end
end
QGT_QuestWatchButton_OnClick = questOnClick
end
do -- Adjustments
local function updateQuestHeader(flag)
if flag then
local width = 20
QGT_QuestWatchQuestName:ClearAllPoints()
QGT_QuestWatchNumQuests:ClearAllPoints()
if QGT_QuestWatchFrameToggle:IsShown() then
width = width + 60
QGT_QuestWatchNumQuests:Point("TOPRIGHT", -60, -6)
else
width = width + 42
QGT_QuestWatchNumQuests:Point("TOPRIGHT", -42, -6)
end
QGT_QuestWatchQuestName:Point("RIGHT", QGT_QuestWatchNumQuests, "LEFT", -12, 0)
-- width = width + QGT_QuestWatchQuestName:GetWidth() + QGT_QuestWatchNumQuests:GetWidth()
width = width + QGT_QuestWatchQuestName:GetWidth() + 32
QGT_QuestWatchFrame.backdrop:ClearAllPoints()
QGT_QuestWatchFrame.backdrop:Point("TOPRIGHT", 1, 1)
QGT_QuestWatchFrame.backdrop:Point("BOTTOMLEFT", QGT_QuestWatchFrame:GetWidth() - width, 1)
else
QGT_QuestWatchFrame.backdrop:ClearAllPoints()
QGT_QuestWatchFrame.backdrop:Point("TOPLEFT", -1, 1)
QGT_QuestWatchFrame.backdrop:Point("BOTTOMRIGHT", 1, -1)
QGT_QuestWatchQuestName:ClearAllPoints()
QGT_QuestWatchQuestName:Point("TOPLEFT", 8, -6)
QGT_QuestWatchNumQuests:ClearAllPoints()
QGT_QuestWatchNumQuests:Point("LEFT", QGT_QuestWatchQuestName, "RIGHT", 12, 0)
end
end
local function updateAchievemtHeader(flag)
if flag then
local width = 20
QGT_AchievementWatchName:ClearAllPoints()
QGT_AchievementWatchNum:ClearAllPoints()
if QGT_AchievementWatchFrameToggle:IsShown() then
width = width + 60
QGT_AchievementWatchNum:Point("TOPRIGHT", -60, -6)
else
width = width + 42
QGT_AchievementWatchNum:Point("TOPRIGHT", -42, -6)
end
QGT_AchievementWatchName:Point("RIGHT", QGT_AchievementWatchNum, "LEFT", -12, 0)
-- width = width + QGT_AchievementWatchName:GetWidth() + QGT_AchievementWatchNum:GetWidth()
width = width + QGT_AchievementWatchName:GetWidth() + 8
QGT_AchievementWatchFrame.backdrop:ClearAllPoints()
QGT_AchievementWatchFrame.backdrop:Point("TOPRIGHT", 1, 1)
QGT_AchievementWatchFrame.backdrop:Point("BOTTOMLEFT", QGT_AchievementWatchFrame:GetWidth() - width, 1)
else
QGT_AchievementWatchFrame.backdrop:ClearAllPoints()
QGT_AchievementWatchFrame.backdrop:Point("TOPLEFT", -1, 1)
QGT_AchievementWatchFrame.backdrop:Point("BOTTOMRIGHT", 1, -1)
QGT_AchievementWatchName:ClearAllPoints()
QGT_AchievementWatchName:Point("TOPLEFT", 8, -6)
QGT_AchievementWatchNum:ClearAllPoints()
QGT_AchievementWatchNum:Point("LEFT", QGT_AchievementWatchName, "RIGHT", 12, 0)
end
end
QGT_QuestWatchFrameToggle:HookScript("OnClick", function()
updateAchievemtHeader(QGT_Settings.AchievementWatch.Minimized)
end)
QGT_AchievementWatchFrameToggle:HookScript("OnClick", function()
updateQuestHeader(QGT_Settings.QuestWatch.Minimized)
end)
QGT_QuestWatchFrameMinimize:HookScript("OnClick", function(self, button)
if button == "LeftButton" then
updateQuestHeader(QGT_Settings.QuestWatch.Minimized)
end
end)
QGT_AchievementWatchFrameMinimize:HookScript("OnClick", function(self, button)
if button == "LeftButton" then
updateAchievemtHeader(QGT_Settings.AchievementWatch.Minimized)
end
end)
if QGT_Settings.QuestWatch.Minimized then
updateQuestHeader(true)
end
if QGT_Settings.AchievementWatch.Minimized then
updateAchievemtHeader(true)
end
end
end)