initial commit
This commit is contained in:
503
Modules/Skins/Blizzard/Achievement.lua
Normal file
503
Modules/Skins/Blizzard/Achievement.lua
Normal file
@@ -0,0 +1,503 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local pairs, select, unpack = pairs, select, unpack
|
||||
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
local GetAchievementCriteriaInfo = GetAchievementCriteriaInfo
|
||||
local GetAchievementNumCriteria = GetAchievementNumCriteria
|
||||
local GetNumFilteredAchievements = GetNumFilteredAchievements
|
||||
local IsAddOnLoaded = IsAddOnLoaded
|
||||
local CreateFrame = CreateFrame
|
||||
|
||||
local blueAchievement = { r = 0.1, g = 0.2, b = 0.3 }
|
||||
local function blueBackdrop(self)
|
||||
self:SetBackdropColor(blueAchievement.r, blueAchievement.g, blueAchievement.b)
|
||||
end
|
||||
|
||||
local function skinAch(Achievement, BiggerIcon)
|
||||
if Achievement.isSkinned then return; end
|
||||
|
||||
Achievement:SetFrameLevel(Achievement:GetFrameLevel() + 2)
|
||||
Achievement:StripTextures(true)
|
||||
Achievement:CreateBackdrop(nil, true)
|
||||
Achievement.backdrop:SetInside()
|
||||
Achievement.icon:CreateBackdrop()
|
||||
Achievement.icon.backdrop:SetAllPoints()
|
||||
Achievement.icon:Size(BiggerIcon and 54 or 36, BiggerIcon and 54 or 36)
|
||||
Achievement.icon:ClearAllPoints()
|
||||
Achievement.icon:Point('TOPLEFT', 8, -8)
|
||||
Achievement.icon.bling:Kill()
|
||||
Achievement.icon.frame:Kill()
|
||||
Achievement.icon.texture:SetTexCoord(unpack(E.TexCoords))
|
||||
Achievement.icon.texture:SetInside()
|
||||
|
||||
if Achievement.highlight then
|
||||
Achievement.highlight:StripTextures()
|
||||
Achievement:HookScript('OnEnter', function(self) self.backdrop:SetBackdropBorderColor(1, 1, 0) end)
|
||||
Achievement:HookScript('OnLeave', function(self) self.backdrop:SetBackdropBorderColor(unpack(E.media.bordercolor)) end)
|
||||
end
|
||||
|
||||
if Achievement.label then
|
||||
Achievement.label:SetTextColor(1, 1, 1)
|
||||
end
|
||||
|
||||
if Achievement.description then
|
||||
Achievement.description:SetTextColor(.6, .6, .6)
|
||||
hooksecurefunc(Achievement.description, 'SetTextColor', function(_, r, g, b)
|
||||
if r == 0 and g == 0 and b == 0 then
|
||||
Achievement.description:SetTextColor(.6, .6, .6)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
if Achievement.hiddenDescription then
|
||||
Achievement.hiddenDescription:SetTextColor(1, 1, 1)
|
||||
end
|
||||
|
||||
if Achievement.tracked then
|
||||
Achievement.tracked:GetRegions():SetTextColor(1, 1, 1)
|
||||
S:HandleCheckBox(Achievement.tracked)
|
||||
Achievement.tracked:Size(18)
|
||||
Achievement.tracked:ClearAllPoints()
|
||||
Achievement.tracked:Point('TOPLEFT', Achievement.icon, 'BOTTOMLEFT', 0, -2)
|
||||
end
|
||||
|
||||
Achievement.isSkinned = true
|
||||
end
|
||||
|
||||
local function SkinStatusBar(bar)
|
||||
bar:StripTextures()
|
||||
bar:SetStatusBarTexture(E.media.normTex)
|
||||
bar:SetStatusBarColor(4/255, 179/255, 30/255)
|
||||
bar:CreateBackdrop()
|
||||
E:RegisterStatusBar(bar)
|
||||
|
||||
local StatusBarName = bar:GetName()
|
||||
if _G[StatusBarName..'Title'] then
|
||||
_G[StatusBarName..'Title']:Point('LEFT', 4, 0)
|
||||
end
|
||||
if _G[StatusBarName..'Label'] then
|
||||
_G[StatusBarName..'Label']:Point('LEFT', 4, 0)
|
||||
end
|
||||
if _G[StatusBarName..'Text'] then
|
||||
_G[StatusBarName..'Text']:Point('RIGHT', -4, 0)
|
||||
end
|
||||
end
|
||||
|
||||
local function SkinSearchButton(self)
|
||||
self:StripTextures()
|
||||
|
||||
if self.icon then
|
||||
S:HandleIcon(self.icon)
|
||||
end
|
||||
|
||||
self:CreateBackdrop('Transparent')
|
||||
self:SetHighlightTexture(E.media.normTex)
|
||||
|
||||
local hl = self:GetHighlightTexture()
|
||||
hl:SetVertexColor(1, 1, 1, 0.3)
|
||||
hl:Point('TOPLEFT', 1, -1)
|
||||
hl:Point('BOTTOMRIGHT', -1, 1)
|
||||
end
|
||||
|
||||
local function playerSaturate(self) -- self is Achievement.player
|
||||
local Achievement = self:GetParent()
|
||||
|
||||
local r, g, b = unpack(E.media.bordercolor)
|
||||
Achievement.player.backdrop.callbackBackdropColor = nil
|
||||
Achievement.friend.backdrop.callbackBackdropColor = nil
|
||||
|
||||
if Achievement.player.accountWide then
|
||||
r, g, b = blueAchievement.r, blueAchievement.g, blueAchievement.b
|
||||
Achievement.player.backdrop.callbackBackdropColor = blueBackdrop
|
||||
Achievement.friend.backdrop.callbackBackdropColor = blueBackdrop
|
||||
end
|
||||
|
||||
Achievement.player.backdrop:SetBackdropColor(r, g, b)
|
||||
Achievement.friend.backdrop:SetBackdropColor(r, g, b)
|
||||
end
|
||||
|
||||
local function setAchievementColor(frame)
|
||||
if frame and frame.backdrop then
|
||||
if frame.accountWide then
|
||||
frame.backdrop.callbackBackdropColor = blueBackdrop
|
||||
frame.backdrop:SetBackdropColor(blueAchievement.r, blueAchievement.g, blueAchievement.b)
|
||||
else
|
||||
frame.backdrop.callbackBackdropColor = nil
|
||||
frame.backdrop:SetBackdropColor(unpack(E.media.backdropcolor))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function S:Blizzard_AchievementUI(event)
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.achievement) then return end
|
||||
|
||||
if event == 'PLAYER_ENTERING_WORLD' then
|
||||
hooksecurefunc('HybridScrollFrame_CreateButtons', function(frame, template)
|
||||
if template == 'AchievementCategoryTemplate' then
|
||||
for _, button in pairs(frame.buttons) do
|
||||
if button.isSkinned then return; end
|
||||
button:StripTextures(true)
|
||||
button:StyleButton()
|
||||
button.isSkinned = true
|
||||
end
|
||||
end
|
||||
if template == 'AchievementTemplate' then
|
||||
for _, Achievement in pairs(frame.buttons) do
|
||||
skinAch(Achievement, true)
|
||||
end
|
||||
end
|
||||
if template == 'ComparisonTemplate' then
|
||||
for _, Achievement in pairs(frame.buttons) do
|
||||
if Achievement.isSkinned then return; end
|
||||
skinAch(Achievement.player)
|
||||
skinAch(Achievement.friend)
|
||||
|
||||
hooksecurefunc(Achievement.player, 'Saturate', playerSaturate)
|
||||
end
|
||||
end
|
||||
if template == 'StatTemplate' then
|
||||
for _, Stats in pairs(frame.buttons) do
|
||||
-- Stats:StripTextures(true)
|
||||
Stats:StyleButton()
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
if not IsAddOnLoaded('Blizzard_AchievementUI') then return end
|
||||
|
||||
_G.AchievementFrameSummary:StripTextures()
|
||||
_G.AchievementFrameSummaryBackground:Hide()
|
||||
_G.AchievementFrameSummary:GetChildren():Hide()
|
||||
|
||||
for i = 1, 4 do
|
||||
select(i, _G.AchievementFrameHeader:GetRegions()):Hide()
|
||||
end
|
||||
|
||||
_G.AchievementFrameHeaderRightDDLInset:SetAlpha(0)
|
||||
_G.AchievementFrameHeaderLeftDDLInset:SetAlpha(0)
|
||||
select(2, _G.AchievementFrameAchievements:GetChildren()):Hide()
|
||||
_G.AchievementFrameAchievementsBackground:Hide()
|
||||
select(3, _G.AchievementFrameAchievements:GetRegions()):Hide()
|
||||
_G.AchievementFrameStatsBG:Hide()
|
||||
_G.AchievementFrameSummaryAchievementsHeaderHeader:Hide()
|
||||
_G.AchievementFrameSummaryCategoriesHeaderTexture:Hide()
|
||||
select(3, _G.AchievementFrameStats:GetChildren()):Hide()
|
||||
select(5, _G.AchievementFrameComparison:GetChildren()):Hide()
|
||||
_G.AchievementFrameComparisonHeaderBG:Hide()
|
||||
_G.AchievementFrameComparisonHeaderPortrait:Hide()
|
||||
_G.AchievementFrameComparisonHeaderPortraitBg:Hide()
|
||||
_G.AchievementFrameComparisonBackground:Hide()
|
||||
_G.AchievementFrameComparisonDark:SetAlpha(0)
|
||||
_G.AchievementFrameComparisonSummaryPlayerBackground:Hide()
|
||||
_G.AchievementFrameComparisonSummaryFriendBackground:Hide()
|
||||
|
||||
local summaries = {_G.AchievementFrameComparisonSummaryPlayer, _G.AchievementFrameComparisonSummaryFriend}
|
||||
for _, frame in pairs(summaries) do
|
||||
frame:SetBackdrop()
|
||||
end
|
||||
|
||||
_G.AchievementFrameMetalBorderTopLeft:Hide()
|
||||
_G.AchievementFrameWoodBorderTopLeft:Hide()
|
||||
_G.AchievementFrameMetalBorderTopRight:Hide()
|
||||
_G.AchievementFrameWoodBorderTopRight:Hide()
|
||||
_G.AchievementFrameMetalBorderBottomRight:Hide()
|
||||
_G.AchievementFrameWoodBorderBottomRight:Hide()
|
||||
_G.AchievementFrameMetalBorderBottomLeft:Hide()
|
||||
_G.AchievementFrameWoodBorderBottomLeft:Hide()
|
||||
|
||||
local noname_frames = {
|
||||
_G.AchievementFrameStats,
|
||||
_G.AchievementFrameSummary,
|
||||
_G.AchievementFrameAchievements,
|
||||
_G.AchievementFrameComparison
|
||||
}
|
||||
for _, frame in pairs(noname_frames) do
|
||||
if frame and frame.GetNumChildren then
|
||||
for i=1, frame:GetNumChildren() do
|
||||
local child = select(i, frame:GetChildren())
|
||||
if child and not child:GetName() then
|
||||
child:SetBackdrop()
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local AchievementFrame = _G.AchievementFrame
|
||||
AchievementFrame:StripTextures()
|
||||
AchievementFrame:CreateBackdrop('Transparent')
|
||||
AchievementFrame.backdrop:Point('TOPLEFT', 0, 7)
|
||||
AchievementFrame.backdrop:Point('BOTTOMRIGHT')
|
||||
|
||||
_G.AchievementFrameHeaderTitle:ClearAllPoints()
|
||||
_G.AchievementFrameHeaderTitle:Point('TOP', AchievementFrame.backdrop, 'TOP', 0, -8)
|
||||
|
||||
_G.AchievementFrameHeaderPoints:ClearAllPoints()
|
||||
_G.AchievementFrameHeaderPoints:Point('CENTER', _G.AchievementFrameHeaderTitle, 'CENTER', 0, 0)
|
||||
|
||||
--Backdrops
|
||||
_G.AchievementFrameCategories:StripTextures()
|
||||
_G.AchievementFrameCategoriesContainerScrollBarBG:SetAlpha(0)
|
||||
_G.AchievementFrameCategoriesContainer:CreateBackdrop('Transparent')
|
||||
_G.AchievementFrameCategoriesContainer.backdrop:Point('TOPLEFT', 0, 4)
|
||||
_G.AchievementFrameCategoriesContainer.backdrop:Point('BOTTOMRIGHT', -2, -3)
|
||||
_G.AchievementFrameCategoriesBG:SetAlpha(0)
|
||||
_G.AchievementFrameWaterMark:SetAlpha(0)
|
||||
--_G.AchievementFrameCategoriesBG:SetInside(_G.AchievementFrameCategoriesContainer.backdrop)
|
||||
|
||||
_G.AchievementFrameAchievementsContainer:CreateBackdrop('Transparent')
|
||||
_G.AchievementFrameAchievementsContainer.backdrop:Point('TOPLEFT', -2, 2)
|
||||
_G.AchievementFrameAchievementsContainer.backdrop:Point('BOTTOMRIGHT', -2, -3)
|
||||
|
||||
_G.AchievementFrameGuildEmblemRight:Kill()
|
||||
_G.AchievementFrameGuildEmblemLeft:Kill()
|
||||
|
||||
S:HandleCloseButton(_G.AchievementFrameCloseButton, AchievementFrame.backdrop)
|
||||
|
||||
S:HandleDropDownBox(_G.AchievementFrameFilterDropDown)
|
||||
_G.AchievementFrameFilterDropDown:ClearAllPoints()
|
||||
_G.AchievementFrameFilterDropDown:Point('TOPLEFT', _G.AchievementFrameAchievements, 'TOPLEFT', -18, 24)
|
||||
|
||||
S:HandleEditBox(AchievementFrame.searchBox)
|
||||
AchievementFrame.searchBox.backdrop:Point('TOPLEFT', AchievementFrame.searchBox, 'TOPLEFT', -3, -3)
|
||||
AchievementFrame.searchBox.backdrop:Point('BOTTOMRIGHT', AchievementFrame.searchBox, 'BOTTOMRIGHT', 0, 3)
|
||||
AchievementFrame.searchBox:ClearAllPoints()
|
||||
AchievementFrame.searchBox:Point('TOPRIGHT', AchievementFrame, 'TOPRIGHT', -50, 8)
|
||||
AchievementFrame.searchBox:Size(107, 25)
|
||||
|
||||
local scrollBars = {
|
||||
_G.AchievementFrameCategoriesContainerScrollBar,
|
||||
_G.AchievementFrameAchievementsContainerScrollBar,
|
||||
_G.AchievementFrameStatsContainerScrollBar,
|
||||
_G.AchievementFrameComparisonContainerScrollBar,
|
||||
_G.AchievementFrameComparisonStatsContainerScrollBar,
|
||||
}
|
||||
|
||||
for _, scrollbar in pairs(scrollBars) do
|
||||
if scrollbar then
|
||||
S:HandleScrollBar(scrollbar, 5)
|
||||
end
|
||||
end
|
||||
|
||||
-- Search
|
||||
AchievementFrame.searchResults:StripTextures()
|
||||
AchievementFrame.searchResults:CreateBackdrop('Transparent')
|
||||
AchievementFrame.searchPreviewContainer:StripTextures()
|
||||
AchievementFrame.searchPreviewContainer:ClearAllPoints()
|
||||
AchievementFrame.searchPreviewContainer:Point('TOPLEFT', AchievementFrame, 'TOPRIGHT', 2, 6)
|
||||
|
||||
for i = 1, 5 do
|
||||
SkinSearchButton(AchievementFrame.searchPreviewContainer['searchPreview'..i])
|
||||
end
|
||||
SkinSearchButton(AchievementFrame.searchPreviewContainer.showAllSearchResults)
|
||||
|
||||
hooksecurefunc('AchievementFrame_UpdateFullSearchResults', function()
|
||||
local numResults = GetNumFilteredAchievements()
|
||||
|
||||
local scrollFrame = AchievementFrame.searchResults.scrollFrame
|
||||
local offset = _G.HybridScrollFrame_GetOffset(scrollFrame)
|
||||
local results = scrollFrame.buttons
|
||||
local result, index
|
||||
|
||||
for i = 1, #results do
|
||||
result = results[i]
|
||||
index = offset + i
|
||||
|
||||
if index <= numResults then
|
||||
if not result.styled then
|
||||
result:SetNormalTexture('')
|
||||
result:SetPushedTexture('')
|
||||
result:GetRegions():Hide()
|
||||
|
||||
result.resultType:SetTextColor(1, 1, 1)
|
||||
result.path:SetTextColor(1, 1, 1)
|
||||
|
||||
result.styled = true
|
||||
end
|
||||
|
||||
if result.icon:GetTexCoord() == 0 then
|
||||
result.icon:SetTexCoord(unpack(E.TexCoords))
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
hooksecurefunc(AchievementFrame.searchResults.scrollFrame, 'update', function(self)
|
||||
for i = 1, #self.buttons do
|
||||
local result = self.buttons[i]
|
||||
|
||||
if result.icon:GetTexCoord() == 0 then
|
||||
result.icon:SetTexCoord(unpack(E.TexCoords))
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
S:HandleCloseButton(AchievementFrame.searchResults.closeButton)
|
||||
S:HandleScrollBar(_G.AchievementFrameScrollFrameScrollBar)
|
||||
|
||||
--Tabs
|
||||
for i = 1, 3 do
|
||||
S:HandleTab(_G['AchievementFrameTab'..i])
|
||||
_G['AchievementFrameTab'..i]:SetFrameLevel(_G['AchievementFrameTab'..i]:GetFrameLevel() + 2)
|
||||
end
|
||||
|
||||
SkinStatusBar(_G.AchievementFrameSummaryCategoriesStatusBar)
|
||||
SkinStatusBar(_G.AchievementFrameComparisonSummaryPlayerStatusBar)
|
||||
SkinStatusBar(_G.AchievementFrameComparisonSummaryFriendStatusBar)
|
||||
_G.AchievementFrameComparisonSummaryFriendStatusBar.text:ClearAllPoints()
|
||||
_G.AchievementFrameComparisonSummaryFriendStatusBar.text:Point('CENTER')
|
||||
_G.AchievementFrameComparisonHeader:Point('BOTTOMRIGHT', _G.AchievementFrameComparison, 'TOPRIGHT', 45, -20)
|
||||
|
||||
for i=1, 12 do
|
||||
local frame = _G['AchievementFrameSummaryCategoriesCategory'..i]
|
||||
local button = _G['AchievementFrameSummaryCategoriesCategory'..i..'Button']
|
||||
local highlight = _G['AchievementFrameSummaryCategoriesCategory'..i..'ButtonHighlight']
|
||||
SkinStatusBar(frame)
|
||||
button:StripTextures()
|
||||
highlight:StripTextures()
|
||||
|
||||
_G[highlight:GetName()..'Middle']:SetColorTexture(1, 1, 1, 0.3)
|
||||
_G[highlight:GetName()..'Middle']:SetAllPoints(frame)
|
||||
end
|
||||
|
||||
hooksecurefunc('AchievementButton_DisplayAchievement', setAchievementColor)
|
||||
|
||||
hooksecurefunc('AchievementFrameSummary_UpdateAchievements', function()
|
||||
for i=1, _G.ACHIEVEMENTUI_MAX_SUMMARY_ACHIEVEMENTS do
|
||||
local frame = _G['AchievementFrameSummaryAchievement'..i]
|
||||
if not frame.isSkinned then
|
||||
skinAch(frame)
|
||||
frame.isSkinned = true
|
||||
end
|
||||
|
||||
--The backdrop borders tend to overlap so add a little more space between summary achievements
|
||||
local prevFrame = _G['AchievementFrameSummaryAchievement'..i-1]
|
||||
if i ~= 1 then
|
||||
frame:ClearAllPoints()
|
||||
frame:Point('TOPLEFT', prevFrame, 'BOTTOMLEFT', 0, 1)
|
||||
frame:Point('TOPRIGHT', prevFrame, 'BOTTOMRIGHT', 0, 1)
|
||||
end
|
||||
|
||||
setAchievementColor(frame)
|
||||
end
|
||||
end)
|
||||
|
||||
for i=1, 20 do
|
||||
local frame = _G['AchievementFrameStatsContainerButton'..i]
|
||||
frame:StyleButton()
|
||||
|
||||
_G['AchievementFrameStatsContainerButton'..i..'BG']:SetColorTexture(1, 1, 1, 0.2)
|
||||
_G['AchievementFrameStatsContainerButton'..i..'HeaderLeft']:Kill()
|
||||
_G['AchievementFrameStatsContainerButton'..i..'HeaderRight']:Kill()
|
||||
_G['AchievementFrameStatsContainerButton'..i..'HeaderMiddle']:Kill()
|
||||
|
||||
frame = 'AchievementFrameComparisonStatsContainerButton'..i
|
||||
_G[frame]:StripTextures()
|
||||
_G[frame]:StyleButton()
|
||||
|
||||
_G[frame..'BG']:SetColorTexture(1, 1, 1, 0.2)
|
||||
_G[frame..'HeaderLeft']:Kill()
|
||||
_G[frame..'HeaderRight']:Kill()
|
||||
_G[frame..'HeaderMiddle']:Kill()
|
||||
end
|
||||
|
||||
hooksecurefunc('AchievementButton_GetProgressBar', function(index)
|
||||
local frame = _G['AchievementFrameProgressBar'..index]
|
||||
if frame then
|
||||
if not frame.skinned then
|
||||
frame:StripTextures()
|
||||
frame:SetStatusBarTexture(E.media.normTex)
|
||||
E:RegisterStatusBar(frame)
|
||||
frame:SetStatusBarColor(4/255, 179/255, 30/255)
|
||||
frame:CreateBackdrop('Transparent')
|
||||
frame:SetFrameLevel(frame:GetFrameLevel() + 3)
|
||||
frame:Height(frame:GetHeight() - 2)
|
||||
|
||||
frame.text:ClearAllPoints()
|
||||
frame.text:Point('CENTER', frame, 'CENTER', 0, -1)
|
||||
frame.text:SetJustifyH('CENTER')
|
||||
|
||||
if index > 1 then
|
||||
frame:ClearAllPoints()
|
||||
frame:Point('TOP', _G['AchievementFrameProgressBar'..index-1], 'BOTTOM', 0, -5)
|
||||
frame.SetPoint = E.noop
|
||||
frame.ClearAllPoints = E.noop
|
||||
end
|
||||
|
||||
frame.skinned = true
|
||||
end
|
||||
|
||||
end
|
||||
end)
|
||||
|
||||
hooksecurefunc('AchievementObjectives_DisplayCriteria', function(objectivesFrame, id)
|
||||
local numCriteria = GetAchievementNumCriteria(id)
|
||||
local textStrings, metas = 0, 0
|
||||
for i = 1, numCriteria do
|
||||
local _, criteriaType, completed, _, _, _, _, assetID = GetAchievementCriteriaInfo(id, i)
|
||||
|
||||
if criteriaType == _G.CRITERIA_TYPE_ACHIEVEMENT and assetID then
|
||||
metas = metas + 1;
|
||||
local metaCriteria = _G.AchievementButton_GetMeta(metas);
|
||||
if objectivesFrame.completed and completed then
|
||||
metaCriteria.label:SetShadowOffset(0, 0)
|
||||
metaCriteria.label:SetTextColor(1, 1, 1, 1);
|
||||
elseif completed then
|
||||
metaCriteria.label:SetShadowOffset(1, -1)
|
||||
metaCriteria.label:SetTextColor(0, 1, 0, 1);
|
||||
else
|
||||
metaCriteria.label:SetShadowOffset(1, -1)
|
||||
metaCriteria.label:SetTextColor(.6, .6, .6, 1);
|
||||
end
|
||||
elseif criteriaType ~= 1 then
|
||||
textStrings = textStrings + 1;
|
||||
local criteria = _G.AchievementButton_GetCriteria(textStrings);
|
||||
if objectivesFrame.completed and completed then
|
||||
criteria.name:SetTextColor(1, 1, 1, 1);
|
||||
criteria.name:SetShadowOffset(0, 0);
|
||||
elseif completed then
|
||||
criteria.name:SetTextColor(0, 1, 0, 1);
|
||||
criteria.name:SetShadowOffset(1, -1);
|
||||
else
|
||||
criteria.name:SetTextColor(.6, .6, .6, 1);
|
||||
criteria.name:SetShadowOffset(1, -1);
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
--The section below is usually handled in our hook, but another addon may have loaded the AchievementUI before we were ready
|
||||
--Categories
|
||||
for i = 1, 20 do
|
||||
local button = _G['AchievementFrameCategoriesContainerButton'..i]
|
||||
if not button or (button and button.isSkinned) then return end
|
||||
button:StripTextures(true)
|
||||
button:StyleButton()
|
||||
button.isSkinned = true
|
||||
end
|
||||
|
||||
--Comparison
|
||||
for i = 1, 10 do
|
||||
local Achievement = _G['AchievementFrameComparisonContainerButton'..i]
|
||||
if not Achievement or (Achievement and Achievement.isSkinned) then return end
|
||||
|
||||
skinAch(Achievement.player)
|
||||
skinAch(Achievement.friend)
|
||||
|
||||
hooksecurefunc(Achievement.player, 'Saturate', playerSaturate)
|
||||
|
||||
Achievement.isSkinned = true
|
||||
end
|
||||
end
|
||||
|
||||
local f = CreateFrame('Frame')
|
||||
f:RegisterEvent('PLAYER_ENTERING_WORLD')
|
||||
f:SetScript('OnEvent', function(self, event)
|
||||
self:UnregisterEvent(event)
|
||||
S:Blizzard_AchievementUI(event)
|
||||
end)
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_AchievementUI')
|
||||
113
Modules/Skins/Blizzard/AddonManager.lua
Normal file
113
Modules/Skins/Blizzard/AddonManager.lua
Normal file
@@ -0,0 +1,113 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
local LSM = E.Libs.LSM
|
||||
|
||||
local _G = _G
|
||||
local gsub = gsub
|
||||
local unpack = unpack
|
||||
local GetNumAddOns = GetNumAddOns
|
||||
local GetAddOnInfo = GetAddOnInfo
|
||||
local GetAddOnEnableState = GetAddOnEnableState
|
||||
local UIDropDownMenu_GetSelectedValue = UIDropDownMenu_GetSelectedValue
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
function S:AddonList()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.addonManager) then return end
|
||||
|
||||
local AddonList = _G.AddonList
|
||||
local maxShown = _G.MAX_ADDONS_DISPLAYED
|
||||
local AddonCharacterDropDown = _G.AddonCharacterDropDown
|
||||
|
||||
S:HandlePortraitFrame(AddonList)
|
||||
S:HandleButton(AddonList.EnableAllButton, true)
|
||||
S:HandleButton(AddonList.DisableAllButton, true)
|
||||
S:HandleButton(AddonList.OkayButton, true)
|
||||
S:HandleButton(AddonList.CancelButton, true)
|
||||
S:HandleDropDownBox(AddonCharacterDropDown, 165)
|
||||
S:HandleScrollBar(_G.AddonListScrollFrameScrollBar)
|
||||
S:HandleCheckBox(_G.AddonListForceLoad)
|
||||
_G.AddonListForceLoad:Size(26, 26)
|
||||
|
||||
_G.AddonListScrollFrame:StripTextures()
|
||||
_G.AddonListScrollFrame:CreateBackdrop('Transparent')
|
||||
_G.AddonListScrollFrame.backdrop:Point('TOPLEFT', -14, 0)
|
||||
_G.AddonListScrollFrame.backdrop:Point('BOTTOMRIGHT', 0, -1)
|
||||
|
||||
for i = 1, maxShown do
|
||||
S:HandleCheckBox(_G['AddonListEntry'..i..'Enabled'])
|
||||
S:HandleButton(_G['AddonListEntry'..i].LoadAddonButton)
|
||||
end
|
||||
|
||||
local font = LSM:Fetch('font', 'Expressway')
|
||||
hooksecurefunc('AddonList_Update', function()
|
||||
local numEntrys = GetNumAddOns()
|
||||
for i = 1, maxShown do
|
||||
local index = AddonList.offset + i
|
||||
if index <= numEntrys then
|
||||
local entry = _G['AddonListEntry'..i]
|
||||
local string = _G['AddonListEntry'..i..'Title']
|
||||
local checkbox = _G['AddonListEntry'..i..'Enabled']
|
||||
local name, title, _, loadable, reason = GetAddOnInfo(index)
|
||||
|
||||
-- Get the character from the current list (nil is all characters)
|
||||
local checkall
|
||||
local character = UIDropDownMenu_GetSelectedValue(AddonCharacterDropDown)
|
||||
if character == true then
|
||||
character = nil
|
||||
else
|
||||
checkall = GetAddOnEnableState(nil, index)
|
||||
end
|
||||
|
||||
local checkstate = GetAddOnEnableState(character, index)
|
||||
local enabled = checkstate > 0
|
||||
|
||||
string:FontTemplate(font, 13, 'NONE')
|
||||
entry.Status:FontTemplate(font, 11, 'NONE')
|
||||
entry.Reload:FontTemplate(font, 11, 'NONE')
|
||||
entry.Reload:SetTextColor(1.0, 0.3, 0.3)
|
||||
entry.LoadAddonButton.Text:FontTemplate(font, 11, 'NONE')
|
||||
|
||||
local enabledForSome = not character and checkstate == 1
|
||||
local disabled = not enabled or enabledForSome
|
||||
|
||||
if disabled then
|
||||
entry.Status:SetTextColor(0.4, 0.4, 0.4)
|
||||
else
|
||||
entry.Status:SetTextColor(0.7, 0.7, 0.7)
|
||||
end
|
||||
|
||||
if disabled or reason == 'DEP_DISABLED' then
|
||||
string:SetText(gsub(title or name, '|c%x%x%x%x%x%x%x%x(.-)|?r?','%1'))
|
||||
end
|
||||
|
||||
if enabledForSome then
|
||||
string:SetTextColor(0.5, 0.5, 0.5)
|
||||
elseif enabled and (loadable or reason == 'DEP_DEMAND_LOADED' or reason == 'DEMAND_LOADED') then
|
||||
string:SetTextColor(0.9, 0.9, 0.9)
|
||||
elseif enabled and reason ~= 'DEP_DISABLED' then
|
||||
string:SetTextColor(1.0, 0.2, 0.2)
|
||||
else
|
||||
string:SetTextColor(0.3, 0.3, 0.3)
|
||||
end
|
||||
|
||||
local checktex = checkbox:GetCheckedTexture()
|
||||
checktex:Show()
|
||||
|
||||
if not enabled and checkall == 1 then
|
||||
checktex:SetVertexColor(0.3, 0.3, 0.3)
|
||||
checktex:SetDesaturated(true)
|
||||
elseif not checkbox.state or checkbox.state == 0 then
|
||||
checktex:Hide()
|
||||
elseif checkbox.state == 1 then
|
||||
checktex:SetVertexColor(0.6, 0.6, 0.6)
|
||||
checktex:SetDesaturated(true)
|
||||
elseif checkbox.state == 2 then
|
||||
checktex:SetVertexColor(unpack(E.media.rgbvaluecolor))
|
||||
checktex:SetDesaturated(false)
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
S:AddCallback('AddonList')
|
||||
44
Modules/Skins/Blizzard/AdventureMap.lua
Normal file
44
Modules/Skins/Blizzard/AdventureMap.lua
Normal file
@@ -0,0 +1,44 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local pairs = pairs
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
local function SkinRewards()
|
||||
for reward in pairs(_G.AdventureMapQuestChoiceDialog.rewardPool.activeObjects) do
|
||||
if not reward.isSkinned then
|
||||
S:HandleItemButton(reward)
|
||||
S:HandleIcon(reward.Icon)
|
||||
reward.Icon:SetDrawLayer('OVERLAY')
|
||||
reward.isSkinned = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function S:Blizzard_AdventureMap()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.adventureMap) then return end
|
||||
|
||||
--Quest Choise
|
||||
local AdventureMapQuestChoiceDialog = _G.AdventureMapQuestChoiceDialog
|
||||
AdventureMapQuestChoiceDialog:StripTextures()
|
||||
AdventureMapQuestChoiceDialog:CreateBackdrop('Transparent')
|
||||
AdventureMapQuestChoiceDialog.backdrop:SetFrameStrata('LOW')
|
||||
|
||||
-- Rewards
|
||||
hooksecurefunc(AdventureMapQuestChoiceDialog, 'RefreshRewards', SkinRewards)
|
||||
|
||||
-- Quick Fix for the Font Color
|
||||
AdventureMapQuestChoiceDialog.Details.Child.TitleHeader:SetTextColor(1, 1, 0)
|
||||
AdventureMapQuestChoiceDialog.Details.Child.DescriptionText:SetTextColor(1, 1, 1)
|
||||
AdventureMapQuestChoiceDialog.Details.Child.ObjectivesHeader:SetTextColor(1, 1, 0)
|
||||
AdventureMapQuestChoiceDialog.Details.Child.ObjectivesText:SetTextColor(1, 1, 1)
|
||||
|
||||
--Buttons
|
||||
S:HandleCloseButton(AdventureMapQuestChoiceDialog.CloseButton)
|
||||
S:HandleScrollBar(AdventureMapQuestChoiceDialog.Details.ScrollBar)
|
||||
S:HandleButton(AdventureMapQuestChoiceDialog.AcceptButton)
|
||||
S:HandleButton(AdventureMapQuestChoiceDialog.DeclineButton)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_AdventureMap')
|
||||
853
Modules/Skins/Blizzard/Alerts.lua
Normal file
853
Modules/Skins/Blizzard/Alerts.lua
Normal file
@@ -0,0 +1,853 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local unpack, select = unpack, select
|
||||
|
||||
local CreateFrame = CreateFrame
|
||||
local GetItemInfo = GetItemInfo
|
||||
local SetLargeGuildTabardTextures = SetLargeGuildTabardTextures
|
||||
local ITEM_QUALITY_COLORS = ITEM_QUALITY_COLORS
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
local function forceAlpha(self, alpha, forced)
|
||||
if alpha ~= 1 and forced ~= true then
|
||||
self:SetAlpha(1, true)
|
||||
end
|
||||
end
|
||||
|
||||
local function SkinAchievementAlert(frame)
|
||||
frame:SetAlpha(1)
|
||||
|
||||
if not frame.hooked then
|
||||
hooksecurefunc(frame, 'SetAlpha', forceAlpha)
|
||||
frame.hooked = true
|
||||
end
|
||||
|
||||
if not frame.backdrop then
|
||||
frame:CreateBackdrop('Transparent')
|
||||
frame.backdrop:Point('TOPLEFT', frame.Background, 'TOPLEFT', -2, -6)
|
||||
frame.backdrop:Point('BOTTOMRIGHT', frame.Background, 'BOTTOMRIGHT', -2, 6)
|
||||
end
|
||||
|
||||
-- Background
|
||||
frame.Background:SetTexture()
|
||||
frame.OldAchievement:Kill()
|
||||
frame.glow:Kill()
|
||||
frame.shine:Kill()
|
||||
frame.GuildBanner:Kill()
|
||||
frame.GuildBorder:Kill()
|
||||
-- Text
|
||||
frame.Unlocked:FontTemplate(nil, 12)
|
||||
frame.Unlocked:SetTextColor(1, 1, 1)
|
||||
frame.Name:FontTemplate(nil, 12)
|
||||
|
||||
-- Icon
|
||||
frame.Icon.Texture:SetTexCoord(unpack(E.TexCoords))
|
||||
frame.Icon.Overlay:Kill()
|
||||
|
||||
frame.Icon.Texture:ClearAllPoints()
|
||||
frame.Icon.Texture:Point('LEFT', frame, 7, 0)
|
||||
|
||||
if not frame.Icon.Texture.b then
|
||||
frame.Icon.Texture.b = CreateFrame('Frame', nil, frame, 'BackdropTemplate')
|
||||
frame.Icon.Texture.b:SetTemplate()
|
||||
frame.Icon.Texture.b:SetOutside(frame.Icon.Texture)
|
||||
frame.Icon.Texture:SetParent(frame.Icon.Texture.b)
|
||||
end
|
||||
end
|
||||
|
||||
local function SkinCriteriaAlert(frame)
|
||||
frame:SetAlpha(1)
|
||||
|
||||
if not frame.hooked then
|
||||
hooksecurefunc(frame, 'SetAlpha', forceAlpha)
|
||||
frame.hooked = true
|
||||
end
|
||||
|
||||
if not frame.backdrop then
|
||||
frame:CreateBackdrop('Transparent')
|
||||
frame.backdrop:Point('TOPLEFT', frame, 'TOPLEFT', -2, -6)
|
||||
frame.backdrop:Point('BOTTOMRIGHT', frame, 'BOTTOMRIGHT', -2, 6)
|
||||
end
|
||||
|
||||
frame.Unlocked:SetTextColor(1, 1, 1)
|
||||
frame.Name:SetTextColor(1, 1, 0)
|
||||
frame.Background:Kill()
|
||||
frame.glow:Kill()
|
||||
frame.shine:Kill()
|
||||
frame.Icon.Bling:Kill()
|
||||
frame.Icon.Overlay:Kill()
|
||||
|
||||
-- Icon border
|
||||
if not frame.Icon.Texture.b then
|
||||
frame.Icon.Texture.b = CreateFrame('Frame', nil, frame, 'BackdropTemplate')
|
||||
frame.Icon.Texture.b:SetTemplate()
|
||||
frame.Icon.Texture.b:Point('TOPLEFT', frame.Icon.Texture, 'TOPLEFT', -3, 3)
|
||||
frame.Icon.Texture.b:Point('BOTTOMRIGHT', frame.Icon.Texture, 'BOTTOMRIGHT', 3, -2)
|
||||
frame.Icon.Texture:SetParent(frame.Icon.Texture.b)
|
||||
end
|
||||
frame.Icon.Texture:SetTexCoord(unpack(E.TexCoords))
|
||||
end
|
||||
|
||||
local function SkinDungeonCompletionAlert(frame)
|
||||
frame:SetAlpha(1)
|
||||
|
||||
if not frame.hooked then
|
||||
hooksecurefunc(frame, 'SetAlpha', forceAlpha)
|
||||
frame.hooked = true
|
||||
end
|
||||
|
||||
if not frame.backdrop then
|
||||
frame:CreateBackdrop('Transparent')
|
||||
frame.backdrop:Point('TOPLEFT', frame, 'TOPLEFT', -2, -6)
|
||||
frame.backdrop:Point('BOTTOMRIGHT', frame, 'BOTTOMRIGHT', -2, 6)
|
||||
end
|
||||
|
||||
if frame.glowFrame then
|
||||
frame.glowFrame:Kill()
|
||||
|
||||
if frame.glowFrame.glow then
|
||||
frame.glowFrame.glow:Kill()
|
||||
end
|
||||
end
|
||||
|
||||
if frame.shine then frame.shine:Kill() end
|
||||
if frame.raidArt then frame.raidArt:Kill() end
|
||||
if frame.heroicIcon then frame.heroicIcon:Kill() end
|
||||
if frame.dungeonArt1 then frame.dungeonArt1:Kill() end
|
||||
if frame.dungeonArt2 then frame.dungeonArt2:Kill() end
|
||||
if frame.dungeonArt3 then frame.dungeonArt3:Kill() end
|
||||
if frame.dungeonArt4 then frame.dungeonArt4:Kill() end
|
||||
|
||||
-- Icon
|
||||
frame.dungeonTexture:SetTexCoord(unpack(E.TexCoords))
|
||||
frame.dungeonTexture:SetDrawLayer('OVERLAY')
|
||||
frame.dungeonTexture:ClearAllPoints()
|
||||
frame.dungeonTexture:Point('LEFT', frame, 7, 0)
|
||||
|
||||
if not frame.dungeonTexture.b then
|
||||
frame.dungeonTexture.b = CreateFrame('Frame', nil, frame, 'BackdropTemplate')
|
||||
frame.dungeonTexture.b:SetTemplate()
|
||||
frame.dungeonTexture.b:SetOutside(frame.dungeonTexture)
|
||||
frame.dungeonTexture:SetParent(frame.dungeonTexture.b)
|
||||
end
|
||||
end
|
||||
|
||||
local function SkinGuildChallengeAlert(frame)
|
||||
frame:SetAlpha(1)
|
||||
|
||||
if not frame.hooked then
|
||||
hooksecurefunc(frame, 'SetAlpha', forceAlpha)
|
||||
frame.hooked = true
|
||||
end
|
||||
|
||||
if not frame.backdrop then
|
||||
frame:CreateBackdrop('Transparent')
|
||||
frame.backdrop:Point('TOPLEFT', frame, 'TOPLEFT', -2, -6)
|
||||
frame.backdrop:Point('BOTTOMRIGHT', frame, 'BOTTOMRIGHT', -2, 6)
|
||||
end
|
||||
|
||||
-- Background
|
||||
local region = select(2, frame:GetRegions())
|
||||
if region:IsObjectType('Texture') then
|
||||
if region:GetTexture() == [[Interface\GuildFrame\GuildChallenges]] then
|
||||
region:Kill()
|
||||
end
|
||||
end
|
||||
|
||||
frame.glow:Kill()
|
||||
frame.shine:Kill()
|
||||
frame.EmblemBorder:Kill()
|
||||
|
||||
-- Icon border
|
||||
local EmblemIcon = frame.EmblemIcon
|
||||
if not EmblemIcon.b then
|
||||
EmblemIcon.b = CreateFrame('Frame', nil, frame, 'BackdropTemplate')
|
||||
EmblemIcon.b:SetTemplate()
|
||||
EmblemIcon.b:Point('TOPLEFT', EmblemIcon, 'TOPLEFT', -3, 3)
|
||||
EmblemIcon.b:Point('BOTTOMRIGHT', EmblemIcon, 'BOTTOMRIGHT', 3, -2)
|
||||
EmblemIcon:SetParent(EmblemIcon.b)
|
||||
end
|
||||
SetLargeGuildTabardTextures('player', EmblemIcon, nil, nil)
|
||||
end
|
||||
|
||||
local function SkinHonorAwardedAlert(frame)
|
||||
frame:SetAlpha(1)
|
||||
if not frame.hooked then hooksecurefunc(frame, 'SetAlpha', forceAlpha); frame.hooked = true end
|
||||
|
||||
frame.Background:Kill()
|
||||
frame.IconBorder:Kill()
|
||||
|
||||
-- Icon border
|
||||
if not frame.Icon.b then
|
||||
frame.Icon.b = CreateFrame('Frame', nil, frame, 'BackdropTemplate')
|
||||
frame.Icon.b:SetTemplate('Default')
|
||||
frame.Icon.b:SetOutside(frame.Icon)
|
||||
frame.Icon:SetParent(frame.Icon.b)
|
||||
end
|
||||
|
||||
if not frame.backdrop then
|
||||
frame:CreateBackdrop('Transparent')
|
||||
frame.backdrop:Point('TOPLEFT', frame.Icon.b, 'TOPLEFT', -4, 4)
|
||||
frame.backdrop:Point('BOTTOMRIGHT', frame.Icon.b, 'BOTTOMRIGHT', 180, -4)
|
||||
end
|
||||
end
|
||||
|
||||
local function SkinInvasionAlert(frame)
|
||||
if not frame.isSkinned then
|
||||
frame:SetAlpha(1)
|
||||
hooksecurefunc(frame, 'SetAlpha', forceAlpha);
|
||||
frame:CreateBackdrop('Transparent')
|
||||
frame.backdrop:Point('TOPLEFT', frame, 'TOPLEFT', 4, 4)
|
||||
frame.backdrop:Point('BOTTOMRIGHT', frame, 'BOTTOMRIGHT', -7, 6)
|
||||
--Background contains the item border too, so have to remove it
|
||||
if frame.GetRegions then
|
||||
local region, icon = frame:GetRegions()
|
||||
if region and region:IsObjectType('Texture') then
|
||||
if region:GetAtlas() == 'legioninvasion-Toast-Frame' then
|
||||
region:Kill()
|
||||
end
|
||||
end
|
||||
-- Icon border
|
||||
if icon and icon:IsObjectType('Texture') then
|
||||
if icon:GetTexture() == [[Interface\Icons\Ability_Warlock_DemonicPower]] then
|
||||
icon.b = CreateFrame('Frame', nil, frame, 'BackdropTemplate')
|
||||
icon.b:SetTemplate()
|
||||
icon.b:SetOutside(icon)
|
||||
icon:SetParent(icon.b)
|
||||
icon:SetDrawLayer('OVERLAY')
|
||||
icon:SetTexCoord(unpack(E.TexCoords))
|
||||
end
|
||||
end
|
||||
end
|
||||
frame.isSkinned = true
|
||||
end
|
||||
end
|
||||
|
||||
local function SkinScenarioAlert(frame)
|
||||
frame:SetAlpha(1)
|
||||
|
||||
if not frame.hooked then
|
||||
hooksecurefunc(frame, 'SetAlpha', forceAlpha)
|
||||
frame.hooked = true
|
||||
end
|
||||
|
||||
if not frame.backdrop then
|
||||
frame:CreateBackdrop('Transparent')
|
||||
frame.backdrop:Point('TOPLEFT', frame, 'TOPLEFT', 4, 4)
|
||||
frame.backdrop:Point('BOTTOMRIGHT', frame, 'BOTTOMRIGHT', -7, 6)
|
||||
end
|
||||
|
||||
-- Background
|
||||
for i = 1, frame:GetNumRegions() do
|
||||
local region = select(i, frame:GetRegions())
|
||||
if region:IsObjectType('Texture') then
|
||||
if region:GetAtlas() == 'Toast-IconBG' or region:GetAtlas() == 'Toast-Frame' then
|
||||
region:Kill()
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
frame.shine:Kill()
|
||||
frame.glowFrame:Kill()
|
||||
frame.glowFrame.glow:Kill()
|
||||
|
||||
-- Icon
|
||||
frame.dungeonTexture:SetTexCoord(0.1, 0.9, 0.1, 0.9)
|
||||
frame.dungeonTexture:ClearAllPoints()
|
||||
frame.dungeonTexture:Point('LEFT', frame.backdrop, 9, 0)
|
||||
frame.dungeonTexture:SetDrawLayer('OVERLAY')
|
||||
|
||||
-- Icon border
|
||||
if not frame.dungeonTexture.b then
|
||||
frame.dungeonTexture.b = CreateFrame('Frame', nil, frame, 'BackdropTemplate')
|
||||
frame.dungeonTexture.b:SetTemplate()
|
||||
frame.dungeonTexture.b:SetOutside(frame.dungeonTexture)
|
||||
frame.dungeonTexture:SetParent(frame.dungeonTexture.b)
|
||||
end
|
||||
end
|
||||
|
||||
local function SkinWorldQuestCompleteAlert(frame)
|
||||
if not frame.isSkinned then
|
||||
frame:SetAlpha(1)
|
||||
hooksecurefunc(frame, 'SetAlpha', forceAlpha)
|
||||
frame:CreateBackdrop('Transparent')
|
||||
frame.backdrop:Point('TOPLEFT', frame, 'TOPLEFT', 10, -6)
|
||||
frame.backdrop:Point('BOTTOMRIGHT', frame, 'BOTTOMRIGHT', -14, 6)
|
||||
frame.shine:Kill()
|
||||
-- Background
|
||||
if frame.GetNumRegions then
|
||||
for i = 1, frame:GetNumRegions() do
|
||||
local region = select(i, frame:GetRegions())
|
||||
if region:IsObjectType('Texture') then
|
||||
if region:GetTexture() == [[Interface\LFGFrame\UI-LFG-DUNGEONTOAST]] then
|
||||
region:Kill()
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
--Icon
|
||||
frame.QuestTexture:SetTexCoord(unpack(E.TexCoords))
|
||||
frame.QuestTexture:SetDrawLayer('ARTWORK')
|
||||
frame.QuestTexture.b = CreateFrame('Frame', nil, frame, 'BackdropTemplate')
|
||||
frame.QuestTexture.b:SetTemplate()
|
||||
frame.QuestTexture.b:SetOutside(frame.QuestTexture)
|
||||
frame.QuestTexture:SetParent(frame.QuestTexture.b)
|
||||
|
||||
frame.isSkinned = true
|
||||
end
|
||||
end
|
||||
|
||||
local function SkinGarrisonFollowerAlert(frame, _, _, _, quality)
|
||||
if not frame.isSkinned then
|
||||
frame.glow:Kill()
|
||||
frame.shine:Kill()
|
||||
frame.FollowerBG:SetAlpha(0)
|
||||
frame.DieIcon:SetAlpha(0)
|
||||
--Background
|
||||
if frame.GetNumRegions then
|
||||
for i = 1, frame:GetNumRegions() do
|
||||
local region = select(i, frame:GetRegions())
|
||||
if region:IsObjectType('Texture') then
|
||||
if region:GetAtlas() == 'Garr_MissionToast' then
|
||||
region:Kill()
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
--Create Backdrop
|
||||
frame:CreateBackdrop('Transparent')
|
||||
frame.backdrop:Point('TOPLEFT', frame, 'TOPLEFT', 16, -3)
|
||||
frame.backdrop:Point('BOTTOMRIGHT', frame, 'BOTTOMRIGHT', -16, 16)
|
||||
|
||||
frame.PortraitFrame.PortraitRing:Hide()
|
||||
frame.PortraitFrame.PortraitRingQuality:SetTexture()
|
||||
frame.PortraitFrame.LevelBorder:SetAlpha(0)
|
||||
|
||||
local level = frame.PortraitFrame.Level
|
||||
level:ClearAllPoints()
|
||||
level:Point('BOTTOM', frame.PortraitFrame, 0, 12)
|
||||
|
||||
local squareBG = CreateFrame('Frame', nil, frame.PortraitFrame, 'BackdropTemplate')
|
||||
squareBG:SetFrameLevel(frame.PortraitFrame:GetFrameLevel()-1)
|
||||
squareBG:Point('TOPLEFT', 3, -3)
|
||||
squareBG:Point('BOTTOMRIGHT', -3, 11)
|
||||
squareBG:SetTemplate()
|
||||
frame.PortraitFrame.squareBG = squareBG
|
||||
|
||||
local cover = frame.PortraitFrame.PortraitRingCover
|
||||
if cover then
|
||||
cover:SetColorTexture(0, 0, 0)
|
||||
cover:SetAllPoints(squareBG)
|
||||
end
|
||||
|
||||
frame.isSkinned = true
|
||||
end
|
||||
|
||||
local color = ITEM_QUALITY_COLORS[quality]
|
||||
if color then
|
||||
frame.PortraitFrame.squareBG:SetBackdropBorderColor(color.r, color.g, color.b)
|
||||
else
|
||||
frame.PortraitFrame.squareBG:SetBackdropBorderColor(0, 0, 0)
|
||||
end
|
||||
end
|
||||
|
||||
local function SkinGarrisonShipFollowerAlert(frame)
|
||||
if not frame.isSkinned then
|
||||
frame.glow:Kill()
|
||||
frame.shine:Kill()
|
||||
frame.FollowerBG:SetAlpha(0)
|
||||
frame.DieIcon:SetAlpha(0)
|
||||
--Background
|
||||
frame.Background:Kill()
|
||||
--Create Backdrop
|
||||
frame:CreateBackdrop('Transparent')
|
||||
frame.backdrop:Point('TOPLEFT', frame, 'TOPLEFT', 16, -3)
|
||||
frame.backdrop:Point('BOTTOMRIGHT', frame, 'BOTTOMRIGHT', -16, 16)
|
||||
|
||||
frame.isSkinned = true
|
||||
end
|
||||
end
|
||||
|
||||
local function SkinGarrisonTalentAlert(frame)
|
||||
if not frame.isSkinned then
|
||||
frame:GetRegions():Hide()
|
||||
frame.glow:Kill()
|
||||
frame.shine:Kill()
|
||||
--Icon
|
||||
frame.Icon:SetTexCoord(unpack(E.TexCoords))
|
||||
frame.Icon:SetDrawLayer('ARTWORK')
|
||||
frame.Icon.b = CreateFrame('Frame', nil, frame, 'BackdropTemplate')
|
||||
frame.Icon.b:SetTemplate()
|
||||
frame.Icon.b:SetOutside(frame.Icon)
|
||||
frame.Icon:SetParent(frame.Icon.b)
|
||||
--Create Backdrop
|
||||
frame:CreateBackdrop('Transparent')
|
||||
frame.backdrop:Point('TOPLEFT', frame, 'TOPLEFT', 8, -2)
|
||||
frame.backdrop:Point('BOTTOMRIGHT', frame, 'BOTTOMRIGHT', -6, 2)
|
||||
|
||||
frame.isSkinned = true
|
||||
end
|
||||
end
|
||||
|
||||
local function SkinGarrisonBuildingAlert(frame)
|
||||
if not frame.isSkinned then
|
||||
frame.glow:Kill()
|
||||
frame.shine:Kill()
|
||||
frame:GetRegions():Hide()
|
||||
--Create Backdrop
|
||||
frame:CreateBackdrop('Transparent')
|
||||
frame.backdrop:Point('TOPLEFT', frame, 'TOPLEFT', 8, -8)
|
||||
frame.backdrop:Point('BOTTOMRIGHT', frame, 'BOTTOMRIGHT', -6, 8)
|
||||
--Icon
|
||||
frame.Icon:SetTexCoord(0.1, 0.9, 0.1, 0.9)
|
||||
frame.Icon:SetDrawLayer('ARTWORK')
|
||||
frame.Icon.b = CreateFrame('Frame', nil, frame, 'BackdropTemplate')
|
||||
frame.Icon.b:SetTemplate()
|
||||
frame.Icon.b:SetOutside(frame.Icon)
|
||||
frame.Icon:SetParent(frame.Icon.b)
|
||||
|
||||
frame.isSkinned = true
|
||||
end
|
||||
end
|
||||
|
||||
local function SkinGarrisonMissionAlert(frame)
|
||||
if not frame.isSkinned then
|
||||
frame.glow:Kill()
|
||||
frame.shine:Kill()
|
||||
frame.IconBG:Hide()
|
||||
frame.Background:Kill()
|
||||
--Icon
|
||||
frame.MissionType:SetTexCoord(unpack(E.TexCoords))
|
||||
frame.MissionType:SetDrawLayer('ARTWORK')
|
||||
frame.MissionType.b = CreateFrame('Frame', nil, frame, 'BackdropTemplate')
|
||||
frame.MissionType.b:SetTemplate()
|
||||
frame.MissionType.b:SetOutside(frame.MissionType)
|
||||
frame.MissionType:SetParent(frame.MissionType.b)
|
||||
--Create Backdrop
|
||||
frame:CreateBackdrop('Transparent')
|
||||
frame.backdrop:Point('TOPLEFT', frame, 'TOPLEFT', 8, -2)
|
||||
frame.backdrop:Point('BOTTOMRIGHT', frame, 'BOTTOMRIGHT', -6, 2)
|
||||
|
||||
frame.isSkinned = true
|
||||
end
|
||||
end
|
||||
|
||||
local function SkinGarrisonShipMissionAlert(frame)
|
||||
if not frame.isSkinned then
|
||||
frame.Background:Kill()
|
||||
frame.glow:Kill()
|
||||
frame.shine:Kill()
|
||||
--Icon
|
||||
frame.MissionType:SetTexCoord(unpack(E.TexCoords))
|
||||
frame.MissionType:SetDrawLayer('ARTWORK')
|
||||
frame.MissionType.b = CreateFrame('Frame', nil, frame, 'BackdropTemplate')
|
||||
frame.MissionType.b:SetTemplate()
|
||||
frame.MissionType.b:SetOutside(frame.MissionType)
|
||||
frame.MissionType:SetParent(frame.MissionType.b)
|
||||
--Create Backdrop
|
||||
frame:CreateBackdrop('Transparent')
|
||||
frame.backdrop:Point('TOPLEFT', frame, 'TOPLEFT', 8, -2)
|
||||
frame.backdrop:Point('BOTTOMRIGHT', frame, 'BOTTOMRIGHT', -6, 2)
|
||||
|
||||
frame.isSkinned = true
|
||||
end
|
||||
end
|
||||
|
||||
local function SkinGarrisonRandomMissionAlert(frame, _, _, _, _, _, quality)
|
||||
if not frame.isSkinned then
|
||||
frame.Background:Kill()
|
||||
frame.Blank:Kill()
|
||||
frame.IconBG:Kill()
|
||||
frame.glow:Kill()
|
||||
frame.shine:Kill()
|
||||
--Icon
|
||||
frame.MissionType:SetTexCoord(unpack(E.TexCoords))
|
||||
frame.MissionType:SetDrawLayer('ARTWORK')
|
||||
frame.MissionType.b = CreateFrame('Frame', nil, frame, 'BackdropTemplate')
|
||||
frame.MissionType.b:SetTemplate()
|
||||
frame.MissionType.b:SetOutside(frame.MissionType)
|
||||
frame.MissionType:SetParent(frame.MissionType.b)
|
||||
--Create Backdrop
|
||||
frame:CreateBackdrop('Transparent')
|
||||
frame.backdrop:Point('TOPLEFT', frame, 'TOPLEFT', 8, -2)
|
||||
frame.backdrop:Point('BOTTOMRIGHT', frame, 'BOTTOMRIGHT', -6, 2)
|
||||
|
||||
frame.isSkinned = true
|
||||
end
|
||||
|
||||
if frame.PortraitFrame and frame.PortraitFrame.squareBG then
|
||||
local color = quality and ITEM_QUALITY_COLORS[quality]
|
||||
if color then
|
||||
frame.PortraitFrame.squareBG:SetBackdropBorderColor(color.r, color.g, color.b)
|
||||
else
|
||||
frame.PortraitFrame.squareBG:SetBackdropBorderColor(0, 0, 0)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function SkinLegendaryItemAlert(frame, itemLink)
|
||||
if not frame.isSkinned then
|
||||
frame.Background:Kill()
|
||||
frame.Background2:Kill()
|
||||
frame.Background3:Kill()
|
||||
frame.Ring1:Kill()
|
||||
frame.Particles3:Kill()
|
||||
frame.Particles2:Kill()
|
||||
frame.Particles1:Kill()
|
||||
frame.Starglow:Kill()
|
||||
frame.glow:Kill()
|
||||
frame.shine:Kill()
|
||||
--Icon
|
||||
frame.Icon:SetTexCoord(unpack(E.TexCoords))
|
||||
frame.Icon:SetDrawLayer('ARTWORK')
|
||||
frame.Icon.b = CreateFrame('Frame', nil, frame, 'BackdropTemplate')
|
||||
frame.Icon.b:SetTemplate()
|
||||
frame.Icon.b:SetOutside(frame.Icon)
|
||||
frame.Icon:SetParent(frame.Icon.b)
|
||||
--Create Backdrop
|
||||
frame:CreateBackdrop('Transparent')
|
||||
frame.backdrop:Point('TOPLEFT', frame, 'TOPLEFT', 20, -20)
|
||||
frame.backdrop:Point('BOTTOMRIGHT', frame, 'BOTTOMRIGHT', -20, 20)
|
||||
|
||||
frame.isSkinned = true
|
||||
end
|
||||
|
||||
local _, _, itemRarity = GetItemInfo(itemLink)
|
||||
local color = ITEM_QUALITY_COLORS[itemRarity]
|
||||
if color then
|
||||
frame.Icon.b:SetBackdropBorderColor(color.r, color.g, color.b)
|
||||
else
|
||||
frame.Icon.b:SetBackdropBorderColor(0, 0, 0)
|
||||
end
|
||||
end
|
||||
|
||||
local function SkinLootWonAlert(frame)
|
||||
if not frame.hooked then
|
||||
hooksecurefunc(frame, 'SetAlpha', forceAlpha)
|
||||
frame.hooked = true
|
||||
end
|
||||
|
||||
frame:SetAlpha(1)
|
||||
frame.Background:Kill()
|
||||
|
||||
local lootItem = frame.lootItem or frame
|
||||
lootItem.Icon:SetTexCoord(0.1, 0.9, 0.1, 0.9)
|
||||
lootItem.Icon:SetDrawLayer('BORDER')
|
||||
lootItem.IconBorder:Kill()
|
||||
lootItem.SpecRing:SetTexture('')
|
||||
|
||||
frame.glow:Kill()
|
||||
frame.shine:Kill()
|
||||
frame.BGAtlas:Kill()
|
||||
frame.PvPBackground:Kill()
|
||||
|
||||
-- Icon border
|
||||
if not lootItem.Icon.b then
|
||||
lootItem.Icon.b = CreateFrame('Frame', nil, frame, 'BackdropTemplate')
|
||||
lootItem.Icon.b:SetTemplate()
|
||||
lootItem.Icon.b:SetOutside(lootItem.Icon)
|
||||
lootItem.Icon:SetParent(lootItem.Icon.b)
|
||||
end
|
||||
|
||||
if not frame.backdrop then
|
||||
frame:CreateBackdrop('Transparent')
|
||||
frame.backdrop:Point('TOPLEFT', lootItem.Icon.b, 'TOPLEFT', -4, 4)
|
||||
frame.backdrop:Point('BOTTOMRIGHT', lootItem.Icon.b, 'BOTTOMRIGHT', 180, -4)
|
||||
end
|
||||
end
|
||||
|
||||
local function SkinLootUpgradeAlert(frame)
|
||||
frame:SetAlpha(1)
|
||||
|
||||
if not frame.hooked then
|
||||
hooksecurefunc(frame, 'SetAlpha', forceAlpha)
|
||||
frame.hooked = true
|
||||
end
|
||||
|
||||
frame.Background:Kill()
|
||||
frame.Sheen:Kill()
|
||||
frame.BorderGlow:Kill()
|
||||
frame.Icon:SetTexCoord(0.1, 0.9, 0.1, 0.9)
|
||||
frame.Icon:SetDrawLayer('BORDER', 5)
|
||||
frame.Icon:ClearAllPoints()
|
||||
frame.Icon:SetInside(frame.BaseQualityBorder, 5, 5)
|
||||
|
||||
-- Icon border
|
||||
if not frame.Icon.b then
|
||||
frame.Icon.b = CreateFrame('Frame', nil, frame, 'BackdropTemplate')
|
||||
frame.Icon.b:SetTemplate()
|
||||
frame.Icon.b:SetOutside(frame.Icon)
|
||||
frame.Icon:SetParent(frame.Icon.b)
|
||||
end
|
||||
|
||||
if not frame.backdrop then
|
||||
frame:CreateBackdrop('Transparent')
|
||||
frame.backdrop:Point('TOPLEFT', frame.Icon.b, 'TOPLEFT', -8, 8)
|
||||
frame.backdrop:Point('BOTTOMRIGHT', frame.Icon.b, 'BOTTOMRIGHT', 180, -8)
|
||||
end
|
||||
end
|
||||
|
||||
local function SkinMoneyWonAlert(frame)
|
||||
frame:SetAlpha(1)
|
||||
|
||||
if not frame.hooked then
|
||||
hooksecurefunc(frame, 'SetAlpha', forceAlpha)
|
||||
frame.hooked = true
|
||||
end
|
||||
|
||||
frame.Background:Kill()
|
||||
frame.Icon:SetTexCoord(0.1, 0.9, 0.1, 0.9)
|
||||
frame.IconBorder:Kill()
|
||||
|
||||
-- Icon border
|
||||
if not frame.Icon.b then
|
||||
frame.Icon.b = CreateFrame('Frame', nil, frame, 'BackdropTemplate')
|
||||
frame.Icon.b:SetTemplate()
|
||||
frame.Icon.b:SetOutside(frame.Icon)
|
||||
frame.Icon:SetParent(frame.Icon.b)
|
||||
end
|
||||
|
||||
if not frame.backdrop then
|
||||
frame:CreateBackdrop('Transparent')
|
||||
frame.backdrop:Point('TOPLEFT', frame.Icon.b, 'TOPLEFT', -4, 4)
|
||||
frame.backdrop:Point('BOTTOMRIGHT', frame.Icon.b, 'BOTTOMRIGHT', 180, -4)
|
||||
end
|
||||
end
|
||||
|
||||
local function SkinEntitlementDeliveredAlert(frame)
|
||||
frame:SetAlpha(1)
|
||||
|
||||
if not frame.hooked then
|
||||
hooksecurefunc(frame, 'SetAlpha', forceAlpha)
|
||||
frame.hooked = true
|
||||
end
|
||||
|
||||
if not frame.backdrop then
|
||||
frame:CreateBackdrop('Transparent')
|
||||
frame.backdrop:Point('TOPLEFT', frame, 'TOPLEFT', 10, -6)
|
||||
frame.backdrop:Point('BOTTOMRIGHT', frame, 'BOTTOMRIGHT', -14, 6)
|
||||
end
|
||||
|
||||
-- Background
|
||||
frame.Background:Kill()
|
||||
frame.glow:Kill()
|
||||
frame.shine:Kill()
|
||||
|
||||
-- Icon
|
||||
frame.Icon:SetTexCoord(0.1, 0.9, 0.1, 0.9)
|
||||
frame.Icon:ClearAllPoints()
|
||||
frame.Icon:Point('LEFT', frame.backdrop, 9, 0)
|
||||
|
||||
-- Icon border
|
||||
if not frame.Icon.b then
|
||||
frame.Icon.b = CreateFrame('Frame', nil, frame, 'BackdropTemplate')
|
||||
frame.Icon.b:SetTemplate()
|
||||
frame.Icon.b:Point('TOPLEFT', frame.Icon, 'TOPLEFT', -2, 2)
|
||||
frame.Icon.b:Point('BOTTOMRIGHT', frame.Icon, 'BOTTOMRIGHT', 2, -2)
|
||||
frame.Icon:SetParent(frame.Icon.b)
|
||||
end
|
||||
end
|
||||
|
||||
local function SkinRafRewardDeliveredAlert(frame)
|
||||
frame:SetAlpha(1)
|
||||
|
||||
if not frame.hooked then
|
||||
hooksecurefunc(frame, 'SetAlpha', forceAlpha)
|
||||
frame.hooked = true
|
||||
end
|
||||
|
||||
if not frame.backdrop then
|
||||
frame:CreateBackdrop('Transparent')
|
||||
frame.backdrop:Point('TOPLEFT', frame, 'TOPLEFT', 10, -6)
|
||||
frame.backdrop:Point('BOTTOMRIGHT', frame, 'BOTTOMRIGHT', -14, 6)
|
||||
end
|
||||
|
||||
-- Background
|
||||
frame.StandardBackground:Kill()
|
||||
frame.glow:Kill()
|
||||
frame.shine:Kill()
|
||||
|
||||
-- Icon
|
||||
frame.Icon:SetTexCoord(0.1, 0.9, 0.1, 0.9)
|
||||
frame.Icon:ClearAllPoints()
|
||||
frame.Icon:Point('LEFT', frame.backdrop, 9, 0)
|
||||
|
||||
-- Icon border
|
||||
if not frame.Icon.b then
|
||||
frame.Icon.b = CreateFrame('Frame', nil, frame, 'BackdropTemplate')
|
||||
frame.Icon.b:SetTemplate()
|
||||
frame.Icon.b:Point('TOPLEFT', frame.Icon, 'TOPLEFT', -2, 2)
|
||||
frame.Icon.b:Point('BOTTOMRIGHT', frame.Icon, 'BOTTOMRIGHT', 2, -2)
|
||||
frame.Icon:SetParent(frame.Icon.b)
|
||||
end
|
||||
end
|
||||
|
||||
local function SkinDigsiteCompleteAlert(frame)
|
||||
frame:SetAlpha(1)
|
||||
|
||||
if not frame.hooked then
|
||||
hooksecurefunc(frame, 'SetAlpha', forceAlpha)
|
||||
frame.hooked = true
|
||||
end
|
||||
|
||||
if not frame.backdrop then
|
||||
frame:CreateBackdrop('Transparent')
|
||||
frame.backdrop:Point('TOPLEFT', frame, 'TOPLEFT', -16, -6)
|
||||
frame.backdrop:Point('BOTTOMRIGHT', frame, 'BOTTOMRIGHT', 13, 6)
|
||||
end
|
||||
|
||||
frame.glow:Kill()
|
||||
frame.shine:Kill()
|
||||
frame:GetRegions():Hide()
|
||||
frame.DigsiteTypeTexture:Point('LEFT', -10, -14)
|
||||
end
|
||||
|
||||
local function SkinNewRecipeLearnedAlert(frame)
|
||||
frame:SetAlpha(1)
|
||||
|
||||
if not frame.hooked then
|
||||
hooksecurefunc(frame, 'SetAlpha', forceAlpha)
|
||||
frame.hooked = true
|
||||
end
|
||||
|
||||
if not frame.backdrop then
|
||||
frame:CreateBackdrop('Transparent')
|
||||
frame.backdrop:Point('TOPLEFT', frame, 'TOPLEFT', 19, -6)
|
||||
frame.backdrop:Point('BOTTOMRIGHT', frame, 'BOTTOMRIGHT', -23, 6)
|
||||
end
|
||||
|
||||
frame.glow:Kill()
|
||||
frame.shine:Kill()
|
||||
frame:GetRegions():Hide()
|
||||
|
||||
frame.Icon:SetMask('')
|
||||
frame.Icon:SetTexCoord(0.1, 0.9, 0.1, 0.9)
|
||||
frame.Icon:SetDrawLayer('BORDER', 5)
|
||||
frame.Icon:ClearAllPoints()
|
||||
frame.Icon:Point('LEFT', frame.backdrop, 9, 0)
|
||||
|
||||
-- Icon border
|
||||
if not frame.Icon.b then
|
||||
frame.Icon.b = CreateFrame('Frame', nil, frame, 'BackdropTemplate')
|
||||
frame.Icon.b:SetTemplate()
|
||||
frame.Icon.b:Point('TOPLEFT', frame.Icon, 'TOPLEFT', -2, 2)
|
||||
frame.Icon.b:Point('BOTTOMRIGHT', frame.Icon, 'BOTTOMRIGHT', 2, -2)
|
||||
frame.Icon:SetParent(frame.Icon.b)
|
||||
end
|
||||
end
|
||||
|
||||
local function SkinNewPetAlert(frame)
|
||||
frame:SetAlpha(1)
|
||||
|
||||
if not frame.hooked then
|
||||
hooksecurefunc(frame, 'SetAlpha', forceAlpha)
|
||||
frame.hooked = true
|
||||
end
|
||||
|
||||
frame.Background:Kill()
|
||||
frame.IconBorder:Kill()
|
||||
|
||||
frame.Icon:SetMask('')
|
||||
frame.Icon:SetTexCoord(unpack(E.TexCoords))
|
||||
frame.Icon:SetDrawLayer('BORDER', 5)
|
||||
|
||||
-- Icon border
|
||||
if not frame.Icon.b then
|
||||
frame.Icon.b = CreateFrame('Frame', nil, frame, 'BackdropTemplate')
|
||||
frame.Icon.b:SetTemplate()
|
||||
frame.Icon.b:Point('TOPLEFT', frame.Icon, 'TOPLEFT', -2, 2)
|
||||
frame.Icon.b:Point('BOTTOMRIGHT', frame.Icon, 'BOTTOMRIGHT', 2, -2)
|
||||
frame.Icon:SetParent(frame.Icon.b)
|
||||
end
|
||||
|
||||
if not frame.backdrop then
|
||||
frame:CreateBackdrop('Transparent')
|
||||
frame.backdrop:Point('TOPLEFT', frame.Icon.b, 'TOPLEFT', -8, 8)
|
||||
frame.backdrop:Point('BOTTOMRIGHT', frame.Icon.b, 'BOTTOMRIGHT', 180, -8)
|
||||
end
|
||||
end
|
||||
|
||||
function S:AlertSystem()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.alertframes) then return end
|
||||
|
||||
-- Achievements
|
||||
hooksecurefunc(_G.AchievementAlertSystem, 'setUpFunction', SkinAchievementAlert)
|
||||
hooksecurefunc(_G.CriteriaAlertSystem, 'setUpFunction', SkinCriteriaAlert)
|
||||
|
||||
-- Encounters
|
||||
hooksecurefunc(_G.DungeonCompletionAlertSystem, 'setUpFunction', SkinDungeonCompletionAlert)
|
||||
hooksecurefunc(_G.GuildChallengeAlertSystem, 'setUpFunction', SkinGuildChallengeAlert)
|
||||
hooksecurefunc(_G.InvasionAlertSystem, 'setUpFunction', SkinInvasionAlert)
|
||||
hooksecurefunc(_G.ScenarioAlertSystem, 'setUpFunction', SkinScenarioAlert)
|
||||
hooksecurefunc(_G.WorldQuestCompleteAlertSystem, 'setUpFunction', SkinWorldQuestCompleteAlert)
|
||||
|
||||
-- Garrisons
|
||||
hooksecurefunc(_G.GarrisonFollowerAlertSystem, 'setUpFunction', SkinGarrisonFollowerAlert)
|
||||
hooksecurefunc(_G.GarrisonShipFollowerAlertSystem, 'setUpFunction', SkinGarrisonShipFollowerAlert)
|
||||
hooksecurefunc(_G.GarrisonTalentAlertSystem, 'setUpFunction', SkinGarrisonTalentAlert)
|
||||
hooksecurefunc(_G.GarrisonBuildingAlertSystem, 'setUpFunction', SkinGarrisonBuildingAlert)
|
||||
hooksecurefunc(_G.GarrisonMissionAlertSystem, 'setUpFunction', SkinGarrisonMissionAlert)
|
||||
hooksecurefunc(_G.GarrisonShipMissionAlertSystem, 'setUpFunction', SkinGarrisonShipMissionAlert)
|
||||
hooksecurefunc(_G.GarrisonRandomMissionAlertSystem, 'setUpFunction', SkinGarrisonRandomMissionAlert)
|
||||
|
||||
-- Honor
|
||||
hooksecurefunc(_G.HonorAwardedAlertSystem, 'setUpFunction', SkinHonorAwardedAlert)
|
||||
|
||||
-- Loot
|
||||
hooksecurefunc(_G.LegendaryItemAlertSystem, 'setUpFunction', SkinLegendaryItemAlert)
|
||||
hooksecurefunc(_G.LootAlertSystem, 'setUpFunction', SkinLootWonAlert)
|
||||
hooksecurefunc(_G.LootUpgradeAlertSystem, 'setUpFunction', SkinLootUpgradeAlert)
|
||||
hooksecurefunc(_G.MoneyWonAlertSystem, 'setUpFunction', SkinMoneyWonAlert)
|
||||
hooksecurefunc(_G.EntitlementDeliveredAlertSystem, 'setUpFunction', SkinEntitlementDeliveredAlert) -- 8.2.5 New
|
||||
hooksecurefunc(_G.RafRewardDeliveredAlertSystem, 'setUpFunction', SkinRafRewardDeliveredAlert) -- 8.2.5 New
|
||||
-- Professions
|
||||
hooksecurefunc(_G.DigsiteCompleteAlertSystem, 'setUpFunction', SkinDigsiteCompleteAlert)
|
||||
hooksecurefunc(_G.NewRecipeLearnedAlertSystem, 'setUpFunction', SkinNewRecipeLearnedAlert)
|
||||
|
||||
-- Pets/Mounts
|
||||
hooksecurefunc(_G.NewPetAlertSystem, 'setUpFunction', SkinNewPetAlert)
|
||||
hooksecurefunc(_G.NewMountAlertSystem, 'setUpFunction', SkinNewPetAlert)
|
||||
hooksecurefunc(_G.NewToyAlertSystem, 'setUpFunction', SkinNewPetAlert)
|
||||
|
||||
--Bonus Roll Money
|
||||
local frame = _G.BonusRollMoneyWonFrame
|
||||
frame:SetAlpha(1)
|
||||
hooksecurefunc(frame, 'SetAlpha', forceAlpha)
|
||||
frame.Background:Kill()
|
||||
frame.Icon:SetTexCoord(0.1, 0.9, 0.1, 0.9)
|
||||
frame.IconBorder:Kill()
|
||||
-- Icon border
|
||||
frame.Icon.b = CreateFrame('Frame', nil, frame, 'BackdropTemplate')
|
||||
frame.Icon.b:SetTemplate()
|
||||
frame.Icon.b:SetOutside(frame.Icon)
|
||||
frame.Icon:SetParent(frame.Icon.b)
|
||||
--Create Backdrop
|
||||
frame:CreateBackdrop('Transparent')
|
||||
frame.backdrop:Point('TOPLEFT', frame.Icon.b, 'TOPLEFT', -4, 4)
|
||||
frame.backdrop:Point('BOTTOMRIGHT', frame.Icon.b, 'BOTTOMRIGHT', 180, -4)
|
||||
|
||||
--Bonus Roll Loot
|
||||
frame = _G.BonusRollLootWonFrame
|
||||
frame:SetAlpha(1)
|
||||
hooksecurefunc(frame, 'SetAlpha', forceAlpha)
|
||||
frame.Background:Kill()
|
||||
frame.glow:Kill()
|
||||
frame.shine:Kill()
|
||||
|
||||
local lootItem = frame.lootItem or frame
|
||||
lootItem.Icon:SetTexCoord(0.1, 0.9, 0.1, 0.9)
|
||||
lootItem.IconBorder:Kill()
|
||||
-- Icon border
|
||||
lootItem.Icon.b = CreateFrame('Frame', nil, frame, 'BackdropTemplate')
|
||||
lootItem.Icon.b:SetTemplate()
|
||||
lootItem.Icon.b:SetOutside(lootItem.Icon)
|
||||
lootItem.Icon:SetParent(lootItem.Icon.b)
|
||||
--Create Backdrop
|
||||
frame:CreateBackdrop('Transparent')
|
||||
frame.backdrop:Point('TOPLEFT', lootItem.Icon.b, 'TOPLEFT', -4, 4)
|
||||
frame.backdrop:Point('BOTTOMRIGHT', lootItem.Icon.b, 'BOTTOMRIGHT', 180, -4)
|
||||
end
|
||||
|
||||
S:AddCallback('AlertSystem')
|
||||
57
Modules/Skins/Blizzard/AlliedRaces.lua
Normal file
57
Modules/Skins/Blizzard/AlliedRaces.lua
Normal file
@@ -0,0 +1,57 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local select = select
|
||||
|
||||
function S:Blizzard_AlliedRacesUI()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.alliedRaces) then return end
|
||||
|
||||
local AlliedRacesFrame = _G.AlliedRacesFrame
|
||||
if E.private.skins.parchmentRemoverEnable then
|
||||
S:HandlePortraitFrame(AlliedRacesFrame)
|
||||
select(2, AlliedRacesFrame.ModelFrame:GetRegions()):Hide()
|
||||
|
||||
local scrollFrame = AlliedRacesFrame.RaceInfoFrame.ScrollFrame
|
||||
scrollFrame.ScrollBar.Border:Hide()
|
||||
scrollFrame.ScrollBar.ScrollUpBorder:Hide()
|
||||
scrollFrame.ScrollBar.ScrollDownBorder:Hide()
|
||||
S:HandleScrollBar(scrollFrame.ScrollBar)
|
||||
|
||||
scrollFrame.Child.ObjectivesFrame:StripTextures()
|
||||
scrollFrame.Child.ObjectivesFrame:CreateBackdrop('Transparent')
|
||||
|
||||
AlliedRacesFrame.RaceInfoFrame.AlliedRacesRaceName:SetTextColor(1, .8, 0)
|
||||
scrollFrame.Child.RaceDescriptionText:SetTextColor(1, 1, 1)
|
||||
scrollFrame.Child.RacialTraitsLabel:SetTextColor(1, .8, 0)
|
||||
else
|
||||
AlliedRacesFrame.NineSlice:SetAlpha(0)
|
||||
_G.AlliedRacesFramePortrait:SetAlpha(0)
|
||||
_G.AlliedRacesFrameBg:SetAlpha(0)
|
||||
AlliedRacesFrame.TitleBg:SetAlpha(0)
|
||||
AlliedRacesFrame.ModelFrame:StripTextures()
|
||||
|
||||
AlliedRacesFrame:CreateBackdrop('Transparent')
|
||||
|
||||
local scrollFrame = AlliedRacesFrame.RaceInfoFrame.ScrollFrame
|
||||
scrollFrame.ScrollBar.Border:Hide()
|
||||
scrollFrame.ScrollBar.ScrollUpBorder:Hide()
|
||||
scrollFrame.ScrollBar.ScrollDownBorder:Hide()
|
||||
S:HandleScrollBar(scrollFrame.ScrollBar)
|
||||
|
||||
S:HandleCloseButton(_G.AlliedRacesFrameCloseButton)
|
||||
end
|
||||
|
||||
AlliedRacesFrame:HookScript('OnShow', function(s)
|
||||
for button in s.abilityPool:EnumerateActive() do
|
||||
select(3, button:GetRegions()):Hide()
|
||||
S:HandleIcon(button.Icon, true)
|
||||
|
||||
if E.private.skins.parchmentRemoverEnable then
|
||||
button.Text:SetTextColor(1, 1, 1)
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_AlliedRacesUI')
|
||||
41
Modules/Skins/Blizzard/AnimaDiversion.lua
Normal file
41
Modules/Skins/Blizzard/AnimaDiversion.lua
Normal file
@@ -0,0 +1,41 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
function S:Blizzard_AnimaDiversionUI()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.animaDiversion) then return end
|
||||
|
||||
local frame = _G.AnimaDiversionFrame
|
||||
frame:StripTextures()
|
||||
frame:CreateBackdrop('Transparent')
|
||||
|
||||
S:HandleCloseButton(frame.CloseButton)
|
||||
frame.CloseButton:ClearAllPoints()
|
||||
frame.CloseButton:Point('TOPRIGHT', frame, 'TOPRIGHT', 4, 4) --default is -5, -5
|
||||
|
||||
frame.AnimaDiversionCurrencyFrame.Background:SetAlpha(0)
|
||||
S:HandleIcon(frame.AnimaDiversionCurrencyFrame.CurrencyFrame.CurrencyIcon)
|
||||
|
||||
S:HandleButton(frame.ReinforceInfoFrame.AnimaNodeReinforceButton)
|
||||
|
||||
-- Tooltip
|
||||
local InfoFrame = frame.SelectPinInfoFrame
|
||||
InfoFrame:StripTextures()
|
||||
InfoFrame:CreateBackdrop()
|
||||
S:HandleButton(InfoFrame.SelectButton)
|
||||
S:HandleCloseButton(InfoFrame.CloseButton)
|
||||
|
||||
hooksecurefunc(InfoFrame, 'SetupCosts', function(frame)
|
||||
for currency in frame.currencyPool:EnumerateActive() do
|
||||
if not currency.IsSkinned then
|
||||
S:HandleIcon(currency.CurrencyIcon)
|
||||
|
||||
currency.IsSkinned = true
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_AnimaDiversionUI')
|
||||
77
Modules/Skins/Blizzard/Archaeology.lua
Normal file
77
Modules/Skins/Blizzard/Archaeology.lua
Normal file
@@ -0,0 +1,77 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local pairs, select = pairs, select
|
||||
|
||||
function S:Blizzard_ArchaeologyUI()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.archaeology) then return end
|
||||
|
||||
local ArchaeologyFrame = _G.ArchaeologyFrame
|
||||
S:HandlePortraitFrame(ArchaeologyFrame)
|
||||
S:HandleButton(ArchaeologyFrame.artifactPage.solveFrame.solveButton, true)
|
||||
S:HandleButton(ArchaeologyFrame.artifactPage.backButton, true)
|
||||
|
||||
S:HandleDropDownBox(_G.ArchaeologyFrame.raceFilterDropDown)
|
||||
_G.ArchaeologyFrame.raceFilterDropDown.Text:ClearAllPoints()
|
||||
_G.ArchaeologyFrame.raceFilterDropDown.Text:Point('LEFT', _G.ArchaeologyFrame.raceFilterDropDown.backdrop, 'LEFT', 4, 0)
|
||||
|
||||
if E.private.skins.parchmentRemoverEnable then
|
||||
_G.ArchaeologyFrameBgLeft:Kill()
|
||||
_G.ArchaeologyFrameBgRight:Kill()
|
||||
|
||||
ArchaeologyFrame.completedPage.infoText:SetTextColor(1, 1, 1)
|
||||
ArchaeologyFrame.helpPage.titleText:SetTextColor(1, 1, 0)
|
||||
|
||||
_G.ArchaeologyFrameHelpPageDigTitle:SetTextColor(1, 1, 0)
|
||||
_G.ArchaeologyFrameHelpPageHelpScrollHelpText:SetTextColor(1, 1, 1)
|
||||
|
||||
ArchaeologyFrame.artifactPage.historyTitle:SetTextColor(1, 1, 0)
|
||||
_G.ArchaeologyFrameArtifactPageHistoryScrollChildText:SetTextColor(1, 1, 1)
|
||||
|
||||
for i = 1, _G.ARCHAEOLOGY_MAX_RACES do
|
||||
local frame = ArchaeologyFrame.summaryPage['race'..i]
|
||||
local artifact = ArchaeologyFrame.completedPage['artifact'..i]
|
||||
frame.raceName:SetTextColor(1, 1, 1)
|
||||
|
||||
artifact.border:SetTexture()
|
||||
S:HandleIcon(artifact.icon, true)
|
||||
artifact.artifactName:SetTextColor(1, .8, .1)
|
||||
artifact.artifactSubText:SetTextColor(0.6, 0.6, 0.6)
|
||||
end
|
||||
|
||||
for _, Frame in pairs({ ArchaeologyFrame.completedPage, ArchaeologyFrame.summaryPage }) do
|
||||
for i = 1, Frame:GetNumRegions() do
|
||||
local Region = select(i, Frame:GetRegions())
|
||||
if Region:IsObjectType('FontString') then
|
||||
Region:SetTextColor(1, .8, .1)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
S:HandleButton(ArchaeologyFrame.summaryPage.prevPageButton)
|
||||
S:HandleButton(ArchaeologyFrame.summaryPage.nextPageButton)
|
||||
S:HandleButton(ArchaeologyFrame.completedPage.prevPageButton)
|
||||
S:HandleButton(ArchaeologyFrame.completedPage.nextPageButton)
|
||||
|
||||
ArchaeologyFrame.rankBar:StripTextures()
|
||||
ArchaeologyFrame.rankBar:SetStatusBarTexture(E.media.normTex)
|
||||
ArchaeologyFrame.rankBar:CreateBackdrop()
|
||||
E:RegisterStatusBar(ArchaeologyFrame.rankBar)
|
||||
|
||||
S:HandleStatusBar(ArchaeologyFrame.artifactPage.solveFrame.statusBar, {0.7, 0.2, 0})
|
||||
S:HandleIcon(_G.ArchaeologyFrameArtifactPageIcon)
|
||||
|
||||
_G.ArcheologyDigsiteProgressBar:StripTextures()
|
||||
S:HandleStatusBar(_G.ArcheologyDigsiteProgressBar.FillBar, {0.7, 0.2, 0})
|
||||
_G.ArcheologyDigsiteProgressBar.BarTitle:FontTemplate(nil, nil, 'OUTLINE')
|
||||
_G.ArcheologyDigsiteProgressBar:ClearAllPoints()
|
||||
_G.ArcheologyDigsiteProgressBar:Point('TOP', _G.UIParent, 'TOP', 0, -400)
|
||||
E:RegisterStatusBar(_G.ArcheologyDigsiteProgressBar.FillBar)
|
||||
|
||||
_G.UIPARENT_MANAGED_FRAME_POSITIONS.ArcheologyDigsiteProgressBar = nil
|
||||
E:CreateMover(_G.ArcheologyDigsiteProgressBar, 'DigSiteProgressBarMover', L["Archeology Progress Bar"])
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_ArchaeologyUI')
|
||||
58
Modules/Skins/Blizzard/Artifact.lua
Normal file
58
Modules/Skins/Blizzard/Artifact.lua
Normal file
@@ -0,0 +1,58 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local select = select
|
||||
local unpack = unpack
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
function S:Blizzard_ArtifactUI()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.artifact) then return end
|
||||
|
||||
local ArtifactFrame = _G.ArtifactFrame
|
||||
ArtifactFrame:StripTextures()
|
||||
ArtifactFrame:CreateBackdrop('Transparent')
|
||||
ArtifactFrame.BorderFrame:StripTextures()
|
||||
S:HandleCloseButton(ArtifactFrame.CloseButton)
|
||||
|
||||
for i = 1, 2 do
|
||||
S:HandleTab(_G['ArtifactFrameTab' .. i])
|
||||
end
|
||||
|
||||
local ArtifactFrameTab1 = _G.ArtifactFrameTab1
|
||||
ArtifactFrameTab1:ClearAllPoints()
|
||||
ArtifactFrameTab1:Point('TOPLEFT', ArtifactFrame, 'BOTTOMLEFT', 0, 0)
|
||||
|
||||
ArtifactFrame.ForgeBadgeFrame.ItemIcon:Hide()
|
||||
ArtifactFrame.ForgeBadgeFrame.ForgeLevelBackground:ClearAllPoints()
|
||||
ArtifactFrame.ForgeBadgeFrame.ForgeLevelBackground:Point('TOPLEFT', ArtifactFrame)
|
||||
|
||||
ArtifactFrame.AppearancesTab:HookScript('OnShow', function(s)
|
||||
for i=1, s:GetNumChildren() do
|
||||
local child = select(i, s:GetChildren())
|
||||
if child and child.appearanceID and not child.backdrop then
|
||||
child:CreateBackdrop('Transparent')
|
||||
child.SwatchTexture:SetTexCoord(.20,.80,.20,.80)
|
||||
child.SwatchTexture:SetInside(child.backdrop)
|
||||
child.Border:SetAlpha(0)
|
||||
child.Background:SetAlpha(0)
|
||||
child.HighlightTexture:SetAlpha(0)
|
||||
child.HighlightTexture.SetAlpha = E.noop
|
||||
if child.Selected:IsShown() then
|
||||
child.backdrop:SetBackdropBorderColor(1,1,1)
|
||||
end
|
||||
child.Selected:SetAlpha(0)
|
||||
child.Selected.SetAlpha = E.noop
|
||||
hooksecurefunc(child.Selected, 'SetShown', function(_, isActive)
|
||||
if isActive then
|
||||
child.backdrop:SetBackdropBorderColor(1,1,1)
|
||||
else
|
||||
child.backdrop:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
||||
end
|
||||
end)
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_ArtifactUI')
|
||||
401
Modules/Skins/Blizzard/AuctionHouse.lua
Normal file
401
Modules/Skins/Blizzard/AuctionHouse.lua
Normal file
@@ -0,0 +1,401 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local pairs, ipairs, select = pairs, ipairs, select
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
--[[
|
||||
TO DO:
|
||||
* Skin Multisell .ProgressBar
|
||||
]]
|
||||
|
||||
-- Credits: siweia (AuroraClassic)
|
||||
|
||||
local function SkinEditBoxes(Frame)
|
||||
S:HandleEditBox(Frame.MinLevel)
|
||||
S:HandleEditBox(Frame.MaxLevel)
|
||||
end
|
||||
|
||||
local function SkinFilterButton(Button)
|
||||
SkinEditBoxes(Button.LevelRangeFrame)
|
||||
|
||||
S:HandleCloseButton(Button.ClearFiltersButton)
|
||||
S:HandleButton(Button)
|
||||
end
|
||||
|
||||
local function HandleSearchBarFrame(Frame)
|
||||
SkinFilterButton(Frame.FilterButton)
|
||||
|
||||
S:HandleButton(Frame.SearchButton)
|
||||
S:HandleEditBox(Frame.SearchBox)
|
||||
S:HandleButton(Frame.FavoritesSearchButton)
|
||||
Frame.FavoritesSearchButton:Size(22)
|
||||
end
|
||||
|
||||
local function HandleListIcon(frame)
|
||||
if not frame.tableBuilder then return end
|
||||
|
||||
for i = 1, 22 do
|
||||
local row = frame.tableBuilder.rows[i]
|
||||
if row then
|
||||
for j = 1, 4 do
|
||||
local cell = row.cells and row.cells[j]
|
||||
if cell and cell.Icon then
|
||||
if not cell.IsSkinned then
|
||||
S:HandleIcon(cell.Icon)
|
||||
|
||||
if cell.IconBorder then
|
||||
cell.IconBorder:Kill()
|
||||
end
|
||||
|
||||
cell.IsSkinned = true
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function HandleSummaryIcons(frame)
|
||||
for i = 1, 23 do
|
||||
local child = select(i, frame.ScrollFrame.scrollChild:GetChildren())
|
||||
|
||||
if child and child.Icon then
|
||||
if not child.IsSkinned then
|
||||
S:HandleIcon(child.Icon)
|
||||
|
||||
if child.IconBorder then
|
||||
child.IconBorder:Kill()
|
||||
end
|
||||
|
||||
child.IsSkinned = true
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function SkinItemDisplay(frame)
|
||||
local ItemDisplay = frame.ItemDisplay
|
||||
ItemDisplay:StripTextures()
|
||||
ItemDisplay:CreateBackdrop('Transparent')
|
||||
ItemDisplay.backdrop:Point('TOPLEFT', 3, -3)
|
||||
ItemDisplay.backdrop:Point('BOTTOMRIGHT', -3, 0)
|
||||
|
||||
local ItemButton = ItemDisplay.ItemButton
|
||||
ItemButton.CircleMask:Hide()
|
||||
|
||||
-- We skin the new IconBorder from the AH, it looks really cool tbh.
|
||||
ItemButton.Icon:SetTexCoord(.08, .92, .08, .92)
|
||||
ItemButton.Icon:Size(44)
|
||||
ItemButton.IconBorder:SetTexCoord(.08, .92, .08, .92)
|
||||
end
|
||||
|
||||
local function HandleHeaders(frame)
|
||||
local maxHeaders = frame.HeaderContainer:GetNumChildren()
|
||||
for i = 1, maxHeaders do
|
||||
local header = select(i, frame.HeaderContainer:GetChildren())
|
||||
if header and not header.IsSkinned then
|
||||
header:DisableDrawLayer('BACKGROUND')
|
||||
if not header.backdrop then
|
||||
header:CreateBackdrop('Transparent')
|
||||
end
|
||||
|
||||
header.IsSkinned = true
|
||||
end
|
||||
|
||||
if header.backdrop then
|
||||
header.backdrop:Point('BOTTOMRIGHT', i < maxHeaders and -5 or 0, -2)
|
||||
end
|
||||
end
|
||||
|
||||
HandleListIcon(frame)
|
||||
end
|
||||
|
||||
local function HandleAuctionButtons(button)
|
||||
S:HandleButton(button)
|
||||
button:Size(22)
|
||||
end
|
||||
|
||||
local function HandleSellFrame(frame)
|
||||
frame:StripTextures()
|
||||
|
||||
local ItemDisplay = frame.ItemDisplay
|
||||
ItemDisplay:StripTextures()
|
||||
ItemDisplay:CreateBackdrop('Transparent')
|
||||
|
||||
local ItemButton = ItemDisplay.ItemButton
|
||||
if ItemButton.IconMask then ItemButton.IconMask:Hide() end
|
||||
if ItemButton.IconBorder then ItemButton.IconBorder:Kill() end
|
||||
|
||||
ItemButton.EmptyBackground:Hide()
|
||||
ItemButton:SetPushedTexture('')
|
||||
ItemButton.Highlight:SetColorTexture(1, 1, 1, .25)
|
||||
ItemButton.Highlight:SetAllPoints(ItemButton.Icon)
|
||||
|
||||
S:HandleIcon(ItemButton.Icon, true)
|
||||
S:HandleEditBox(frame.QuantityInput.InputBox)
|
||||
S:HandleButton(frame.QuantityInput.MaxButton)
|
||||
S:HandleEditBox(frame.PriceInput.MoneyInputFrame.GoldBox)
|
||||
S:HandleEditBox(frame.PriceInput.MoneyInputFrame.SilverBox)
|
||||
|
||||
if frame.SecondaryPriceInput then
|
||||
S:HandleEditBox(frame.SecondaryPriceInput.MoneyInputFrame.GoldBox)
|
||||
S:HandleEditBox(frame.SecondaryPriceInput.MoneyInputFrame.SilverBox)
|
||||
end
|
||||
|
||||
S:HandleDropDownBox(frame.DurationDropDown.DropDown)
|
||||
S:HandleButton(frame.PostButton)
|
||||
|
||||
if frame.BuyoutModeCheckButton then
|
||||
S:HandleCheckBox(frame.BuyoutModeCheckButton)
|
||||
frame.BuyoutModeCheckButton:Size(20)
|
||||
end
|
||||
end
|
||||
|
||||
local function HandleTokenSellFrame(frame)
|
||||
frame:StripTextures()
|
||||
|
||||
local ItemDisplay = frame.ItemDisplay
|
||||
ItemDisplay:StripTextures()
|
||||
ItemDisplay:CreateBackdrop('Transparent')
|
||||
|
||||
local ItemButton = ItemDisplay.ItemButton
|
||||
if ItemButton.IconMask then ItemButton.IconMask:Hide() end
|
||||
if ItemButton.IconBorder then ItemButton.IconBorder:Kill() end
|
||||
|
||||
ItemButton.EmptyBackground:Hide()
|
||||
ItemButton:SetPushedTexture('')
|
||||
ItemButton.Highlight:SetColorTexture(1, 1, 1, .25)
|
||||
ItemButton.Highlight:SetAllPoints(ItemButton.Icon)
|
||||
|
||||
S:HandleIcon(ItemButton.Icon, true)
|
||||
|
||||
S:HandleButton(frame.PostButton)
|
||||
HandleAuctionButtons(frame.DummyRefreshButton)
|
||||
|
||||
frame.DummyItemList:StripTextures()
|
||||
frame.DummyItemList:CreateBackdrop('Transparent')
|
||||
HandleAuctionButtons(frame.DummyRefreshButton)
|
||||
S:HandleScrollBar(frame.DummyItemList.DummyScrollBar)
|
||||
end
|
||||
|
||||
local function HandleSellList(frame, hasHeader)
|
||||
frame:StripTextures()
|
||||
|
||||
if frame.RefreshFrame then
|
||||
HandleAuctionButtons(frame.RefreshFrame.RefreshButton)
|
||||
end
|
||||
|
||||
S:HandleScrollBar(frame.ScrollFrame.scrollBar)
|
||||
|
||||
if hasHeader then
|
||||
frame.ScrollFrame:CreateBackdrop('Transparent')
|
||||
hooksecurefunc(frame, 'RefreshScrollFrame', HandleHeaders)
|
||||
else
|
||||
hooksecurefunc(frame, 'RefreshListDisplay', HandleSummaryIcons)
|
||||
end
|
||||
end
|
||||
|
||||
local function LoadSkin()
|
||||
if E.private.skins.blizzard.enable ~= true or E.private.skins.blizzard.auctionhouse ~= true then return end
|
||||
|
||||
--[[ Main Frame | TAB 1]]--
|
||||
local Frame = _G.AuctionHouseFrame
|
||||
S:HandlePortraitFrame(Frame)
|
||||
|
||||
local Tabs = {
|
||||
_G.AuctionHouseFrameBuyTab,
|
||||
_G.AuctionHouseFrameSellTab,
|
||||
_G.AuctionHouseFrameAuctionsTab,
|
||||
}
|
||||
|
||||
for _, tab in pairs(Tabs) do
|
||||
if tab then
|
||||
S:HandleTab(tab)
|
||||
end
|
||||
end
|
||||
|
||||
_G.AuctionHouseFrameBuyTab:ClearAllPoints()
|
||||
_G.AuctionHouseFrameBuyTab:SetPoint('BOTTOMLEFT', Frame, 'BOTTOMLEFT', 0, -30)
|
||||
|
||||
-- SearchBar Frame
|
||||
HandleSearchBarFrame(Frame.SearchBar)
|
||||
|
||||
Frame.MoneyFrameBorder:StripTextures()
|
||||
Frame.MoneyFrameInset:StripTextures()
|
||||
|
||||
--[[ Categorie List ]]--
|
||||
local Categories = Frame.CategoriesList
|
||||
Categories.ScrollFrame:StripTextures()
|
||||
Categories.Background:Hide()
|
||||
Categories.NineSlice:Hide()
|
||||
|
||||
S:HandleScrollBar(_G.AuctionHouseFrameScrollBar)
|
||||
|
||||
for i = 1, _G.NUM_FILTERS_TO_DISPLAY do
|
||||
local button = Categories.FilterButtons[i]
|
||||
|
||||
button:StripTextures(true)
|
||||
button:StyleButton()
|
||||
|
||||
button.SelectedTexture:SetInside(button)
|
||||
end
|
||||
|
||||
hooksecurefunc('AuctionFrameFilters_UpdateCategories', function(categoriesList, _)
|
||||
for _, button in ipairs(categoriesList.FilterButtons) do
|
||||
button.SelectedTexture:SetAtlas(nil)
|
||||
button.SelectedTexture:SetColorTexture(0.7, 0.7, 0.7, 0.4)
|
||||
end
|
||||
end)
|
||||
|
||||
--[[ Browse Frame ]]--
|
||||
local Browse = Frame.BrowseResultsFrame
|
||||
|
||||
local ItemList = Browse.ItemList
|
||||
ItemList:StripTextures()
|
||||
hooksecurefunc(ItemList, 'RefreshScrollFrame', HandleHeaders)
|
||||
|
||||
S:HandleScrollBar(ItemList.ScrollFrame.scrollBar)
|
||||
|
||||
--[[ BuyOut Frame]]
|
||||
local CommoditiesBuyFrame = Frame.CommoditiesBuyFrame
|
||||
CommoditiesBuyFrame.BuyDisplay:StripTextures()
|
||||
S:HandleButton(CommoditiesBuyFrame.BackButton)
|
||||
|
||||
local ItemList = Frame.CommoditiesBuyFrame.ItemList
|
||||
ItemList:StripTextures()
|
||||
ItemList:CreateBackdrop('Transparent')
|
||||
S:HandleButton(ItemList.RefreshFrame.RefreshButton)
|
||||
S:HandleScrollBar(ItemList.ScrollFrame.scrollBar)
|
||||
|
||||
local BuyDisplay = Frame.CommoditiesBuyFrame.BuyDisplay
|
||||
S:HandleEditBox(BuyDisplay.QuantityInput.InputBox)
|
||||
S:HandleButton(BuyDisplay.BuyButton)
|
||||
|
||||
SkinItemDisplay(BuyDisplay)
|
||||
|
||||
--[[ ItemBuyOut Frame]]
|
||||
local ItemBuyFrame = Frame.ItemBuyFrame
|
||||
S:HandleButton(ItemBuyFrame.BackButton)
|
||||
S:HandleButton(ItemBuyFrame.BuyoutFrame.BuyoutButton)
|
||||
|
||||
SkinItemDisplay(ItemBuyFrame)
|
||||
|
||||
local ItemList = ItemBuyFrame.ItemList
|
||||
ItemList:StripTextures()
|
||||
ItemList:CreateBackdrop('Transparent')
|
||||
S:HandleScrollBar(ItemList.ScrollFrame.scrollBar)
|
||||
S:HandleButton(ItemList.RefreshFrame.RefreshButton)
|
||||
hooksecurefunc(ItemList, 'RefreshScrollFrame', HandleHeaders)
|
||||
|
||||
local EditBoxes = {
|
||||
_G.AuctionHouseFrameGold,
|
||||
_G.AuctionHouseFrameSilver,
|
||||
}
|
||||
|
||||
for _, EditBox in pairs(EditBoxes) do
|
||||
S:HandleEditBox(EditBox)
|
||||
--EditBox:SetTextInsets(1, 1, -1, 1)
|
||||
end
|
||||
|
||||
S:HandleButton(ItemBuyFrame.BidFrame.BidButton)
|
||||
ItemBuyFrame.BidFrame.BidButton:ClearAllPoints()
|
||||
ItemBuyFrame.BidFrame.BidButton:Point('LEFT', ItemBuyFrame.BidFrame.BidAmount, 'RIGHT', 2, -2)
|
||||
S:HandleButton(ItemBuyFrame.BidFrame.BidButton)
|
||||
|
||||
--[[ Item Sell Frame | TAB 2 ]]--
|
||||
local SellFrame = Frame.ItemSellFrame
|
||||
HandleSellFrame(SellFrame)
|
||||
|
||||
local ItemList = Frame.ItemSellList
|
||||
HandleSellList(ItemList, true)
|
||||
|
||||
local CommoditiesSellFrame = Frame.CommoditiesSellFrame
|
||||
HandleSellFrame(CommoditiesSellFrame)
|
||||
|
||||
local ItemList = Frame.CommoditiesSellList
|
||||
HandleSellList(ItemList, true)
|
||||
|
||||
local TokenSellFrame = Frame.WoWTokenSellFrame
|
||||
HandleTokenSellFrame(TokenSellFrame)
|
||||
|
||||
--[[ Auctions Frame | TAB 3 ]]--
|
||||
local AuctionsFrame = _G.AuctionHouseFrameAuctionsFrame
|
||||
AuctionsFrame:StripTextures()
|
||||
|
||||
SkinItemDisplay(AuctionsFrame)
|
||||
|
||||
local CommoditiesList = AuctionsFrame.CommoditiesList
|
||||
HandleSellList(CommoditiesList, true)
|
||||
S:HandleButton(CommoditiesList.RefreshFrame.RefreshButton)
|
||||
|
||||
local ItemList = AuctionsFrame.ItemList
|
||||
HandleSellList(ItemList, true)
|
||||
S:HandleButton(ItemList.RefreshFrame.RefreshButton)
|
||||
|
||||
local Tabs = {
|
||||
_G.AuctionHouseFrameAuctionsFrameAuctionsTab,
|
||||
_G.AuctionHouseFrameAuctionsFrameBidsTab,
|
||||
}
|
||||
|
||||
for _, tab in pairs(Tabs) do
|
||||
if tab then
|
||||
S:HandleTab(tab)
|
||||
end
|
||||
end
|
||||
|
||||
local SummaryList = AuctionsFrame.SummaryList
|
||||
HandleSellList(SummaryList)
|
||||
S:HandleButton(AuctionsFrame.CancelAuctionButton)
|
||||
|
||||
local AllAuctionsList = AuctionsFrame.AllAuctionsList
|
||||
HandleSellList(AllAuctionsList, true)
|
||||
S:HandleButton(AllAuctionsList.RefreshFrame.RefreshButton)
|
||||
|
||||
local BidsList = AuctionsFrame.BidsList
|
||||
HandleSellList(BidsList, true)
|
||||
S:HandleButton(BidsList.RefreshFrame.RefreshButton)
|
||||
S:HandleEditBox(_G.AuctionHouseFrameAuctionsFrameGold)
|
||||
S:HandleEditBox(_G.AuctionHouseFrameAuctionsFrameSilver)
|
||||
S:HandleButton(AuctionsFrame.BidFrame.BidButton)
|
||||
|
||||
--[[ ProgressBars ]]--
|
||||
|
||||
--[[ WoW Token Category ]]--
|
||||
local TokenFrame = Frame.WoWTokenResults
|
||||
TokenFrame:StripTextures()
|
||||
S:HandleButton(TokenFrame.Buyout)
|
||||
S:HandleScrollBar(TokenFrame.DummyScrollBar) --MONITOR THIS
|
||||
|
||||
local Token = TokenFrame.TokenDisplay
|
||||
Token:StripTextures()
|
||||
Token:CreateBackdrop('Transparent')
|
||||
|
||||
local ItemButton = Token.ItemButton
|
||||
S:HandleIcon(ItemButton.Icon, true)
|
||||
ItemButton.Icon.backdrop:SetBackdropBorderColor(0, .8, 1)
|
||||
ItemButton.IconBorder:Kill()
|
||||
|
||||
--WoW Token Tutorial Frame
|
||||
local WowTokenGameTimeTutorial = Frame.WoWTokenResults.GameTimeTutorial
|
||||
WowTokenGameTimeTutorial.NineSlice:Hide()
|
||||
WowTokenGameTimeTutorial.TitleBg:SetAlpha(0)
|
||||
WowTokenGameTimeTutorial:CreateBackdrop('Transparent')
|
||||
S:HandleCloseButton(WowTokenGameTimeTutorial.CloseButton)
|
||||
S:HandleButton(WowTokenGameTimeTutorial.RightDisplay.StoreButton)
|
||||
WowTokenGameTimeTutorial.RightDisplay.StoreButton.backdrop:SetFrameLevel(WowTokenGameTimeTutorial.RightDisplay.StoreButton:GetFrameLevel())
|
||||
WowTokenGameTimeTutorial.Bg:SetAlpha(0)
|
||||
WowTokenGameTimeTutorial.LeftDisplay.Label:SetTextColor(1, 1, 1)
|
||||
WowTokenGameTimeTutorial.LeftDisplay.Tutorial1:SetTextColor(1, 0, 0)
|
||||
WowTokenGameTimeTutorial.RightDisplay.Label:SetTextColor(1, 1, 1)
|
||||
WowTokenGameTimeTutorial.RightDisplay.Tutorial1:SetTextColor(1, 0, 0)
|
||||
|
||||
--[[ Dialogs ]]--
|
||||
Frame.BuyDialog:StripTextures()
|
||||
Frame.BuyDialog:CreateBackdrop('Transparent')
|
||||
S:HandleButton(Frame.BuyDialog.BuyNowButton)
|
||||
S:HandleButton(Frame.BuyDialog.CancelButton)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_AuctionHouseUI', 'AuctionHouse', LoadSkin)
|
||||
16
Modules/Skins/Blizzard/Azerite.lua
Normal file
16
Modules/Skins/Blizzard/Azerite.lua
Normal file
@@ -0,0 +1,16 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
|
||||
function S:Blizzard_AzeriteUI()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.azerite) then return end
|
||||
|
||||
_G.AzeriteEmpoweredItemUI:StripTextures()
|
||||
_G.AzeriteEmpoweredItemUIPortrait:Hide()
|
||||
_G.AzeriteEmpoweredItemUI.ClipFrame.BackgroundFrame.Bg:Hide()
|
||||
_G.AzeriteEmpoweredItemUI:CreateBackdrop('Transparent')
|
||||
S:HandleCloseButton(_G.AzeriteEmpoweredItemUICloseButton)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_AzeriteUI')
|
||||
50
Modules/Skins/Blizzard/AzeriteEssence.lua
Normal file
50
Modules/Skins/Blizzard/AzeriteEssence.lua
Normal file
@@ -0,0 +1,50 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local pairs = pairs
|
||||
|
||||
local C_AzeriteEssence_CanOpenUI = C_AzeriteEssence.CanOpenUI
|
||||
|
||||
function S:Blizzard_AzeriteEssenceUI()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.azeriteEssence) then return end
|
||||
if not C_AzeriteEssence_CanOpenUI() then return end
|
||||
|
||||
local AzeriteEssenceUI = _G.AzeriteEssenceUI
|
||||
S:HandlePortraitFrame(AzeriteEssenceUI)
|
||||
|
||||
-- Reposition the Level Badge
|
||||
AzeriteEssenceUI.PowerLevelBadgeFrame:ClearAllPoints()
|
||||
AzeriteEssenceUI.PowerLevelBadgeFrame:Point('TOPLEFT')
|
||||
AzeriteEssenceUI.PowerLevelBadgeFrame.Ring:Hide()
|
||||
AzeriteEssenceUI.PowerLevelBadgeFrame.BackgroundBlack:Hide()
|
||||
|
||||
AzeriteEssenceUI.OrbBackground:SetAllPoints(AzeriteEssenceUI.ItemModelScene)
|
||||
AzeriteEssenceUI.OrbRing:Size(483, 480)
|
||||
|
||||
S:HandleScrollBar(AzeriteEssenceUI.EssenceList.ScrollBar)
|
||||
|
||||
-- Essence List on the right
|
||||
for _, button in pairs(AzeriteEssenceUI.EssenceList.buttons) do
|
||||
button:DisableDrawLayer('ARTWORK')
|
||||
button:StyleButton()
|
||||
|
||||
S:HandleIcon(button.Icon)
|
||||
button.Icon:Point('LEFT', button, 'LEFT', 6, 0)
|
||||
|
||||
button:CreateBackdrop()
|
||||
button.backdrop:Point('TOPLEFT', 2, -3)
|
||||
button.backdrop:Point('BOTTOMRIGHT', -2, 3)
|
||||
end
|
||||
|
||||
-- Header on the Essence List
|
||||
AzeriteEssenceUI:HookScript('OnShow', function(s)
|
||||
s.EssenceList.HeaderButton:StripTextures()
|
||||
if not s.EssenceList.HeaderButton.backdrop then
|
||||
s.EssenceList.HeaderButton:CreateBackdrop('Transparent')
|
||||
s.EssenceList.HeaderButton.backdrop:SetAllPoints()
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_AzeriteEssenceUI')
|
||||
47
Modules/Skins/Blizzard/AzeriteRespec.lua
Normal file
47
Modules/Skins/Blizzard/AzeriteRespec.lua
Normal file
@@ -0,0 +1,47 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
|
||||
function S:Blizzard_AzeriteRespecUI()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.azeriteRespec) then return end
|
||||
|
||||
local AzeriteRespecFrame = _G.AzeriteRespecFrame
|
||||
AzeriteRespecFrame:SetClipsChildren(true)
|
||||
AzeriteRespecFrame.Background:Hide()
|
||||
AzeriteRespecFrame:StripTextures()
|
||||
AzeriteRespecFrame:CreateBackdrop('Transparent')
|
||||
|
||||
local Lines = AzeriteRespecFrame:CreateTexture(nil, 'BACKGROUND')
|
||||
Lines:ClearAllPoints()
|
||||
Lines:Point('TOPLEFT', -50, 25)
|
||||
Lines:Point('BOTTOMRIGHT')
|
||||
Lines:SetTexture([[Interface\Transmogrify\EtherealLines]], true, true)
|
||||
Lines:SetHorizTile(true)
|
||||
Lines:SetVertTile(true)
|
||||
Lines:SetAlpha(0.5)
|
||||
|
||||
local ItemSlot = AzeriteRespecFrame.ItemSlot
|
||||
ItemSlot:Size(64, 64)
|
||||
ItemSlot:Point('CENTER', AzeriteRespecFrame)
|
||||
ItemSlot.Icon:SetInside()
|
||||
ItemSlot.GlowOverlay:SetAlpha(0)
|
||||
|
||||
ItemSlot:CreateBackdrop('Transparent')
|
||||
ItemSlot.backdrop:SetBackdropColor(.6, 0, .6, .5)
|
||||
S:HandleIcon(ItemSlot.Icon)
|
||||
|
||||
local ButtonFrame = AzeriteRespecFrame.ButtonFrame
|
||||
ButtonFrame:GetRegions():Hide()
|
||||
ButtonFrame.ButtonBorder:Hide()
|
||||
ButtonFrame.ButtonBottomBorder:Hide()
|
||||
|
||||
ButtonFrame.MoneyFrameEdge:Hide()
|
||||
ButtonFrame.MoneyFrame:ClearAllPoints()
|
||||
ButtonFrame.MoneyFrame:Point('BOTTOMRIGHT', ButtonFrame.MoneyFrameEdge, 7, 5)
|
||||
|
||||
S:HandleButton(ButtonFrame.AzeriteRespecButton, true)
|
||||
S:HandleCloseButton(AzeriteRespecFrame.CloseButton)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_AzeriteRespecUI')
|
||||
93
Modules/Skins/Blizzard/BGMap.lua
Normal file
93
Modules/Skins/Blizzard/BGMap.lua
Normal file
@@ -0,0 +1,93 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
local function GetOpacity()
|
||||
return 1 - (_G.BattlefieldMapOptions and _G.BattlefieldMapOptions.opacity or 1)
|
||||
end
|
||||
|
||||
local function InitializeOptionsDropDown()
|
||||
_G.BattlefieldMapTab:InitializeOptionsDropDown()
|
||||
end
|
||||
|
||||
local function setBackdropAlpha()
|
||||
if _G.BattlefieldMapFrame.backdrop then
|
||||
_G.BattlefieldMapFrame.backdrop:SetBackdropColor(0, 0, 0, GetOpacity())
|
||||
end
|
||||
end
|
||||
|
||||
-- alpha stuff
|
||||
local oldAlpha = 0
|
||||
local function setOldAlpha()
|
||||
if oldAlpha then
|
||||
_G.BattlefieldMapFrame:SetGlobalAlpha(oldAlpha)
|
||||
oldAlpha = nil
|
||||
end
|
||||
end
|
||||
|
||||
local function setRealAlpha()
|
||||
oldAlpha = GetOpacity()
|
||||
_G.BattlefieldMapFrame:SetGlobalAlpha(1)
|
||||
end
|
||||
|
||||
local function refreshAlpha()
|
||||
oldAlpha = GetOpacity()
|
||||
end
|
||||
|
||||
function S:Blizzard_BattlefieldMap()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.bgmap) then return end
|
||||
|
||||
local BattlefieldMapFrame = _G.BattlefieldMapFrame
|
||||
local BattlefieldMapTab = _G.BattlefieldMapTab
|
||||
|
||||
BattlefieldMapFrame:SetClampedToScreen(true)
|
||||
BattlefieldMapFrame:StripTextures()
|
||||
|
||||
refreshAlpha() -- will need this soon
|
||||
BattlefieldMapFrame:CreateBackdrop()
|
||||
BattlefieldMapFrame:SetFrameStrata('LOW')
|
||||
BattlefieldMapFrame.backdrop:SetOutside(BattlefieldMapFrame.ScrollContainer)
|
||||
BattlefieldMapFrame.backdrop:SetBackdropColor(0, 0, 0, oldAlpha)
|
||||
|
||||
BattlefieldMapFrame:EnableMouse(true)
|
||||
BattlefieldMapFrame:SetMovable(true)
|
||||
|
||||
BattlefieldMapFrame.BorderFrame:StripTextures()
|
||||
BattlefieldMapFrame.BorderFrame.CloseButton:SetFrameLevel(BattlefieldMapFrame.BorderFrame.CloseButton:GetFrameLevel()+1)
|
||||
S:HandleCloseButton(BattlefieldMapFrame.BorderFrame.CloseButton)
|
||||
BattlefieldMapTab:Kill()
|
||||
|
||||
BattlefieldMapFrame.ScrollContainer:HookScript('OnMouseUp', function(_, btn)
|
||||
if btn == 'LeftButton' then
|
||||
BattlefieldMapTab:StopMovingOrSizing()
|
||||
if not _G.BattlefieldMapOptions.position then _G.BattlefieldMapOptions.position = {} end
|
||||
_G.BattlefieldMapOptions.position.x, _G.BattlefieldMapOptions.position.y = BattlefieldMapTab:GetCenter()
|
||||
elseif btn == 'RightButton' then
|
||||
_G.UIDropDownMenu_Initialize(BattlefieldMapTab.OptionsDropDown, InitializeOptionsDropDown, 'MENU')
|
||||
_G.ToggleDropDownMenu(1, nil, BattlefieldMapTab.OptionsDropDown, BattlefieldMapFrame:GetName(), 0, -4)
|
||||
end
|
||||
|
||||
if _G.OpacityFrame:IsShown() then
|
||||
_G.OpacityFrame:Hide()
|
||||
end
|
||||
end)
|
||||
|
||||
BattlefieldMapFrame.ScrollContainer:HookScript('OnMouseDown', function(_, btn)
|
||||
if btn == 'LeftButton' and (_G.BattlefieldMapOptions and not _G.BattlefieldMapOptions.locked) then
|
||||
BattlefieldMapTab:StartMoving()
|
||||
end
|
||||
end)
|
||||
|
||||
hooksecurefunc(BattlefieldMapFrame, 'SetGlobalAlpha', setBackdropAlpha)
|
||||
hooksecurefunc(BattlefieldMapFrame, 'RefreshAlpha', refreshAlpha)
|
||||
|
||||
BattlefieldMapFrame:HookScript('OnShow', setBackdropAlpha)
|
||||
BattlefieldMapFrame.ScrollContainer:HookScript('OnLeave', setOldAlpha)
|
||||
BattlefieldMapFrame.ScrollContainer:HookScript('OnEnter', setRealAlpha)
|
||||
BattlefieldMapFrame.BorderFrame.CloseButton:HookScript('OnLeave', setOldAlpha)
|
||||
BattlefieldMapFrame.BorderFrame.CloseButton:HookScript('OnEnter', setRealAlpha)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_BattlefieldMap')
|
||||
278
Modules/Skins/Blizzard/Bags.lua
Normal file
278
Modules/Skins/Blizzard/Bags.lua
Normal file
@@ -0,0 +1,278 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local AB = E:GetModule('ActionBars')
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local unpack, select = unpack, select
|
||||
|
||||
local CreateFrame = CreateFrame
|
||||
local GetItemInfo = GetItemInfo
|
||||
local GetItemQualityColor = GetItemQualityColor
|
||||
local GetContainerItemInfo = GetContainerItemInfo
|
||||
local GetContainerItemQuestInfo = GetContainerItemQuestInfo
|
||||
local GetInventoryItemTexture = GetInventoryItemTexture
|
||||
local GetInventorySlotInfo = GetInventorySlotInfo
|
||||
local GetContainerItemID = GetContainerItemID
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
local BACKPACK_TOOLTIP = BACKPACK_TOOLTIP
|
||||
local MAX_WATCHED_TOKENS = MAX_WATCHED_TOKENS
|
||||
local NUM_CONTAINER_FRAMES = NUM_CONTAINER_FRAMES
|
||||
local QUESTS_LABEL = QUESTS_LABEL
|
||||
local TEXTURE_ITEM_QUEST_BORDER = TEXTURE_ITEM_QUEST_BORDER
|
||||
|
||||
local function UpdateBorderColors(button)
|
||||
button.backdrop:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
||||
|
||||
if button.type and button.type == QUESTS_LABEL then
|
||||
button.backdrop:SetBackdropBorderColor(1, 0.2, 0.2)
|
||||
elseif button.quality and button.quality > 1 then
|
||||
local r, g, b = GetItemQualityColor(button.quality)
|
||||
button.backdrop:SetBackdropBorderColor(r, g, b)
|
||||
end
|
||||
end
|
||||
|
||||
local function BagButtonOnEnter(self)
|
||||
AB:BindUpdate(self, 'BAG')
|
||||
end
|
||||
|
||||
local function SkinButton(button)
|
||||
if not button.skinned then
|
||||
for i=1, button:GetNumRegions() do
|
||||
local region = select(i, button:GetRegions())
|
||||
if region and region:IsObjectType('Texture') and region ~= button.searchOverlay and region ~= button.UpgradeIcon and region ~= button.ItemContextOverlay then
|
||||
region:SetTexture()
|
||||
end
|
||||
end
|
||||
|
||||
button:CreateBackdrop()
|
||||
button:StyleButton()
|
||||
button.IconBorder:Kill()
|
||||
|
||||
local icon = button.icon
|
||||
icon:SetInside()
|
||||
icon:SetTexCoord(unpack(E.TexCoords))
|
||||
|
||||
button.searchOverlay:ClearAllPoints()
|
||||
button.searchOverlay:SetAllPoints(icon)
|
||||
|
||||
if button.IconQuestTexture then
|
||||
button.IconQuestTexture:SetTexCoord(unpack(E.TexCoords))
|
||||
button.IconQuestTexture:SetInside(button)
|
||||
end
|
||||
|
||||
if button.Cooldown then
|
||||
E:RegisterCooldown(button.Cooldown)
|
||||
end
|
||||
|
||||
button.skinned = true
|
||||
|
||||
-- bag keybind support from actionbar module
|
||||
if E.private.actionbar.enable then
|
||||
button:HookScript('OnEnter', BagButtonOnEnter)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function SkinBagButtons(container, button)
|
||||
SkinButton(button)
|
||||
|
||||
local bagID, slotID = container:GetID(), button:GetID()
|
||||
local texture, _, _, _, _, _, itemLink = GetContainerItemInfo(bagID, slotID)
|
||||
local isQuestItem, questId = GetContainerItemQuestInfo(bagID, slotID)
|
||||
_G[button:GetName()..'IconTexture']:SetTexture(texture)
|
||||
|
||||
button.type, button.quality, button.itemID = nil, nil, nil
|
||||
button.ilink = itemLink
|
||||
|
||||
if button.ilink then
|
||||
button.name, _, button.quality, _, _, button.type = GetItemInfo(button.ilink)
|
||||
button.itemID = GetContainerItemID(bagID, slotID)
|
||||
end
|
||||
|
||||
if questId or isQuestItem then
|
||||
button.type = QUESTS_LABEL
|
||||
end
|
||||
|
||||
UpdateBorderColors(button)
|
||||
end
|
||||
|
||||
local function BagIcon(container, texture)
|
||||
if not container.PortraitButton then return end
|
||||
if not container.BagIcon then
|
||||
container.BagIcon = container.PortraitButton:CreateTexture()
|
||||
container.BagIcon:SetTexCoord(unpack(E.TexCoords))
|
||||
container.BagIcon:SetInside()
|
||||
end
|
||||
|
||||
container.BagIcon:SetTexture(texture)
|
||||
end
|
||||
|
||||
local function SkinContainer(container)
|
||||
if container and container.size then
|
||||
for b=1, container.size, 1 do
|
||||
local button = _G[container:GetName()..'Item'..b]
|
||||
if button then
|
||||
SkinBagButtons(container, button)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function SkinBags()
|
||||
for i = 1, NUM_CONTAINER_FRAMES, 1 do
|
||||
local container = _G['ContainerFrame'..i]
|
||||
if container and not container.backdrop then
|
||||
container:SetFrameStrata('HIGH')
|
||||
container:StripTextures(true)
|
||||
container:CreateBackdrop('Transparent')
|
||||
container.backdrop:SetInside()
|
||||
S:HandleCloseButton(_G[container:GetName()..'CloseButton'])
|
||||
S:HandleButton(container.PortraitButton)
|
||||
container.PortraitButton:Size(35)
|
||||
container.PortraitButton.Highlight:SetAlpha(0)
|
||||
container:HookScript('OnShow', SkinContainer)
|
||||
|
||||
if i == 1 then
|
||||
_G.BackpackTokenFrame:StripTextures(true)
|
||||
|
||||
for j = 1, MAX_WATCHED_TOKENS do
|
||||
local token = _G['BackpackTokenFrameToken'..j]
|
||||
token:CreateBackdrop()
|
||||
token.backdrop:SetOutside(token.icon)
|
||||
token.icon:SetTexCoord(unpack(E.TexCoords))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
SkinContainer(container)
|
||||
end
|
||||
end
|
||||
|
||||
local bagIconCache = {}
|
||||
function S:ContainerFrame()
|
||||
if E.private.bags.enable or not (E.private.skins.blizzard.enable and E.private.skins.blizzard.bags) then return end
|
||||
|
||||
_G.BankSlotsFrame:StripTextures()
|
||||
S:HandleTab(_G.BankFrameTab1)
|
||||
S:HandleTab(_G.BankFrameTab2)
|
||||
S:HandleButton(_G.ReagentBankFrame.DespositButton)
|
||||
_G.ReagentBankFrame:HookScript('OnShow', function(b)
|
||||
b:StripTextures()
|
||||
end)
|
||||
|
||||
hooksecurefunc('ContainerFrame_Update', function(frame)
|
||||
local frameName = frame:GetName()
|
||||
for i=1, frame.size, 1 do
|
||||
local questTexture = _G[frameName..'Item'..i..'IconQuestTexture'];
|
||||
if questTexture:IsShown() and questTexture:GetTexture() == TEXTURE_ITEM_QUEST_BORDER then
|
||||
questTexture:Hide()
|
||||
end
|
||||
end
|
||||
|
||||
local title = _G[frameName..'Name']
|
||||
if title and title.GetText then
|
||||
local name = title:GetText()
|
||||
if bagIconCache[name] then
|
||||
BagIcon(frame, bagIconCache[name])
|
||||
else
|
||||
if not name then return end
|
||||
if name == BACKPACK_TOOLTIP then
|
||||
bagIconCache[name] = _G.MainMenuBarBackpackButtonIconTexture:GetTexture()
|
||||
else
|
||||
bagIconCache[name] = select(10, GetItemInfo(name))
|
||||
end
|
||||
|
||||
BagIcon(frame, bagIconCache[name])
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
--Bank
|
||||
local BankFrame = _G.BankFrame
|
||||
hooksecurefunc('BankFrameItemButton_Update', function(button)
|
||||
if not BankFrame.backdrop then
|
||||
BankFrame:StripTextures(true)
|
||||
BankFrame:CreateBackdrop('Transparent')
|
||||
S:HandleButton(_G.BankFramePurchaseButton, true)
|
||||
S:HandleCloseButton(_G.BankFrameCloseButton)
|
||||
|
||||
BankFrame.backdrop2 = CreateFrame('Frame', nil, _G.BankSlotsFrame, 'BackdropTemplate')
|
||||
BankFrame.backdrop2:SetTemplate()
|
||||
BankFrame.backdrop2:Point('TOPLEFT', _G.BankFrameItem1, 'TOPLEFT', -6, 6)
|
||||
BankFrame.backdrop2:Point('BOTTOMRIGHT', _G.BankFrameItem28, 'BOTTOMRIGHT', 6, -6)
|
||||
|
||||
BankFrame.backdrop3 = CreateFrame('Frame', nil, _G.BankSlotsFrame, 'BackdropTemplate')
|
||||
BankFrame.backdrop3:SetTemplate()
|
||||
BankFrame.backdrop3:Point('TOPLEFT', _G.BankSlotsFrame.Bag1, 'TOPLEFT', -6, 6)
|
||||
BankFrame.backdrop3:Point('BOTTOMRIGHT', _G.BankSlotsFrame.Bag7, 'BOTTOMRIGHT', 6, -6)
|
||||
|
||||
_G.BankFrameMoneyFrameInset:Kill()
|
||||
_G.BankFrameMoneyFrameBorder:Kill()
|
||||
BankFrame.backdrop = true;
|
||||
end
|
||||
|
||||
SkinButton(button)
|
||||
|
||||
if not button.levelAdjusted then
|
||||
button:SetFrameLevel(button:GetFrameLevel() + 1)
|
||||
button.levelAdjusted = true;
|
||||
end
|
||||
|
||||
local inventoryID = button:GetInventorySlot()
|
||||
local textureName = GetInventoryItemTexture('player',inventoryID);
|
||||
|
||||
if textureName then
|
||||
button.icon:SetTexture(textureName)
|
||||
elseif button.isBag then
|
||||
local _, slotTextureName = GetInventorySlotInfo('Bag'..button:GetID())
|
||||
button.icon:SetTexture(slotTextureName)
|
||||
end
|
||||
|
||||
if not button.isBag then
|
||||
local container = button:GetParent():GetID();
|
||||
local _, _, _, _, _, _, itemLink = GetContainerItemInfo(container, button:GetID())
|
||||
local isQuestItem, questId = GetContainerItemQuestInfo(container, button:GetID())
|
||||
button.type = nil
|
||||
button.ilink = itemLink
|
||||
button.quality = nil
|
||||
|
||||
if button.ilink then
|
||||
button.name, _, button.quality, _, _, button.type = GetItemInfo(button.ilink)
|
||||
end
|
||||
|
||||
if isQuestItem or questId then
|
||||
button.type = QUESTS_LABEL
|
||||
end
|
||||
|
||||
UpdateBorderColors(button)
|
||||
end
|
||||
end)
|
||||
|
||||
local BagItemSearchBox = _G.BagItemSearchBox
|
||||
S:HandleEditBox(BagItemSearchBox)
|
||||
BagItemSearchBox:Height(BagItemSearchBox:GetHeight() - 5)
|
||||
|
||||
local BankItemSearchBox = _G.BankItemSearchBox
|
||||
BankItemSearchBox:StripTextures()
|
||||
BankItemSearchBox:CreateBackdrop('Overlay')
|
||||
BankItemSearchBox.backdrop:Point('TOPLEFT', 10, -1)
|
||||
BankItemSearchBox.backdrop:Point('BOTTOMRIGHT', 4, 1)
|
||||
|
||||
local AutoSort = _G.BagItemAutoSortButton
|
||||
AutoSort:StripTextures()
|
||||
--AutoSort:SetTemplate()
|
||||
AutoSort:CreateBackdrop()
|
||||
AutoSort.Icon = AutoSort:CreateTexture()
|
||||
AutoSort.Icon:SetTexture([[Interface\ICONS\INV_Pet_Broom]])
|
||||
AutoSort.Icon:SetTexCoord(unpack(E.TexCoords))
|
||||
AutoSort.Icon:SetInside()
|
||||
|
||||
local Bags = CreateFrame('Frame')
|
||||
Bags:RegisterEvent('BAG_UPDATE')
|
||||
Bags:RegisterEvent('ITEM_LOCK_CHANGED')
|
||||
Bags:RegisterEvent('BAG_CLOSED')
|
||||
Bags:SetScript('OnEvent', SkinBags)
|
||||
SkinBags()
|
||||
end
|
||||
|
||||
S:AddCallback('ContainerFrame')
|
||||
66
Modules/Skins/Blizzard/Barber.lua
Normal file
66
Modules/Skins/Blizzard/Barber.lua
Normal file
@@ -0,0 +1,66 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
-- 9.0 Shadowlands
|
||||
function S:Blizzard_BarbershopUI()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.barber) then return end
|
||||
|
||||
local frame = _G.BarberShopFrame
|
||||
S:HandleButton(frame.ResetButton)
|
||||
S:HandleButton(frame.CancelButton)
|
||||
S:HandleButton(frame.AcceptButton)
|
||||
|
||||
frame.TopBackgroundOverlay:SetDrawLayer('BACKGROUND', 0)
|
||||
frame.LeftBackgroundOverlay:SetDrawLayer('BACKGROUND', 0)
|
||||
frame.RightBackgroundOverlay:SetDrawLayer('BACKGROUND', 0)
|
||||
end
|
||||
S:AddCallbackForAddon('Blizzard_BarbershopUI')
|
||||
|
||||
local function ReskinCustomizeButton(button)
|
||||
S:HandleButton(button)
|
||||
button.backdrop:SetInside(nil, 3, 3)
|
||||
end
|
||||
|
||||
function S:Blizzard_CharacterCustomize()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.barber) then return end -- yes, it belongs also to tbe BarberUI
|
||||
|
||||
-- backdrop is ugly, so dont use a style
|
||||
local frame = _G.CharCustomizeFrame
|
||||
S:HandleButton(frame.SmallButtons.ResetCameraButton, nil, nil, true)
|
||||
S:HandleButton(frame.SmallButtons.ZoomOutButton, nil, nil, true)
|
||||
S:HandleButton(frame.SmallButtons.ZoomInButton, nil, nil, true)
|
||||
S:HandleButton(frame.SmallButtons.RotateLeftButton, nil, nil, true)
|
||||
S:HandleButton(frame.SmallButtons.RotateRightButton, nil, nil, true)
|
||||
|
||||
hooksecurefunc(frame, 'SetSelectedCatgory', function(list)
|
||||
for button in list.selectionPopoutPool:EnumerateActive() do
|
||||
if not button.IsSkinned then
|
||||
S:HandleNextPrevButton(button.DecrementButton)
|
||||
S:HandleNextPrevButton(button.IncrementButton)
|
||||
|
||||
local popoutButton = button.SelectionPopoutButton
|
||||
popoutButton.HighlightTexture:SetAlpha(0)
|
||||
popoutButton.NormalTexture:SetAlpha(0)
|
||||
|
||||
popoutButton.Popout:StripTextures()
|
||||
popoutButton.Popout:CreateBackdrop('Transparent')
|
||||
popoutButton.Popout.backdrop:SetFrameLevel(popoutButton.Popout:GetFrameLevel())
|
||||
ReskinCustomizeButton(popoutButton)
|
||||
|
||||
button.IsSkinned = true
|
||||
end
|
||||
end
|
||||
|
||||
local optionPool = list.pools:GetPool('CharCustomizeOptionCheckButtonTemplate')
|
||||
for button in optionPool:EnumerateActive() do
|
||||
if not button.IsSkinned then
|
||||
S:HandleCheckBox(button.Button)
|
||||
button.IsSkinned = true
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
||||
S:AddCallbackForAddon('Blizzard_CharacterCustomize')
|
||||
47
Modules/Skins/Blizzard/Battlenet.lua
Normal file
47
Modules/Skins/Blizzard/Battlenet.lua
Normal file
@@ -0,0 +1,47 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local select = select
|
||||
|
||||
function S:BattleNetFrames()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.misc) then return end
|
||||
|
||||
local skins = {
|
||||
_G.BNToastFrame,
|
||||
_G.TicketStatusFrameButton,
|
||||
}
|
||||
|
||||
for i = 1, #skins do
|
||||
skins[i]:SetTemplate('Transparent')
|
||||
end
|
||||
|
||||
local ReportFrame = _G.PlayerReportFrame
|
||||
ReportFrame:StripTextures()
|
||||
ReportFrame:CreateBackdrop('Transparent')
|
||||
ReportFrame.Comment:StripTextures()
|
||||
S:HandleEditBox(ReportFrame.Comment)
|
||||
S:HandleButton(ReportFrame.ReportButton)
|
||||
S:HandleButton(ReportFrame.CancelButton)
|
||||
|
||||
local ReportCheatingDialog = _G.ReportCheatingDialog
|
||||
ReportCheatingDialog:StripTextures()
|
||||
_G.ReportCheatingDialogCommentFrame:StripTextures()
|
||||
S:HandleButton(_G.ReportCheatingDialogReportButton)
|
||||
S:HandleButton(_G.ReportCheatingDialogCancelButton)
|
||||
ReportCheatingDialog:CreateBackdrop('Transparent')
|
||||
S:HandleEditBox(_G.ReportCheatingDialogCommentFrameEditBox)
|
||||
|
||||
local BattleTagInviteFrame = _G.BattleTagInviteFrame
|
||||
BattleTagInviteFrame:StripTextures()
|
||||
BattleTagInviteFrame:CreateBackdrop('Transparent')
|
||||
|
||||
for i=1, BattleTagInviteFrame:GetNumChildren() do
|
||||
local child = select(i, BattleTagInviteFrame:GetChildren())
|
||||
if child:IsObjectType('Button') then
|
||||
S:HandleButton(child)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
S:AddCallback('BattleNetFrames')
|
||||
77
Modules/Skins/Blizzard/Binding.lua
Normal file
77
Modules/Skins/Blizzard/Binding.lua
Normal file
@@ -0,0 +1,77 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local pairs = pairs
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
function S:Blizzard_BindingUI()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.binding) then return end
|
||||
|
||||
local buttons = {
|
||||
'defaultsButton',
|
||||
'unbindButton',
|
||||
'okayButton',
|
||||
'cancelButton',
|
||||
'quickKeybindButton'
|
||||
}
|
||||
|
||||
local KeyBindingFrame = _G.KeyBindingFrame
|
||||
for _, v in pairs(buttons) do
|
||||
S:HandleButton(KeyBindingFrame[v])
|
||||
end
|
||||
|
||||
_G.KeyBindingFrameScrollFrame:StripTextures()
|
||||
S:HandleScrollBar(_G.KeyBindingFrameScrollFrameScrollBar)
|
||||
|
||||
S:HandleCheckBox(KeyBindingFrame.characterSpecificButton)
|
||||
KeyBindingFrame.Header:StripTextures()
|
||||
KeyBindingFrame.Header:ClearAllPoints()
|
||||
KeyBindingFrame.Header:Point('TOP', KeyBindingFrame, 'TOP', 0, -4)
|
||||
KeyBindingFrame:StripTextures()
|
||||
KeyBindingFrame:CreateBackdrop('Transparent')
|
||||
|
||||
_G.KeyBindingFrameCategoryList:StripTextures()
|
||||
_G.KeyBindingFrameCategoryList:SetTemplate('Transparent')
|
||||
KeyBindingFrame.bindingsContainer:StripTextures()
|
||||
KeyBindingFrame.bindingsContainer:SetTemplate('Transparent')
|
||||
|
||||
for i = 1, _G.KEY_BINDINGS_DISPLAYED, 1 do
|
||||
local button1 = _G['KeyBindingFrameKeyBinding'..i..'Key1Button']
|
||||
local button2 = _G['KeyBindingFrameKeyBinding'..i..'Key2Button']
|
||||
button2:Point('LEFT', button1, 'RIGHT', 1, 0) -- Needed for new Pixel Perfect
|
||||
end
|
||||
|
||||
hooksecurefunc('BindingButtonTemplate_SetupBindingButton', function(_, button)
|
||||
if not button.IsSkinned then
|
||||
local selected = button.selectedHighlight
|
||||
selected:SetTexture(E.media.normTex)
|
||||
selected:Point('TOPLEFT', 1, -1)
|
||||
selected:Point('BOTTOMRIGHT', -1, 1)
|
||||
selected:SetColorTexture(1, 1, 1, .25)
|
||||
S:HandleButton(button)
|
||||
|
||||
button.IsSkinned = true
|
||||
end
|
||||
end)
|
||||
|
||||
-- QuickKeybind
|
||||
local Quickie = _G.QuickKeybindFrame
|
||||
Quickie:StripTextures()
|
||||
Quickie.Header:StripTextures()
|
||||
Quickie:CreateBackdrop('Transparent')
|
||||
|
||||
local quickies = {
|
||||
'okayButton',
|
||||
'defaultsButton',
|
||||
'cancelButton'
|
||||
}
|
||||
|
||||
for _, v in pairs(quickies) do
|
||||
S:HandleButton(Quickie[v])
|
||||
end
|
||||
|
||||
S:HandleCheckBox(Quickie.characterSpecificButton)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_BindingUI')
|
||||
77
Modules/Skins/Blizzard/BlackMarket.lua
Normal file
77
Modules/Skins/Blizzard/BlackMarket.lua
Normal file
@@ -0,0 +1,77 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local select, unpack, pairs = select, unpack, pairs
|
||||
|
||||
local GetItemInfo = GetItemInfo
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
local GetItemQualityColor = GetItemQualityColor
|
||||
|
||||
local function SkinTab(tab)
|
||||
tab.Left:SetAlpha(0)
|
||||
if tab.Middle then
|
||||
tab.Middle:SetAlpha(0)
|
||||
end
|
||||
tab.Right:SetAlpha(0)
|
||||
end
|
||||
|
||||
function S:Blizzard_BlackMarketUI()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.bmah) then return end
|
||||
|
||||
local BlackMarketFrame = _G.BlackMarketFrame
|
||||
BlackMarketFrame:StripTextures()
|
||||
BlackMarketFrame:CreateBackdrop('Transparent')
|
||||
BlackMarketFrame.Inset:StripTextures()
|
||||
|
||||
S:HandleCloseButton(BlackMarketFrame.CloseButton)
|
||||
S:HandleScrollBar(_G.BlackMarketScrollFrameScrollBar, 4)
|
||||
SkinTab(BlackMarketFrame.ColumnName)
|
||||
SkinTab(BlackMarketFrame.ColumnLevel)
|
||||
SkinTab(BlackMarketFrame.ColumnType)
|
||||
SkinTab(BlackMarketFrame.ColumnDuration)
|
||||
SkinTab(BlackMarketFrame.ColumnHighBidder)
|
||||
SkinTab(BlackMarketFrame.ColumnCurrentBid)
|
||||
|
||||
BlackMarketFrame.MoneyFrameBorder:StripTextures()
|
||||
S:HandleEditBox(_G.BlackMarketBidPriceGold)
|
||||
_G.BlackMarketBidPriceGold.backdrop:Point('TOPLEFT', -2, 0)
|
||||
_G.BlackMarketBidPriceGold.backdrop:Point('BOTTOMRIGHT', -2, 0)
|
||||
|
||||
S:HandleButton(BlackMarketFrame.BidButton)
|
||||
|
||||
hooksecurefunc('BlackMarketScrollFrame_Update', function()
|
||||
for _, button in pairs(_G.BlackMarketScrollFrame.buttons) do
|
||||
if not button.skinned then
|
||||
S:HandleItemButton(button.Item)
|
||||
S:HandleIconBorder(button.Item.IconBorder)
|
||||
|
||||
button:StripTextures()
|
||||
button:StyleButton()
|
||||
button.skinned = true
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
BlackMarketFrame.HotDeal:StripTextures()
|
||||
BlackMarketFrame.HotDeal.Item.IconTexture:SetTexCoord(unpack(E.TexCoords))
|
||||
BlackMarketFrame.HotDeal.Item.IconBorder:Kill()
|
||||
|
||||
for i=1, BlackMarketFrame:GetNumRegions() do
|
||||
local region = select(i, BlackMarketFrame:GetRegions())
|
||||
if region and region:IsObjectType('FontString') and region:GetText() == _G.BLACK_MARKET_TITLE then
|
||||
region:ClearAllPoints()
|
||||
region:Point('TOP', BlackMarketFrame, 'TOP', 0, -4)
|
||||
end
|
||||
end
|
||||
|
||||
hooksecurefunc('BlackMarketFrame_UpdateHotItem', function(s)
|
||||
local hotDeal = s.HotDeal
|
||||
if hotDeal:IsShown() and hotDeal.itemLink then
|
||||
local _, _, quality = GetItemInfo(hotDeal.itemLink)
|
||||
hotDeal.Name:SetTextColor(GetItemQualityColor(quality))
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_BlackMarketUI')
|
||||
389
Modules/Skins/Blizzard/BlizzardOptions.lua
Normal file
389
Modules/Skins/Blizzard/BlizzardOptions.lua
Normal file
@@ -0,0 +1,389 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local select = select
|
||||
local ipairs = ipairs
|
||||
local pairs = pairs
|
||||
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
local InCombatLockdown = InCombatLockdown
|
||||
local UnitIsUnit = UnitIsUnit
|
||||
|
||||
local function HandlePushToTalkButton(button)
|
||||
button:Size(button:GetSize())
|
||||
|
||||
button.TopLeft:Hide()
|
||||
button.TopRight:Hide()
|
||||
button.BottomLeft:Hide()
|
||||
button.BottomRight:Hide()
|
||||
button.TopMiddle:Hide()
|
||||
button.MiddleLeft:Hide()
|
||||
button.MiddleRight:Hide()
|
||||
button.BottomMiddle:Hide()
|
||||
button.MiddleMiddle:Hide()
|
||||
button:SetHighlightTexture('')
|
||||
|
||||
button:CreateBackdrop(nil, true)
|
||||
button:HookScript('OnEnter', S.SetModifiedBackdrop)
|
||||
button:HookScript('OnLeave', S.SetOriginalBackdrop)
|
||||
end
|
||||
|
||||
function S.AudioOptionsVoicePanel_InitializeCommunicationModeUI(btn)
|
||||
HandlePushToTalkButton(btn.PushToTalkKeybindButton)
|
||||
end
|
||||
|
||||
function S:BlizzardOptions()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.blizzardOptions) then return end
|
||||
|
||||
-- here we reskin all 'normal' buttons
|
||||
S:HandleButton(_G.ReadyCheckFrameYesButton)
|
||||
S:HandleButton(_G.ReadyCheckFrameNoButton)
|
||||
S:HandleButton(_G.RolePollPopupAcceptButton)
|
||||
S:HandleButton(_G.LFDReadyCheckPopup.YesButton)
|
||||
S:HandleButton(_G.LFDReadyCheckPopup.NoButton)
|
||||
|
||||
local ReadyCheckFrame = _G.ReadyCheckFrame
|
||||
_G.ReadyCheckFrameYesButton:SetParent(ReadyCheckFrame)
|
||||
_G.ReadyCheckFrameNoButton:SetParent(ReadyCheckFrame)
|
||||
_G.ReadyCheckFrameYesButton:ClearAllPoints()
|
||||
_G.ReadyCheckFrameNoButton:ClearAllPoints()
|
||||
_G.ReadyCheckFrameYesButton:Point('TOPRIGHT', ReadyCheckFrame, 'CENTER', -3, -5)
|
||||
_G.ReadyCheckFrameNoButton:Point('TOPLEFT', ReadyCheckFrame, 'CENTER', 3, -5)
|
||||
_G.ReadyCheckFrameText:SetParent(ReadyCheckFrame)
|
||||
_G.ReadyCheckFrameText:ClearAllPoints()
|
||||
_G.ReadyCheckFrameText:Point('TOP', 0, -15)
|
||||
|
||||
_G.ReadyCheckListenerFrame:SetAlpha(0)
|
||||
ReadyCheckFrame:HookScript('OnShow', function(rcf)
|
||||
-- bug fix, don't show it if player is initiator
|
||||
if rcf.initiator and UnitIsUnit('player', rcf.initiator) then
|
||||
rcf:Hide()
|
||||
end
|
||||
end)
|
||||
|
||||
_G.RolePollPopup:StripTextures()
|
||||
_G.RolePollPopup:CreateBackdrop('Transparent')
|
||||
S:HandleCloseButton(_G.RolePollPopupCloseButton)
|
||||
|
||||
_G.InterfaceOptionsFrame:SetClampedToScreen(true)
|
||||
_G.InterfaceOptionsFrame:SetMovable(true)
|
||||
_G.InterfaceOptionsFrame:EnableMouse(true)
|
||||
_G.InterfaceOptionsFrame:RegisterForDrag('LeftButton', 'RightButton')
|
||||
_G.InterfaceOptionsFrame:SetScript('OnDragStart', function(iof)
|
||||
if InCombatLockdown() then return end
|
||||
iof:StartMoving()
|
||||
iof.isMoving = true
|
||||
end)
|
||||
_G.InterfaceOptionsFrame:SetScript('OnDragStop', function(iof)
|
||||
iof:StopMovingOrSizing()
|
||||
iof.isMoving = false
|
||||
end)
|
||||
|
||||
--Chat Config
|
||||
local ChatConfigFrame = _G.ChatConfigFrame
|
||||
ChatConfigFrame.Header = ChatConfigFrame.Header
|
||||
ChatConfigFrame.Header:StripTextures()
|
||||
ChatConfigFrame.Header:Point('TOP', ChatConfigFrame, 0, 0)
|
||||
|
||||
hooksecurefunc(_G.ChatConfigFrameChatTabManager, 'UpdateWidth', function(tm)
|
||||
for tab in tm.tabPool:EnumerateActive() do
|
||||
if not tab.IsSkinned then
|
||||
tab:StripTextures()
|
||||
|
||||
tab.IsSkinned = true
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
-- Chat Config
|
||||
local ChatFrames = {
|
||||
_G.ChatConfigFrame,
|
||||
_G.ChatConfigCategoryFrame,
|
||||
_G.ChatConfigBackgroundFrame,
|
||||
_G.ChatConfigCombatSettingsFilters,
|
||||
_G.ChatConfigCombatSettingsFiltersScrollFrame,
|
||||
_G.CombatConfigColorsHighlighting,
|
||||
_G.CombatConfigColorsColorizeUnitName,
|
||||
_G.CombatConfigColorsColorizeSpellNames,
|
||||
_G.CombatConfigColorsColorizeDamageNumber,
|
||||
_G.CombatConfigColorsColorizeDamageSchool,
|
||||
_G.CombatConfigColorsColorizeEntireLine,
|
||||
_G.ChatConfigChatSettingsLeft,
|
||||
_G.ChatConfigOtherSettingsCombat,
|
||||
_G.ChatConfigOtherSettingsPVP,
|
||||
_G.ChatConfigOtherSettingsSystem,
|
||||
_G.ChatConfigOtherSettingsCreature,
|
||||
_G.ChatConfigChannelSettingsLeft,
|
||||
_G.CombatConfigMessageSourcesDoneBy,
|
||||
_G.CombatConfigColorsUnitColors,
|
||||
_G.CombatConfigMessageSourcesDoneTo,
|
||||
}
|
||||
|
||||
local ChatButtons = {
|
||||
_G.ChatConfigFrameDefaultButton,
|
||||
_G.ChatConfigFrameRedockButton,
|
||||
_G.ChatConfigFrameOkayButton,
|
||||
_G.ChatConfigCombatSettingsFiltersDeleteButton,
|
||||
_G.ChatConfigCombatSettingsFiltersAddFilterButton,
|
||||
_G.ChatConfigCombatSettingsFiltersCopyFilterButton,
|
||||
_G.CombatConfigSettingsSaveButton,
|
||||
_G.CombatLogDefaultButton,
|
||||
}
|
||||
|
||||
local ChatCheckBoxs = {
|
||||
_G.CombatConfigColorsHighlightingLine,
|
||||
_G.CombatConfigColorsHighlightingAbility,
|
||||
_G.CombatConfigColorsHighlightingDamage,
|
||||
_G.CombatConfigColorsHighlightingSchool,
|
||||
_G.CombatConfigColorsColorizeUnitNameCheck,
|
||||
_G.CombatConfigColorsColorizeSpellNamesCheck,
|
||||
_G.CombatConfigColorsColorizeSpellNamesSchoolColoring,
|
||||
_G.CombatConfigColorsColorizeDamageNumberCheck,
|
||||
_G.CombatConfigColorsColorizeDamageNumberSchoolColoring,
|
||||
_G.CombatConfigColorsColorizeDamageSchoolCheck,
|
||||
_G.CombatConfigColorsColorizeEntireLineCheck,
|
||||
_G.CombatConfigFormattingShowTimeStamp,
|
||||
_G.CombatConfigFormattingShowBraces,
|
||||
_G.CombatConfigFormattingUnitNames,
|
||||
_G.CombatConfigFormattingSpellNames,
|
||||
_G.CombatConfigFormattingItemNames,
|
||||
_G.CombatConfigFormattingFullText,
|
||||
_G.CombatConfigSettingsShowQuickButton,
|
||||
_G.CombatConfigSettingsSolo,
|
||||
_G.CombatConfigSettingsParty,
|
||||
_G.CombatConfigSettingsRaid,
|
||||
}
|
||||
|
||||
for _, Frame in pairs(ChatFrames) do
|
||||
Frame:StripTextures()
|
||||
Frame:CreateBackdrop('Transparent')
|
||||
end
|
||||
|
||||
for _, CheckBox in pairs(ChatCheckBoxs) do
|
||||
S:HandleCheckBox(CheckBox)
|
||||
end
|
||||
|
||||
for _, Button in pairs(ChatButtons) do
|
||||
S:HandleButton(Button)
|
||||
end
|
||||
|
||||
for i in pairs(_G.COMBAT_CONFIG_TABS) do
|
||||
S:HandleTab(_G['CombatConfigTab'..i])
|
||||
_G['CombatConfigTab'..i].backdrop:Point('TOPLEFT', 0, -10)
|
||||
_G['CombatConfigTab'..i].backdrop:Point('BOTTOMRIGHT', -2, 3)
|
||||
_G['CombatConfigTab'..i..'Text']:Point('BOTTOM', 0, 10)
|
||||
end
|
||||
|
||||
_G.CombatConfigTab1:ClearAllPoints()
|
||||
_G.CombatConfigTab1:Point('BOTTOMLEFT', _G.ChatConfigBackgroundFrame, 'TOPLEFT', 6, -2)
|
||||
|
||||
S:HandleEditBox(_G.CombatConfigSettingsNameEditBox)
|
||||
S:HandleNextPrevButton(_G.ChatConfigMoveFilterUpButton)
|
||||
S:HandleNextPrevButton(_G.ChatConfigMoveFilterDownButton)
|
||||
_G.ChatConfigMoveFilterUpButton:Size(19, 19)
|
||||
_G.ChatConfigMoveFilterDownButton:Size(19, 19)
|
||||
_G.ChatConfigMoveFilterUpButton:Point('TOPLEFT', '$parent', 'BOTTOMLEFT', 0, -3)
|
||||
_G.ChatConfigMoveFilterDownButton:Point('LEFT', _G.ChatConfigMoveFilterUpButton, 'RIGHT', 3, 0)
|
||||
|
||||
_G.ChatConfigFrameOkayButton:Point('RIGHT', '$parentCancelButton', 'RIGHT', -1, -3)
|
||||
_G.ChatConfigFrameDefaultButton:Point('BOTTOMLEFT', 12, 10)
|
||||
_G.ChatConfigCombatSettingsFiltersDeleteButton:Point('TOPRIGHT', '$parent', 'BOTTOMRIGHT', -3, -1)
|
||||
_G.ChatConfigCombatSettingsFiltersAddFilterButton:Point('RIGHT', '$parentDeleteButton', 'LEFT', -2, 0)
|
||||
_G.ChatConfigCombatSettingsFiltersCopyFilterButton:Point('RIGHT', '$parentAddFilterButton', 'LEFT', -2, 0)
|
||||
S:HandleScrollBar(_G.ChatConfigCombatSettingsFiltersScrollFrameScrollBar)
|
||||
|
||||
hooksecurefunc('ChatConfig_UpdateCheckboxes', function(frame)
|
||||
if not _G.FCF_GetCurrentChatFrame() then return end
|
||||
|
||||
for index in ipairs(frame.checkBoxTable) do
|
||||
local checkBoxNameString = frame:GetName()..'CheckBox'
|
||||
local checkBoxName = checkBoxNameString..index
|
||||
local checkBox = _G[checkBoxName]
|
||||
local check = _G[checkBoxName..'Check']
|
||||
if checkBox and not checkBox.isSkinned then
|
||||
checkBox:StripTextures()
|
||||
S:HandleCheckBox(check)
|
||||
if _G[checkBoxName..'ColorClasses'] then
|
||||
S:HandleCheckBox(_G[checkBoxName..'ColorClasses'])
|
||||
end
|
||||
checkBox.isSkinned = true
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
hooksecurefunc('ChatConfig_UpdateTieredCheckboxes', function(frame, index)
|
||||
local group = frame.checkBoxTable[index]
|
||||
local checkBox = _G[frame:GetName()..'CheckBox'..index]
|
||||
if checkBox then
|
||||
S:HandleCheckBox(checkBox)
|
||||
end
|
||||
if group.subTypes then
|
||||
for k in ipairs(group.subTypes) do
|
||||
S:HandleCheckBox(_G[frame:GetName()..'CheckBox'..index..'_'..k])
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
hooksecurefunc('ChatConfig_UpdateSwatches', function(frame)
|
||||
if not _G.FCF_GetCurrentChatFrame() then return end
|
||||
|
||||
for index in ipairs(frame.swatchTable) do
|
||||
_G[frame:GetName()..'Swatch'..index]:StripTextures()
|
||||
end
|
||||
end)
|
||||
|
||||
local OptionsFrames = { _G.InterfaceOptionsFrame, _G.InterfaceOptionsFrameCategories, _G.InterfaceOptionsFramePanelContainer, _G.InterfaceOptionsFrameAddOns, _G.VideoOptionsFrame, _G.VideoOptionsFrameCategoryFrame, _G.VideoOptionsFramePanelContainer, _G.Display_, _G.Graphics_, _G.RaidGraphics_ }
|
||||
local OptionsFrameBackdrops = { _G.AudioOptionsSoundPanelHardware, _G.AudioOptionsSoundPanelVolume, _G.AudioOptionsSoundPanelPlayback, _G.AudioOptionsVoicePanelTalking, _G.AudioOptionsVoicePanelListening, _G.AudioOptionsVoicePanelBinding }
|
||||
local OptionsButtons = { _G.GraphicsButton, _G.RaidButton }
|
||||
|
||||
local InterfaceOptions = {
|
||||
_G.InterfaceOptionsFrame,
|
||||
_G.InterfaceOptionsControlsPanel,
|
||||
_G.InterfaceOptionsCombatPanel,
|
||||
_G.InterfaceOptionsCombatPanelEnemyCastBars,
|
||||
_G.InterfaceOptionsCombatTextPanel,
|
||||
_G.InterfaceOptionsDisplayPanel,
|
||||
_G.InterfaceOptionsObjectivesPanel,
|
||||
_G.InterfaceOptionsSocialPanel,
|
||||
_G.InterfaceOptionsActionBarsPanel,
|
||||
_G.InterfaceOptionsNamesPanel,
|
||||
_G.InterfaceOptionsNamesPanelFriendly,
|
||||
_G.InterfaceOptionsNamesPanelEnemy,
|
||||
_G.InterfaceOptionsNamesPanelUnitNameplates,
|
||||
_G.InterfaceOptionsBattlenetPanel,
|
||||
_G.InterfaceOptionsCameraPanel,
|
||||
_G.InterfaceOptionsMousePanel,
|
||||
_G.InterfaceOptionsHelpPanel,
|
||||
_G.InterfaceOptionsAccessibilityPanel,
|
||||
_G.VideoOptionsFrame,
|
||||
_G.Display_,
|
||||
_G.Graphics_,
|
||||
_G.RaidGraphics_,
|
||||
_G.Advanced_,
|
||||
_G.NetworkOptionsPanel,
|
||||
_G.InterfaceOptionsLanguagesPanel,
|
||||
_G.AudioOptionsSoundPanel,
|
||||
_G.AudioOptionsSoundPanelHardware,
|
||||
_G.AudioOptionsSoundPanelVolume,
|
||||
_G.AudioOptionsSoundPanelPlayback,
|
||||
_G.AudioOptionsVoicePanel,
|
||||
_G.AudioOptionsVoicePanelTalking,
|
||||
_G.AudioOptionsVoicePanelListening,
|
||||
_G.AudioOptionsVoicePanelBinding,
|
||||
_G.AudioOptionsVoicePanelMicTest,
|
||||
_G.AudioOptionsVoicePanelChatMode1,
|
||||
_G.AudioOptionsVoicePanelChatMode2,
|
||||
_G.CompactUnitFrameProfiles,
|
||||
_G.CompactUnitFrameProfilesGeneralOptionsFrame,
|
||||
}
|
||||
|
||||
for _, Frame in pairs(OptionsFrames) do
|
||||
Frame:StripTextures()
|
||||
Frame:CreateBackdrop('Transparent')
|
||||
end
|
||||
|
||||
local InterfaceOptionsFrame = _G.InterfaceOptionsFrame
|
||||
InterfaceOptionsFrame.Header = InterfaceOptionsFrame.Header
|
||||
InterfaceOptionsFrame.Header:StripTextures()
|
||||
InterfaceOptionsFrame.Header:ClearAllPoints()
|
||||
InterfaceOptionsFrame.Header:Point('TOP', InterfaceOptionsFrame, 0, 0)
|
||||
|
||||
local VideoOptionsFrame = _G.VideoOptionsFrame
|
||||
VideoOptionsFrame.Header:StripTextures()
|
||||
VideoOptionsFrame.Header:ClearAllPoints()
|
||||
VideoOptionsFrame.Header:Point('TOP', VideoOptionsFrame, 0, 0)
|
||||
|
||||
for _, Frame in pairs(OptionsFrameBackdrops) do
|
||||
Frame:StripTextures()
|
||||
Frame:CreateBackdrop('Transparent')
|
||||
end
|
||||
|
||||
for _, Tab in pairs(OptionsButtons) do
|
||||
S:HandleButton(Tab)
|
||||
end
|
||||
|
||||
for _, Panel in pairs(InterfaceOptions) do
|
||||
if Panel then
|
||||
for i = 1, Panel:GetNumChildren() do
|
||||
local Child = select(i, Panel:GetChildren())
|
||||
if Child:IsObjectType('CheckButton') then
|
||||
S:HandleCheckBox(Child)
|
||||
elseif Child:IsObjectType('Button') then
|
||||
S:HandleButton(Child)
|
||||
elseif Child:IsObjectType('Slider') then
|
||||
S:HandleSliderFrame(Child)
|
||||
elseif Child:IsObjectType('Tab') then
|
||||
S:HandleTab(Child)
|
||||
elseif Child:IsObjectType('Frame') and Child.Left and Child.Middle and Child.Right then
|
||||
S:HandleDropDownBox(Child)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
_G.InterfaceOptionsFrameTab1:Point('BOTTOMLEFT', _G.InterfaceOptionsFrameCategories, 'TOPLEFT', 6, 1)
|
||||
_G.InterfaceOptionsFrameTab1:StripTextures()
|
||||
_G.InterfaceOptionsFrameTab2:Point('TOPLEFT', _G.InterfaceOptionsFrameTab1, 'TOPRIGHT', 1, 0)
|
||||
_G.InterfaceOptionsFrameTab2:StripTextures()
|
||||
_G.InterfaceOptionsSocialPanel.EnableTwitter.Logo:SetAtlas('WoWShare-TwitterLogo')
|
||||
|
||||
--Create New Raid Profle
|
||||
local newProfileDialog = _G.CompactUnitFrameProfilesNewProfileDialog
|
||||
if newProfileDialog then
|
||||
newProfileDialog:StripTextures()
|
||||
newProfileDialog:CreateBackdrop('Transparent')
|
||||
|
||||
S:HandleDropDownBox(_G.CompactUnitFrameProfilesNewProfileDialogBaseProfileSelector)
|
||||
S:HandleButton(_G.CompactUnitFrameProfilesNewProfileDialogCreateButton)
|
||||
S:HandleButton(_G.CompactUnitFrameProfilesNewProfileDialogCancelButton)
|
||||
|
||||
if newProfileDialog.editBox then
|
||||
S:HandleEditBox(newProfileDialog.editBox)
|
||||
newProfileDialog.editBox:Size(210, 25)
|
||||
end
|
||||
end
|
||||
|
||||
--Delete Raid Profile
|
||||
local deleteProfileDialog = _G.CompactUnitFrameProfilesDeleteProfileDialog
|
||||
if deleteProfileDialog then
|
||||
deleteProfileDialog:StripTextures()
|
||||
deleteProfileDialog:CreateBackdrop('Transparent')
|
||||
|
||||
S:HandleButton(_G.CompactUnitFrameProfilesDeleteProfileDialogDeleteButton)
|
||||
S:HandleButton(_G.CompactUnitFrameProfilesDeleteProfileDialogCancelButton)
|
||||
end
|
||||
|
||||
local AudioOptionsFrame = _G.AudioOptionsFrame
|
||||
AudioOptionsFrame.Header = AudioOptionsFrame.Header
|
||||
AudioOptionsFrame.Header:SetAlpha(0)
|
||||
AudioOptionsFrame.Header:ClearAllPoints()
|
||||
AudioOptionsFrame.Header:Point('TOP', AudioOptionsFrame, 0, 0)
|
||||
|
||||
-- Toggle Test Audio Button - Wow 8.0
|
||||
S:HandleButton(_G.AudioOptionsVoicePanel.TestInputDevice.ToggleTest)
|
||||
|
||||
local VUMeter = _G.AudioOptionsVoicePanelTestInputDevice.VUMeter
|
||||
VUMeter:SetBackdrop()
|
||||
VUMeter.Status:CreateBackdrop()
|
||||
VUMeter.Status:SetStatusBarTexture(E.media.normTex)
|
||||
E:RegisterStatusBar(VUMeter.Status)
|
||||
|
||||
-- PushToTalk KeybindButton - Wow 8.0
|
||||
hooksecurefunc('AudioOptionsVoicePanel_InitializeCommunicationModeUI', S.AudioOptionsVoicePanel_InitializeCommunicationModeUI)
|
||||
|
||||
--What's New
|
||||
local SplashFrame = _G.SplashFrame
|
||||
SplashFrame:CreateBackdrop('Transparent')
|
||||
SplashFrame.Header:FontTemplate(nil, 22)
|
||||
S:HandleButton(SplashFrame.BottomCloseButton)
|
||||
S:HandleCloseButton(SplashFrame.TopCloseButton)
|
||||
SplashFrame.BottomCloseButton:SetFrameLevel(SplashFrame.BottomCloseButton:GetFrameLevel() + 1)
|
||||
|
||||
-- New Voice Sliders
|
||||
S:HandleSliderFrame(_G.UnitPopupVoiceSpeakerVolume.Slider)
|
||||
S:HandleSliderFrame(_G.UnitPopupVoiceMicrophoneVolume.Slider)
|
||||
S:HandleSliderFrame(_G.UnitPopupVoiceUserVolume.Slider)
|
||||
end
|
||||
|
||||
S:AddCallback('BlizzardOptions')
|
||||
241
Modules/Skins/Blizzard/Calendar.lua
Normal file
241
Modules/Skins/Blizzard/Calendar.lua
Normal file
@@ -0,0 +1,241 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local ipairs, select, unpack = ipairs, select, unpack
|
||||
|
||||
local CLASS_SORT_ORDER = CLASS_SORT_ORDER
|
||||
local CLASS_ICON_TCOORDS = CLASS_ICON_TCOORDS
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
function S:Blizzard_Calendar()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.calendar) then return end
|
||||
|
||||
local CalendarFrame = _G.CalendarFrame
|
||||
CalendarFrame:DisableDrawLayer('BORDER')
|
||||
CalendarFrame:CreateBackdrop('Transparent')
|
||||
S:HandleCloseButton(_G.CalendarCloseButton)
|
||||
_G.CalendarCloseButton:Point('TOPRIGHT', CalendarFrame, 'TOPRIGHT', -4, -4)
|
||||
|
||||
for i = 1, 7 do
|
||||
_G['CalendarWeekday'..i..'Background']:SetAlpha(0)
|
||||
end
|
||||
|
||||
_G.CalendarViewEventDivider:Hide()
|
||||
_G.CalendarCreateEventDivider:Hide()
|
||||
_G.CalendarViewEventInviteList:GetRegions():Hide()
|
||||
_G.CalendarViewEventDescriptionContainer:GetRegions():Hide()
|
||||
select(5, _G.CalendarCreateEventCloseButton:GetRegions()):Hide()
|
||||
select(5, _G.CalendarViewEventCloseButton:GetRegions()):Hide()
|
||||
select(5, _G.CalendarViewHolidayCloseButton:GetRegions()):Hide()
|
||||
select(5, _G.CalendarViewRaidCloseButton:GetRegions()):Hide()
|
||||
select(5, _G.CalendarMassInviteCloseButton:GetRegions()):Hide()
|
||||
--_G.CalendarCreateEventBackground:Hide()
|
||||
_G.CalendarCreateEventFrameButtonBackground:Hide()
|
||||
_G.CalendarCreateEventMassInviteButtonBorder:Hide()
|
||||
_G.CalendarCreateEventCreateButtonBorder:Hide()
|
||||
_G.CalendarEventPickerFrameButtonBackground:Hide()
|
||||
_G.CalendarEventPickerCloseButtonBorder:Hide()
|
||||
_G.CalendarCreateEventRaidInviteButtonBorder:Hide()
|
||||
_G.CalendarMonthBackground:SetAlpha(0)
|
||||
_G.CalendarYearBackground:SetAlpha(0)
|
||||
_G.CalendarFrameModalOverlay:SetAlpha(.25)
|
||||
_G.CalendarViewHolidayInfoTexture:SetAlpha(0)
|
||||
_G.CalendarTexturePickerFrameButtonBackground:Hide()
|
||||
_G.CalendarTexturePickerAcceptButtonBorder:Hide()
|
||||
_G.CalendarTexturePickerCancelButtonBorder:Hide()
|
||||
_G.CalendarClassTotalsButtonBackgroundTop:Hide()
|
||||
_G.CalendarClassTotalsButtonBackgroundMiddle:Hide()
|
||||
_G.CalendarClassTotalsButtonBackgroundBottom:Hide()
|
||||
_G.CalendarFilterFrameLeft:Hide()
|
||||
_G.CalendarFilterFrameMiddle:Hide()
|
||||
_G.CalendarFilterFrameRight:Hide()
|
||||
|
||||
S:HandleNextPrevButton(_G.CalendarPrevMonthButton, nil, nil, true)
|
||||
S:HandleNextPrevButton(_G.CalendarNextMonthButton, nil, nil, true)
|
||||
|
||||
_G.CalendarFilterFrame:StripTextures()
|
||||
_G.CalendarFilterFrame:Width(155)
|
||||
|
||||
_G.CalendarFilterFrameText:ClearAllPoints()
|
||||
_G.CalendarFilterFrameText:Point('RIGHT', _G.CalendarFilterButton, 'LEFT', -2, 0)
|
||||
|
||||
_G.CalendarFilterButton:ClearAllPoints()
|
||||
_G.CalendarFilterButton:Point('RIGHT', _G.CalendarFilterFrame, 'RIGHT', -10, 3)
|
||||
_G.CalendarFilterButton.SetPoint = E.noop
|
||||
|
||||
S:HandleNextPrevButton(_G.CalendarFilterButton)
|
||||
|
||||
_G.CalendarFilterFrame:CreateBackdrop()
|
||||
_G.CalendarFilterFrame.backdrop:Point('TOPLEFT', 20, 2)
|
||||
_G.CalendarFilterFrame.backdrop:Point('BOTTOMRIGHT', _G.CalendarFilterButton, 'BOTTOMRIGHT', 2, -2)
|
||||
|
||||
_G.CalendarContextMenu:SetTemplate()
|
||||
_G.CalendarContextMenu.SetBackdropColor = E.noop
|
||||
_G.CalendarContextMenu.SetBackdropBorderColor = E.noop
|
||||
|
||||
_G.CalendarInviteStatusContextMenu:SetTemplate()
|
||||
_G.CalendarInviteStatusContextMenu.SetBackdropColor = E.noop
|
||||
_G.CalendarInviteStatusContextMenu.SetBackdropBorderColor = E.noop
|
||||
|
||||
--Boost frame levels
|
||||
for i = 1, 42 do
|
||||
_G['CalendarDayButton'..i..'DarkFrame']:SetAlpha(.5)
|
||||
local bu = _G['CalendarDayButton'..i]
|
||||
|
||||
if E.private.skins.parchmentRemoverEnable then
|
||||
bu:DisableDrawLayer('BACKGROUND') -- This would remove the 'Parchement'
|
||||
end
|
||||
|
||||
bu:CreateBackdrop(nil, nil, nil, true)
|
||||
bu.backdrop:SetBackdropColor(0,0,0,0)
|
||||
bu:SetHighlightTexture(E.media.glossTex)
|
||||
bu:SetFrameLevel(bu:GetFrameLevel() + 1)
|
||||
|
||||
local hl = bu:GetHighlightTexture()
|
||||
hl:SetVertexColor(1, 1, 1, 0.3)
|
||||
hl.SetAlpha = E.noop
|
||||
hl:Point('TOPLEFT', -1, 1)
|
||||
hl:Point('BOTTOMRIGHT')
|
||||
end
|
||||
|
||||
_G.CalendarWeekdaySelectedTexture:SetDesaturated(true)
|
||||
_G.CalendarWeekdaySelectedTexture:SetVertexColor(1, 1, 1, 0.6)
|
||||
|
||||
hooksecurefunc('CalendarFrame_SetToday', function()
|
||||
_G.CalendarTodayFrame:SetAllPoints()
|
||||
end)
|
||||
|
||||
_G.CalendarTodayFrame:SetScript('OnUpdate', nil)
|
||||
_G.CalendarTodayTextureGlow:Hide()
|
||||
_G.CalendarTodayTexture:Hide()
|
||||
|
||||
_G.CalendarTodayFrame:CreateBackdrop()
|
||||
_G.CalendarTodayFrame.backdrop:SetBackdropBorderColor(_G.NORMAL_FONT_COLOR:GetRGB())
|
||||
_G.CalendarTodayFrame.backdrop:SetBackdropColor(0,0,0,0)
|
||||
|
||||
--CreateEventFrame
|
||||
_G.CalendarCreateEventFrame:StripTextures()
|
||||
_G.CalendarCreateEventFrame:CreateBackdrop('Transparent')
|
||||
_G.CalendarCreateEventFrame:Point('TOPLEFT', CalendarFrame, 'TOPRIGHT', 3, -24)
|
||||
_G.CalendarCreateEventFrame.Header:StripTextures()
|
||||
|
||||
S:HandleButton(_G.CalendarCreateEventCreateButton, true)
|
||||
S:HandleButton(_G.CalendarCreateEventMassInviteButton, true)
|
||||
S:HandleButton(_G.CalendarCreateEventInviteButton, true)
|
||||
_G.CalendarCreateEventInviteButton:Point('TOPLEFT', _G.CalendarCreateEventInviteEdit, 'TOPRIGHT', 4, 1)
|
||||
_G.CalendarCreateEventInviteEdit:Width(_G.CalendarCreateEventInviteEdit:GetWidth() - 2)
|
||||
|
||||
_G.CalendarCreateEventInviteList:StripTextures()
|
||||
_G.CalendarCreateEventInviteList:CreateBackdrop()
|
||||
|
||||
S:HandleEditBox(_G.CalendarCreateEventInviteEdit)
|
||||
S:HandleEditBox(_G.CalendarCreateEventTitleEdit)
|
||||
S:HandleDropDownBox(_G.CalendarCreateEventTypeDropDown, 120)
|
||||
S:HandleDropDownBox(_G.CalendarCreateEventCommunityDropDown, 240)
|
||||
|
||||
_G.CalendarCreateEventDescriptionContainer:StripTextures()
|
||||
_G.CalendarCreateEventDescriptionContainer:SetTemplate()
|
||||
|
||||
S:HandleCloseButton(_G.CalendarCreateEventCloseButton)
|
||||
|
||||
S:HandleCheckBox(_G.CalendarCreateEventLockEventCheck)
|
||||
|
||||
S:HandleDropDownBox(_G.CalendarCreateEventHourDropDown, 68)
|
||||
S:HandleDropDownBox(_G.CalendarCreateEventMinuteDropDown, 68)
|
||||
S:HandleDropDownBox(_G.CalendarCreateEventAMPMDropDown, 68)
|
||||
S:HandleDropDownBox(_G.CalendarCreateEventDifficultyOptionDropDown)
|
||||
--S:HandleDropDownBox(CalendarCreateEventRepeatOptionDropDown, 120)
|
||||
_G.CalendarCreateEventIcon:SetTexCoord(unpack(E.TexCoords))
|
||||
_G.CalendarCreateEventIcon.SetTexCoord = E.noop
|
||||
|
||||
_G.CalendarCreateEventInviteListSection:StripTextures()
|
||||
|
||||
_G.CalendarClassButtonContainer:HookScript('OnShow', function()
|
||||
for i, class in ipairs(CLASS_SORT_ORDER) do
|
||||
local button = _G['CalendarClassButton'..i]
|
||||
local tcoords = CLASS_ICON_TCOORDS[class]
|
||||
local buttonIcon = button:GetNormalTexture()
|
||||
buttonIcon:SetTexture([[Interface\Glues\CharacterCreate\UI-CharacterCreate-Classes]])
|
||||
buttonIcon:SetTexCoord(tcoords[1] + 0.015, tcoords[2] - 0.02, tcoords[3] + 0.018, tcoords[4] - 0.02) --F U C K I N G H A X
|
||||
end
|
||||
end)
|
||||
|
||||
_G.CalendarClassButton1:Point('TOPLEFT', _G.CalendarClassButtonContainer, 'TOPLEFT', E.PixelMode and 4 or 8, 0)
|
||||
|
||||
for i = 1, #CLASS_SORT_ORDER do
|
||||
local button = _G['CalendarClassButton'..i]
|
||||
button:StripTextures()
|
||||
button:CreateBackdrop()
|
||||
button:Size(24)
|
||||
end
|
||||
|
||||
_G.CalendarClassTotalsButton:StripTextures()
|
||||
_G.CalendarClassTotalsButton:CreateBackdrop()
|
||||
_G.CalendarClassTotalsButton:Width(24)
|
||||
|
||||
--Texture Picker Frame
|
||||
_G.CalendarTexturePickerFrame:StripTextures()
|
||||
_G.CalendarTexturePickerFrame.Header:StripTextures()
|
||||
_G.CalendarTexturePickerFrame:CreateBackdrop('Transparent')
|
||||
|
||||
S:HandleScrollBar(_G.CalendarTexturePickerScrollBar)
|
||||
S:HandleButton(_G.CalendarTexturePickerAcceptButton, true)
|
||||
S:HandleButton(_G.CalendarTexturePickerCancelButton, true)
|
||||
S:HandleButton(_G.CalendarCreateEventInviteButton, true)
|
||||
S:HandleButton(_G.CalendarCreateEventRaidInviteButton, true)
|
||||
|
||||
--Mass Invite Frame
|
||||
_G.CalendarMassInviteFrame:StripTextures()
|
||||
_G.CalendarMassInviteFrame:CreateBackdrop('Transparent')
|
||||
_G.CalendarMassInviteFrame.Header:StripTextures()
|
||||
|
||||
S:HandleCloseButton(_G.CalendarMassInviteCloseButton)
|
||||
|
||||
--Raid View
|
||||
_G.CalendarViewRaidFrame:StripTextures()
|
||||
_G.CalendarViewRaidFrame:CreateBackdrop('Transparent')
|
||||
_G.CalendarViewRaidFrame:Point('TOPLEFT', CalendarFrame, 'TOPRIGHT', 3, -24)
|
||||
_G.CalendarViewRaidFrame.Header:StripTextures()
|
||||
S:HandleCloseButton(_G.CalendarViewRaidCloseButton)
|
||||
|
||||
--Holiday View
|
||||
_G.CalendarViewHolidayFrame:StripTextures(true)
|
||||
_G.CalendarViewHolidayFrame:CreateBackdrop('Transparent')
|
||||
_G.CalendarViewHolidayFrame:Point('TOPLEFT', CalendarFrame, 'TOPRIGHT', 3, -24)
|
||||
_G.CalendarViewHolidayFrame.Header:StripTextures()
|
||||
S:HandleCloseButton(_G.CalendarViewHolidayCloseButton)
|
||||
|
||||
-- Event View
|
||||
_G.CalendarViewEventFrame:StripTextures()
|
||||
_G.CalendarViewEventFrame:CreateBackdrop('Transparent')
|
||||
_G.CalendarViewEventFrame:Point('TOPLEFT', CalendarFrame, 'TOPRIGHT', 3, -24)
|
||||
_G.CalendarViewEventFrame.Header:StripTextures()
|
||||
_G.CalendarViewHolidayFrame.Header:StripTextures()
|
||||
_G.CalendarViewEventDescriptionContainer:StripTextures()
|
||||
_G.CalendarViewEventDescriptionContainer:CreateBackdrop('Transparent')
|
||||
_G.CalendarViewEventInviteList:StripTextures()
|
||||
_G.CalendarViewEventInviteList:CreateBackdrop('Transparent')
|
||||
_G.CalendarViewEventInviteListSection:StripTextures()
|
||||
S:HandleCloseButton(_G.CalendarViewEventCloseButton)
|
||||
S:HandleScrollBar(_G.CalendarViewEventInviteListScrollFrameScrollBar)
|
||||
|
||||
S:HandleButton(_G.CalendarViewEventAcceptButton)
|
||||
S:HandleButton(_G.CalendarViewEventTentativeButton)
|
||||
S:HandleButton(_G.CalendarViewEventRemoveButton)
|
||||
S:HandleButton(_G.CalendarViewEventDeclineButton)
|
||||
|
||||
--Event Picker Frame
|
||||
_G.CalendarEventPickerFrame:StripTextures()
|
||||
_G.CalendarEventPickerFrame.Header:StripTextures()
|
||||
_G.CalendarEventPickerFrame:CreateBackdrop('Transparent')
|
||||
|
||||
S:HandleScrollBar(_G.CalendarEventPickerScrollBar)
|
||||
S:HandleButton(_G.CalendarEventPickerCloseButton, true)
|
||||
|
||||
S:HandleScrollBar(_G.CalendarCreateEventDescriptionScrollFrameScrollBar)
|
||||
S:HandleScrollBar(_G.CalendarCreateEventInviteListScrollFrameScrollBar)
|
||||
S:HandleScrollBar(_G.CalendarViewEventDescriptionScrollFrameScrollBar)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_Calendar')
|
||||
46
Modules/Skins/Blizzard/Channels.lua
Normal file
46
Modules/Skins/Blizzard/Channels.lua
Normal file
@@ -0,0 +1,46 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
function S:Blizzard_Channels()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.channels) then return end
|
||||
|
||||
local ChannelFrame = _G.ChannelFrame
|
||||
local CreateChannelPopup = _G.CreateChannelPopup
|
||||
|
||||
S:HandlePortraitFrame(ChannelFrame)
|
||||
CreateChannelPopup:StripTextures()
|
||||
CreateChannelPopup:CreateBackdrop('Transparent')
|
||||
|
||||
S:HandleButton(ChannelFrame.NewButton)
|
||||
S:HandleButton(ChannelFrame.SettingsButton)
|
||||
|
||||
S:HandleScrollBar(ChannelFrame.ChannelRoster.ScrollFrame.scrollBar)
|
||||
ChannelFrame.ChannelRoster.ScrollFrame.scrollBar:Point('TOPLEFT', ChannelFrame.ChannelRoster.ScrollFrame, 'TOPRIGHT', 1, -13)
|
||||
ChannelFrame.ChannelRoster.ScrollFrame.scrollBar:Point('BOTTOMLEFT', ChannelFrame.ChannelRoster.ScrollFrame, 'BOTTOMRIGHT', 1, 13)
|
||||
|
||||
S:HandleScrollBar(ChannelFrame.ChannelList.ScrollBar)
|
||||
ChannelFrame.ChannelList.ScrollBar:Point('BOTTOMLEFT', ChannelFrame.ChannelList, 'BOTTOMRIGHT', 0, 15)
|
||||
|
||||
S:HandleCloseButton(CreateChannelPopup.CloseButton)
|
||||
S:HandleButton(CreateChannelPopup.OKButton)
|
||||
S:HandleButton(CreateChannelPopup.CancelButton)
|
||||
|
||||
S:HandleEditBox(CreateChannelPopup.Name)
|
||||
S:HandleEditBox(CreateChannelPopup.Password)
|
||||
|
||||
_G.VoiceChatPromptActivateChannel:StripTextures()
|
||||
_G.VoiceChatPromptActivateChannel:CreateBackdrop('Transparent')
|
||||
S:HandleButton(_G.VoiceChatPromptActivateChannel.AcceptButton)
|
||||
S:HandleCloseButton(_G.VoiceChatPromptActivateChannel.CloseButton)
|
||||
|
||||
-- Hide the Channel Header Textures
|
||||
hooksecurefunc(_G.ChannelButtonHeaderMixin, 'Update', function(s)
|
||||
s:CreateBackdrop('Transparent')
|
||||
s.NormalTexture:SetTexture()
|
||||
end)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_Channels')
|
||||
503
Modules/Skins/Blizzard/Character.lua
Normal file
503
Modules/Skins/Blizzard/Character.lua
Normal file
@@ -0,0 +1,503 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local unpack, select = unpack, select
|
||||
local pairs, ipairs, type = pairs, ipairs, type
|
||||
|
||||
local EquipmentManager_GetItemInfoByLocation = EquipmentManager_GetItemInfoByLocation
|
||||
local FauxScrollFrame_GetOffset = FauxScrollFrame_GetOffset
|
||||
local GetFactionInfo = GetFactionInfo
|
||||
local GetNumFactions = GetNumFactions
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
local IsAddOnLoaded = IsAddOnLoaded
|
||||
local ITEM_QUALITY_COLORS = ITEM_QUALITY_COLORS
|
||||
|
||||
local FLYOUT_LOCATIONS = {
|
||||
[0xFFFFFFFF] = 'PLACEINBAGS',
|
||||
[0xFFFFFFFE] = 'IGNORESLOT',
|
||||
[0xFFFFFFFD] = 'UNIGNORESLOT'
|
||||
}
|
||||
|
||||
local function UpdateAzeriteItem(self)
|
||||
if not self.styled then
|
||||
self.styled = true
|
||||
|
||||
self.AzeriteTexture:SetAlpha(0)
|
||||
self.RankFrame.Texture:SetTexture()
|
||||
self.RankFrame.Label:FontTemplate(nil, nil, 'OUTLINE')
|
||||
end
|
||||
end
|
||||
|
||||
local function UpdateAzeriteEmpoweredItem(self)
|
||||
self.AzeriteTexture:SetAtlas('AzeriteIconFrame')
|
||||
self.AzeriteTexture:SetInside()
|
||||
self.AzeriteTexture:SetTexCoord(unpack(E.TexCoords))
|
||||
self.AzeriteTexture:SetDrawLayer('BORDER', 1)
|
||||
end
|
||||
|
||||
local function ColorizeStatPane(frame)
|
||||
if frame.leftGrad then return end
|
||||
|
||||
local r, g, b = 0.8, 0.8, 0.8
|
||||
frame.leftGrad = frame:CreateTexture(nil, 'BORDER')
|
||||
frame.leftGrad:Size(80, frame:GetHeight())
|
||||
frame.leftGrad:Point('LEFT', frame, 'CENTER')
|
||||
frame.leftGrad:SetTexture(E.Media.Textures.White8x8)
|
||||
frame.leftGrad:SetGradientAlpha('Horizontal', r, g, b, 0.25, r, g, b, 0)
|
||||
|
||||
frame.rightGrad = frame:CreateTexture(nil, 'BORDER')
|
||||
frame.rightGrad:Size(80, frame:GetHeight())
|
||||
frame.rightGrad:Point('RIGHT', frame, 'CENTER')
|
||||
frame.rightGrad:SetTexture(E.Media.Textures.White8x8)
|
||||
frame.rightGrad:SetGradientAlpha('Horizontal', r, g, b, 0, r, g, b, 0.25)
|
||||
end
|
||||
|
||||
local function StatsPane(which)
|
||||
local CharacterStatsPane = _G.CharacterStatsPane
|
||||
CharacterStatsPane[which]:StripTextures()
|
||||
CharacterStatsPane[which]:CreateBackdrop('Transparent')
|
||||
CharacterStatsPane[which].backdrop:ClearAllPoints()
|
||||
CharacterStatsPane[which].backdrop:Point('CENTER')
|
||||
CharacterStatsPane[which].backdrop:Size(150, 18)
|
||||
end
|
||||
|
||||
local function EquipmentUpdateItems()
|
||||
local anchor = _G.EquipmentFlyoutFrame.buttonFrame
|
||||
if not anchor.backdrop then
|
||||
anchor:StripTextures()
|
||||
anchor:CreateBackdrop('Transparent')
|
||||
end
|
||||
|
||||
local width, height = anchor:GetSize()
|
||||
anchor:Size(width+3, height)
|
||||
end
|
||||
|
||||
local function EquipmentDisplayButton(button)
|
||||
local location, border = button.location, button.IconBorder
|
||||
if not location or not border then return end
|
||||
|
||||
local id = button.id or button:GetID()
|
||||
if not id then return end
|
||||
|
||||
if not button.isHooked then
|
||||
local oldTex = button.icon:GetTexture()
|
||||
button:StripTextures()
|
||||
button:StyleButton(false)
|
||||
button:GetNormalTexture():SetTexture()
|
||||
|
||||
button.icon:SetInside()
|
||||
button.icon:SetTexCoord(unpack(E.TexCoords))
|
||||
button.icon:SetTexture(oldTex)
|
||||
|
||||
if not button.backdrop then
|
||||
button:CreateBackdrop()
|
||||
button.backdrop:SetAllPoints()
|
||||
|
||||
S:HandleIconBorder(button.IconBorder)
|
||||
end
|
||||
|
||||
button.isHooked = true
|
||||
end
|
||||
|
||||
local r, g, b, a = unpack(E.media.bordercolor)
|
||||
if FLYOUT_LOCATIONS[location] then -- special slots
|
||||
button.backdrop:SetBackdropBorderColor(r, g, b, a)
|
||||
else
|
||||
local quality = select(13, EquipmentManager_GetItemInfoByLocation(location))
|
||||
if not quality or quality == 0 then
|
||||
button.backdrop:SetBackdropBorderColor(r, g, b, a)
|
||||
else
|
||||
local color = ITEM_QUALITY_COLORS[quality]
|
||||
button.backdrop:SetBackdropBorderColor(color.r, color.g, color.b)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function FixSidebarTabCoords()
|
||||
for i=1, #_G.PAPERDOLL_SIDEBARS do
|
||||
local tab = _G['PaperDollSidebarTab'..i]
|
||||
|
||||
if tab and not tab.backdrop then
|
||||
tab:CreateBackdrop()
|
||||
tab.Icon:SetAllPoints()
|
||||
tab.Highlight:SetColorTexture(1, 1, 1, 0.3)
|
||||
tab.Highlight:SetAllPoints()
|
||||
|
||||
-- Check for DejaCharacterStats. Lets hide the Texture if the AddOn is loaded.
|
||||
if IsAddOnLoaded('DejaCharacterStats') then
|
||||
tab.Hider:SetTexture()
|
||||
else
|
||||
tab.Hider:SetColorTexture(0, 0, 0, 0.8)
|
||||
end
|
||||
tab.Hider:SetAllPoints(tab.backdrop)
|
||||
tab.TabBg:Kill()
|
||||
|
||||
if i == 1 then
|
||||
for x=1, tab:GetNumRegions() do
|
||||
local region = select(x, tab:GetRegions())
|
||||
region:SetTexCoord(0.16, 0.86, 0.16, 0.86)
|
||||
hooksecurefunc(region, 'SetTexCoord', function(self, x1)
|
||||
if x1 ~= 0.16001 then
|
||||
self:SetTexCoord(0.16001, 0.86, 0.16, 0.86)
|
||||
end
|
||||
end)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function UpdateFactionSkins()
|
||||
_G.ReputationListScrollFrame:StripTextures()
|
||||
_G.ReputationFrame:StripTextures(true)
|
||||
|
||||
local factionOffset = FauxScrollFrame_GetOffset(_G.ReputationListScrollFrame)
|
||||
local numFactions = GetNumFactions()
|
||||
|
||||
for i = 1, _G.NUM_FACTIONS_DISPLAYED, 1 do
|
||||
local statusbar = _G['ReputationBar'..i..'ReputationBar']
|
||||
local button = _G['ReputationBar'..i..'ExpandOrCollapseButton']
|
||||
local factionIndex = factionOffset + i
|
||||
local _, _, _, _, _, _, _, _, _, isCollapsed = GetFactionInfo(factionIndex)
|
||||
if factionIndex <= numFactions then
|
||||
if button then
|
||||
if isCollapsed then
|
||||
button:SetNormalTexture(E.Media.Textures.PlusButton)
|
||||
else
|
||||
button:SetNormalTexture(E.Media.Textures.MinusButton)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if statusbar then
|
||||
statusbar:SetStatusBarTexture(E.media.normTex)
|
||||
|
||||
if not statusbar.backdrop then
|
||||
statusbar:CreateBackdrop()
|
||||
E:RegisterStatusBar(statusbar)
|
||||
end
|
||||
|
||||
_G['ReputationBar'..i..'Background']:SetTexture()
|
||||
_G['ReputationBar'..i..'ReputationBarHighlight1']:SetTexture()
|
||||
_G['ReputationBar'..i..'ReputationBarHighlight2']:SetTexture()
|
||||
_G['ReputationBar'..i..'ReputationBarAtWarHighlight1']:SetTexture()
|
||||
_G['ReputationBar'..i..'ReputationBarAtWarHighlight2']:SetTexture()
|
||||
_G['ReputationBar'..i..'ReputationBarLeftTexture']:SetTexture()
|
||||
_G['ReputationBar'..i..'ReputationBarRightTexture']:SetTexture()
|
||||
end
|
||||
end
|
||||
|
||||
local ReputationDetailFrame = _G.ReputationDetailFrame
|
||||
ReputationDetailFrame:StripTextures()
|
||||
ReputationDetailFrame:ClearAllPoints()
|
||||
ReputationDetailFrame:Point('TOPLEFT', _G.ReputationFrame, 'TOPRIGHT', 4, -28)
|
||||
if not ReputationDetailFrame.backdrop then
|
||||
ReputationDetailFrame:CreateBackdrop('Transparent')
|
||||
end
|
||||
end
|
||||
|
||||
local function UpdateCurrencySkins()
|
||||
local TokenFramePopup = _G.TokenFramePopup
|
||||
|
||||
if TokenFramePopup then
|
||||
TokenFramePopup:StripTextures()
|
||||
TokenFramePopup:ClearAllPoints()
|
||||
TokenFramePopup:Point('TOPLEFT', _G.TokenFrame, 'TOPRIGHT', 4, -28)
|
||||
if not TokenFramePopup.backdrop then
|
||||
TokenFramePopup:CreateBackdrop('Transparent')
|
||||
end
|
||||
end
|
||||
|
||||
local TokenFrameContainer = _G.TokenFrameContainer
|
||||
if not TokenFrameContainer.buttons then return end
|
||||
|
||||
local buttons = TokenFrameContainer.buttons
|
||||
local numButtons = #buttons
|
||||
|
||||
for i=1, numButtons do
|
||||
local button = buttons[i]
|
||||
|
||||
if button then
|
||||
if button.highlight then button.highlight:Kill() end
|
||||
if button.categoryLeft then button.categoryLeft:Kill() end
|
||||
if button.categoryRight then button.categoryRight:Kill() end
|
||||
if button.categoryMiddle then button.categoryMiddle:Kill() end
|
||||
|
||||
if not button.backdrop then
|
||||
button:CreateBackdrop(nil, nil, nil, true)
|
||||
end
|
||||
|
||||
if button.icon then
|
||||
button.icon:SetTexCoord(unpack(E.TexCoords))
|
||||
button.icon:Size(17, 17)
|
||||
|
||||
button.backdrop:SetOutside(button.icon, 1, 1)
|
||||
button.backdrop:Show()
|
||||
else
|
||||
button.backdrop:Hide()
|
||||
end
|
||||
|
||||
if button.expandIcon then
|
||||
if not button.highlightTexture then
|
||||
button.highlightTexture = button:CreateTexture(button:GetName()..'HighlightTexture', 'HIGHLIGHT')
|
||||
button.highlightTexture:SetTexture([[Interface\Buttons\UI-PlusButton-Hilight]])
|
||||
button.highlightTexture:SetBlendMode('ADD')
|
||||
button.highlightTexture:SetInside(button.expandIcon)
|
||||
|
||||
-- these two only need to be called once
|
||||
-- adding them here will prevent additional calls
|
||||
button.expandIcon:Point('LEFT', 4, 0)
|
||||
button.expandIcon:Size(15, 15)
|
||||
end
|
||||
|
||||
if button.isHeader then
|
||||
button.backdrop:Hide()
|
||||
|
||||
if button.isExpanded then
|
||||
button.expandIcon:SetTexture(E.Media.Textures.MinusButton)
|
||||
button.expandIcon:SetTexCoord(0,1,0,1)
|
||||
else
|
||||
button.expandIcon:SetTexture(E.Media.Textures.PlusButton)
|
||||
button.expandIcon:SetTexCoord(0,1,0,1)
|
||||
end
|
||||
|
||||
button.highlightTexture:Show()
|
||||
else
|
||||
button.highlightTexture:Hide()
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function S:CharacterFrame()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.character) then return end
|
||||
|
||||
-- General
|
||||
local CharacterFrame = _G.CharacterFrame
|
||||
S:HandlePortraitFrame(CharacterFrame)
|
||||
S:HandleScrollBar(_G.ReputationListScrollFrameScrollBar)
|
||||
S:HandleScrollBar(_G.TokenFrameContainerScrollBar)
|
||||
S:HandleScrollBar(_G.GearManagerDialogPopupScrollFrameScrollBar)
|
||||
|
||||
for _, Slot in pairs({_G.PaperDollItemsFrame:GetChildren()}) do
|
||||
if Slot:IsObjectType('Button') or Slot:IsObjectType('ItemButton') then
|
||||
S:HandleIcon(Slot.icon)
|
||||
Slot:StripTextures()
|
||||
Slot:CreateBackdrop()
|
||||
Slot.backdrop:SetAllPoints()
|
||||
Slot.backdrop:SetFrameLevel(Slot:GetFrameLevel())
|
||||
Slot:StyleButton(Slot)
|
||||
Slot.icon:SetInside()
|
||||
Slot.ignoreTexture:SetTexture([[Interface\PaperDollInfoFrame\UI-GearManager-LeaveItem-Transparent]])
|
||||
|
||||
S:HandleIconBorder(Slot.IconBorder)
|
||||
|
||||
if Slot.popoutButton:GetPoint() == 'TOP' then
|
||||
Slot.popoutButton:Point('TOP', Slot, 'BOTTOM', 0, 2)
|
||||
else
|
||||
Slot.popoutButton:Point('LEFT', Slot, 'RIGHT', -2, 0)
|
||||
end
|
||||
|
||||
E:RegisterCooldown(_G[Slot:GetName()..'Cooldown'])
|
||||
hooksecurefunc(Slot, 'DisplayAsAzeriteItem', UpdateAzeriteItem)
|
||||
hooksecurefunc(Slot, 'DisplayAsAzeriteEmpoweredItem', UpdateAzeriteEmpoweredItem)
|
||||
end
|
||||
end
|
||||
|
||||
hooksecurefunc('PaperDollItemSlotButton_Update', function(slot)
|
||||
local highlight = slot:GetHighlightTexture()
|
||||
highlight:SetTexture(E.Media.Textures.White8x8)
|
||||
highlight:SetVertexColor(1, 1, 1, .25)
|
||||
highlight:SetInside()
|
||||
end)
|
||||
|
||||
--Give character frame model backdrop it's color back
|
||||
for _, corner in pairs({'TopLeft','TopRight','BotLeft','BotRight'}) do
|
||||
local bg = _G['CharacterModelFrameBackground'..corner];
|
||||
if bg then
|
||||
bg:SetDesaturated(false);
|
||||
bg.ignoreDesaturated = true; -- so plugins can prevent this if they want.
|
||||
hooksecurefunc(bg, 'SetDesaturated', function(bckgnd, value)
|
||||
if value and bckgnd.ignoreDesaturated then
|
||||
bckgnd:SetDesaturated(false);
|
||||
end
|
||||
end)
|
||||
end
|
||||
end
|
||||
|
||||
_G.CharacterLevelText:FontTemplate()
|
||||
_G.CharacterStatsPane.ItemLevelFrame.Value:FontTemplate(nil, 20)
|
||||
_G.CharacterStatsPane.ItemLevelFrame.Background:SetAlpha(0)
|
||||
ColorizeStatPane(_G.CharacterStatsPane.ItemLevelFrame)
|
||||
|
||||
hooksecurefunc('PaperDollFrame_UpdateStats', function()
|
||||
if IsAddOnLoaded('DejaCharacterStats') then return end
|
||||
|
||||
for _, Table in ipairs({_G.CharacterStatsPane.statsFramePool:EnumerateActive()}) do
|
||||
if type(Table) == 'table' then
|
||||
for statFrame in pairs(Table) do
|
||||
ColorizeStatPane(statFrame)
|
||||
if statFrame.Background:IsShown() then
|
||||
statFrame.leftGrad:Show()
|
||||
statFrame.rightGrad:Show()
|
||||
else
|
||||
statFrame.leftGrad:Hide()
|
||||
statFrame.rightGrad:Hide()
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
if not IsAddOnLoaded('DejaCharacterStats') then
|
||||
StatsPane('EnhancementsCategory')
|
||||
StatsPane('ItemLevelCategory')
|
||||
StatsPane('AttributesCategory')
|
||||
end
|
||||
|
||||
--Strip Textures
|
||||
local charframe = {
|
||||
'CharacterModelFrame',
|
||||
'CharacterFrameInset',
|
||||
'CharacterStatsPane',
|
||||
'CharacterFrameInsetRight',
|
||||
'PaperDollSidebarTabs',
|
||||
'PaperDollEquipmentManagerPane',
|
||||
}
|
||||
|
||||
S:HandleCloseButton(_G.ReputationDetailCloseButton)
|
||||
S:HandleCloseButton(_G.TokenFramePopupCloseButton)
|
||||
|
||||
S:HandleCheckBox(_G.ReputationDetailAtWarCheckBox)
|
||||
S:HandleCheckBox(_G.ReputationDetailMainScreenCheckBox)
|
||||
S:HandleCheckBox(_G.ReputationDetailInactiveCheckBox)
|
||||
--S:HandleCheckBox(_G.ReputationDetailLFGBonusReputationCheckBox)
|
||||
S:HandleCheckBox(_G.TokenFramePopupInactiveCheckBox)
|
||||
S:HandleCheckBox(_G.TokenFramePopupBackpackCheckBox)
|
||||
|
||||
_G.EquipmentFlyoutFrameHighlight:StripTextures()
|
||||
_G.EquipmentFlyoutFrameButtons.bg1:SetAlpha(0)
|
||||
_G.EquipmentFlyoutFrameButtons:DisableDrawLayer('ARTWORK')
|
||||
_G.EquipmentFlyoutFrame.NavigationFrame:StripTextures()
|
||||
_G.EquipmentFlyoutFrame.NavigationFrame:CreateBackdrop('Transparent')
|
||||
_G.EquipmentFlyoutFrame.NavigationFrame:Point('TOPLEFT', _G.EquipmentFlyoutFrameButtons, 'BOTTOMLEFT', 0, -E.Border - E.Spacing)
|
||||
_G.EquipmentFlyoutFrame.NavigationFrame:Point('TOPRIGHT', _G.EquipmentFlyoutFrameButtons, 'BOTTOMRIGHT', 0, -E.Border - E.Spacing)
|
||||
S:HandleNextPrevButton(_G.EquipmentFlyoutFrame.NavigationFrame.PrevButton)
|
||||
S:HandleNextPrevButton(_G.EquipmentFlyoutFrame.NavigationFrame.NextButton)
|
||||
|
||||
--Swap item flyout frame (shown when holding alt over a slot)
|
||||
hooksecurefunc('EquipmentFlyout_UpdateItems', EquipmentUpdateItems)
|
||||
hooksecurefunc('EquipmentFlyout_DisplayButton', EquipmentDisplayButton)
|
||||
|
||||
--Icon in upper right corner of character frame
|
||||
_G.CharacterFramePortrait:Kill()
|
||||
|
||||
local scrollbars = {
|
||||
'PaperDollTitlesPaneScrollBar',
|
||||
'PaperDollEquipmentManagerPaneScrollBar',
|
||||
}
|
||||
|
||||
for _, scrollbar in pairs(scrollbars) do
|
||||
S:HandleScrollBar(_G[scrollbar], 5)
|
||||
end
|
||||
|
||||
for _, object in pairs(charframe) do
|
||||
_G[object]:StripTextures()
|
||||
end
|
||||
|
||||
--Re-add the overlay texture which was removed right above via StripTextures
|
||||
_G.CharacterModelFrameBackgroundOverlay:SetColorTexture(0, 0, 0)
|
||||
_G.CharacterModelFrame:CreateBackdrop()
|
||||
_G.CharacterModelFrame.backdrop:Point('TOPLEFT', E.PixelMode and -1 or -2, E.PixelMode and 1 or 2)
|
||||
_G.CharacterModelFrame.backdrop:Point('BOTTOMRIGHT', E.PixelMode and 1 or 2, E.PixelMode and -2 or -3)
|
||||
|
||||
local controlButtons = {
|
||||
'CharacterModelFrameControlFrameZoomInButton',
|
||||
'CharacterModelFrameControlFrameZoomOutButton',
|
||||
'CharacterModelFrameControlFrameRotateLeftButton',
|
||||
'CharacterModelFrameControlFrameRotateRightButton',
|
||||
'CharacterModelFrameControlFrameRotateResetButton',
|
||||
}
|
||||
|
||||
_G.CharacterModelFrameControlFrame:StripTextures()
|
||||
|
||||
for _, button in pairs(controlButtons) do
|
||||
S:HandleButton(_G[button])
|
||||
end
|
||||
|
||||
--Titles
|
||||
_G.PaperDollTitlesPane:HookScript('OnShow', function()
|
||||
for _, object in pairs(_G.PaperDollTitlesPane.buttons) do
|
||||
object.BgTop:SetTexture()
|
||||
object.BgBottom:SetTexture()
|
||||
object.BgMiddle:SetTexture()
|
||||
object.text:FontTemplate()
|
||||
|
||||
if not object.text.hooked then
|
||||
object.text.hooked = true
|
||||
|
||||
hooksecurefunc(object.text, 'SetFont', function(txt, font)
|
||||
if font ~= E.media.normFont then
|
||||
txt:FontTemplate()
|
||||
end
|
||||
end)
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
--Equipement Manager
|
||||
S:HandleButton(_G.PaperDollEquipmentManagerPaneEquipSet)
|
||||
S:HandleButton(_G.PaperDollEquipmentManagerPaneSaveSet)
|
||||
_G.PaperDollEquipmentManagerPaneEquipSet:Width(_G.PaperDollEquipmentManagerPaneEquipSet:GetWidth() - 8)
|
||||
_G.PaperDollEquipmentManagerPaneSaveSet:Width(_G.PaperDollEquipmentManagerPaneSaveSet:GetWidth() - 8)
|
||||
_G.PaperDollEquipmentManagerPaneEquipSet:Point('TOPLEFT', _G.PaperDollEquipmentManagerPane, 'TOPLEFT', 8, 0)
|
||||
_G.PaperDollEquipmentManagerPaneSaveSet:Point('LEFT', _G.PaperDollEquipmentManagerPaneEquipSet, 'RIGHT', 4, 0)
|
||||
|
||||
--Itemset buttons
|
||||
for _, object in pairs(_G.PaperDollEquipmentManagerPane.buttons) do
|
||||
object.BgTop:SetTexture()
|
||||
object.BgBottom:SetTexture()
|
||||
object.BgMiddle:SetTexture()
|
||||
object.icon:Size(36, 36)
|
||||
object.icon:SetTexCoord(unpack(E.TexCoords))
|
||||
|
||||
--Making all icons the same size and position because otherwise BlizzardUI tries to attach itself to itself when it refreshes
|
||||
object.icon:Point('LEFT', object, 'LEFT', 4, 0)
|
||||
hooksecurefunc(object.icon, 'SetPoint', function(icn, _, _, _, _, _, forced)
|
||||
if forced ~= true then
|
||||
icn:Point('LEFT', object, 'LEFT', 4, 0, true)
|
||||
end
|
||||
end)
|
||||
hooksecurefunc(object.icon, 'SetSize', function(icn, width, height)
|
||||
if width == 30 or height == 30 then
|
||||
icn:Size(36, 36)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
--Icon selection frame
|
||||
S:HandleIconSelectionFrame(_G.GearManagerDialogPopup, _G.NUM_GEARSET_ICONS_SHOWN, 'GearManagerDialogPopupButton')
|
||||
S:HandleButton(_G.GearManagerDialogPopupOkay)
|
||||
S:HandleButton(_G.GearManagerDialogPopupCancel)
|
||||
S:HandleEditBox(_G.GearManagerDialogPopupEditBox)
|
||||
|
||||
--Handle Tabs at bottom of character frame
|
||||
for i=1, 4 do
|
||||
S:HandleTab(_G['CharacterFrameTab'..i])
|
||||
end
|
||||
|
||||
hooksecurefunc('ExpandFactionHeader', UpdateFactionSkins)
|
||||
hooksecurefunc('CollapseFactionHeader', UpdateFactionSkins)
|
||||
hooksecurefunc('ReputationFrame_Update', UpdateFactionSkins)
|
||||
|
||||
--Buttons used to toggle between equipment manager, titles, and character stats
|
||||
hooksecurefunc('PaperDollFrame_UpdateSidebarTabs', FixSidebarTabCoords)
|
||||
|
||||
--Currency
|
||||
hooksecurefunc('TokenFrame_Update', UpdateCurrencySkins)
|
||||
hooksecurefunc(_G.TokenFrameContainer, 'update', UpdateCurrencySkins)
|
||||
end
|
||||
|
||||
S:AddCallback('CharacterFrame')
|
||||
30
Modules/Skins/Blizzard/ChromieTime.lua
Normal file
30
Modules/Skins/Blizzard/ChromieTime.lua
Normal file
@@ -0,0 +1,30 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
|
||||
function S:Blizzard_ChromieTimeUI()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.chromieTime) then return end
|
||||
|
||||
local frame = _G.ChromieTimeFrame
|
||||
S:HandleCloseButton(frame.CloseButton)
|
||||
S:HandleButton(frame.SelectButton)
|
||||
|
||||
if E.private.skins.parchmentRemoverEnable then
|
||||
frame:StripTextures()
|
||||
frame.Background:Hide()
|
||||
frame:CreateBackdrop('Transparent')
|
||||
|
||||
local Title = frame.Title
|
||||
Title:DisableDrawLayer('BACKGROUND')
|
||||
Title:CreateBackdrop('Transparent')
|
||||
|
||||
local InfoFrame = frame.CurrentlySelectedExpansionInfoFrame
|
||||
InfoFrame:DisableDrawLayer('BACKGROUND')
|
||||
InfoFrame:CreateBackdrop('Transparent')
|
||||
InfoFrame.Name:SetTextColor(1, .8, 0)
|
||||
InfoFrame.Description:SetTextColor(1, 1, 1)
|
||||
end
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_ChromieTimeUI')
|
||||
647
Modules/Skins/Blizzard/Collectables.lua
Normal file
647
Modules/Skins/Blizzard/Collectables.lua
Normal file
@@ -0,0 +1,647 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local select = select
|
||||
local ipairs, pairs, unpack = ipairs, pairs, unpack
|
||||
|
||||
local CreateFrame = CreateFrame
|
||||
local GetItemInfo = GetItemInfo
|
||||
local PlayerHasToy = PlayerHasToy
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
local BAG_ITEM_QUALITY_COLORS = BAG_ITEM_QUALITY_COLORS
|
||||
local GetItemQualityColor = GetItemQualityColor
|
||||
local C_Heirloom_PlayerHasHeirloom = C_Heirloom.PlayerHasHeirloom
|
||||
local C_TransmogCollection_GetSourceInfo = C_TransmogCollection.GetSourceInfo
|
||||
|
||||
local function toyTextColor(text, r, g, b)
|
||||
if r == 0.33 and g == 0.27 and b == 0.2 then
|
||||
text:SetTextColor(0.4, 0.4, 0.4)
|
||||
elseif r == 1 and g == 0.82 and b == 0 then
|
||||
text:SetTextColor(0.9, 0.9, 0.9)
|
||||
end
|
||||
end
|
||||
|
||||
local function petNameColor(iconBorder, r, g, b)
|
||||
local parent = iconBorder:GetParent()
|
||||
if not parent.name then return end
|
||||
|
||||
if parent.isDead and parent.isDead:IsShown() then
|
||||
parent.name:SetTextColor(0.9, 0.3, 0.3)
|
||||
elseif r and parent.owned then
|
||||
parent.name:SetTextColor(r, g, b)
|
||||
else
|
||||
parent.name:SetTextColor(0.4, 0.4, 0.4)
|
||||
end
|
||||
end
|
||||
|
||||
local function mountNameColor(self)
|
||||
local button = self:GetParent()
|
||||
local name = button.name
|
||||
|
||||
if name:GetFontObject() == _G.GameFontDisable then
|
||||
name:SetTextColor(0.4, 0.4, 0.4)
|
||||
else
|
||||
if button.background then
|
||||
local _, g, b = button.background:GetVertexColor()
|
||||
if g == 0 and b == 0 then
|
||||
name:SetTextColor(0.9, 0.3, 0.3)
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
name:SetTextColor(0.9, 0.9, 0.9)
|
||||
end
|
||||
end
|
||||
|
||||
local function selectedTextureSetShown(texture, shown) -- used sets list
|
||||
local parent = texture:GetParent()
|
||||
local icon = parent.icon or parent.Icon
|
||||
if shown then
|
||||
parent.backdrop:SetBackdropBorderColor(1, .8, .1)
|
||||
icon.backdrop:SetBackdropBorderColor(1, .8, .1)
|
||||
else
|
||||
local r, g, b = unpack(E.media.bordercolor)
|
||||
parent.backdrop:SetBackdropBorderColor(r, g, b)
|
||||
icon.backdrop:SetBackdropBorderColor(r, g, b)
|
||||
end
|
||||
end
|
||||
|
||||
local function selectedTextureShow(texture) -- used for pets/mounts
|
||||
local parent = texture:GetParent()
|
||||
parent.backdrop:SetBackdropBorderColor(1, .8, .1)
|
||||
parent.icon.backdrop:SetBackdropBorderColor(1, .8, .1)
|
||||
end
|
||||
|
||||
local function selectedTextureHide(texture) -- used for pets/mounts
|
||||
local parent = texture:GetParent()
|
||||
if not parent.hovered then
|
||||
local r, g, b = unpack(E.media.bordercolor)
|
||||
parent.backdrop:SetBackdropBorderColor(r, g, b)
|
||||
parent.icon.backdrop:SetBackdropBorderColor(r, g, b)
|
||||
end
|
||||
|
||||
if parent.petList then
|
||||
petNameColor(parent.iconBorder, parent.iconBorder:GetVertexColor())
|
||||
end
|
||||
end
|
||||
|
||||
local function buttonOnEnter(button)
|
||||
local r, g, b = unpack(E.media.rgbvaluecolor)
|
||||
local icon = button.icon or button.Icon
|
||||
button.backdrop:SetBackdropBorderColor(r, g, b)
|
||||
icon.backdrop:SetBackdropBorderColor(r, g, b)
|
||||
button.hovered = true
|
||||
end
|
||||
|
||||
local function buttonOnLeave(button)
|
||||
local icon = button.icon or button.Icon
|
||||
if button.selected or (button.SelectedTexture and button.SelectedTexture:IsShown()) then
|
||||
button.backdrop:SetBackdropBorderColor(1, .8, .1)
|
||||
icon.backdrop:SetBackdropBorderColor(1, .8, .1)
|
||||
else
|
||||
local r, g, b = unpack(E.media.bordercolor)
|
||||
button.backdrop:SetBackdropBorderColor(r, g, b)
|
||||
icon.backdrop:SetBackdropBorderColor(r, g, b)
|
||||
end
|
||||
button.hovered = nil
|
||||
end
|
||||
|
||||
local function JournalScrollButtons(frame)
|
||||
for i, bu in ipairs(frame.buttons) do
|
||||
bu:StripTextures()
|
||||
bu:CreateBackdrop('Transparent', nil, nil, true)
|
||||
bu:Size(210, 42)
|
||||
bu.backdrop:SetFrameLevel(bu:GetFrameLevel())
|
||||
bu.backdrop:SetAllPoints()
|
||||
|
||||
local point, relativeTo, relativePoint, xOffset, yOffset = bu:GetPoint()
|
||||
bu:ClearAllPoints()
|
||||
|
||||
if i == 1 then
|
||||
bu:Point(point, relativeTo, relativePoint, 44, yOffset)
|
||||
else
|
||||
bu:Point(point, relativeTo, relativePoint, xOffset, -2)
|
||||
end
|
||||
|
||||
local icon = bu.icon or bu.Icon
|
||||
icon:Size(40)
|
||||
icon:Point('LEFT', -43, 0)
|
||||
icon:SetTexCoord(unpack(E.TexCoords))
|
||||
icon:CreateBackdrop(nil, nil, nil, true)
|
||||
|
||||
bu:HookScript('OnEnter', buttonOnEnter)
|
||||
bu:HookScript('OnLeave', buttonOnLeave)
|
||||
|
||||
local highlight = _G[bu:GetName()..'Highlight']
|
||||
if highlight then
|
||||
highlight:SetColorTexture(1, 1, 1, 0.3)
|
||||
highlight:SetBlendMode('ADD')
|
||||
highlight:SetAllPoints(bu.icon)
|
||||
end
|
||||
|
||||
if bu.ProgressBar then
|
||||
bu.ProgressBar:SetTexture(E.media.normTex)
|
||||
bu.ProgressBar:SetVertexColor(0.251, 0.753, 0.251, 1) -- 0.0118, 0.247, 0.00392
|
||||
end
|
||||
|
||||
if frame:GetParent() == _G.WardrobeCollectionFrame.SetsCollectionFrame then
|
||||
bu.setList = true
|
||||
bu.Favorite:SetAtlas('PetJournal-FavoritesIcon', true)
|
||||
bu.Favorite:Point('TOPLEFT', bu.Icon, 'TOPLEFT', -8, 8)
|
||||
|
||||
hooksecurefunc(bu.SelectedTexture, 'SetShown', selectedTextureSetShown)
|
||||
else
|
||||
bu.selectedTexture:SetTexture()
|
||||
hooksecurefunc(bu.selectedTexture, 'Show', selectedTextureShow)
|
||||
hooksecurefunc(bu.selectedTexture, 'Hide', selectedTextureHide)
|
||||
|
||||
if frame:GetParent() == _G.PetJournal then
|
||||
bu.petList = true
|
||||
bu.petTypeIcon:Point('TOPRIGHT', -1, -1)
|
||||
bu.petTypeIcon:Point('BOTTOMRIGHT', -1, 1)
|
||||
|
||||
bu.dragButton.ActiveTexture:SetTexture(E.Media.Textures.White8x8)
|
||||
bu.dragButton.ActiveTexture:SetVertexColor(0.9, 0.8, 0.1, 0.3)
|
||||
bu.dragButton.levelBG:SetTexture()
|
||||
|
||||
S:HandleIconBorder(bu.iconBorder, nil, petNameColor)
|
||||
elseif frame:GetParent() == _G.MountJournal then
|
||||
bu.mountList = true
|
||||
bu.factionIcon:SetDrawLayer('OVERLAY')
|
||||
bu.factionIcon:Point('TOPRIGHT', -1, -1)
|
||||
bu.factionIcon:Point('BOTTOMRIGHT', -1, 1)
|
||||
|
||||
bu.DragButton.ActiveTexture:SetTexture(E.Media.Textures.White8x8)
|
||||
bu.DragButton.ActiveTexture:SetVertexColor(0.9, 0.8, 0.1, 0.3)
|
||||
|
||||
bu.favorite:SetTexture([[Interface\COMMON\FavoritesIcon]])
|
||||
bu.favorite:Point('TOPLEFT', bu.DragButton, 'TOPLEFT' , -8, 8)
|
||||
bu.favorite:Size(32, 32)
|
||||
|
||||
hooksecurefunc(bu.name, 'SetFontObject', mountNameColor)
|
||||
hooksecurefunc(bu.background, 'SetVertexColor', mountNameColor)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function clearBackdrop(self)
|
||||
self:SetBackdropColor(0, 0, 0, 0)
|
||||
end
|
||||
|
||||
function S:Blizzard_Collections()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.collections) then return end
|
||||
|
||||
-- global
|
||||
local CollectionsJournal = _G.CollectionsJournal
|
||||
S:HandlePortraitFrame(CollectionsJournal)
|
||||
|
||||
for i=1, 5 do
|
||||
S:HandleTab(_G['CollectionsJournalTab'..i])
|
||||
end
|
||||
|
||||
S:HandleItemButton(_G.MountJournalSummonRandomFavoriteButton)
|
||||
S:HandleButton(_G.MountJournalFilterButton)
|
||||
|
||||
_G.MountJournalFilterButton:ClearAllPoints()
|
||||
_G.MountJournalFilterButton:Point('LEFT', _G.MountJournalSearchBox, 'RIGHT', 5, 0)
|
||||
|
||||
-------------------------------
|
||||
--[[ mount journal (tab 1) ]]--
|
||||
-------------------------------
|
||||
local MountJournal = _G.MountJournal
|
||||
MountJournal:StripTextures()
|
||||
MountJournal.MountDisplay:StripTextures()
|
||||
MountJournal.MountDisplay.ShadowOverlay:StripTextures()
|
||||
MountJournal.MountCount:StripTextures()
|
||||
|
||||
S:HandleIcon(MountJournal.MountDisplay.InfoButton.Icon)
|
||||
S:HandleCheckBox(MountJournal.MountDisplay.ModelScene.TogglePlayer)
|
||||
MountJournal.MountDisplay.ModelScene.TogglePlayer:Size(22)
|
||||
|
||||
S:HandleButton(_G.MountJournalMountButton)
|
||||
S:HandleEditBox(_G.MountJournalSearchBox)
|
||||
S:HandleScrollBar(_G.MountJournalListScrollFrameScrollBar)
|
||||
S:HandleRotateButton(MountJournal.MountDisplay.ModelScene.RotateLeftButton)
|
||||
S:HandleRotateButton(MountJournal.MountDisplay.ModelScene.RotateRightButton)
|
||||
|
||||
-- New Mount Equip. 8.2
|
||||
MountJournal.BottomLeftInset:StripTextures()
|
||||
MountJournal.BottomLeftInset:CreateBackdrop('Transparent')
|
||||
MountJournal.BottomLeftInset.SlotButton:StripTextures()
|
||||
S:HandleIcon(MountJournal.BottomLeftInset.SlotButton.ItemIcon)
|
||||
S:HandleButton(MountJournal.BottomLeftInset.SlotButton)
|
||||
JournalScrollButtons(MountJournal.ListScrollFrame)
|
||||
|
||||
-----------------------------
|
||||
--[[ pet journal (tab 2) ]]--
|
||||
-----------------------------
|
||||
_G.PetJournalSummonButton:StripTextures()
|
||||
_G.PetJournalFindBattle:StripTextures()
|
||||
S:HandleButton(_G.PetJournalSummonButton)
|
||||
S:HandleButton(_G.PetJournalFindBattle)
|
||||
_G.PetJournalRightInset:StripTextures()
|
||||
_G.PetJournalLeftInset:StripTextures()
|
||||
S:HandleItemButton(_G.PetJournalSummonRandomFavoritePetButton, true)
|
||||
|
||||
for i = 1, 3 do
|
||||
local f = _G['PetJournalLoadoutPet'..i..'HelpFrame']
|
||||
f:StripTextures()
|
||||
end
|
||||
|
||||
if E.global.general.disableTutorialButtons then
|
||||
_G.PetJournalTutorialButton:Kill()
|
||||
end
|
||||
|
||||
local PetJournal = _G.PetJournal
|
||||
PetJournal.PetCount:StripTextures()
|
||||
S:HandleEditBox(_G.PetJournalSearchBox)
|
||||
_G.PetJournalSearchBox:ClearAllPoints()
|
||||
_G.PetJournalSearchBox:Point('TOPLEFT', _G.PetJournalLeftInset, 'TOPLEFT', (E.PixelMode and 13 or 10), -9)
|
||||
S:HandleButton(_G.PetJournalFilterButton)
|
||||
_G.PetJournalFilterButton:Height(E.PixelMode and 22 or 24)
|
||||
_G.PetJournalFilterButton:ClearAllPoints()
|
||||
_G.PetJournalFilterButton:Point('TOPRIGHT', _G.PetJournalLeftInset, 'TOPRIGHT', -5, -(E.PixelMode and 8 or 7))
|
||||
_G.PetJournalListScrollFrame:StripTextures()
|
||||
S:HandleScrollBar(_G.PetJournalListScrollFrameScrollBar)
|
||||
JournalScrollButtons(PetJournal.listScroll)
|
||||
|
||||
_G.PetJournalAchievementStatus:DisableDrawLayer('BACKGROUND')
|
||||
|
||||
S:HandleItemButton(_G.PetJournalHealPetButton, true)
|
||||
E:RegisterCooldown(_G.PetJournalHealPetButtonCooldown)
|
||||
_G.PetJournalHealPetButton.texture:SetTexture([[Interface\Icons\spell_magic_polymorphrabbit]])
|
||||
_G.PetJournalLoadoutBorder:StripTextures()
|
||||
|
||||
for i = 1, 3 do
|
||||
local petButton = _G['PetJournalLoadoutPet'..i]
|
||||
local petButtonHealthFrame = _G['PetJournalLoadoutPet'..i..'HealthFrame']
|
||||
local petButtonXPBar = _G['PetJournalLoadoutPet'..i..'XPBar']
|
||||
petButton:StripTextures()
|
||||
petButton:CreateBackdrop()
|
||||
petButton.backdrop:SetAllPoints()
|
||||
petButton.petTypeIcon:Point('BOTTOMLEFT', 2, 2)
|
||||
|
||||
petButton.dragButton:SetOutside(_G['PetJournalLoadoutPet'..i..'Icon'])
|
||||
petButton.dragButton:SetFrameLevel(_G['PetJournalLoadoutPet'..i].dragButton:GetFrameLevel() + 1)
|
||||
|
||||
petButton.hover = true;
|
||||
petButton.pushed = true;
|
||||
petButton.checked = true;
|
||||
S:HandleItemButton(petButton)
|
||||
petButton.levelBG:SetAtlas('PetJournal-LevelBubble', true)
|
||||
|
||||
petButton.backdrop:SetFrameLevel(_G['PetJournalLoadoutPet'..i].backdrop:GetFrameLevel() + 1)
|
||||
|
||||
petButton.setButton:StripTextures()
|
||||
petButtonHealthFrame.healthBar:StripTextures()
|
||||
petButtonHealthFrame.healthBar:CreateBackdrop()
|
||||
petButtonHealthFrame.healthBar:SetStatusBarTexture(E.media.normTex)
|
||||
E:RegisterStatusBar(petButtonHealthFrame.healthBar)
|
||||
petButtonXPBar:StripTextures()
|
||||
petButtonXPBar:CreateBackdrop()
|
||||
petButtonXPBar:SetStatusBarTexture(E.media.normTex)
|
||||
E:RegisterStatusBar(petButtonXPBar)
|
||||
petButtonXPBar:SetFrameLevel(petButtonXPBar:GetFrameLevel() + 2)
|
||||
|
||||
for index = 1, 3 do
|
||||
local f = _G['PetJournalLoadoutPet'..i..'Spell'..index]
|
||||
S:HandleItemButton(f)
|
||||
f.FlyoutArrow:SetTexture([[Interface\Buttons\ActionBarFlyoutButton]])
|
||||
_G['PetJournalLoadoutPet'..i..'Spell'..index..'Icon']:SetInside(f)
|
||||
end
|
||||
end
|
||||
|
||||
_G.PetJournalSpellSelect:StripTextures()
|
||||
for i=1, 2 do
|
||||
local btn = _G['PetJournalSpellSelectSpell'..i]
|
||||
S:HandleItemButton(btn)
|
||||
_G['PetJournalSpellSelectSpell'..i..'Icon']:SetInside(btn)
|
||||
_G['PetJournalSpellSelectSpell'..i..'Icon']:SetDrawLayer('BORDER')
|
||||
end
|
||||
|
||||
_G.PetJournalPetCard:StripTextures()
|
||||
_G.PetJournalPetCard:CreateBackdrop('Transparent')
|
||||
_G.PetJournalPetCardInset:StripTextures()
|
||||
_G.PetJournalPetCardPetInfoQualityBorder:SetAlpha(0)
|
||||
|
||||
_G.PetJournalPetCardPetInfoIcon:SetTexCoord(unpack(E.TexCoords))
|
||||
_G.PetJournalPetCardPetInfo:CreateBackdrop()
|
||||
_G.PetJournalPetCardPetInfo.favorite:SetParent(_G.PetJournalPetCardPetInfo.backdrop)
|
||||
_G.PetJournalPetCardPetInfo.backdrop:SetOutside(_G.PetJournalPetCardPetInfoIcon)
|
||||
_G.PetJournalPetCardPetInfoIcon:SetParent(_G.PetJournalPetCardPetInfo.backdrop)
|
||||
|
||||
if E.private.skins.blizzard.tooltip then
|
||||
local tt = _G.PetJournalPrimaryAbilityTooltip
|
||||
if tt.Delimiter1 then
|
||||
tt.Delimiter1:SetTexture()
|
||||
tt.Delimiter2:SetTexture()
|
||||
end
|
||||
|
||||
tt.Background:SetTexture()
|
||||
tt.BorderTop:SetTexture()
|
||||
tt.BorderTopLeft:SetTexture()
|
||||
tt.BorderTopRight:SetTexture()
|
||||
tt.BorderLeft:SetTexture()
|
||||
tt.BorderRight:SetTexture()
|
||||
tt.BorderBottom:SetTexture()
|
||||
tt.BorderBottomRight:SetTexture()
|
||||
tt.BorderBottomLeft:SetTexture()
|
||||
|
||||
tt:CreateBackdrop('Transparent')
|
||||
end
|
||||
|
||||
for i=1, 6 do
|
||||
local frame = _G['PetJournalPetCardSpell'..i]
|
||||
frame:SetFrameLevel(frame:GetFrameLevel() + 2)
|
||||
frame:DisableDrawLayer('BACKGROUND')
|
||||
frame:CreateBackdrop()
|
||||
frame.backdrop:SetAllPoints()
|
||||
frame.icon:SetTexCoord(unpack(E.TexCoords))
|
||||
frame.icon:SetInside(frame.backdrop)
|
||||
end
|
||||
|
||||
_G.PetJournalPetCardHealthFrame.healthBar:StripTextures()
|
||||
_G.PetJournalPetCardHealthFrame.healthBar:CreateBackdrop()
|
||||
_G.PetJournalPetCardHealthFrame.healthBar:SetStatusBarTexture(E.media.normTex)
|
||||
E:RegisterStatusBar(_G.PetJournalPetCardHealthFrame.healthBar)
|
||||
_G.PetJournalPetCardXPBar:StripTextures()
|
||||
_G.PetJournalPetCardXPBar:CreateBackdrop()
|
||||
_G.PetJournalPetCardXPBar:SetStatusBarTexture(E.media.normTex)
|
||||
E:RegisterStatusBar(_G.PetJournalPetCardXPBar)
|
||||
|
||||
--Toy Box
|
||||
local ToyBox = _G.ToyBox
|
||||
S:HandleButton(_G.ToyBoxFilterButton)
|
||||
_G.ToyBoxFilterButton:Point('TOPRIGHT', ToyBox, 'TOPRIGHT', -15, -34)
|
||||
S:HandleEditBox(ToyBox.searchBox)
|
||||
ToyBox.iconsFrame:StripTextures()
|
||||
S:HandleNextPrevButton(ToyBox.PagingFrame.NextPageButton, nil, nil, true)
|
||||
S:HandleNextPrevButton(ToyBox.PagingFrame.PrevPageButton, nil, nil, true)
|
||||
|
||||
local progressBar = ToyBox.progressBar
|
||||
progressBar.border:Hide()
|
||||
progressBar:DisableDrawLayer('BACKGROUND')
|
||||
progressBar:SetStatusBarTexture(E.media.normTex)
|
||||
progressBar:CreateBackdrop()
|
||||
E:RegisterStatusBar(progressBar)
|
||||
|
||||
for i = 1, 18 do
|
||||
local button = ToyBox.iconsFrame['spellButton'..i]
|
||||
S:HandleItemButton(button, true)
|
||||
button.iconTextureUncollected:SetTexCoord(unpack(E.TexCoords))
|
||||
button.iconTextureUncollected:SetInside(button)
|
||||
button.hover:SetAllPoints(button.iconTexture)
|
||||
button.checked:SetAllPoints(button.iconTexture)
|
||||
button.pushed:SetAllPoints(button.iconTexture)
|
||||
button.cooldown:SetAllPoints(button.iconTexture)
|
||||
|
||||
hooksecurefunc(button.name, 'SetTextColor', toyTextColor)
|
||||
hooksecurefunc(button.new, 'SetTextColor', toyTextColor)
|
||||
E:RegisterCooldown(button.cooldown)
|
||||
end
|
||||
|
||||
hooksecurefunc('ToySpellButton_UpdateButton', function(button)
|
||||
if button.itemID and PlayerHasToy(button.itemID) then
|
||||
local _, _, quality = GetItemInfo(button.itemID)
|
||||
if quality then
|
||||
button.backdrop:SetBackdropBorderColor(GetItemQualityColor(quality))
|
||||
else
|
||||
button.backdrop:SetBackdropBorderColor(0.9, 0.9, 0.9)
|
||||
end
|
||||
else
|
||||
button.backdrop:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
||||
end
|
||||
end)
|
||||
|
||||
--Heirlooms
|
||||
local HeirloomsJournal = _G.HeirloomsJournal
|
||||
S:HandleButton(_G.HeirloomsJournalFilterButton)
|
||||
_G.HeirloomsJournalFilterButton:Point('TOPRIGHT', HeirloomsJournal, 'TOPRIGHT', -15, -34)
|
||||
S:HandleEditBox(HeirloomsJournal.SearchBox)
|
||||
HeirloomsJournal.iconsFrame:StripTextures()
|
||||
S:HandleNextPrevButton(HeirloomsJournal.PagingFrame.NextPageButton, nil, nil, true)
|
||||
S:HandleNextPrevButton(HeirloomsJournal.PagingFrame.PrevPageButton, nil, nil, true)
|
||||
S:HandleDropDownBox(_G.HeirloomsJournalClassDropDown)
|
||||
|
||||
progressBar = HeirloomsJournal.progressBar -- swap local variable
|
||||
progressBar.border:Hide()
|
||||
progressBar:DisableDrawLayer('BACKGROUND')
|
||||
progressBar:SetStatusBarTexture(E.media.normTex)
|
||||
progressBar:CreateBackdrop()
|
||||
E:RegisterStatusBar(progressBar)
|
||||
|
||||
hooksecurefunc(HeirloomsJournal, 'UpdateButton', function(_, button)
|
||||
if not button.styled then
|
||||
S:HandleItemButton(button, true)
|
||||
|
||||
button.iconTextureUncollected:SetTexCoord(unpack(E.TexCoords))
|
||||
button.iconTextureUncollected:SetInside(button)
|
||||
button.iconTexture:SetDrawLayer('ARTWORK')
|
||||
button.hover:SetAllPoints(button.iconTexture)
|
||||
button.slotFrameCollected:SetAlpha(0)
|
||||
button.slotFrameUncollected:SetAlpha(0)
|
||||
button.special:SetJustifyH('RIGHT')
|
||||
button.special:ClearAllPoints()
|
||||
|
||||
button.cooldown:SetAllPoints(button.iconTexture)
|
||||
E:RegisterCooldown(button.cooldown)
|
||||
|
||||
button.styled = true
|
||||
end
|
||||
|
||||
button.levelBackground:SetTexture()
|
||||
|
||||
button.name:Point('LEFT', button, 'RIGHT', 4, 8)
|
||||
button.level:Point('TOPLEFT', button.levelBackground,'TOPLEFT', 25, 2)
|
||||
|
||||
if C_Heirloom_PlayerHasHeirloom(button.itemID) then
|
||||
button.name:SetTextColor(0.9, 0.9, 0.9)
|
||||
button.level:SetTextColor(0.9, 0.9, 0.9)
|
||||
button.special:SetTextColor(1, .82, 0)
|
||||
button.backdrop:SetBackdropBorderColor(GetItemQualityColor(7))
|
||||
else
|
||||
button.name:SetTextColor(0.4, 0.4, 0.4)
|
||||
button.level:SetTextColor(0.4, 0.4, 0.4)
|
||||
button.special:SetTextColor(0.4, 0.4, 0.4)
|
||||
button.backdrop:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
||||
end
|
||||
end)
|
||||
|
||||
hooksecurefunc(HeirloomsJournal, 'LayoutCurrentPage', function()
|
||||
for i=1, #HeirloomsJournal.heirloomHeaderFrames do
|
||||
local header = HeirloomsJournal.heirloomHeaderFrames[i]
|
||||
header:StripTextures()
|
||||
header.text:FontTemplate(nil, 15, '')
|
||||
header.text:SetTextColor(0.9, 0.9, 0.9)
|
||||
end
|
||||
end)
|
||||
|
||||
-- Appearances Tab
|
||||
local WardrobeCollectionFrame = _G.WardrobeCollectionFrame
|
||||
S:HandleTab(WardrobeCollectionFrame.ItemsTab)
|
||||
S:HandleTab(WardrobeCollectionFrame.SetsTab)
|
||||
|
||||
--Items
|
||||
WardrobeCollectionFrame.progressBar:StripTextures()
|
||||
WardrobeCollectionFrame.progressBar:CreateBackdrop()
|
||||
WardrobeCollectionFrame.progressBar:SetStatusBarTexture(E.media.normTex)
|
||||
E:RegisterStatusBar(WardrobeCollectionFrame.progressBar)
|
||||
|
||||
S:HandleEditBox(_G.WardrobeCollectionFrameSearchBox)
|
||||
_G.WardrobeCollectionFrameSearchBox:SetFrameLevel(5)
|
||||
|
||||
WardrobeCollectionFrame.FilterButton:Point('LEFT', WardrobeCollectionFrame.searchBox, 'RIGHT', 2, 0)
|
||||
S:HandleButton(WardrobeCollectionFrame.FilterButton)
|
||||
S:HandleDropDownBox(_G.WardrobeCollectionFrameWeaponDropDown)
|
||||
WardrobeCollectionFrame.ItemsCollectionFrame:StripTextures()
|
||||
|
||||
for _, Frame in ipairs(WardrobeCollectionFrame.ContentFrames) do
|
||||
if Frame.Models then
|
||||
for _, Model in pairs(Frame.Models) do
|
||||
Model:SetFrameLevel(Model:GetFrameLevel() + 1)
|
||||
Model.Border:SetAlpha(0)
|
||||
Model.TransmogStateTexture:SetAlpha(0)
|
||||
|
||||
local border = CreateFrame('Frame', nil, Model, 'BackdropTemplate')
|
||||
border:SetTemplate()
|
||||
border:ClearAllPoints()
|
||||
border:SetPoint('TOPLEFT', Model, 'TOPLEFT', 0, 1) -- dont use set inside, left side needs to be 0
|
||||
border:SetPoint('BOTTOMRIGHT', Model, 'BOTTOMRIGHT', 1, -1)
|
||||
border:SetBackdropColor(0, 0, 0, 0)
|
||||
border.callbackBackdropColor = clearBackdrop
|
||||
|
||||
for i=1, Model:GetNumRegions() do
|
||||
local region = select(i, Model:GetRegions())
|
||||
if region:IsObjectType('Texture') and region:GetTexture() == 1116940 then
|
||||
region:SetColorTexture(1, 1, 1, 0.3)
|
||||
region:SetBlendMode('ADD')
|
||||
region:SetAllPoints(Model)
|
||||
end
|
||||
end
|
||||
|
||||
hooksecurefunc(Model.Border, 'SetAtlas', function(_, texture)
|
||||
if texture == 'transmog-wardrobe-border-uncollected' then
|
||||
border:SetBackdropBorderColor(0.9, 0.9, 0.3)
|
||||
elseif texture == 'transmog-wardrobe-border-unusable' then
|
||||
border:SetBackdropBorderColor(0.9, 0.3, 0.3)
|
||||
elseif Model.TransmogStateTexture:IsShown() then
|
||||
border:SetBackdropBorderColor(1, 0.7, 1)
|
||||
else
|
||||
border:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
||||
end
|
||||
end)
|
||||
end
|
||||
end
|
||||
|
||||
local pending = Frame.PendingTransmogFrame
|
||||
if pending then
|
||||
local Glowframe = pending.Glowframe
|
||||
Glowframe:SetAtlas(nil)
|
||||
Glowframe:CreateBackdrop()
|
||||
Glowframe.backdrop:SetPoint('TOPLEFT', pending, 'TOPLEFT', 0, 1) -- dont use set inside, left side needs to be 0
|
||||
Glowframe.backdrop:SetPoint('BOTTOMRIGHT', pending, 'BOTTOMRIGHT', 1, -1)
|
||||
Glowframe.backdrop:SetFrameLevel(pending:GetFrameLevel())
|
||||
Glowframe.backdrop:SetBackdropBorderColor(1, 0.7, 1)
|
||||
Glowframe.backdrop:SetBackdropColor(0, 0, 0, 0)
|
||||
|
||||
for i = 1, 12 do
|
||||
if i < 5 then
|
||||
Frame.PendingTransmogFrame['Smoke'..i]:Hide()
|
||||
end
|
||||
|
||||
Frame.PendingTransmogFrame['Wisp'..i]:Hide()
|
||||
end
|
||||
end
|
||||
|
||||
local paging = Frame.PagingFrame
|
||||
if paging then
|
||||
S:HandleNextPrevButton(paging.PrevPageButton, nil, nil, true)
|
||||
S:HandleNextPrevButton(paging.NextPageButton, nil, nil, true)
|
||||
end
|
||||
end
|
||||
|
||||
--Sets
|
||||
local SetsCollectionFrame = WardrobeCollectionFrame.SetsCollectionFrame
|
||||
SetsCollectionFrame:CreateBackdrop('Transparent')
|
||||
SetsCollectionFrame.RightInset:StripTextures()
|
||||
SetsCollectionFrame.LeftInset:StripTextures()
|
||||
JournalScrollButtons(SetsCollectionFrame.ScrollFrame)
|
||||
S:HandleScrollBar(SetsCollectionFrame.ScrollFrame.scrollBar)
|
||||
|
||||
-- DetailsFrame
|
||||
local DetailsFrame = SetsCollectionFrame.DetailsFrame
|
||||
DetailsFrame.Name:FontTemplate(nil, 16)
|
||||
DetailsFrame.LongName:FontTemplate(nil, 16)
|
||||
S:HandleButton(DetailsFrame.VariantSetsButton)
|
||||
|
||||
hooksecurefunc(SetsCollectionFrame, 'SetItemFrameQuality', function(_, itemFrame)
|
||||
local icon = itemFrame.Icon
|
||||
if not icon.backdrop then
|
||||
icon:CreateBackdrop()
|
||||
icon:SetTexCoord(unpack(E.TexCoords))
|
||||
itemFrame.IconBorder:Hide()
|
||||
end
|
||||
|
||||
if itemFrame.collected then
|
||||
local quality = C_TransmogCollection_GetSourceInfo(itemFrame.sourceID).quality
|
||||
local color = BAG_ITEM_QUALITY_COLORS[quality or 1]
|
||||
icon.backdrop:SetBackdropBorderColor(color.r, color.g, color.b)
|
||||
else
|
||||
icon.backdrop:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
||||
end
|
||||
end)
|
||||
|
||||
_G.WardrobeSetsCollectionVariantSetsButton.Icon:SetTexture(E.Media.Textures.ArrowUp)
|
||||
_G.WardrobeSetsCollectionVariantSetsButton.Icon:SetRotation(S.ArrowRotation.down)
|
||||
|
||||
-- Transmogrify NPC
|
||||
local WardrobeFrame = _G.WardrobeFrame
|
||||
S:HandlePortraitFrame(WardrobeFrame)
|
||||
|
||||
local WardrobeOutfitFrame = _G.WardrobeOutfitFrame
|
||||
WardrobeOutfitFrame:StripTextures()
|
||||
WardrobeOutfitFrame:CreateBackdrop('Transparent')
|
||||
S:HandleButton(_G.WardrobeOutfitDropDown.SaveButton)
|
||||
S:HandleDropDownBox(_G.WardrobeOutfitDropDown, 221)
|
||||
_G.WardrobeOutfitDropDown:Height(34)
|
||||
_G.WardrobeOutfitDropDown.SaveButton:ClearAllPoints()
|
||||
_G.WardrobeOutfitDropDown.SaveButton:Point('TOPLEFT', _G.WardrobeOutfitDropDown, 'TOPRIGHT', -2, -2)
|
||||
|
||||
local WardrobeTransmogFrame = _G.WardrobeTransmogFrame
|
||||
WardrobeTransmogFrame:StripTextures()
|
||||
|
||||
for i = 1, #WardrobeTransmogFrame.ModelScene.SlotButtons do
|
||||
WardrobeTransmogFrame.ModelScene.SlotButtons[i]:StripTextures()
|
||||
WardrobeTransmogFrame.ModelScene.SlotButtons[i]:SetFrameLevel(WardrobeTransmogFrame.ModelScene.SlotButtons[i]:GetFrameLevel() + 2)
|
||||
WardrobeTransmogFrame.ModelScene.SlotButtons[i]:CreateBackdrop()
|
||||
WardrobeTransmogFrame.ModelScene.SlotButtons[i].backdrop:SetAllPoints()
|
||||
WardrobeTransmogFrame.ModelScene.SlotButtons[i].Border:Kill()
|
||||
WardrobeTransmogFrame.ModelScene.SlotButtons[i].Icon:SetTexCoord(unpack(E.TexCoords))
|
||||
end
|
||||
|
||||
WardrobeTransmogFrame.SpecButton:ClearAllPoints()
|
||||
WardrobeTransmogFrame.SpecButton:Point('RIGHT', WardrobeTransmogFrame.ApplyButton, 'LEFT', -2, 0)
|
||||
S:HandleButton(WardrobeTransmogFrame.SpecButton)
|
||||
S:HandleButton(WardrobeTransmogFrame.ApplyButton)
|
||||
S:HandleButton(WardrobeTransmogFrame.ModelScene.ClearAllPendingButton)
|
||||
|
||||
--Transmogrify NPC Sets tab
|
||||
WardrobeCollectionFrame.SetsTransmogFrame:StripTextures()
|
||||
WardrobeCollectionFrame.SetsTransmogFrame:CreateBackdrop('Transparent')
|
||||
S:HandleNextPrevButton(WardrobeCollectionFrame.SetsTransmogFrame.PagingFrame.NextPageButton)
|
||||
S:HandleNextPrevButton(WardrobeCollectionFrame.SetsTransmogFrame.PagingFrame.PrevPageButton)
|
||||
|
||||
-- Outfit Edit Frame
|
||||
local WardrobeOutfitEditFrame = _G.WardrobeOutfitEditFrame
|
||||
WardrobeOutfitEditFrame:StripTextures()
|
||||
WardrobeOutfitEditFrame:CreateBackdrop('Transparent')
|
||||
WardrobeOutfitEditFrame.EditBox:StripTextures()
|
||||
S:HandleEditBox(WardrobeOutfitEditFrame.EditBox)
|
||||
S:HandleButton(WardrobeOutfitEditFrame.AcceptButton)
|
||||
S:HandleButton(WardrobeOutfitEditFrame.CancelButton)
|
||||
S:HandleButton(WardrobeOutfitEditFrame.DeleteButton)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_Collections')
|
||||
50
Modules/Skins/Blizzard/CombatLog.lua
Normal file
50
Modules/Skins/Blizzard/CombatLog.lua
Normal file
@@ -0,0 +1,50 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
local CH = E:GetModule('Chat')
|
||||
local LSM = E.Libs.LSM
|
||||
|
||||
local _G = _G
|
||||
local ipairs = ipairs
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
local function StyleButtons()
|
||||
for index in ipairs(_G.Blizzard_CombatLog_Filters.filters) do
|
||||
local button = _G['CombatLogQuickButtonFrameButton'..index]
|
||||
local text = button and button:GetFontString()
|
||||
if text then
|
||||
text:FontTemplate(LSM:Fetch('font', CH.db.tabFont), CH.db.tabFontSize, CH.db.tabFontOutline)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- credit: Aftermathh, edited by Simpy
|
||||
function S:Blizzard_CombatLog()
|
||||
if E.private.chat.enable ~= true then return end
|
||||
-- this is always on with the chat module, it's only handle the top bar in combat log chat frame
|
||||
|
||||
hooksecurefunc('Blizzard_CombatLog_Update_QuickButtons', StyleButtons)
|
||||
StyleButtons()
|
||||
|
||||
local bar = _G.CombatLogQuickButtonFrame_Custom
|
||||
bar:StripTextures()
|
||||
bar:CreateBackdrop('Transparent')
|
||||
bar.backdrop:SetAllPoints()
|
||||
|
||||
bar:ClearAllPoints()
|
||||
bar:SetPoint('BOTTOMLEFT', _G.ChatFrame2, 'TOPLEFT', -3, 2)
|
||||
bar:SetPoint('BOTTOMRIGHT', _G.ChatFrame2, 'TOPRIGHT', 3, 0)
|
||||
|
||||
local progress = _G.CombatLogQuickButtonFrame_CustomProgressBar
|
||||
progress:SetStatusBarTexture(E.media.normTex)
|
||||
progress:SetInside(bar.backdrop)
|
||||
|
||||
S:HandleNextPrevButton(_G.CombatLogQuickButtonFrame_CustomAdditionalFilterButton)
|
||||
_G.CombatLogQuickButtonFrame_CustomAdditionalFilterButton:ClearAllPoints()
|
||||
_G.CombatLogQuickButtonFrame_CustomAdditionalFilterButton:SetPoint('TOPRIGHT', bar, 'TOPRIGHT', -2, -2)
|
||||
_G.CombatLogQuickButtonFrame_CustomAdditionalFilterButton:SetHitRectInsets(0,0,0,0)
|
||||
_G.CombatLogQuickButtonFrame_CustomAdditionalFilterButton:SetFrameLevel(bar:GetFrameLevel() + 3)
|
||||
_G.CombatLogQuickButtonFrame_CustomAdditionalFilterButton:Size(20)
|
||||
_G.CombatLogQuickButtonFrame_CustomTexture:Hide()
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_CombatLog')
|
||||
780
Modules/Skins/Blizzard/Communities.lua
Normal file
780
Modules/Skins/Blizzard/Communities.lua
Normal file
@@ -0,0 +1,780 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local ipairs, pairs, select, unpack = ipairs, pairs, select, unpack
|
||||
|
||||
local C_CreatureInfo_GetClassInfo = C_CreatureInfo.GetClassInfo
|
||||
local C_GuildInfo_GetGuildNewsInfo = C_GuildInfo.GetGuildNewsInfo
|
||||
local CLASS_ICON_TCOORDS = CLASS_ICON_TCOORDS
|
||||
local BATTLENET_FONT_COLOR = BATTLENET_FONT_COLOR
|
||||
local FRIENDS_BNET_BACKGROUND_COLOR = FRIENDS_BNET_BACKGROUND_COLOR
|
||||
local FRIENDS_WOW_BACKGROUND_COLOR = FRIENDS_WOW_BACKGROUND_COLOR
|
||||
local GetClassInfo = GetClassInfo
|
||||
local GREEN_FONT_COLOR = GREEN_FONT_COLOR
|
||||
local CreateFrame = CreateFrame
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
local GetGuildRewardInfo = GetGuildRewardInfo
|
||||
local GetItemQualityColor = GetItemQualityColor
|
||||
local GetItemInfo = GetItemInfo
|
||||
local Enum = Enum
|
||||
|
||||
local function UpdateNames(self)
|
||||
if not self.expanded then return end
|
||||
|
||||
local memberInfo = self:GetMemberInfo()
|
||||
if memberInfo and memberInfo.classID then
|
||||
local classInfo = C_CreatureInfo_GetClassInfo(memberInfo.classID)
|
||||
if classInfo then
|
||||
local tcoords = _G.CLASS_ICON_TCOORDS[classInfo.classFile]
|
||||
self.Class:SetTexCoord(tcoords[1] + .022, tcoords[2] - .025, tcoords[3] + .022, tcoords[4] - .025)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function HandleRoleChecks(button, ...)
|
||||
button:StripTextures()
|
||||
button:DisableDrawLayer('ARTWORK')
|
||||
button:DisableDrawLayer('OVERLAY')
|
||||
|
||||
button.bg = button:CreateTexture(nil, 'BACKGROUND', nil, -7)
|
||||
button.bg:SetTexture([[Interface\LFGFrame\UI-LFG-ICONS-ROLEBACKGROUNDS]])
|
||||
button.bg:SetTexCoord(...)
|
||||
button.bg:Point('CENTER')
|
||||
button.bg:Size(40, 40)
|
||||
button.bg:SetAlpha(0.6)
|
||||
S:HandleCheckBox(button.CheckBox)
|
||||
end
|
||||
|
||||
local function HandleCommunitiesButtons(self, color)
|
||||
self.Background:Hide()
|
||||
self.CircleMask:Hide()
|
||||
self:SetFrameLevel(self:GetFrameLevel() + 5)
|
||||
|
||||
S:HandleIcon(self.Icon)
|
||||
self.Icon:ClearAllPoints()
|
||||
self.Icon:Point('TOPLEFT', 15, -18)
|
||||
self.IconRing:Hide()
|
||||
|
||||
if not self.bg then
|
||||
self.bg = CreateFrame('Frame', nil, self)
|
||||
self.bg:CreateBackdrop('Transparent')
|
||||
self.bg:Point('TOPLEFT', 7, -16)
|
||||
self.bg:Point('BOTTOMRIGHT', -10, 12)
|
||||
end
|
||||
|
||||
if self.IconBorder then
|
||||
self.IconBorder:Hide()
|
||||
end
|
||||
|
||||
if color then
|
||||
self.Selection:SetInside(self.bg, 0, 0)
|
||||
if color == 1 then
|
||||
self.Selection:SetAtlas(nil)
|
||||
self.Selection:SetColorTexture(GREEN_FONT_COLOR.r, GREEN_FONT_COLOR.g, GREEN_FONT_COLOR.b, 0.2)
|
||||
else
|
||||
self.Selection:SetAtlas(nil)
|
||||
self.Selection:SetColorTexture(BATTLENET_FONT_COLOR.r, BATTLENET_FONT_COLOR.g, BATTLENET_FONT_COLOR.b, 0.2)
|
||||
end
|
||||
end
|
||||
|
||||
local highlight = self:GetHighlightTexture()
|
||||
highlight:SetColorTexture(1, 1, 1, 0.3)
|
||||
highlight:SetInside(self.bg)
|
||||
end
|
||||
|
||||
local function ColorMemberName(self, info)
|
||||
if not info then return end
|
||||
|
||||
local class = self.Class
|
||||
local classInfo = select(2, GetClassInfo(info.classID))
|
||||
if classInfo then
|
||||
local tcoords = CLASS_ICON_TCOORDS[classInfo]
|
||||
class:SetTexCoord(tcoords[1] + .022, tcoords[2] - .025, tcoords[3] + .022, tcoords[4] - .025)
|
||||
end
|
||||
end
|
||||
|
||||
function S:Blizzard_Communities()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.communities) then return end
|
||||
|
||||
local CommunitiesFrame = _G.CommunitiesFrame
|
||||
CommunitiesFrame:StripTextures()
|
||||
CommunitiesFrame.NineSlice:Hide()
|
||||
_G.CommunitiesFrameInset.Bg:Hide()
|
||||
CommunitiesFrame.CommunitiesList.InsetFrame:StripTextures()
|
||||
|
||||
S:HandlePortraitFrame(CommunitiesFrame)
|
||||
|
||||
local CommunitiesFrameCommunitiesList = _G.CommunitiesFrameCommunitiesList
|
||||
CommunitiesFrameCommunitiesList.FilligreeOverlay:Hide()
|
||||
CommunitiesFrameCommunitiesList.Bg:Hide()
|
||||
CommunitiesFrameCommunitiesList.TopFiligree:Hide()
|
||||
CommunitiesFrameCommunitiesList.BottomFiligree:Hide()
|
||||
_G.CommunitiesFrameCommunitiesListListScrollFrame:StripTextures()
|
||||
|
||||
hooksecurefunc(_G.CommunitiesListEntryMixin, 'SetClubInfo', function(s, clubInfo, isInvitation, isTicket)
|
||||
if clubInfo then
|
||||
s.Background:Hide()
|
||||
s.CircleMask:Hide()
|
||||
|
||||
s.Icon:ClearAllPoints()
|
||||
s.Icon:Point('TOPLEFT', 8, -17)
|
||||
S:HandleIcon(s.Icon)
|
||||
s.IconRing:Hide()
|
||||
|
||||
if not s.IconBorder then
|
||||
s.IconBorder = s:CreateTexture(nil, 'BORDER')
|
||||
s.IconBorder:SetOutside(s.Icon)
|
||||
s.IconBorder:Hide()
|
||||
end
|
||||
|
||||
s.GuildTabardBackground:Point('TOPLEFT', 6, -17)
|
||||
s.GuildTabardEmblem:Point('TOPLEFT', 13, -17)
|
||||
s.GuildTabardBorder:Point('TOPLEFT', 6, -17)
|
||||
|
||||
if not s.bg then
|
||||
s.bg = CreateFrame('Frame', nil, s)
|
||||
s.bg:CreateBackdrop('Transparent')
|
||||
s.bg:Point('TOPLEFT', 7, -16)
|
||||
s.bg:Point('BOTTOMRIGHT', -10, 12)
|
||||
end
|
||||
|
||||
local isGuild = clubInfo.clubType == Enum.ClubType.Guild
|
||||
if isGuild then
|
||||
s.Background:SetAtlas(nil)
|
||||
s.Selection:SetAtlas(nil)
|
||||
s.Selection:SetAllPoints(s.bg)
|
||||
s.Selection:SetColorTexture(0, 1, 0, 0.2)
|
||||
else
|
||||
s.Background:SetAtlas(nil)
|
||||
s.Selection:SetAtlas(nil)
|
||||
s.Selection:SetAllPoints(s.bg)
|
||||
s.Selection:SetColorTexture(FRIENDS_BNET_BACKGROUND_COLOR.r, FRIENDS_BNET_BACKGROUND_COLOR.g, FRIENDS_BNET_BACKGROUND_COLOR.b, 0.2)
|
||||
end
|
||||
|
||||
if not isInvitation and not isGuild and not isTicket then
|
||||
if clubInfo.clubType == _G.Enum.ClubType.BattleNet then
|
||||
s.IconBorder:SetColorTexture(FRIENDS_BNET_BACKGROUND_COLOR.r, FRIENDS_BNET_BACKGROUND_COLOR.g, FRIENDS_BNET_BACKGROUND_COLOR.b)
|
||||
else
|
||||
s.IconBorder:SetColorTexture(FRIENDS_WOW_BACKGROUND_COLOR.r, FRIENDS_WOW_BACKGROUND_COLOR.g, FRIENDS_WOW_BACKGROUND_COLOR.b)
|
||||
end
|
||||
s.IconBorder:Show()
|
||||
else
|
||||
s.IconBorder:Hide()
|
||||
end
|
||||
|
||||
local highlight = s:GetHighlightTexture()
|
||||
highlight:SetColorTexture(1, 1, 1, 0.3)
|
||||
highlight:SetAllPoints(s.bg)
|
||||
end
|
||||
end)
|
||||
|
||||
-- Add Community Button
|
||||
hooksecurefunc(_G.CommunitiesListEntryMixin, 'SetAddCommunity', function(s) HandleCommunitiesButtons(s, 1) end)
|
||||
hooksecurefunc(_G.CommunitiesListEntryMixin, 'SetFindCommunity', function(s) HandleCommunitiesButtons(s, 2) end)
|
||||
hooksecurefunc(_G.CommunitiesListEntryMixin, 'SetGuildFinder', function(s) HandleCommunitiesButtons(s, 1) end)
|
||||
|
||||
S:HandleItemButton(CommunitiesFrame.ChatTab)
|
||||
CommunitiesFrame.ChatTab:Point('TOPLEFT', '$parent', 'TOPRIGHT', E.PixelMode and 0 or E.Border + E.Spacing, -36)
|
||||
S:HandleItemButton(CommunitiesFrame.RosterTab)
|
||||
S:HandleItemButton(CommunitiesFrame.GuildBenefitsTab)
|
||||
S:HandleItemButton(CommunitiesFrame.GuildInfoTab)
|
||||
|
||||
S:HandleInsetFrame(CommunitiesFrame.CommunitiesList)
|
||||
S:HandleMaxMinFrame(CommunitiesFrame.MaximizeMinimizeFrame)
|
||||
CommunitiesFrame.MaximizeMinimizeFrame:ClearAllPoints()
|
||||
CommunitiesFrame.MaximizeMinimizeFrame:Point('RIGHT', CommunitiesFrame.CloseButton, 'LEFT', 12, 0)
|
||||
|
||||
S:HandleButton(CommunitiesFrame.InviteButton)
|
||||
S:HandleNextPrevButton(CommunitiesFrame.AddToChatButton)
|
||||
|
||||
S:HandleScrollBar(CommunitiesFrame.MemberList.ListScrollFrame.scrollBar)
|
||||
S:HandleScrollBar(CommunitiesFrame.Chat.MessageFrame.ScrollBar)
|
||||
S:HandleScrollBar(_G.CommunitiesFrameCommunitiesListListScrollFrame.ScrollBar)
|
||||
|
||||
S:HandleDropDownBox(CommunitiesFrame.StreamDropDownMenu)
|
||||
S:HandleDropDownBox(CommunitiesFrame.CommunitiesListDropDownMenu)
|
||||
|
||||
hooksecurefunc(_G.CommunitiesNotificationSettingsStreamEntryMixin, 'SetFilter', function(s)
|
||||
s.ShowNotificationsButton:Size(20, 20)
|
||||
s.HideNotificationsButton:Size(20, 20)
|
||||
S:HandleCheckBox(s.ShowNotificationsButton)
|
||||
S:HandleCheckBox(s.HideNotificationsButton)
|
||||
end)
|
||||
|
||||
-- Chat Tab
|
||||
CommunitiesFrame.MemberList:StripTextures()
|
||||
CommunitiesFrame.MemberList.InsetFrame:Hide()
|
||||
CommunitiesFrame.MemberList.WatermarkFrame:Hide()
|
||||
|
||||
CommunitiesFrame.Chat:StripTextures()
|
||||
CommunitiesFrame.Chat.InsetFrame:CreateBackdrop('Transparent')
|
||||
|
||||
S:HandleEditBox(CommunitiesFrame.ChatEditBox)
|
||||
CommunitiesFrame.ChatEditBox:Size(120, 20)
|
||||
|
||||
-- [[ GUILDFINDER FRAME ]]--
|
||||
local ClubFinderGuildFinderFrame = _G.ClubFinderGuildFinderFrame
|
||||
ClubFinderGuildFinderFrame:StripTextures()
|
||||
|
||||
S:HandleDropDownBox(_G.ClubFinderLanguageDropdown)
|
||||
S:HandleNextPrevButton(ClubFinderGuildFinderFrame.GuildCards.PreviousPage)
|
||||
S:HandleNextPrevButton(ClubFinderGuildFinderFrame.GuildCards.NextPage)
|
||||
|
||||
-->> Monitor this
|
||||
for _, card in pairs(ClubFinderGuildFinderFrame.GuildCards.Cards, ClubFinderGuildFinderFrame.PendingGuildCards.Cards) do
|
||||
if not card.isSkinned then
|
||||
card.CardBackground:Hide()
|
||||
card:CreateBackdrop()
|
||||
card.GuildBannerEmblemLogo:SetDrawLayer('OVERLAY')
|
||||
S:HandleButton(card.RequestJoin)
|
||||
card.isSkinned = true
|
||||
end
|
||||
end
|
||||
|
||||
S:HandleDropDownBox(ClubFinderGuildFinderFrame.OptionsList.ClubFilterDropdown)
|
||||
S:HandleDropDownBox(ClubFinderGuildFinderFrame.OptionsList.ClubSizeDropdown)
|
||||
|
||||
ClubFinderGuildFinderFrame.OptionsList.SearchBox:Size(118, 20)
|
||||
ClubFinderGuildFinderFrame.OptionsList.Search:Size(118, 20)
|
||||
ClubFinderGuildFinderFrame.OptionsList.Search:ClearAllPoints()
|
||||
ClubFinderGuildFinderFrame.OptionsList.Search:Point('TOP', ClubFinderGuildFinderFrame.OptionsList.SearchBox, 'BOTTOM', 1, -3)
|
||||
S:HandleEditBox(ClubFinderGuildFinderFrame.OptionsList.SearchBox)
|
||||
S:HandleButton(ClubFinderGuildFinderFrame.OptionsList.Search)
|
||||
|
||||
HandleRoleChecks(ClubFinderGuildFinderFrame.OptionsList.TankRoleFrame, _G.LFDQueueFrameRoleButtonTank.background:GetTexCoord())
|
||||
HandleRoleChecks(ClubFinderGuildFinderFrame.OptionsList.HealerRoleFrame, _G.LFDQueueFrameRoleButtonHealer.background:GetTexCoord())
|
||||
HandleRoleChecks(ClubFinderGuildFinderFrame.OptionsList.DpsRoleFrame, _G.LFDQueueFrameRoleButtonDPS.background:GetTexCoord())
|
||||
|
||||
S:HandleItemButton(ClubFinderGuildFinderFrame.ClubFinderSearchTab)
|
||||
S:HandleItemButton(ClubFinderGuildFinderFrame.ClubFinderPendingTab)
|
||||
|
||||
-- [[ClubFinderCommunityAndGuildFinderFrame ]]--
|
||||
local ClubFinderCommunityAndGuildFinderFrame = _G.ClubFinderCommunityAndGuildFinderFrame
|
||||
ClubFinderCommunityAndGuildFinderFrame:StripTextures()
|
||||
|
||||
-->> Monitor this
|
||||
for _, button in pairs(ClubFinderCommunityAndGuildFinderFrame.CommunityCards.ListScrollFrame.buttons, ClubFinderCommunityAndGuildFinderFrame.PendingCommunityCards.ListScrollFrame.buttons) do
|
||||
if not button.isSkinned then
|
||||
button.CircleMask:Hide()
|
||||
button.LogoBorder:Hide()
|
||||
S:HandleIcon(button.CommunityLogo)
|
||||
S:HandleButton(button)
|
||||
|
||||
button.isSkinned = true
|
||||
end
|
||||
end
|
||||
|
||||
S:HandleDropDownBox(ClubFinderCommunityAndGuildFinderFrame.OptionsList.ClubFilterDropdown)
|
||||
S:HandleDropDownBox(ClubFinderCommunityAndGuildFinderFrame.OptionsList.SortByDropdown)
|
||||
|
||||
S:HandleButton(ClubFinderCommunityAndGuildFinderFrame.OptionsList.Search)
|
||||
ClubFinderCommunityAndGuildFinderFrame.OptionsList.Search:ClearAllPoints()
|
||||
ClubFinderCommunityAndGuildFinderFrame.OptionsList.Search:Point('TOP', ClubFinderCommunityAndGuildFinderFrame.OptionsList.SearchBox, 'BOTTOM', 1, -3)
|
||||
ClubFinderCommunityAndGuildFinderFrame.OptionsList.Search:Size(118, 20)
|
||||
ClubFinderCommunityAndGuildFinderFrame.OptionsList.SearchBox:Size(118, 20)
|
||||
S:HandleEditBox(ClubFinderCommunityAndGuildFinderFrame.OptionsList.SearchBox)
|
||||
|
||||
HandleRoleChecks(ClubFinderCommunityAndGuildFinderFrame.OptionsList.TankRoleFrame, _G.LFDQueueFrameRoleButtonTank.background:GetTexCoord())
|
||||
HandleRoleChecks(ClubFinderCommunityAndGuildFinderFrame.OptionsList.HealerRoleFrame, _G.LFDQueueFrameRoleButtonHealer.background:GetTexCoord())
|
||||
HandleRoleChecks(ClubFinderCommunityAndGuildFinderFrame.OptionsList.DpsRoleFrame, _G.LFDQueueFrameRoleButtonDPS.background:GetTexCoord())
|
||||
|
||||
S:HandleScrollBar(ClubFinderCommunityAndGuildFinderFrame.CommunityCards.ListScrollFrame.scrollBar)
|
||||
S:HandleScrollBar(ClubFinderCommunityAndGuildFinderFrame.PendingCommunityCards.ListScrollFrame.scrollBar)
|
||||
|
||||
S:HandleItemButton(ClubFinderCommunityAndGuildFinderFrame.ClubFinderSearchTab)
|
||||
S:HandleItemButton(ClubFinderCommunityAndGuildFinderFrame.ClubFinderPendingTab)
|
||||
|
||||
for _, t in ipairs({ClubFinderGuildFinderFrame.RequestToJoinFrame, ClubFinderCommunityAndGuildFinderFrame.RequestToJoinFrame}) do
|
||||
t:StripTextures()
|
||||
t:CreateBackdrop('Transparent')
|
||||
|
||||
hooksecurefunc(t, 'Initialize', function(s)
|
||||
for button in s.SpecsPool:EnumerateActive() do
|
||||
if button.CheckBox then
|
||||
S:HandleCheckBox(button.CheckBox)
|
||||
button.CheckBox:Size(26, 26)
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
t.MessageFrame:StripTextures(true)
|
||||
t.MessageFrame.MessageScroll:StripTextures(true)
|
||||
|
||||
S:HandleEditBox(t.MessageFrame.MessageScroll)
|
||||
S:HandleScrollBar(_G.ClubFinderGuildFinderFrameScrollBar)
|
||||
S:HandleButton(t.Apply)
|
||||
S:HandleButton(t.Cancel)
|
||||
end
|
||||
|
||||
-- Member Details
|
||||
CommunitiesFrame.GuildMemberDetailFrame:StripTextures()
|
||||
CommunitiesFrame.GuildMemberDetailFrame:CreateBackdrop('Transparent')
|
||||
|
||||
CommunitiesFrame.GuildMemberDetailFrame.NoteBackground:SetTemplate('Transparent')
|
||||
CommunitiesFrame.GuildMemberDetailFrame.OfficerNoteBackground:SetTemplate('Transparent')
|
||||
S:HandleCloseButton(CommunitiesFrame.GuildMemberDetailFrame.CloseButton)
|
||||
S:HandleButton(CommunitiesFrame.GuildMemberDetailFrame.RemoveButton)
|
||||
S:HandleButton(CommunitiesFrame.GuildMemberDetailFrame.GroupInviteButton)
|
||||
|
||||
local DropDown = CommunitiesFrame.GuildMemberDetailFrame.RankDropdown
|
||||
S:HandleDropDownBox(DropDown, 160)
|
||||
DropDown.backdrop:Point('TOPLEFT', 0, -6)
|
||||
DropDown.backdrop:Point('BOTTOMRIGHT', -12, 6)
|
||||
DropDown:Point('LEFT', CommunitiesFrame.GuildMemberDetailFrame.RankLabel, 'RIGHT', 2, 0)
|
||||
|
||||
-- [[ ROSTER TAB ]]
|
||||
local MemberList = CommunitiesFrame.MemberList
|
||||
local ColumnDisplay = MemberList.ColumnDisplay
|
||||
ColumnDisplay:StripTextures()
|
||||
ColumnDisplay.InsetBorderLeft:Hide()
|
||||
ColumnDisplay.InsetBorderBottomLeft:Hide()
|
||||
ColumnDisplay.InsetBorderTopLeft:Hide()
|
||||
ColumnDisplay.InsetBorderTop:Hide()
|
||||
|
||||
S:HandleInsetFrame(CommunitiesFrame.MemberList.InsetFrame)
|
||||
S:HandleDropDownBox(CommunitiesFrame.GuildMemberListDropDownMenu)
|
||||
S:HandleButton(CommunitiesFrame.CommunitiesControlFrame.GuildControlButton)
|
||||
S:HandleButton(CommunitiesFrame.CommunitiesControlFrame.GuildRecruitmentButton)
|
||||
S:HandleButton(CommunitiesFrame.CommunitiesControlFrame.CommunitiesSettingsButton)
|
||||
CommunitiesFrame.CommunitiesControlFrame.CommunitiesSettingsButton:Size(129, 19)
|
||||
S:HandleCheckBox(CommunitiesFrame.MemberList.ShowOfflineButton)
|
||||
CommunitiesFrame.MemberList.ShowOfflineButton:Size(25, 25)
|
||||
|
||||
hooksecurefunc(CommunitiesFrame.MemberList, 'RefreshListDisplay', function(s)
|
||||
for i = 1, s.ColumnDisplay:GetNumChildren() do
|
||||
local child = select(i, s.ColumnDisplay:GetChildren())
|
||||
child:StripTextures()
|
||||
child:CreateBackdrop('Transparent')
|
||||
end
|
||||
|
||||
for _, button in ipairs(s.ListScrollFrame.buttons or {}) do
|
||||
if button and not button.hooked then
|
||||
hooksecurefunc(button, 'RefreshExpandedColumns', UpdateNames)
|
||||
if button.ProfessionHeader then
|
||||
local header = button.ProfessionHeader
|
||||
for i = 1, 3 do
|
||||
select(i, header:GetRegions()):Hide()
|
||||
end
|
||||
|
||||
header:CreateBackdrop('Transparent')
|
||||
end
|
||||
|
||||
button.hooked = true
|
||||
end
|
||||
if button and button.bg then
|
||||
button.bg:SetShown(button.Class:IsShown())
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
-- [[ PERKS TAB ]]
|
||||
local GuildBenefitsFrame = CommunitiesFrame.GuildBenefitsFrame
|
||||
GuildBenefitsFrame.InsetBorderLeft:Hide()
|
||||
GuildBenefitsFrame.InsetBorderRight:Hide()
|
||||
GuildBenefitsFrame.InsetBorderBottomRight:Hide()
|
||||
GuildBenefitsFrame.InsetBorderBottomLeft:Hide()
|
||||
GuildBenefitsFrame.InsetBorderTopRight:Hide()
|
||||
GuildBenefitsFrame.InsetBorderTopLeft:Hide()
|
||||
GuildBenefitsFrame.InsetBorderLeft2:Hide()
|
||||
GuildBenefitsFrame.InsetBorderBottomLeft2:Hide()
|
||||
GuildBenefitsFrame.InsetBorderTopLeft2:Hide()
|
||||
|
||||
GuildBenefitsFrame.Perks:StripTextures()
|
||||
GuildBenefitsFrame.Perks.TitleText:FontTemplate(nil, 14)
|
||||
|
||||
for i = 1, 5 do
|
||||
local button = _G['CommunitiesFrameContainerButton'..i]
|
||||
button:DisableDrawLayer('BACKGROUND')
|
||||
button:DisableDrawLayer('BORDER')
|
||||
button:CreateBackdrop()
|
||||
|
||||
button.Icon:SetTexCoord(unpack(E.TexCoords))
|
||||
end
|
||||
|
||||
GuildBenefitsFrame.Rewards.TitleText:FontTemplate(nil, 14)
|
||||
|
||||
GuildBenefitsFrame.Rewards.Bg:Hide()
|
||||
|
||||
S:HandleScrollBar(_G.CommunitiesFrameRewards.scrollBar)
|
||||
|
||||
for _, button in pairs(CommunitiesFrame.GuildBenefitsFrame.Rewards.RewardsContainer.buttons) do
|
||||
if not button.backdrop then
|
||||
button:CreateBackdrop()
|
||||
end
|
||||
|
||||
button:SetNormalTexture('')
|
||||
button:SetHighlightTexture('')
|
||||
|
||||
if not button.hover then
|
||||
local hover = button:CreateTexture()
|
||||
hover:SetColorTexture(1, 1, 1, 0.3)
|
||||
hover:SetInside(button.backdrop)
|
||||
button:SetHighlightTexture(hover)
|
||||
button.hover = hover
|
||||
end
|
||||
|
||||
button.Icon:SetTexCoord(unpack(E.TexCoords))
|
||||
if not button.Icon.backdrop then
|
||||
button.Icon:CreateBackdrop()
|
||||
button.Icon.backdrop:SetOutside(button.Icon, 1, 1)
|
||||
button.Icon.backdrop:SetFrameLevel(button.backdrop:GetFrameLevel() + 1)
|
||||
end
|
||||
end
|
||||
|
||||
hooksecurefunc('CommunitiesGuildRewards_Update', function()
|
||||
for _, button in pairs(CommunitiesFrame.GuildBenefitsFrame.Rewards.RewardsContainer.buttons) do
|
||||
if button.index then
|
||||
local _, itemID = GetGuildRewardInfo(button.index)
|
||||
if itemID then
|
||||
local _, _, quality = GetItemInfo(itemID)
|
||||
if quality and quality > 1 then
|
||||
button.Icon.backdrop:SetBackdropBorderColor(GetItemQualityColor(quality))
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
-- Guild Reputation Bar TO DO: Adjust me!
|
||||
local StatusBar = CommunitiesFrame.GuildBenefitsFrame.FactionFrame.Bar
|
||||
StatusBar.Middle:Hide()
|
||||
StatusBar.Right:Hide()
|
||||
StatusBar.Left:Hide()
|
||||
StatusBar.BG:Hide()
|
||||
StatusBar.Shadow:Hide()
|
||||
StatusBar.Progress:SetTexture(E.media.normTex)
|
||||
StatusBar.Progress:SetAllPoints()
|
||||
E:RegisterStatusBar(StatusBar)
|
||||
|
||||
local bg = CreateFrame('Frame', nil, StatusBar)
|
||||
bg:Point('TOPLEFT', 0, -3)
|
||||
bg:Point('BOTTOMRIGHT', 0, 1)
|
||||
bg:SetFrameLevel(StatusBar:GetFrameLevel())
|
||||
bg:CreateBackdrop()
|
||||
|
||||
-- [[ INFO TAB ]]
|
||||
local GuildDetails = _G.CommunitiesFrameGuildDetailsFrame
|
||||
GuildDetails.InsetBorderLeft:Hide()
|
||||
GuildDetails.InsetBorderRight:Hide()
|
||||
GuildDetails.InsetBorderBottomRight:Hide()
|
||||
GuildDetails.InsetBorderBottomLeft:Hide()
|
||||
GuildDetails.InsetBorderTopRight:Hide()
|
||||
GuildDetails.InsetBorderTopLeft:Hide()
|
||||
GuildDetails.InsetBorderLeft2:Hide()
|
||||
GuildDetails.InsetBorderBottomLeft2:Hide()
|
||||
GuildDetails.InsetBorderTopLeft2:Hide()
|
||||
|
||||
local striptextures = {
|
||||
'CommunitiesFrameGuildDetailsFrameInfo',
|
||||
'CommunitiesFrameGuildDetailsFrameNews',
|
||||
'CommunitiesGuildNewsFiltersFrame',
|
||||
}
|
||||
|
||||
for _, frame in pairs(striptextures) do
|
||||
_G[frame]:StripTextures()
|
||||
end
|
||||
|
||||
S:HandleScrollBar(_G.CommunitiesFrameGuildDetailsFrameInfoMOTDScrollFrameScrollBar)
|
||||
|
||||
hooksecurefunc('GuildNewsButton_SetNews', function(button, news_id)
|
||||
local newsInfo = C_GuildInfo_GetGuildNewsInfo(news_id)
|
||||
if newsInfo then
|
||||
if button.header:IsShown() then
|
||||
button.header:SetAlpha(0)
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
-- Guild Challenges Background
|
||||
local GuildDetailsFrameInfo = _G.CommunitiesFrameGuildDetailsFrameInfo
|
||||
local backdrop1 = CreateFrame('Frame', nil, GuildDetailsFrameInfo, 'BackdropTemplate')
|
||||
backdrop1:SetTemplate('Transparent')
|
||||
backdrop1:SetFrameLevel(GuildDetailsFrameInfo:GetFrameLevel() - 1)
|
||||
backdrop1:Point('TOPLEFT', GuildDetailsFrameInfo, 'TOPLEFT', 14, -22)
|
||||
backdrop1:Point('BOTTOMRIGHT', GuildDetailsFrameInfo, 'BOTTOMRIGHT', 0, 200)
|
||||
|
||||
-- Guild MOTD Background
|
||||
local backdrop2 = CreateFrame('Frame', nil, GuildDetailsFrameInfo, 'BackdropTemplate')
|
||||
backdrop2:SetTemplate('Transparent')
|
||||
backdrop2:SetFrameLevel(GuildDetailsFrameInfo:GetFrameLevel() - 1)
|
||||
backdrop2:Point('TOPLEFT', GuildDetailsFrameInfo, 'TOPLEFT', 14, -158)
|
||||
backdrop2:Point('BOTTOMRIGHT', GuildDetailsFrameInfo, 'BOTTOMRIGHT', 0, 118)
|
||||
|
||||
-- Guild Information Background
|
||||
local backdrop3 = CreateFrame('Frame', nil, GuildDetailsFrameInfo, 'BackdropTemplate')
|
||||
backdrop3:SetTemplate('Transparent')
|
||||
backdrop3:SetFrameLevel(GuildDetailsFrameInfo:GetFrameLevel() - 1)
|
||||
backdrop3:Point('TOPLEFT', GuildDetailsFrameInfo, 'TOPLEFT', 14, -236)
|
||||
backdrop3:Point('BOTTOMRIGHT', GuildDetailsFrameInfo, 'BOTTOMRIGHT', -7, 1)
|
||||
|
||||
-- Guild News Background
|
||||
local backdrop4 = CreateFrame('Frame', nil, GuildDetailsFrameInfo, 'BackdropTemplate')
|
||||
backdrop4:SetTemplate('Transparent')
|
||||
backdrop4:SetFrameLevel(GuildDetailsFrameInfo:GetFrameLevel() - 1)
|
||||
backdrop4:Point('TOPLEFT', GuildDetailsFrameInfo, 'TOPLEFT', 591, -22)
|
||||
backdrop4:Point('BOTTOMRIGHT', GuildDetailsFrameInfo, 'BOTTOMRIGHT', 18, 1)
|
||||
|
||||
_G.CommunitiesFrameGuildDetailsFrameInfo.TitleText:FontTemplate(nil, 14)
|
||||
_G.CommunitiesFrameGuildDetailsFrameNews.TitleText:FontTemplate(nil, 14)
|
||||
|
||||
S:HandleScrollBar(_G.CommunitiesFrameGuildDetailsFrameInfoScrollBar)
|
||||
S:HandleScrollBar(_G.CommunitiesFrameGuildDetailsFrameNewsContainer.ScrollBar)
|
||||
S:HandleButton(CommunitiesFrame.GuildLogButton)
|
||||
|
||||
local BossModel = _G.CommunitiesFrameGuildDetailsFrameNews.BossModel
|
||||
BossModel:StripTextures()
|
||||
BossModel.TextFrame:StripTextures()
|
||||
BossModel:CreateBackdrop('Transparent')
|
||||
BossModel.TextFrame:CreateBackdrop('Transparent')
|
||||
|
||||
-- Filters Frame
|
||||
local FiltersFrame = _G.CommunitiesGuildNewsFiltersFrame
|
||||
FiltersFrame:CreateBackdrop('Transparent')
|
||||
S:HandleCheckBox(FiltersFrame.GuildAchievement)
|
||||
S:HandleCheckBox(FiltersFrame.Achievement)
|
||||
S:HandleCheckBox(FiltersFrame.DungeonEncounter)
|
||||
S:HandleCheckBox(FiltersFrame.EpicItemLooted)
|
||||
S:HandleCheckBox(FiltersFrame.EpicItemCrafted)
|
||||
S:HandleCheckBox(FiltersFrame.EpicItemPurchased)
|
||||
S:HandleCheckBox(FiltersFrame.LegendaryItemLooted)
|
||||
S:HandleCloseButton(FiltersFrame.CloseButton)
|
||||
|
||||
-- Guild Message EditBox
|
||||
local EditFrame = _G.CommunitiesGuildTextEditFrame
|
||||
EditFrame:StripTextures()
|
||||
EditFrame:CreateBackdrop('Transparent')
|
||||
EditFrame.Container:CreateBackdrop('Transparent')
|
||||
S:HandleScrollBar(_G.CommunitiesGuildTextEditFrameScrollBar)
|
||||
S:HandleButton(_G.CommunitiesGuildTextEditFrameAcceptButton)
|
||||
|
||||
local closeButton = select(4, _G.CommunitiesGuildTextEditFrame:GetChildren())
|
||||
S:HandleButton(closeButton)
|
||||
S:HandleCloseButton(_G.CommunitiesGuildTextEditFrameCloseButton)
|
||||
|
||||
-- Guild Log
|
||||
local GuildLogFrame = _G.CommunitiesGuildLogFrame
|
||||
GuildLogFrame:StripTextures()
|
||||
GuildLogFrame.Container:StripTextures()
|
||||
GuildLogFrame:CreateBackdrop('Transparent')
|
||||
|
||||
S:HandleScrollBar(_G.CommunitiesGuildLogFrameScrollBar, 4)
|
||||
S:HandleCloseButton(_G.CommunitiesGuildLogFrameCloseButton)
|
||||
closeButton = select(3, _G.CommunitiesGuildLogFrame:GetChildren()) -- swap local variable
|
||||
S:HandleButton(closeButton)
|
||||
|
||||
-- Recruitment Info
|
||||
local RecruitmentFrame = _G.CommunitiesGuildRecruitmentFrame
|
||||
RecruitmentFrame:StripTextures()
|
||||
RecruitmentFrame:CreateBackdrop('Transparent')
|
||||
_G.CommunitiesGuildRecruitmentFrameInset:StripTextures(false)
|
||||
|
||||
-- Recruitment Dialog
|
||||
local RecruitmentDialog = _G.CommunitiesFrame.RecruitmentDialog
|
||||
RecruitmentDialog:StripTextures()
|
||||
RecruitmentDialog:CreateBackdrop('Transparent')
|
||||
S:HandleCheckBox(RecruitmentDialog.ShouldListClub.Button)
|
||||
S:HandleDropDownBox(RecruitmentDialog.ClubFocusDropdown, 220)
|
||||
S:HandleDropDownBox(RecruitmentDialog.LookingForDropdown, 220)
|
||||
S:HandleDropDownBox(RecruitmentDialog.LanguageDropdown, 190)
|
||||
RecruitmentDialog.RecruitmentMessageFrame:StripTextures()
|
||||
S:HandleEditBox(RecruitmentDialog.RecruitmentMessageFrame.RecruitmentMessageInput)
|
||||
S:HandleCheckBox(RecruitmentDialog.MaxLevelOnly.Button)
|
||||
S:HandleCheckBox(RecruitmentDialog.MinIlvlOnly.Button)
|
||||
S:HandleEditBox(RecruitmentDialog.MinIlvlOnly.EditBox)
|
||||
S:HandleButton(RecruitmentDialog.Accept)
|
||||
S:HandleButton(RecruitmentDialog.Cancel)
|
||||
S:HandleScrollBar(RecruitmentDialog.RecruitmentMessageFrame.RecruitmentMessageInput.ScrollBar)
|
||||
|
||||
-- CheckBoxes
|
||||
local CommunitiesGuildRecruitmentFrameRecruitment = _G.CommunitiesGuildRecruitmentFrameRecruitment
|
||||
S:HandleCheckBox(CommunitiesGuildRecruitmentFrameRecruitment.InterestFrame.QuestButton)
|
||||
S:HandleCheckBox(CommunitiesGuildRecruitmentFrameRecruitment.InterestFrame.DungeonButton)
|
||||
S:HandleCheckBox(CommunitiesGuildRecruitmentFrameRecruitment.InterestFrame.RaidButton)
|
||||
S:HandleCheckBox(CommunitiesGuildRecruitmentFrameRecruitment.InterestFrame.PvPButton)
|
||||
S:HandleCheckBox(CommunitiesGuildRecruitmentFrameRecruitment.InterestFrame.RPButton)
|
||||
|
||||
S:HandleCheckBox(CommunitiesGuildRecruitmentFrameRecruitment.AvailabilityFrame.WeekdaysButton)
|
||||
S:HandleCheckBox(CommunitiesGuildRecruitmentFrameRecruitment.AvailabilityFrame.WeekendsButton)
|
||||
|
||||
S:HandleCheckBox(CommunitiesGuildRecruitmentFrameRecruitment.RolesFrame.TankButton.checkButton)
|
||||
S:HandleCheckBox(CommunitiesGuildRecruitmentFrameRecruitment.RolesFrame.HealerButton.checkButton)
|
||||
S:HandleCheckBox(CommunitiesGuildRecruitmentFrameRecruitment.RolesFrame.DamagerButton.checkButton)
|
||||
|
||||
S:HandleCloseButton(_G.CommunitiesGuildRecruitmentFrameCloseButton)
|
||||
|
||||
S:HandleButton(CommunitiesGuildRecruitmentFrameRecruitment.ListGuildButton)
|
||||
|
||||
-- Tabs
|
||||
for i = 1, 2 do
|
||||
S:HandleTab(_G['CommunitiesGuildRecruitmentFrameTab'..i])
|
||||
end
|
||||
|
||||
CommunitiesGuildRecruitmentFrameRecruitment.CommentFrame.CommentInputFrame:StripTextures()
|
||||
S:HandleEditBox(CommunitiesGuildRecruitmentFrameRecruitment.CommentFrame.CommentInputFrame)
|
||||
|
||||
-- Recruitment Request
|
||||
local CommunitiesGuildRecruitmentFrameApplicants = _G.CommunitiesGuildRecruitmentFrameApplicants
|
||||
S:HandleButton(CommunitiesGuildRecruitmentFrameApplicants.InviteButton)
|
||||
S:HandleButton(CommunitiesGuildRecruitmentFrameApplicants.MessageButton)
|
||||
S:HandleButton(CommunitiesGuildRecruitmentFrameApplicants.DeclineButton)
|
||||
|
||||
for i = 1, 5 do
|
||||
_G['CommunitiesGuildRecruitmentFrameApplicantsContainerButton'..i]:SetBackdrop()
|
||||
end
|
||||
|
||||
-- Notification Settings Dialog
|
||||
local NotificationSettings = _G.CommunitiesFrame.NotificationSettingsDialog
|
||||
NotificationSettings:StripTextures()
|
||||
NotificationSettings:CreateBackdrop('Transparent')
|
||||
NotificationSettings.backdrop:SetAllPoints()
|
||||
|
||||
S:HandleDropDownBox(CommunitiesFrame.NotificationSettingsDialog.CommunitiesListDropDownMenu)
|
||||
S:HandleCheckBox(CommunitiesFrame.NotificationSettingsDialog.ScrollFrame.Child.QuickJoinButton)
|
||||
S:HandleButton(CommunitiesFrame.NotificationSettingsDialog.ScrollFrame.Child.AllButton)
|
||||
S:HandleButton(CommunitiesFrame.NotificationSettingsDialog.ScrollFrame.Child.NoneButton)
|
||||
S:HandleButton(CommunitiesFrame.NotificationSettingsDialog.OkayButton)
|
||||
S:HandleButton(CommunitiesFrame.NotificationSettingsDialog.CancelButton)
|
||||
S:HandleScrollBar(CommunitiesFrame.NotificationSettingsDialog.ScrollFrame.ScrollBar) -- Adjust me
|
||||
|
||||
-- Create Channel Dialog
|
||||
local EditStreamDialog = CommunitiesFrame.EditStreamDialog
|
||||
EditStreamDialog:StripTextures()
|
||||
EditStreamDialog:CreateBackdrop('Transparent')
|
||||
EditStreamDialog.backdrop:SetAllPoints()
|
||||
|
||||
S:HandleEditBox(EditStreamDialog.NameEdit)
|
||||
EditStreamDialog.NameEdit:Size(280, 20)
|
||||
S:HandleEditBox(EditStreamDialog.Description)
|
||||
S:HandleCheckBox(EditStreamDialog.TypeCheckBox)
|
||||
|
||||
S:HandleButton(EditStreamDialog.Accept)
|
||||
S:HandleButton(EditStreamDialog.Cancel)
|
||||
|
||||
-- Communities Settings
|
||||
local Settings = _G.CommunitiesSettingsDialog
|
||||
Settings.BG:Hide()
|
||||
Settings:CreateBackdrop('Transparent')
|
||||
Settings.backdrop:SetAllPoints()
|
||||
S:HandleIcon(Settings.IconPreview)
|
||||
Settings.IconPreviewRing:Hide()
|
||||
|
||||
S:HandleEditBox(Settings.NameEdit)
|
||||
S:HandleEditBox(Settings.ShortNameEdit)
|
||||
S:HandleEditBox(Settings.Description)
|
||||
S:HandleEditBox(Settings.MessageOfTheDay)
|
||||
|
||||
S:HandleButton(Settings.ChangeAvatarButton)
|
||||
S:HandleButton(Settings.Accept)
|
||||
S:HandleButton(Settings.Delete)
|
||||
S:HandleButton(Settings.Cancel)
|
||||
|
||||
-- Avatar Picker
|
||||
local Avatar = _G.CommunitiesAvatarPickerDialog
|
||||
Avatar:StripTextures()
|
||||
Avatar:CreateBackdrop('Transparent')
|
||||
Avatar.backdrop:SetAllPoints()
|
||||
|
||||
Avatar.ScrollFrame:StripTextures()
|
||||
S:HandleScrollBar(_G.CommunitiesAvatarPickerDialogScrollBar)
|
||||
|
||||
S:HandleButton(Avatar.OkayButton)
|
||||
S:HandleButton(Avatar.CancelButton)
|
||||
|
||||
-- Invite Frame
|
||||
local TicketManager = _G.CommunitiesTicketManagerDialog
|
||||
TicketManager:StripTextures()
|
||||
TicketManager.InviteManager.ArtOverlay:Hide()
|
||||
TicketManager.InviteManager.ColumnDisplay:StripTextures()
|
||||
TicketManager.InviteManager.ColumnDisplay.InsetBorderLeft:Hide()
|
||||
TicketManager.InviteManager.ColumnDisplay.InsetBorderBottomLeft:Hide()
|
||||
-- TO DO: Fix the Tabs
|
||||
TicketManager.InviteManager.ListScrollFrame:StripTextures()
|
||||
|
||||
TicketManager:CreateBackdrop('Transparent')
|
||||
TicketManager.backdrop:SetAllPoints()
|
||||
|
||||
S:HandleButton(TicketManager.LinkToChat)
|
||||
S:HandleButton(TicketManager.Copy)
|
||||
S:HandleButton(TicketManager.Close)
|
||||
S:HandleButton(TicketManager.GenerateLinkButton)
|
||||
|
||||
S:HandleDropDownBox(TicketManager.ExpiresDropDownMenu)
|
||||
S:HandleDropDownBox(TicketManager.UsesDropDownMenu)
|
||||
|
||||
S:HandleScrollBar(TicketManager.InviteManager.ListScrollFrame.scrollBar)
|
||||
S:HandleButton(TicketManager.MaximizeButton)
|
||||
|
||||
-- InvitationsFrames
|
||||
local ClubFinderInvitationFrame = CommunitiesFrame.ClubFinderInvitationFrame
|
||||
ClubFinderInvitationFrame.InsetFrame:StripTextures()
|
||||
ClubFinderInvitationFrame:CreateBackdrop()
|
||||
S:HandleButton(ClubFinderInvitationFrame.AcceptButton)
|
||||
S:HandleButton(ClubFinderInvitationFrame.DeclineButton)
|
||||
S:HandleButton(ClubFinderInvitationFrame.ApplyButton)
|
||||
|
||||
ClubFinderInvitationFrame.WarningDialog:StripTextures()
|
||||
ClubFinderInvitationFrame.WarningDialog:CreateBackdrop('Transparent')
|
||||
S:HandleButton(ClubFinderInvitationFrame.WarningDialog.Accept)
|
||||
S:HandleButton(ClubFinderInvitationFrame.WarningDialog.Cancel)
|
||||
|
||||
local InvitationFrame = CommunitiesFrame.InvitationFrame
|
||||
InvitationFrame.InsetFrame:StripTextures()
|
||||
InvitationFrame:CreateBackdrop()
|
||||
S:HandleButton(InvitationFrame.AcceptButton)
|
||||
S:HandleButton(InvitationFrame.DeclineButton)
|
||||
|
||||
-- ApplicationList
|
||||
local ApplicantList = CommunitiesFrame.ApplicantList
|
||||
ApplicantList:StripTextures()
|
||||
ApplicantList.ColumnDisplay:StripTextures()
|
||||
S:HandleScrollBar(ApplicantList.ListScrollFrame.scrollBar)
|
||||
|
||||
ApplicantList:CreateBackdrop()
|
||||
ApplicantList.backdrop:Point('TOPLEFT', 0, 0)
|
||||
ApplicantList.backdrop:Point('BOTTOMRIGHT', -15, 0)
|
||||
|
||||
hooksecurefunc(ApplicantList, 'BuildList', function(self)
|
||||
local columnDisplay = self.ColumnDisplay
|
||||
for i = 1, columnDisplay:GetNumChildren() do
|
||||
local child = select(i, columnDisplay:GetChildren())
|
||||
if not child.IsSkinned then
|
||||
child:StripTextures()
|
||||
|
||||
child:CreateBackdrop()
|
||||
child.backdrop:Point('TOPLEFT', 4, -2)
|
||||
child.backdrop:Point('BOTTOMRIGHT', 0, 2)
|
||||
|
||||
child:SetHighlightTexture(E.media.normTex)
|
||||
local hl = child:GetHighlightTexture()
|
||||
hl:SetVertexColor(1, 1, 1, .25)
|
||||
hl:SetInside(child.backdrop)
|
||||
|
||||
child.IsSkinned = true
|
||||
end
|
||||
end
|
||||
|
||||
local buttons = self.ListScrollFrame.buttons
|
||||
for i = 1, #buttons do
|
||||
local button = buttons[i]
|
||||
if not button.IsSkinned then
|
||||
button:Point('LEFT', ApplicantList.backdrop, 1, 0)
|
||||
button:Point('RIGHT', ApplicantList.backdrop, -1, 0)
|
||||
|
||||
button:SetHighlightTexture(E.media.normTex)
|
||||
button:GetHighlightTexture():SetVertexColor(1, 1, 1, .25)
|
||||
|
||||
button.InviteButton:Size(66, 18)
|
||||
button.CancelInvitationButton:Size(20, 18)
|
||||
S:HandleButton(button.InviteButton)
|
||||
S:HandleButton(button.CancelInvitationButton)
|
||||
|
||||
hooksecurefunc(button, 'UpdateMemberInfo', ColorMemberName)
|
||||
|
||||
button.IsSkinned = true
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_Communities')
|
||||
61
Modules/Skins/Blizzard/Contribution.lua
Normal file
61
Modules/Skins/Blizzard/Contribution.lua
Normal file
@@ -0,0 +1,61 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local unpack = unpack
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
function S:Blizzard_Contribution()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.contribution) then return end
|
||||
|
||||
--Main Frame
|
||||
local ContributionCollectionFrame = _G.ContributionCollectionFrame
|
||||
S:HandleCloseButton(ContributionCollectionFrame.CloseButton)
|
||||
ContributionCollectionFrame.CloseButton.CloseButtonBackground:SetAlpha(0)
|
||||
|
||||
if E.private.skins.blizzard.tooltip then
|
||||
--Reward Tooltip
|
||||
local ContributionBuffTooltip = _G.ContributionBuffTooltip
|
||||
ContributionBuffTooltip:StripTextures()
|
||||
ContributionBuffTooltip:CreateBackdrop('Transparent')
|
||||
ContributionBuffTooltip:StyleButton()
|
||||
ContributionBuffTooltip.Border:SetAlpha(0)
|
||||
ContributionBuffTooltip.Icon:SetTexCoord(unpack(E.TexCoords))
|
||||
ContributionBuffTooltip.backdrop:SetOutside(ContributionBuffTooltip.Icon)
|
||||
end
|
||||
|
||||
local ContributionMixin = _G.ContributionMixin
|
||||
hooksecurefunc(ContributionMixin, 'SetupContributeButton', function(s)
|
||||
-- Skin the Contribute Buttons
|
||||
if not s.isSkinned then
|
||||
S:HandleButton(s.ContributeButton)
|
||||
s.isSkinned = true
|
||||
end
|
||||
|
||||
-- Skin the StatusBar
|
||||
local statusBar = s.Status
|
||||
if statusBar and not statusBar.isSkinned then
|
||||
statusBar:StripTextures()
|
||||
E:RegisterStatusBar(statusBar)
|
||||
statusBar:CreateBackdrop()
|
||||
statusBar.isSkinned = true
|
||||
end
|
||||
end)
|
||||
|
||||
--Skin the reward icons
|
||||
hooksecurefunc(ContributionMixin, 'AddReward', function(s, _, rewardID)
|
||||
local reward = s:FindOrAcquireReward(rewardID);
|
||||
if reward and not reward.isSkinned then
|
||||
reward:SetFrameLevel(5)
|
||||
reward:CreateBackdrop()
|
||||
reward:StyleButton()
|
||||
reward.Border:SetAlpha(0)
|
||||
reward.Icon:SetDrawLayer('OVERLAY')
|
||||
reward.Icon:SetTexCoord(unpack(E.TexCoords))
|
||||
reward.backdrop:SetOutside(reward.Icon)
|
||||
reward.isSkinned = true
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_Contribution')
|
||||
50
Modules/Skins/Blizzard/CovenantPreview.lua
Normal file
50
Modules/Skins/Blizzard/CovenantPreview.lua
Normal file
@@ -0,0 +1,50 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
function S:Blizzard_CovenantPreviewUI()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.covenantPreview) then return end
|
||||
|
||||
local frame = _G.CovenantPreviewFrame
|
||||
|
||||
if E.private.skins.parchmentRemoverEnable then
|
||||
frame.InfoPanel.Name:SetTextColor(1, 1, 1)
|
||||
frame.InfoPanel.Location:SetTextColor(1, 1, 1)
|
||||
frame.InfoPanel.Description:SetTextColor(1, 1, 1)
|
||||
frame.InfoPanel.AbilitiesFrame.AbilitiesLabel:SetTextColor(1, .8, 0)
|
||||
frame.InfoPanel.SoulbindsFrame.SoulbindsLabel:SetTextColor(1, .8, 0)
|
||||
frame.InfoPanel.CovenantFeatureFrame.Label:SetTextColor(1, .8, 0)
|
||||
end
|
||||
|
||||
hooksecurefunc(frame, 'TryShow', function(covenantInfo)
|
||||
if covenantInfo and not frame.IsSkinned then
|
||||
frame:CreateBackdrop('Transparent')
|
||||
|
||||
frame.ModelSceneContainer.ModelSceneBorder:SetAlpha(0)
|
||||
frame.InfoPanel:CreateBackdrop('Transparent')
|
||||
|
||||
if E.private.skins.parchmentRemoverEnable then
|
||||
frame.Title:DisableDrawLayer('BACKGROUND')
|
||||
frame.Title.Text:SetTextColor(1, .8, 0)
|
||||
frame.Title:CreateBackdrop('Transparent')
|
||||
frame.Background:SetAlpha(0)
|
||||
frame.BorderFrame:SetAlpha(0)
|
||||
frame.InfoPanel.Parchment:SetAlpha(0)
|
||||
end
|
||||
|
||||
frame.CloseButton.Border:Kill()
|
||||
S:HandleCloseButton(frame.CloseButton)
|
||||
S:HandleButton(frame.SelectButton)
|
||||
|
||||
frame.IsSkinned = true
|
||||
end
|
||||
end)
|
||||
|
||||
frame.ModelSceneContainer.Background:SetTexCoord(0.00970873786408, 0.99029126213592, 0.0092807424594, 0.9907192575406)
|
||||
|
||||
S:HandleCheckBox(_G.TransmogAndMountDressupFrame.ShowMountCheckButton)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_CovenantPreviewUI')
|
||||
124
Modules/Skins/Blizzard/CovenantSanctum.lua
Normal file
124
Modules/Skins/Blizzard/CovenantSanctum.lua
Normal file
@@ -0,0 +1,124 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local gsub, ipairs = gsub, ipairs
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
local function HandleIconString(self, text)
|
||||
if not text then text = self:GetText() end
|
||||
if not text or text == '' then return end
|
||||
|
||||
local new, count = gsub(text, '|T([^:]-):[%d+:]+|t', '|T%1:14:14:0:0:64:64:5:59:5:59|t')
|
||||
if count > 0 then self:SetFormattedText('%s', new) end
|
||||
end
|
||||
|
||||
local function ReskinTalents(self)
|
||||
for frame in self.talentPool:EnumerateActive() do
|
||||
if not frame.IsSkinned then
|
||||
frame.Border:SetAlpha(0)
|
||||
frame.IconBorder:SetAlpha(0)
|
||||
frame.Background:SetAlpha(0)
|
||||
|
||||
frame:CreateBackdrop('Transparent')
|
||||
frame.backdrop:SetInside()
|
||||
frame.backdrop:SetBackdropBorderColor(0, 1, 0)
|
||||
|
||||
frame.Highlight:SetColorTexture(1, 1, 1, .25)
|
||||
frame.Highlight:SetInside(frame.backdrop)
|
||||
S:HandleIcon(frame.Icon, true)
|
||||
frame.Icon:Point('TOPLEFT', 7, -7)
|
||||
|
||||
HandleIconString(frame.InfoText)
|
||||
hooksecurefunc(frame.InfoText, 'SetText', HandleIconString)
|
||||
|
||||
frame.IsSkinned = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function HideRenownLevelBorder(frame)
|
||||
if not frame.IsSkinned then
|
||||
frame.Divider:SetAlpha(0)
|
||||
frame.BackgroundTile:SetAlpha(0)
|
||||
frame.Background:CreateBackdrop()
|
||||
|
||||
frame.IsSkinned = true
|
||||
end
|
||||
|
||||
for button in frame.milestonesPool:EnumerateActive() do
|
||||
if not button.IsSkinned then
|
||||
button.LevelBorder:SetAlpha(0)
|
||||
|
||||
button.IsSkinned = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function ReplaceCurrencies(displayGroup)
|
||||
for frame in displayGroup.currencyFramePool:EnumerateActive() do
|
||||
if not frame.IsSkinned then
|
||||
HandleIconString(frame.Text)
|
||||
hooksecurefunc(frame.Text, 'SetText', HandleIconString)
|
||||
|
||||
frame.IsSkinned = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function S:Blizzard_CovenantSanctum()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.covenantSanctum) then return end
|
||||
|
||||
local frame = _G.CovenantSanctumFrame
|
||||
|
||||
frame:HookScript('OnShow', function()
|
||||
if not frame.backdrop then
|
||||
frame:CreateBackdrop('Transparent')
|
||||
frame.NineSlice:SetAlpha(0)
|
||||
|
||||
frame.CloseButton.Border:SetAlpha(0)
|
||||
S:HandleCloseButton(frame.CloseButton)
|
||||
frame.CloseButton:ClearAllPoints()
|
||||
frame.CloseButton:Point('TOPRIGHT', frame, 'TOPRIGHT', 2, 2)
|
||||
|
||||
frame.LevelFrame.Level:FontTemplate()
|
||||
|
||||
local UpgradesTab = frame.UpgradesTab
|
||||
UpgradesTab.Background:CreateBackdrop('Transparent')
|
||||
S:HandleButton(UpgradesTab.DepositButton)
|
||||
UpgradesTab.DepositButton:SetFrameLevel(10)
|
||||
|
||||
local TalentList = frame.UpgradesTab.TalentsList
|
||||
TalentList:CreateBackdrop('Transparent')
|
||||
S:HandleButton(TalentList.UpgradeButton)
|
||||
TalentList.UpgradeButton:SetFrameLevel(10)
|
||||
TalentList.IntroBox.Background:Hide()
|
||||
|
||||
if E.private.skins.parchmentRemoverEnable then
|
||||
frame.LevelFrame.Background:SetAlpha(0)
|
||||
UpgradesTab.Background:SetAlpha(0)
|
||||
TalentList.Divider:SetAlpha(0)
|
||||
TalentList.BackgroundTile:SetAlpha(0)
|
||||
|
||||
for _, frame in ipairs(UpgradesTab.Upgrades) do
|
||||
if frame.RankBorder then
|
||||
frame.RankBorder:SetAlpha(0)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
UpgradesTab.CurrencyBackground:SetAlpha(0)
|
||||
ReplaceCurrencies(UpgradesTab.CurrencyDisplayGroup)
|
||||
|
||||
hooksecurefunc(TalentList, 'Refresh', ReskinTalents)
|
||||
hooksecurefunc(frame.RenownTab, 'Refresh', HideRenownLevelBorder)
|
||||
end
|
||||
end)
|
||||
|
||||
S:HandleTab(_G.CovenantSanctumFrameTab1)
|
||||
S:HandleTab(_G.CovenantSanctumFrameTab2)
|
||||
_G.CovenantSanctumFrameTab1:ClearAllPoints()
|
||||
_G.CovenantSanctumFrameTab1:Point('BOTTOMLEFT', frame, 23, -32) --default is: 23, 9
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_CovenantSanctum')
|
||||
27
Modules/Skins/Blizzard/DeathRecap.lua
Normal file
27
Modules/Skins/Blizzard/DeathRecap.lua
Normal file
@@ -0,0 +1,27 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local unpack = unpack
|
||||
|
||||
function S:Blizzard_DeathRecap()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.deathRecap) then return end
|
||||
|
||||
local DeathRecapFrame = _G.DeathRecapFrame
|
||||
DeathRecapFrame:StripTextures()
|
||||
DeathRecapFrame:CreateBackdrop('Transparent')
|
||||
DeathRecapFrame.CloseButton:SetFrameLevel(5)
|
||||
S:HandleCloseButton(DeathRecapFrame.CloseXButton)
|
||||
S:HandleButton(DeathRecapFrame.CloseButton)
|
||||
|
||||
for i=1, 5 do
|
||||
local recap = DeathRecapFrame['Recap'..i].SpellInfo
|
||||
recap:CreateBackdrop()
|
||||
recap.backdrop:SetOutside(recap.Icon)
|
||||
recap.Icon:SetTexCoord(unpack(E.TexCoords))
|
||||
recap.Icon:SetParent(recap.backdrop)
|
||||
recap.IconBorder:Kill()
|
||||
end
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_DeathRecap')
|
||||
125
Modules/Skins/Blizzard/Debug.lua
Normal file
125
Modules/Skins/Blizzard/Debug.lua
Normal file
@@ -0,0 +1,125 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
local FrameTexs = {
|
||||
'TopLeft',
|
||||
'TopRight',
|
||||
'Top',
|
||||
'BottomLeft',
|
||||
'BottomRight',
|
||||
'Bottom',
|
||||
'Left',
|
||||
'Right',
|
||||
'TitleBG',
|
||||
'DialogBG',
|
||||
}
|
||||
|
||||
local function SkinOnShow()
|
||||
local ScriptErrorsFrame = _G.ScriptErrorsFrame
|
||||
ScriptErrorsFrame:SetParent(E.UIParent)
|
||||
ScriptErrorsFrame:CreateBackdrop('Transparent')
|
||||
S:HandleScrollBar(_G.ScriptErrorsFrameScrollBar)
|
||||
S:HandleCloseButton(_G.ScriptErrorsFrameClose)
|
||||
ScriptErrorsFrame.ScrollFrame.Text:FontTemplate(nil, 13)
|
||||
ScriptErrorsFrame.ScrollFrame:CreateBackdrop()
|
||||
ScriptErrorsFrame.ScrollFrame:SetFrameLevel(ScriptErrorsFrame.ScrollFrame:GetFrameLevel() + 2)
|
||||
|
||||
for i=1, #FrameTexs do
|
||||
_G['ScriptErrorsFrame'..FrameTexs[i]]:SetTexture()
|
||||
end
|
||||
|
||||
-- Our Buttons
|
||||
if ScriptErrorsFrame.firstButton then
|
||||
S:HandleButton(ScriptErrorsFrame.firstButton)
|
||||
end
|
||||
if ScriptErrorsFrame.lastButton then
|
||||
S:HandleButton(ScriptErrorsFrame.lastButton)
|
||||
end
|
||||
|
||||
-- Default Buttons
|
||||
S:HandleButton(ScriptErrorsFrame.Reload)
|
||||
S:HandleButton(ScriptErrorsFrame.Close)
|
||||
S:HandleNextPrevButton(ScriptErrorsFrame.PreviousError)
|
||||
S:HandleNextPrevButton(ScriptErrorsFrame.NextError)
|
||||
|
||||
S:Unhook(ScriptErrorsFrame, 'OnShow')
|
||||
end
|
||||
|
||||
local function SkinTableAttributeDisplay(frame)
|
||||
frame:StripTextures()
|
||||
frame:CreateBackdrop('Transparent')
|
||||
frame.ScrollFrameArt:StripTextures()
|
||||
frame.ScrollFrameArt:CreateBackdrop('Transparent')
|
||||
S:HandleCloseButton(frame.CloseButton)
|
||||
frame.OpenParentButton:ClearAllPoints()
|
||||
frame.OpenParentButton:Point('TOPLEFT', frame, 'TOPLEFT', 2, -2)
|
||||
S:HandleNextPrevButton(frame.OpenParentButton, 'up')
|
||||
frame.OpenParentButton:Size(17)
|
||||
frame.DuplicateButton:ClearAllPoints()
|
||||
frame.DuplicateButton:Point('LEFT', frame.NavigateForwardButton, 'RIGHT')
|
||||
S:HandleCheckBox(frame.VisibilityButton)
|
||||
frame.VisibilityButton:Size(28)
|
||||
S:HandleCheckBox(frame.HighlightButton)
|
||||
frame.HighlightButton:Size(28)
|
||||
S:HandleCheckBox(frame.DynamicUpdateButton)
|
||||
frame.DynamicUpdateButton:Size(28)
|
||||
frame.NavigateBackwardButton:ClearAllPoints()
|
||||
frame.NavigateBackwardButton:Point('LEFT', frame.OpenParentButton, 'RIGHT', 2, 0)
|
||||
frame.NavigateForwardButton:ClearAllPoints()
|
||||
frame.NavigateForwardButton:Point('LEFT', frame.NavigateBackwardButton, 'RIGHT', 2, 0)
|
||||
frame.DuplicateButton:ClearAllPoints()
|
||||
frame.DuplicateButton:Point('LEFT', frame.NavigateForwardButton, 'RIGHT', 2, 0)
|
||||
S:HandleNextPrevButton(frame.DuplicateButton)
|
||||
frame.DuplicateButton:Size(17)
|
||||
S:HandleNextPrevButton(frame.NavigateBackwardButton)
|
||||
S:HandleNextPrevButton(frame.NavigateForwardButton)
|
||||
S:HandleEditBox(frame.FilterBox)
|
||||
S:HandleScrollBar(frame.LinesScrollFrame.ScrollBar)
|
||||
end
|
||||
|
||||
function S:ScriptErrorsFrame()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.debug) then return end
|
||||
|
||||
S:SecureHookScript(_G.ScriptErrorsFrame, 'OnShow', SkinOnShow)
|
||||
end
|
||||
|
||||
function S:Blizzard_DebugTools()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.debug) then return end
|
||||
|
||||
-- Tooltips
|
||||
if E.private.skins.blizzard.tooltip then
|
||||
_G.FrameStackTooltip:CreateBackdrop('Transparent')
|
||||
_G.FrameStackTooltip.backdrop:SetAllPoints()
|
||||
_G.EventTraceTooltip:CreateBackdrop('Transparent')
|
||||
_G.FrameStackTooltip.backdrop:SetAllPoints()
|
||||
end
|
||||
|
||||
for i=1, #FrameTexs do
|
||||
_G['EventTraceFrame'..FrameTexs[i]]:SetTexture()
|
||||
end
|
||||
|
||||
_G.EventTraceFrame:CreateBackdrop('Transparent')
|
||||
S:HandleCloseButton(_G.EventTraceFrameCloseButton)
|
||||
|
||||
--New Table Attribute Display: mouse over frame and (/tableinspect or [/fstack -> then Ctrl])
|
||||
SkinTableAttributeDisplay(_G.TableAttributeDisplay)
|
||||
hooksecurefunc(_G.TableInspectorMixin, 'OnLoad', function(s)
|
||||
if s and s.ScrollFrameArt and not s.skinned then
|
||||
SkinTableAttributeDisplay(s)
|
||||
s.skinned = true
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
-- ScriptErrorsFrame Skin
|
||||
S:AddCallback('ScriptErrorsFrame')
|
||||
|
||||
-- EventTrace, FrameStack, TableInspect Skins
|
||||
if _G.IsAddOnLoaded('Blizzard_DebugTools') then
|
||||
S:AddCallback('Blizzard_DebugTools')
|
||||
else
|
||||
S:AddCallbackForAddon('Blizzard_DebugTools')
|
||||
end
|
||||
41
Modules/Skins/Blizzard/DressingRoom.lua
Normal file
41
Modules/Skins/Blizzard/DressingRoom.lua
Normal file
@@ -0,0 +1,41 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
|
||||
function S:DressUpFrame()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.dressingroom) then return end
|
||||
|
||||
local DressUpFrame = _G.DressUpFrame
|
||||
S:HandlePortraitFrame(DressUpFrame)
|
||||
|
||||
S:HandleButton(_G.DressUpFrameResetButton)
|
||||
S:HandleButton(_G.DressUpFrameCancelButton)
|
||||
|
||||
local DressUpFrameOutfitDropDown = _G.DressUpFrameOutfitDropDown
|
||||
S:HandleDropDownBox(DressUpFrameOutfitDropDown)
|
||||
S:HandleButton(DressUpFrameOutfitDropDown.SaveButton)
|
||||
DressUpFrameOutfitDropDown.SaveButton:Point('LEFT', DressUpFrameOutfitDropDown, 'RIGHT', -7, 3)
|
||||
DressUpFrameOutfitDropDown.backdrop:Point('TOPLEFT', -25, 3)
|
||||
|
||||
S:HandleMaxMinFrame(DressUpFrame.MaximizeMinimizeFrame)
|
||||
_G.DressUpFrameResetButton:Point('RIGHT', _G.DressUpFrameCancelButton, 'LEFT', -2, 0)
|
||||
|
||||
-- Wardrobe edit frame
|
||||
local WardrobeOutfitFrame = _G.WardrobeOutfitFrame
|
||||
WardrobeOutfitFrame:StripTextures(true)
|
||||
WardrobeOutfitFrame:CreateBackdrop('Transparent')
|
||||
|
||||
local WardrobeOutfitEditFrame = _G.WardrobeOutfitEditFrame
|
||||
WardrobeOutfitEditFrame:StripTextures(true)
|
||||
WardrobeOutfitEditFrame:CreateBackdrop('Transparent')
|
||||
WardrobeOutfitEditFrame.EditBox:StripTextures()
|
||||
S:HandleEditBox(WardrobeOutfitEditFrame.EditBox)
|
||||
WardrobeOutfitEditFrame.EditBox.backdrop:Point('TOPLEFT', WardrobeOutfitEditFrame.EditBox, 'TOPLEFT', -5, -5)
|
||||
WardrobeOutfitEditFrame.EditBox.backdrop:Point('BOTTOMRIGHT', WardrobeOutfitEditFrame.EditBox, 'BOTTOMRIGHT', 0, 5)
|
||||
S:HandleButton(WardrobeOutfitEditFrame.AcceptButton)
|
||||
S:HandleButton(WardrobeOutfitEditFrame.CancelButton)
|
||||
S:HandleButton(WardrobeOutfitEditFrame.DeleteButton)
|
||||
end
|
||||
|
||||
S:AddCallback('DressUpFrame')
|
||||
562
Modules/Skins/Blizzard/EncounterJournal.lua
Normal file
562
Modules/Skins/Blizzard/EncounterJournal.lua
Normal file
@@ -0,0 +1,562 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local unpack = unpack
|
||||
local select = select
|
||||
local pairs = pairs
|
||||
local ipairs = ipairs
|
||||
local next = next
|
||||
local rad = rad
|
||||
|
||||
local CreateFrame = CreateFrame
|
||||
local GetItemInfo = GetItemInfo
|
||||
local GetItemQualityColor = GetItemQualityColor
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
local LEGENDARY_COLOR = Enum.ItemQuality.Legendary or 5
|
||||
|
||||
local function HandleButton(btn, ...)
|
||||
S:HandleButton(btn, ...)
|
||||
if btn:GetFontString() then
|
||||
btn:GetFontString():SetTextColor(1, 1, 1)
|
||||
end
|
||||
end
|
||||
|
||||
local function SkinDungeons()
|
||||
local b1 = _G.EncounterJournalInstanceSelectScrollFrameScrollChildInstanceButton1
|
||||
if b1 and not b1.isSkinned then
|
||||
HandleButton(b1)
|
||||
b1.bgImage:SetInside()
|
||||
b1.bgImage:SetTexCoord(.08, .6, .08, .6)
|
||||
b1.bgImage:SetDrawLayer('ARTWORK')
|
||||
b1.isSkinned = true
|
||||
end
|
||||
|
||||
for i = 1, 100 do
|
||||
local b = _G['EncounterJournalInstanceSelectScrollFrameinstance'..i]
|
||||
if b and not b.isSkinned then
|
||||
HandleButton(b)
|
||||
b.bgImage:SetInside()
|
||||
b.bgImage:SetTexCoord(0.08,.6,0.08,.6)
|
||||
b.bgImage:SetDrawLayer('ARTWORK')
|
||||
b.isSkinned = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function SkinBosses()
|
||||
local bossIndex = 1;
|
||||
local _, _, bossID = _G.EJ_GetEncounterInfoByIndex(bossIndex);
|
||||
local bossButton;
|
||||
|
||||
local encounter = _G.EncounterJournal.encounter
|
||||
encounter.info.instanceButton.icon:SetMask("")
|
||||
|
||||
while bossID do
|
||||
bossButton = _G['EncounterJournalBossButton'..bossIndex];
|
||||
if bossButton and not bossButton.isSkinned then
|
||||
HandleButton(bossButton)
|
||||
bossButton.creature:ClearAllPoints()
|
||||
bossButton.creature:Point('TOPLEFT', 1, -4)
|
||||
bossButton.isSkinned = true
|
||||
end
|
||||
|
||||
bossIndex = bossIndex + 1;
|
||||
_, _, bossID = _G.EJ_GetEncounterInfoByIndex(bossIndex);
|
||||
end
|
||||
end
|
||||
|
||||
local function SkinOverviewInfo(self, _, index)
|
||||
local header = self.overviews[index]
|
||||
if not header.isSkinned then
|
||||
for i = 4, 18 do
|
||||
select(i, header.button:GetRegions()):SetTexture()
|
||||
end
|
||||
|
||||
HandleButton(header.button)
|
||||
|
||||
header.descriptionBG:SetAlpha(0)
|
||||
header.descriptionBGBottom:SetAlpha(0)
|
||||
header.description:SetTextColor(1, 1, 1)
|
||||
header.button.title:SetTextColor(unpack(E.media.rgbvaluecolor))
|
||||
header.button.title.SetTextColor = E.noop
|
||||
header.button.expandedIcon:SetTextColor(1, 1, 1)
|
||||
header.button.expandedIcon.SetTextColor = E.noop
|
||||
|
||||
header.isSkinned = true
|
||||
end
|
||||
end
|
||||
|
||||
local function SkinOverviewInfoBullets(object)
|
||||
local parent = object:GetParent()
|
||||
|
||||
if parent.Bullets then
|
||||
for _, bullet in pairs(parent.Bullets) do
|
||||
if not bullet.styled then
|
||||
bullet.Text:SetTextColor(1, 1, 1)
|
||||
bullet.styled = true
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function HandleTabs(tab)
|
||||
tab:StripTextures()
|
||||
tab:SetText(tab.tooltip)
|
||||
tab:GetFontString():FontTemplate(nil, nil, '')
|
||||
tab:CreateBackdrop()
|
||||
tab:SetScript('OnEnter', E.noop)
|
||||
tab:SetScript('OnLeave', E.noop)
|
||||
tab:Size(tab:GetFontString():GetStringWidth()*1.5, 20)
|
||||
tab.SetPoint = E.noop
|
||||
end
|
||||
|
||||
local function SkinAbilitiesInfo()
|
||||
local index = 1
|
||||
local header = _G['EncounterJournalInfoHeader'..index]
|
||||
while header do
|
||||
if not header.isSkinned then
|
||||
header.flashAnim.Play = E.noop
|
||||
|
||||
header.descriptionBG:SetAlpha(0)
|
||||
header.descriptionBGBottom:SetAlpha(0)
|
||||
for i = 4, 18 do
|
||||
select(i, header.button:GetRegions()):SetTexture()
|
||||
end
|
||||
|
||||
header.description:SetTextColor(1, 1, 1)
|
||||
header.button.title:SetTextColor(unpack(E.media.rgbvaluecolor))
|
||||
header.button.title.SetTextColor = E.noop
|
||||
header.button.expandedIcon:SetTextColor(1, 1, 1)
|
||||
header.button.expandedIcon.SetTextColor = E.noop
|
||||
|
||||
HandleButton(header.button)
|
||||
|
||||
header.button.bg = CreateFrame('Frame', nil, header.button, 'BackdropTemplate')
|
||||
header.button.bg:SetTemplate()
|
||||
header.button.bg:SetOutside(header.button.abilityIcon)
|
||||
header.button.bg:SetFrameLevel(header.button.bg:GetFrameLevel() - 1)
|
||||
header.button.abilityIcon:SetTexCoord(.08, .92, .08, .92)
|
||||
|
||||
header.isSkinned = true
|
||||
end
|
||||
|
||||
if header.button.abilityIcon:IsShown() then
|
||||
header.button.bg:Show()
|
||||
else
|
||||
header.button.bg:Hide()
|
||||
end
|
||||
|
||||
index = index + 1
|
||||
header = _G['EncounterJournalInfoHeader'..index]
|
||||
end
|
||||
end
|
||||
|
||||
local function PowersFrame(_, button)
|
||||
local frame = button:GetParent()
|
||||
|
||||
if not button.Icon.backdrop then
|
||||
S:HandleIcon(button.Icon, true)
|
||||
button.Border:SetAlpha(0)
|
||||
|
||||
if E.private.skins.parchmentRemoverEnable then
|
||||
frame:StripTextures()
|
||||
frame.ItemLevel:SetTextColor(1, 1, 1)
|
||||
frame:CreateBackdrop('Transparent')
|
||||
frame.backdrop:SetPoint('BOTTOMLEFT')
|
||||
frame.backdrop:SetPoint('TOPLEFT', 10, 0)
|
||||
end
|
||||
end
|
||||
|
||||
button.Icon.backdrop:SetBackdropBorderColor(frame.SetName:GetTextColor())
|
||||
end
|
||||
|
||||
local function HandleTopTabs(tab)
|
||||
S:HandleTab(tab)
|
||||
tab:SetHitRectInsets(0, 0, 0, 0)
|
||||
end
|
||||
|
||||
function S:Blizzard_EncounterJournal()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.encounterjournal) then return end
|
||||
|
||||
local EJ = _G.EncounterJournal
|
||||
S:HandlePortraitFrame(EJ)
|
||||
|
||||
EJ.navBar:StripTextures(true)
|
||||
EJ.navBar.overlay:StripTextures(true)
|
||||
|
||||
EJ.navBar:CreateBackdrop()
|
||||
EJ.navBar.backdrop:Point('TOPLEFT', -2, 0)
|
||||
EJ.navBar.backdrop:Point('BOTTOMRIGHT')
|
||||
HandleButton(EJ.navBar.home, true)
|
||||
EJ.navBar.home.xoffset = 1
|
||||
|
||||
S:HandleEditBox(EJ.searchBox)
|
||||
EJ.searchBox:ClearAllPoints()
|
||||
EJ.searchBox:Point('TOPLEFT', EJ.navBar, 'TOPRIGHT', 4, 0)
|
||||
|
||||
local InstanceSelect = EJ.instanceSelect
|
||||
|
||||
EJ.instanceSelect.bg:Kill()
|
||||
S:HandleDropDownBox(InstanceSelect.tierDropDown)
|
||||
EJ.instanceSelect.tierDropDown:HookScript('OnShow', function(s)
|
||||
local text = s.Text
|
||||
local a, b, c, d, e = text:GetPoint()
|
||||
text:Point(a, b, c, d + 10, e - 4)
|
||||
text:Width(s:GetWidth() / 1.4)
|
||||
end)
|
||||
|
||||
S:HandleScrollBar(InstanceSelect.scroll.ScrollBar, 6)
|
||||
HandleTopTabs(InstanceSelect.suggestTab)
|
||||
HandleTopTabs(InstanceSelect.dungeonsTab)
|
||||
HandleTopTabs(InstanceSelect.raidsTab)
|
||||
HandleTopTabs(InstanceSelect.LootJournalTab)
|
||||
|
||||
InstanceSelect.suggestTab:ClearAllPoints()
|
||||
InstanceSelect.suggestTab:Width(175)
|
||||
InstanceSelect.suggestTab:Point('BOTTOMLEFT', InstanceSelect, 'TOPLEFT', 2, -43)
|
||||
InstanceSelect.dungeonsTab:ClearAllPoints()
|
||||
InstanceSelect.dungeonsTab:Width(125)
|
||||
InstanceSelect.dungeonsTab:Point('BOTTOMLEFT', InstanceSelect.suggestTab, 'BOTTOMRIGHT', 2, 0)
|
||||
InstanceSelect.raidsTab:ClearAllPoints()
|
||||
InstanceSelect.raidsTab:Width(125)
|
||||
InstanceSelect.raidsTab:Point('BOTTOMLEFT', InstanceSelect.dungeonsTab, 'BOTTOMRIGHT', 2, 0)
|
||||
InstanceSelect.LootJournalTab:ClearAllPoints()
|
||||
InstanceSelect.LootJournalTab:Width(125)
|
||||
InstanceSelect.LootJournalTab:Point('BOTTOMLEFT', InstanceSelect.raidsTab, 'BOTTOMRIGHT', 2, 0)
|
||||
|
||||
--Skin the tab text
|
||||
for i = 1, #InstanceSelect.Tabs do
|
||||
local tab = InstanceSelect.Tabs[i]
|
||||
local text = tab:GetFontString()
|
||||
|
||||
text:FontTemplate()
|
||||
text:Point('CENTER')
|
||||
end
|
||||
|
||||
--Encounter Info Frame
|
||||
local EncounterInfo = EJ.encounter.info
|
||||
EncounterInfo:CreateBackdrop('Transparent')
|
||||
EncounterInfo.backdrop:SetOutside(_G.EncounterJournalEncounterFrameInfoBG)
|
||||
|
||||
EncounterInfo.encounterTitle:Kill()
|
||||
|
||||
S:HandleIcon(EncounterInfo.instanceButton.icon, true)
|
||||
EncounterInfo.instanceButton.icon:SetTexCoord(0, 1, 0, 1)
|
||||
EncounterInfo.instanceButton:SetNormalTexture('')
|
||||
EncounterInfo.instanceButton:SetHighlightTexture('')
|
||||
|
||||
--_G.EncounterJournalEncounterFrameInfoBG:Kill()
|
||||
_G.EncounterJournalEncounterFrameInfoBG:Height(385)
|
||||
EncounterInfo.leftShadow:Kill()
|
||||
EncounterInfo.rightShadow:Kill()
|
||||
EncounterInfo.model.dungeonBG:Kill()
|
||||
_G.EncounterJournalEncounterFrameInfoModelFrameShadow:Kill()
|
||||
|
||||
EncounterInfo.instanceButton:ClearAllPoints()
|
||||
EncounterInfo.instanceButton:Point('TOPLEFT', EncounterInfo, 'TOPLEFT', 0, 15)
|
||||
|
||||
EncounterInfo.instanceTitle:ClearAllPoints()
|
||||
EncounterInfo.instanceTitle:Point('BOTTOM', EncounterInfo.bossesScroll, 'TOP', 10, 15)
|
||||
|
||||
_G.EncounterJournalEncounterFrameInfoLootScrollFrameClassFilterClearFrame:GetRegions():SetAlpha(0)
|
||||
|
||||
EncounterInfo.difficulty:StripTextures()
|
||||
EncounterInfo.reset:StripTextures()
|
||||
|
||||
--buttons
|
||||
EncounterInfo.difficulty:ClearAllPoints()
|
||||
EncounterInfo.difficulty:Point('BOTTOMRIGHT', _G.EncounterJournalEncounterFrameInfoBG, 'TOPRIGHT', -1, 5)
|
||||
HandleButton(EncounterInfo.reset)
|
||||
HandleButton(EncounterInfo.difficulty)
|
||||
HandleButton(_G.EncounterJournalEncounterFrameInfoLootScrollFrameSlotFilterToggle, true)
|
||||
HandleButton(_G.EncounterJournalEncounterFrameInfoLootScrollFrameFilterToggle, true)
|
||||
|
||||
_G.EncounterJournalEncounterFrameInfoLootScrollFrameSlotFilterToggle:ClearAllPoints()
|
||||
_G.EncounterJournalEncounterFrameInfoLootScrollFrameSlotFilterToggle:Point('BOTTOMLEFT', EncounterInfo.backdrop, 'TOP', 0, 4)
|
||||
_G.EncounterJournalEncounterFrameInfoLootScrollFrameFilterToggle:ClearAllPoints()
|
||||
_G.EncounterJournalEncounterFrameInfoLootScrollFrameFilterToggle:Point('LEFT', _G.EncounterJournalEncounterFrameInfoLootScrollFrameSlotFilterToggle, 'RIGHT', 4, 0)
|
||||
|
||||
EncounterInfo.reset:ClearAllPoints()
|
||||
EncounterInfo.reset:Point('TOPRIGHT', EncounterInfo.difficulty, 'TOPLEFT', -10, 0)
|
||||
_G.EncounterJournalEncounterFrameInfoResetButtonTexture:SetTexture([[Interface\EncounterJournal\UI-EncounterJournalTextures]])
|
||||
_G.EncounterJournalEncounterFrameInfoResetButtonTexture:SetTexCoord(0.90625000, 0.94726563, 0.00097656, 0.02050781)
|
||||
|
||||
S:HandleScrollBar(EncounterInfo.bossesScroll.ScrollBar, 6)
|
||||
S:HandleScrollBar(_G.EncounterJournalEncounterFrameInstanceFrameLoreScrollFrameScrollBar)
|
||||
_G.EncounterJournalEncounterFrameInstanceFrameBG:SetScale(0.85)
|
||||
_G.EncounterJournalEncounterFrameInstanceFrameBG:ClearAllPoints()
|
||||
_G.EncounterJournalEncounterFrameInstanceFrameBG:Point('CENTER', 0, 40)
|
||||
_G.EncounterJournalEncounterFrameInstanceFrameTitle:ClearAllPoints()
|
||||
_G.EncounterJournalEncounterFrameInstanceFrameTitle:Point('TOP', 0, -105)
|
||||
_G.EncounterJournalEncounterFrameInstanceFrameMapButton:ClearAllPoints()
|
||||
_G.EncounterJournalEncounterFrameInstanceFrameMapButton:Point('LEFT', 55, -56)
|
||||
|
||||
S:HandleScrollBar(EncounterInfo.overviewScroll.ScrollBar, 4)
|
||||
S:HandleScrollBar(EncounterInfo.detailsScroll.ScrollBar, 4)
|
||||
S:HandleScrollBar(EncounterInfo.lootScroll.scrollBar, 4)
|
||||
|
||||
EncounterInfo.detailsScroll:Height(360)
|
||||
EncounterInfo.lootScroll:Height(360)
|
||||
EncounterInfo.overviewScroll:Height(360)
|
||||
EncounterInfo.bossesScroll:Height(360)
|
||||
_G.EncounterJournalEncounterFrameInfoLootScrollFrame:Height(360)
|
||||
_G.EncounterJournalEncounterFrameInfoLootScrollFrame:Point('TOPLEFT', _G.EncounterJournalEncounterFrameInfoLootScrollFrame:GetParent(), 'TOP', 20, -70)
|
||||
_G.EncounterJournalEncounterFrameInfoLootScrollFrame:Point('BOTTOMRIGHT', _G.EncounterJournalEncounterFrameInfoLootScrollFrame:GetParent(), 'BOTTOMRIGHT', -10, 5)
|
||||
|
||||
--Tabs
|
||||
local tabs = {
|
||||
EncounterInfo.overviewTab,
|
||||
EncounterInfo.lootTab,
|
||||
EncounterInfo.bossTab,
|
||||
EncounterInfo.modelTab
|
||||
}
|
||||
|
||||
for i=1, #tabs do --not beautiful but eh
|
||||
tabs[i]:ClearAllPoints()
|
||||
end
|
||||
|
||||
for i=1, #tabs do
|
||||
local tab = tabs[i]
|
||||
|
||||
if i == 4 then
|
||||
tab:Point('TOPRIGHT', _G.EncounterJournal, 'BOTTOMRIGHT', -10, E.PixelMode and 0 or 2)
|
||||
else
|
||||
tab:Point('RIGHT', tabs[i+1], 'LEFT', -4, 0)
|
||||
end
|
||||
|
||||
HandleTabs(tab)
|
||||
end
|
||||
|
||||
hooksecurefunc('EncounterJournal_SetTabEnabled', function(tab, enabled)
|
||||
if enabled then
|
||||
tab:GetFontString():SetTextColor(1, 1, 1)
|
||||
else
|
||||
tab:GetFontString():SetTextColor(0.6, 0.6, 0.6)
|
||||
end
|
||||
end)
|
||||
|
||||
-- Loot buttons
|
||||
local items = _G.EncounterJournal.encounter.info.lootScroll.buttons
|
||||
for i = 1, #items do
|
||||
local item = items[i]
|
||||
|
||||
item.bossTexture:SetAlpha(0)
|
||||
item.bosslessTexture:SetAlpha(0)
|
||||
|
||||
item.icon:Size(32, 32)
|
||||
item.icon:Point('TOPLEFT', E.PixelMode and 3 or 4, -(E.PixelMode and 7 or 8))
|
||||
item.icon:SetDrawLayer('ARTWORK')
|
||||
item.icon:SetTexCoord(unpack(E.TexCoords))
|
||||
|
||||
item.IconBackdrop = CreateFrame('Frame', nil, item, 'BackdropTemplate')
|
||||
item.IconBackdrop:SetFrameLevel(item:GetFrameLevel())
|
||||
item.IconBackdrop:Point('TOPLEFT', item.icon, -1, 1)
|
||||
item.IconBackdrop:Point('BOTTOMRIGHT', item.icon, 1, -1)
|
||||
item.IconBackdrop:SetTemplate()
|
||||
|
||||
item.name:ClearAllPoints()
|
||||
item.name:Point('TOPLEFT', item.icon, 'TOPRIGHT', 6, -2)
|
||||
|
||||
item.boss:ClearAllPoints()
|
||||
item.boss:Point('BOTTOMLEFT', 4, 6)
|
||||
|
||||
item.slot:ClearAllPoints()
|
||||
item.slot:Point('TOPLEFT', item.name, 'BOTTOMLEFT', 0, -3)
|
||||
|
||||
item.armorType:ClearAllPoints()
|
||||
item.armorType:Point('RIGHT', item, 'RIGHT', -10, 0)
|
||||
|
||||
S:HandleIconBorder(item.IconBorder, item.IconBackdrop)
|
||||
|
||||
if E.private.skins.parchmentRemoverEnable then
|
||||
item.boss:SetTextColor(1, 1, 1)
|
||||
item.slot:SetTextColor(1, 1, 1)
|
||||
item.armorType:SetTextColor(1, 1, 1)
|
||||
end
|
||||
|
||||
if i == 1 then
|
||||
item:ClearAllPoints()
|
||||
item:Point('TOPLEFT', EncounterInfo.lootScroll.scrollChild, 'TOPLEFT', 5, 0)
|
||||
end
|
||||
end
|
||||
|
||||
-- Search
|
||||
_G.EncounterJournalSearchResults:StripTextures()
|
||||
_G.EncounterJournalSearchResults:CreateBackdrop()
|
||||
_G.EncounterJournalSearchBox.searchPreviewContainer:StripTextures()
|
||||
|
||||
S:HandleCloseButton(_G.EncounterJournalSearchResultsCloseButton)
|
||||
S:HandleScrollBar(_G.EncounterJournalSearchResultsScrollFrameScrollBar)
|
||||
|
||||
--Suggestions
|
||||
for i = 1, _G.AJ_MAX_NUM_SUGGESTIONS do
|
||||
local suggestion = _G.EncounterJournal.suggestFrame['Suggestion'..i]
|
||||
if i == 1 then
|
||||
HandleButton(suggestion.button)
|
||||
suggestion.button:SetFrameLevel(4)
|
||||
S:HandleNextPrevButton(suggestion.prevButton, nil, nil, true)
|
||||
S:HandleNextPrevButton(suggestion.nextButton, nil, nil, true)
|
||||
else
|
||||
HandleButton(suggestion.centerDisplay.button)
|
||||
end
|
||||
end
|
||||
|
||||
if E.private.skins.parchmentRemoverEnable then
|
||||
local suggestFrame = _G.EncounterJournal.suggestFrame
|
||||
|
||||
-- Suggestion 1
|
||||
local suggestion = suggestFrame.Suggestion1
|
||||
suggestion.bg:Hide()
|
||||
suggestion:CreateBackdrop('Transparent')
|
||||
|
||||
local centerDisplay = suggestion.centerDisplay
|
||||
centerDisplay.title.text:SetTextColor(1, 1, 1)
|
||||
centerDisplay.description.text:SetTextColor(.9, .9, .9)
|
||||
|
||||
local reward = suggestion.reward
|
||||
reward.text:SetTextColor(.9, .9, .9)
|
||||
reward.iconRing:Hide()
|
||||
reward.iconRingHighlight:SetTexture()
|
||||
|
||||
-- Suggestion 2 and 3
|
||||
for i = 2, 3 do
|
||||
suggestion = suggestFrame['Suggestion'..i]
|
||||
suggestion.bg:Hide()
|
||||
suggestion:CreateBackdrop('Transparent')
|
||||
suggestion.icon:Point('TOPLEFT', 10, -10)
|
||||
|
||||
centerDisplay = suggestion.centerDisplay
|
||||
centerDisplay:ClearAllPoints()
|
||||
centerDisplay:Point('TOPLEFT', 85, -10)
|
||||
centerDisplay.title.text:SetTextColor(1, 1, 1)
|
||||
centerDisplay.description.text:SetTextColor(.9, .9, .9)
|
||||
|
||||
reward = suggestion.reward
|
||||
reward.iconRing:Hide()
|
||||
reward.iconRingHighlight:SetTexture()
|
||||
end
|
||||
|
||||
hooksecurefunc('EJSuggestFrame_RefreshDisplay', function()
|
||||
for i, data in ipairs(suggestFrame.suggestions) do
|
||||
local sugg = next(data) and suggestFrame['Suggestion'..i]
|
||||
if sugg then
|
||||
if not sugg.icon.backdrop then
|
||||
sugg.icon:CreateBackdrop()
|
||||
end
|
||||
|
||||
sugg.icon:SetMask('')
|
||||
sugg.icon:SetTexture(data.iconPath)
|
||||
sugg.icon:SetTexCoord(unpack(E.TexCoords))
|
||||
sugg.iconRing:Hide()
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
hooksecurefunc('EJSuggestFrame_UpdateRewards', function(sugg)
|
||||
local rewardData = sugg.reward.data
|
||||
if rewardData then
|
||||
if not sugg.reward.icon.backdrop then
|
||||
sugg.reward.icon:CreateBackdrop()
|
||||
sugg.reward.icon.backdrop:SetFrameLevel(3)
|
||||
end
|
||||
|
||||
sugg.reward.icon:SetMask('')
|
||||
sugg.reward.icon:SetTexture(rewardData.itemIcon or rewardData.currencyIcon or [[Interface\Icons\achievement_guildperk_mobilebanking]])
|
||||
sugg.reward.icon:SetTexCoord(unpack(E.TexCoords))
|
||||
|
||||
local r, g, b = unpack(E.media.bordercolor)
|
||||
if rewardData.itemID then
|
||||
local quality = select(3, GetItemInfo(rewardData.itemID))
|
||||
if quality and quality > 1 then
|
||||
r, g, b = GetItemQualityColor(quality)
|
||||
end
|
||||
end
|
||||
sugg.reward.icon.backdrop:SetBackdropBorderColor(r, g, b)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
--Suggestion Reward Tooltips
|
||||
if E.private.skins.blizzard.tooltip then
|
||||
local tooltip = _G.EncounterJournalTooltip
|
||||
local item1 = tooltip.Item1
|
||||
local item2 = tooltip.Item2
|
||||
tooltip:SetTemplate('Transparent')
|
||||
S:HandleIcon(item1.icon)
|
||||
S:HandleIcon(item2.icon)
|
||||
item1.IconBorder:Kill()
|
||||
item2.IconBorder:Kill()
|
||||
end
|
||||
|
||||
--Powers
|
||||
local LootJournal = EJ.LootJournal
|
||||
HandleButton(LootJournal.ClassDropDownButton, true)
|
||||
LootJournal.ClassDropDownButton:SetFrameLevel(10)
|
||||
|
||||
_G.EncounterJournal.LootJournal:CreateBackdrop('Transparent')
|
||||
local parch = _G.EncounterJournal.LootJournal:GetRegions()
|
||||
_G.EncounterJournal.LootJournal.backdrop:SetOutside(parch)
|
||||
|
||||
S:HandleScrollBar(LootJournal.PowersFrame.ScrollBar)
|
||||
|
||||
local IconColor = E.QualityColors[LEGENDARY_COLOR]
|
||||
hooksecurefunc(LootJournal.PowersFrame, "RefreshListDisplay", function(buttons)
|
||||
if not buttons.elements then return end
|
||||
|
||||
for i = 1, buttons:GetNumElementFrames() do
|
||||
local btn = buttons.elements[i]
|
||||
if btn and not btn.IsSkinned then
|
||||
btn.Background:SetAlpha(0)
|
||||
btn.CircleMask:Hide()
|
||||
S:HandleIcon(btn.Icon, true)
|
||||
btn.Icon.backdrop:SetBackdropBorderColor(IconColor.r, IconColor.g, IconColor.b)
|
||||
|
||||
btn:CreateBackdrop('Transparent')
|
||||
btn.backdrop:Point('TOPLEFT', 3, 0)
|
||||
btn.backdrop:Point('BOTTOMRIGHT', -2, 1)
|
||||
|
||||
btn.IsSkinned = true
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
--Dungeon/raid selection buttons (From AddOnSkins)
|
||||
hooksecurefunc('EncounterJournal_ListInstances', SkinDungeons)
|
||||
_G.EncounterJournal_ListInstances()
|
||||
|
||||
if E.private.skins.parchmentRemoverEnable then
|
||||
--Boss selection buttons
|
||||
hooksecurefunc('EncounterJournal_DisplayInstance', SkinBosses)
|
||||
|
||||
--Overview Info (From Aurora)
|
||||
hooksecurefunc('EncounterJournal_SetUpOverview', SkinOverviewInfo)
|
||||
|
||||
--Overview Info Bullets (From Aurora)
|
||||
hooksecurefunc('EncounterJournal_SetBullets', SkinOverviewInfoBullets)
|
||||
|
||||
--Abilities Info (From Aurora)
|
||||
hooksecurefunc('EncounterJournal_ToggleHeaders', SkinAbilitiesInfo)
|
||||
|
||||
_G.EncounterJournalEncounterFrameInfoBG:Kill()
|
||||
|
||||
EncounterInfo.detailsScroll.child.description:SetTextColor(1, 1, 1)
|
||||
EncounterInfo.overviewScroll.child.loreDescription:SetTextColor(1, 1, 1)
|
||||
_G.EncounterJournalEncounterFrameInfoOverviewScrollFrameScrollChildTitle:SetTextColor(1, 1, 1)
|
||||
EncounterInfo.overviewScroll.child.overviewDescription.Text:SetTextColor(1, 1, 1)
|
||||
EJ.encounter.instance.loreScroll.child.lore:SetTextColor(1, 1, 1)
|
||||
_G.EncounterJournalEncounterFrameInstanceFrameBG:SetTexCoord(0.71, 0.06, 0.582, 0.08)
|
||||
_G.EncounterJournalEncounterFrameInstanceFrameBG:SetRotation(rad(180))
|
||||
_G.EncounterJournalEncounterFrameInstanceFrameBG:SetScale(0.7)
|
||||
_G.EncounterJournalEncounterFrameInstanceFrameBG:CreateBackdrop()
|
||||
_G.EncounterJournalEncounterFrameInstanceFrame.titleBG:SetAlpha(0)
|
||||
_G.EncounterJournalEncounterFrameInstanceFrameTitle:SetTextColor(1, 1, 1)
|
||||
_G.EncounterJournalEncounterFrameInstanceFrameTitle:FontTemplate(nil, 25)
|
||||
_G.EncounterJournalEncounterFrameInfoOverviewScrollFrameScrollChildHeader:SetAlpha(0)
|
||||
|
||||
parch:Kill()
|
||||
end
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_EncounterJournal')
|
||||
16
Modules/Skins/Blizzard/FlightMap.lua
Normal file
16
Modules/Skins/Blizzard/FlightMap.lua
Normal file
@@ -0,0 +1,16 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
|
||||
function S:Blizzard_FlightMap()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.taxi) then return end
|
||||
|
||||
local FlightMapFrame = _G.FlightMapFrame
|
||||
_G.FlightMapFramePortrait:Kill()
|
||||
FlightMapFrame:StripTextures()
|
||||
FlightMapFrame:CreateBackdrop('Transparent')
|
||||
S:HandleCloseButton(_G.FlightMapFrameCloseButton)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_FlightMap')
|
||||
302
Modules/Skins/Blizzard/Friends.lua
Normal file
302
Modules/Skins/Blizzard/Friends.lua
Normal file
@@ -0,0 +1,302 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local pairs, select, unpack = pairs, select, unpack
|
||||
|
||||
local CreateFrame = CreateFrame
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
local WhoFrameColumn_SetWidth = WhoFrameColumn_SetWidth
|
||||
|
||||
--Tab Regions
|
||||
local tabs = {
|
||||
'LeftDisabled',
|
||||
'MiddleDisabled',
|
||||
'RightDisabled',
|
||||
'Left',
|
||||
'Middle',
|
||||
'Right',
|
||||
}
|
||||
|
||||
local function SkinFriendRequest(frame)
|
||||
if frame.isSkinned then return; end
|
||||
S:HandleButton(frame.DeclineButton, nil, true)
|
||||
S:HandleButton(frame.AcceptButton)
|
||||
frame.isSkinned = true
|
||||
end
|
||||
|
||||
local function UpdateWhoSkins()
|
||||
_G.WhoListScrollFrame:StripTextures()
|
||||
end
|
||||
|
||||
--Social Frame
|
||||
local function SkinSocialHeaderTab(tab)
|
||||
if not tab then return end
|
||||
for _, object in pairs(tabs) do
|
||||
local tex = _G[tab:GetName()..object]
|
||||
tex:SetTexture()
|
||||
end
|
||||
tab:GetHighlightTexture():SetTexture()
|
||||
tab.backdrop = CreateFrame('Frame', nil, tab, 'BackdropTemplate')
|
||||
tab.backdrop:SetTemplate()
|
||||
tab.backdrop:SetFrameLevel(tab:GetFrameLevel() - 1)
|
||||
tab.backdrop:Point('TOPLEFT', 3, -8)
|
||||
tab.backdrop:Point('BOTTOMRIGHT', -6, 0)
|
||||
end
|
||||
|
||||
local function BattleNetFrame_OnEnter(button)
|
||||
if not button.backdrop then return end
|
||||
local bnetColor = _G.FRIENDS_BNET_NAME_COLOR
|
||||
|
||||
button.backdrop:SetBackdropBorderColor(bnetColor.r, bnetColor.g, bnetColor.b)
|
||||
end
|
||||
|
||||
local function BattleNetFrame_OnLeave(button)
|
||||
if not button.backdrop then return end
|
||||
|
||||
button.backdrop:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
||||
end
|
||||
|
||||
local function RAFRewards()
|
||||
for reward in _G.RecruitAFriendRewardsFrame.rewardPool:EnumerateActive() do
|
||||
S:HandleIcon(reward.Button.Icon)
|
||||
reward.Button.IconBorder:Kill()
|
||||
end
|
||||
end
|
||||
|
||||
function S:FriendsFrame()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.friends) then return end
|
||||
|
||||
S:HandleScrollBar(_G.FriendsListFrameScrollFrame.scrollBar, 5)
|
||||
S:HandleScrollBar(_G.WhoListScrollFrame.scrollBar, 5)
|
||||
|
||||
local StripAllTextures = {
|
||||
'FriendsTabHeaderTab1',
|
||||
'FriendsTabHeaderTab2',
|
||||
'WhoFrameColumnHeader1',
|
||||
'WhoFrameColumnHeader2',
|
||||
'WhoFrameColumnHeader3',
|
||||
'WhoFrameColumnHeader4',
|
||||
'AddFriendFrame',
|
||||
}
|
||||
|
||||
local buttons = {
|
||||
'FriendsFrameAddFriendButton',
|
||||
'FriendsFrameSendMessageButton',
|
||||
'WhoFrameWhoButton',
|
||||
'WhoFrameAddFriendButton',
|
||||
'WhoFrameGroupInviteButton',
|
||||
'FriendsFrameIgnorePlayerButton',
|
||||
'FriendsFrameUnsquelchButton',
|
||||
'AddFriendEntryFrameAcceptButton',
|
||||
'AddFriendEntryFrameCancelButton',
|
||||
'AddFriendInfoFrameContinueButton',
|
||||
}
|
||||
|
||||
for _, button in pairs(buttons) do
|
||||
S:HandleButton(_G[button])
|
||||
end
|
||||
|
||||
for _, object in pairs(StripAllTextures) do
|
||||
_G[object]:StripTextures()
|
||||
end
|
||||
|
||||
local mainFrames = {
|
||||
'WhoFrame',
|
||||
'LFRQueueFrame',
|
||||
}
|
||||
|
||||
for _, frame in pairs(mainFrames) do
|
||||
_G[frame]:StripTextures()
|
||||
end
|
||||
|
||||
local FriendsFrame = _G.FriendsFrame
|
||||
S:HandlePortraitFrame(FriendsFrame)
|
||||
|
||||
_G.WhoFrameListInset:StripTextures()
|
||||
_G.WhoFrameListInset.NineSlice:Hide()
|
||||
_G.WhoFrameEditBoxInset:StripTextures()
|
||||
_G.WhoFrameEditBoxInset.NineSlice:Hide()
|
||||
|
||||
-- Kill the Portrait!
|
||||
for i = 1, FriendsFrame:GetNumRegions() do
|
||||
local region = select(i, FriendsFrame:GetRegions())
|
||||
if region:IsObjectType('Texture') then
|
||||
region:SetTexture()
|
||||
region:SetAlpha(0)
|
||||
end
|
||||
end
|
||||
|
||||
_G.IgnoreListFrame:StripTextures()
|
||||
|
||||
S:HandleScrollBar(_G.IgnoreListFrameScrollFrame.scrollBar, 4)
|
||||
S:HandleDropDownBox(_G.FriendsFrameStatusDropDown, 70)
|
||||
|
||||
_G.FriendsFrameStatusDropDown:ClearAllPoints()
|
||||
_G.FriendsFrameStatusDropDown:Point('TOPLEFT', FriendsFrame, 'TOPLEFT', 5, -24)
|
||||
|
||||
local FriendsFrameBattlenetFrame = _G.FriendsFrameBattlenetFrame
|
||||
FriendsFrameBattlenetFrame:StripTextures()
|
||||
FriendsFrameBattlenetFrame:CreateBackdrop('Transparent')
|
||||
FriendsFrameBattlenetFrame.backdrop:SetAllPoints()
|
||||
|
||||
local bnetColor = _G.FRIENDS_BNET_BACKGROUND_COLOR
|
||||
local button = CreateFrame('Button', nil, FriendsFrameBattlenetFrame)
|
||||
button:Point('TOPLEFT', FriendsFrameBattlenetFrame, 'TOPLEFT')
|
||||
button:Point('BOTTOMRIGHT', FriendsFrameBattlenetFrame, 'BOTTOMRIGHT')
|
||||
button:Size(FriendsFrameBattlenetFrame:GetSize())
|
||||
button:CreateBackdrop()
|
||||
button.backdrop:SetBackdropColor(bnetColor.r, bnetColor.g, bnetColor.b, bnetColor.a)
|
||||
button.backdrop:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
||||
|
||||
button:SetScript('OnClick', function() FriendsFrameBattlenetFrame.BroadcastFrame:ToggleFrame() end)
|
||||
button:SetScript('OnEnter', BattleNetFrame_OnEnter)
|
||||
button:SetScript('OnLeave', BattleNetFrame_OnLeave)
|
||||
|
||||
FriendsFrameBattlenetFrame.BroadcastButton:Kill() -- We use the BattlenetFrame to enter a Status Message
|
||||
|
||||
FriendsFrameBattlenetFrame.UnavailableInfoFrame:ClearAllPoints()
|
||||
FriendsFrameBattlenetFrame.UnavailableInfoFrame:Point('TOPLEFT', FriendsFrame, 'TOPRIGHT', 1, -18)
|
||||
|
||||
FriendsFrameBattlenetFrame.BroadcastFrame:StripTextures()
|
||||
FriendsFrameBattlenetFrame.BroadcastFrame:CreateBackdrop('Transparent')
|
||||
FriendsFrameBattlenetFrame.BroadcastFrame.EditBox:StripTextures()
|
||||
FriendsFrameBattlenetFrame.BroadcastFrame:ClearAllPoints()
|
||||
FriendsFrameBattlenetFrame.BroadcastFrame:Point('TOPLEFT', FriendsFrame, 'TOPRIGHT', 3, -1)
|
||||
S:HandleEditBox(FriendsFrameBattlenetFrame.BroadcastFrame.EditBox)
|
||||
S:HandleButton(FriendsFrameBattlenetFrame.BroadcastFrame.UpdateButton)
|
||||
S:HandleButton(FriendsFrameBattlenetFrame.BroadcastFrame.CancelButton)
|
||||
|
||||
S:HandleEditBox(_G.AddFriendNameEditBox)
|
||||
_G.AddFriendFrame:CreateBackdrop('Transparent')
|
||||
|
||||
--Pending invites
|
||||
S:HandleButton(_G.FriendsListFrameScrollFrame.PendingInvitesHeaderButton)
|
||||
hooksecurefunc(_G.FriendsListFrameScrollFrame.invitePool, 'Acquire', function()
|
||||
for object in pairs(_G.FriendsListFrameScrollFrame.invitePool.activeObjects) do
|
||||
SkinFriendRequest(object)
|
||||
end
|
||||
end)
|
||||
|
||||
--Who Frame
|
||||
_G.WhoFrame:HookScript('OnShow', UpdateWhoSkins)
|
||||
hooksecurefunc('FriendsFrame_OnEvent', UpdateWhoSkins)
|
||||
|
||||
--Increase width of Level column slightly
|
||||
WhoFrameColumn_SetWidth(_G.WhoFrameColumnHeader3, 37) --Default is 32
|
||||
for i = 1, 17 do
|
||||
local level = _G['WhoFrameButton'..i..'Level']
|
||||
if level then
|
||||
level:Width(level:GetWidth() + 5)
|
||||
end
|
||||
end
|
||||
|
||||
S:HandleDropDownBox(_G.WhoFrameDropDown, 120)
|
||||
|
||||
--Bottom Tabs
|
||||
for i = 1, 4 do
|
||||
S:HandleTab(_G['FriendsFrameTab'..i])
|
||||
end
|
||||
|
||||
for i = 1, 3 do
|
||||
SkinSocialHeaderTab(_G['FriendsTabHeaderTab'..i])
|
||||
end
|
||||
|
||||
--View Friends BN Frame
|
||||
local FriendsFriendsFrame = _G.FriendsFriendsFrame
|
||||
FriendsFriendsFrame:StripTextures()
|
||||
FriendsFriendsFrame.ScrollFrameBorder:Hide()
|
||||
FriendsFriendsFrame:CreateBackdrop('Transparent')
|
||||
S:HandleDropDownBox(_G.FriendsFriendsFrameDropDown, 150)
|
||||
S:HandleButton(FriendsFriendsFrame.SendRequestButton)
|
||||
S:HandleButton(FriendsFriendsFrame.CloseButton)
|
||||
S:HandleScrollBar(_G.FriendsFriendsScrollFrame.scrollBar)
|
||||
|
||||
--Quick join
|
||||
local QuickJoinFrame = _G.QuickJoinFrame
|
||||
local QuickJoinRoleSelectionFrame = _G.QuickJoinRoleSelectionFrame
|
||||
S:HandleScrollBar(_G.QuickJoinScrollFrame.scrollBar, 5)
|
||||
S:HandleButton(_G.QuickJoinFrame.JoinQueueButton)
|
||||
QuickJoinFrame.JoinQueueButton:Size(131, 21) --Match button on other tab
|
||||
QuickJoinFrame.JoinQueueButton:ClearAllPoints()
|
||||
QuickJoinFrame.JoinQueueButton:Point('BOTTOMRIGHT', QuickJoinFrame, 'BOTTOMRIGHT', -6, 4)
|
||||
_G.QuickJoinScrollFrameTop:SetTexture()
|
||||
_G.QuickJoinScrollFrameBottom:SetTexture()
|
||||
_G.QuickJoinScrollFrameMiddle:SetTexture()
|
||||
QuickJoinRoleSelectionFrame:StripTextures()
|
||||
QuickJoinRoleSelectionFrame:CreateBackdrop('Transparent')
|
||||
S:HandleButton(QuickJoinRoleSelectionFrame.AcceptButton)
|
||||
S:HandleButton(QuickJoinRoleSelectionFrame.CancelButton)
|
||||
S:HandleCloseButton(QuickJoinRoleSelectionFrame.CloseButton)
|
||||
S:HandleCheckBox(QuickJoinRoleSelectionFrame.RoleButtonTank.CheckButton)
|
||||
S:HandleCheckBox(QuickJoinRoleSelectionFrame.RoleButtonHealer.CheckButton)
|
||||
S:HandleCheckBox(QuickJoinRoleSelectionFrame.RoleButtonDPS.CheckButton)
|
||||
|
||||
-- GameIcons
|
||||
for i = 1, _G.FRIENDS_TO_DISPLAY do
|
||||
local btn = _G['FriendsListFrameScrollFrameButton'..i]
|
||||
local icon = _G['FriendsListFrameScrollFrameButton'..i..'GameIcon']
|
||||
|
||||
icon:Size(22, 22)
|
||||
icon:SetTexCoord(.15, .85, .15, .85)
|
||||
|
||||
icon:ClearAllPoints()
|
||||
icon:Point('RIGHT', btn, 'RIGHT', -24, 0)
|
||||
icon.SetPoint = E.noop
|
||||
end
|
||||
|
||||
-- RecruitAFriend 8.2.5
|
||||
local RAF = _G.RecruitAFriendFrame
|
||||
S:HandleButton(RAF.RecruitmentButton)
|
||||
|
||||
-- /run RecruitAFriendFrame:ShowSplashScreen()
|
||||
local SplashFrame = RAF.SplashFrame
|
||||
S:HandleButton(SplashFrame.OKButton)
|
||||
|
||||
if E.private.skins.parchmentRemoverEnable then
|
||||
SplashFrame.Background:SetColorTexture(unpack(E.media.bordercolor))
|
||||
|
||||
SplashFrame.PictureFrame:Hide()
|
||||
SplashFrame.Bracket_TopLeft:Hide()
|
||||
SplashFrame.Bracket_TopRight:Hide()
|
||||
SplashFrame.Bracket_BottomRight:Hide()
|
||||
SplashFrame.Bracket_BottomLeft:Hide()
|
||||
SplashFrame.PictureFrame_Bracket_TopLeft:Hide()
|
||||
SplashFrame.PictureFrame_Bracket_TopRight:Hide()
|
||||
SplashFrame.PictureFrame_Bracket_BottomRight:Hide()
|
||||
SplashFrame.PictureFrame_Bracket_BottomLeft:Hide()
|
||||
end
|
||||
|
||||
local Claiming = RAF.RewardClaiming
|
||||
Claiming:StripTextures()
|
||||
Claiming:CreateBackdrop('Transparent')
|
||||
S:HandleIcon(Claiming.NextRewardButton.Icon)
|
||||
Claiming.NextRewardButton.CircleMask:Hide()
|
||||
Claiming.NextRewardButton.IconBorder:Kill()
|
||||
S:HandleButton(Claiming.ClaimOrViewRewardButton)
|
||||
|
||||
local RecruitList = RAF.RecruitList
|
||||
RecruitList.Header:StripTextures()
|
||||
RecruitList.ScrollFrameInset:StripTextures()
|
||||
RecruitList.ScrollFrameInset:CreateBackdrop('Transparent')
|
||||
S:HandleScrollBar(RecruitList.ScrollFrame.Slider)
|
||||
|
||||
-- Recruitment
|
||||
local Recruitment = _G.RecruitAFriendRecruitmentFrame
|
||||
Recruitment:StripTextures()
|
||||
Recruitment:CreateBackdrop('Transparent')
|
||||
S:HandleEditBox(Recruitment.EditBox)
|
||||
S:HandleButton(Recruitment.GenerateOrCopyLinkButton)
|
||||
S:HandleCloseButton(Recruitment.CloseButton)
|
||||
|
||||
-- Rewards
|
||||
local Reward = _G.RecruitAFriendRewardsFrame
|
||||
Reward:StripTextures()
|
||||
Reward:CreateBackdrop('Transparent')
|
||||
S:HandleCloseButton(Reward.CloseButton)
|
||||
|
||||
hooksecurefunc(Reward, 'UpdateRewards', RAFRewards)
|
||||
RAFRewards() -- Because it's loaded already. The securehook is for when it updates in game. Thanks for playing.
|
||||
end
|
||||
|
||||
S:AddCallback('FriendsFrame')
|
||||
57
Modules/Skins/Blizzard/GMChat.lua
Normal file
57
Modules/Skins/Blizzard/GMChat.lua
Normal file
@@ -0,0 +1,57 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local select = select
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
function S:Blizzard_GMChatUI()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.gmChat) then return end
|
||||
|
||||
local frame = _G.GMChatFrame
|
||||
frame:SetClampRectInsets(0, 0, 0, 0)
|
||||
frame:StripTextures()
|
||||
frame:CreateBackdrop('Transparent')
|
||||
|
||||
frame.buttonFrame:Hide()
|
||||
|
||||
local eb = frame.editBox
|
||||
eb:CreateBackdrop('Transparent')
|
||||
eb.backdrop:Hide()
|
||||
eb:SetAltArrowKeyMode(false)
|
||||
for i = 3, 8 do
|
||||
select(i, eb:GetRegions()):SetAlpha(0)
|
||||
end
|
||||
eb:ClearAllPoints()
|
||||
eb:Point('TOPLEFT', frame, 'BOTTOMLEFT', 0, -7)
|
||||
eb:Point('BOTTOMRIGHT', frame, 'BOTTOMRIGHT', 0, -32)
|
||||
|
||||
hooksecurefunc('ChatEdit_DeactivateChat', function(editBox)
|
||||
if editBox.isGM then eb.backdrop:Hide() end
|
||||
end)
|
||||
hooksecurefunc('ChatEdit_ActivateChat', function(editBox)
|
||||
if editBox.isGM then eb.backdrop:Show() end
|
||||
end)
|
||||
|
||||
local lang = _G.GMChatFrameEditBoxLanguage
|
||||
lang:GetRegions():SetAlpha(0)
|
||||
lang:ClearAllPoints()
|
||||
lang:Point('TOPLEFT', eb, 'TOPRIGHT', 3, 0)
|
||||
lang:Point('BOTTOMRIGHT', eb, 'BOTTOMRIGHT', 28, 0)
|
||||
|
||||
local tab = _G.GMChatTab
|
||||
tab:StripTextures()
|
||||
tab:CreateBackdrop('Transparent')
|
||||
tab:SetBackdropColor(0, .6, 1, .3)
|
||||
tab:ClearAllPoints()
|
||||
tab:Point('BOTTOMLEFT', frame, 'TOPLEFT', 0, 3)
|
||||
tab:Point('TOPRIGHT', frame, 'TOPRIGHT', 0, 28)
|
||||
_G.GMChatTabIcon:SetTexture([[Interface\ChatFrame\UI-ChatIcon-Blizz]])
|
||||
|
||||
local close = _G.GMChatFrameCloseButton
|
||||
S:HandleCloseButton(close)
|
||||
close:ClearAllPoints()
|
||||
close:Point('RIGHT', tab, -5, 0)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_GMChatUI')
|
||||
739
Modules/Skins/Blizzard/Garrison.lua
Normal file
739
Modules/Skins/Blizzard/Garrison.lua
Normal file
@@ -0,0 +1,739 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local unpack, pairs, ipairs, select = unpack, pairs, ipairs, select
|
||||
|
||||
local CreateFrame = CreateFrame
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
local function showFollower(s)
|
||||
S:HandleFollowerAbilities(s)
|
||||
end
|
||||
|
||||
local function UpdateFollowerColorOnBoard(self, _, info)
|
||||
if self.Portrait.backdrop then
|
||||
local color = E.QualityColors[info.quality or 1]
|
||||
self.Portrait.backdrop:SetBackdropBorderColor(color.r, color.g, color.b)
|
||||
end
|
||||
end
|
||||
|
||||
local function ResetFollowerColorOnBoard(self)
|
||||
if self.Portrait.backdrop then
|
||||
self.Portrait.backdrop:SetBackdropBorderColor(0, 0, 0)
|
||||
end
|
||||
end
|
||||
|
||||
local function SkinFollowerBoard(self, group)
|
||||
for socketTexture in self[group..'SocketFramePool']:EnumerateActive() do
|
||||
socketTexture:DisableDrawLayer('BACKGROUND')
|
||||
end
|
||||
|
||||
for frame in self[group..'FramePool']:EnumerateActive() do
|
||||
if not frame.IsSkinned then
|
||||
S:HandleGarrisonPortrait(frame)
|
||||
frame.PuckShadow:SetAlpha(0)
|
||||
|
||||
if frame.SetFollowerGUID then
|
||||
hooksecurefunc(frame, 'SetFollowerGUID', UpdateFollowerColorOnBoard)
|
||||
end
|
||||
if frame.SetEmpty then
|
||||
hooksecurefunc(frame, 'SetEmpty', ResetFollowerColorOnBoard)
|
||||
end
|
||||
|
||||
frame.IsSkinned = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function SkinMissionBoards(board)
|
||||
SkinFollowerBoard(board, 'enemy')
|
||||
SkinFollowerBoard(board, 'follower')
|
||||
end
|
||||
|
||||
local function UpdateSpellAbilities(spell, followerInfo)
|
||||
local autoSpellInfo = followerInfo.autoSpellAbilities
|
||||
for _ in ipairs(autoSpellInfo) do
|
||||
local abilityFrame = spell.autoSpellPool:Acquire()
|
||||
if not abilityFrame.IsSkinned then
|
||||
S:HandleIcon(abilityFrame.Icon, true)
|
||||
|
||||
if abilityFrame.SpellBorder then
|
||||
abilityFrame.SpellBorder:Hide()
|
||||
end
|
||||
abilityFrame.IsSkinned = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function ReskinMissionComplete(frame)
|
||||
local missionComplete = frame.MissionComplete
|
||||
local bonusRewards = missionComplete.BonusRewards
|
||||
if bonusRewards then
|
||||
select(11, bonusRewards:GetRegions()):SetTextColor(1, .8, 0)
|
||||
bonusRewards.Saturated:StripTextures()
|
||||
for i = 1, 9 do
|
||||
select(i, bonusRewards:GetRegions()):SetAlpha(0)
|
||||
end
|
||||
bonusRewards:CreateBackdrop()
|
||||
end
|
||||
if missionComplete.NextMissionButton then
|
||||
S:HandleButton(missionComplete.NextMissionButton)
|
||||
end
|
||||
if missionComplete.CompleteFrame then
|
||||
if E.private.skins.parchmentRemoverEnable then
|
||||
missionComplete:StripTextures()
|
||||
end
|
||||
|
||||
missionComplete:CreateBackdrop('Transparent')
|
||||
missionComplete.backdrop:SetPoint("TOPLEFT", 3, 2)
|
||||
missionComplete.backdrop:SetPoint("BOTTOMRIGHT", -3, -10)
|
||||
|
||||
if E.private.skins.parchmentRemoverEnable then
|
||||
missionComplete.CompleteFrame:StripTextures()
|
||||
end
|
||||
S:HandleButton(missionComplete.CompleteFrame.ContinueButton)
|
||||
S:HandleButton(missionComplete.CompleteFrame.SpeedButton)
|
||||
S:HandleButton(missionComplete.RewardsScreen.FinalRewardsPanel.ContinueButton)
|
||||
end
|
||||
end
|
||||
|
||||
-- TO DO: Extend this function
|
||||
local function SkinMissionFrame(frame, strip)
|
||||
if strip then
|
||||
frame:StripTextures()
|
||||
end
|
||||
|
||||
if not frame.backdrop then
|
||||
frame:CreateBackdrop('Transparent')
|
||||
end
|
||||
|
||||
frame.CloseButton:StripTextures()
|
||||
S:HandleCloseButton(frame.CloseButton)
|
||||
|
||||
if frame.GarrCorners then frame.GarrCorners:Hide() end
|
||||
if frame.OverlayElements then frame.OverlayElements:SetAlpha(0) end
|
||||
|
||||
for i = 1, 3 do
|
||||
local tab = _G[frame:GetName()..'Tab'..i]
|
||||
if tab then S:HandleTab(tab) end
|
||||
end
|
||||
|
||||
if frame.MapTab then
|
||||
frame.MapTab.ScrollContainer.Child.TiledBackground:Hide()
|
||||
end
|
||||
|
||||
ReskinMissionComplete(frame)
|
||||
|
||||
hooksecurefunc(frame.FollowerTab, 'UpdateCombatantStats', UpdateSpellAbilities)
|
||||
|
||||
for _, item in pairs({frame.FollowerTab.ItemWeapon, frame.FollowerTab.ItemArmor}) do
|
||||
if item then
|
||||
local icon = item.Icon
|
||||
item.Border:Hide()
|
||||
S:HandleIcon(icon)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function S:Blizzard_GarrisonUI()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.garrison) then return end
|
||||
|
||||
--These hooks affect both Garrison and OrderHall, so make sure they are set even if Garrison skin is disabled
|
||||
hooksecurefunc('GarrisonMissionButton_SetRewards', function(s)
|
||||
--Set border color according to rarity of item
|
||||
local firstRegion, r, g, b
|
||||
local index = 0
|
||||
for _, reward in pairs(s.Rewards) do
|
||||
firstRegion = reward.GetRegions and reward:GetRegions()
|
||||
if firstRegion then firstRegion:Hide() end
|
||||
|
||||
if reward.IconBorder then
|
||||
reward.IconBorder:SetTexture()
|
||||
end
|
||||
|
||||
if reward.IconBorder and reward.IconBorder:IsShown() then
|
||||
r, g, b = reward.IconBorder:GetVertexColor()
|
||||
else
|
||||
r, g, b = unpack(E.media.bordercolor)
|
||||
end
|
||||
|
||||
if not reward.Icon.backdrop then
|
||||
S:HandleIcon(reward.Icon, true)
|
||||
end
|
||||
|
||||
reward.Icon.backdrop:SetBackdropBorderColor(r, g, b)
|
||||
index = index + 1
|
||||
end
|
||||
end)
|
||||
|
||||
hooksecurefunc('GarrisonMissionPage_SetReward', function(frame)
|
||||
frame.BG:SetTexture()
|
||||
if not frame.backdrop then
|
||||
S:HandleIcon(frame.Icon)
|
||||
end
|
||||
if frame.IconBorder then
|
||||
frame.IconBorder:SetTexture()
|
||||
end
|
||||
|
||||
frame.Icon:SetDrawLayer('BORDER', 0)
|
||||
end)
|
||||
|
||||
hooksecurefunc('GarrisonMissionPortrait_SetFollowerPortrait', function(portraitFrame, followerInfo)
|
||||
if not portraitFrame.IsSkinned then
|
||||
S:HandleGarrisonPortrait(portraitFrame)
|
||||
portraitFrame.IsSkinned = true
|
||||
end
|
||||
|
||||
local color = _G.ITEM_QUALITY_COLORS[followerInfo.quality]
|
||||
portraitFrame.Portrait.backdrop:SetBackdropBorderColor(color.r, color.g, color.b)
|
||||
portraitFrame.Portrait.backdrop:Show()
|
||||
end)
|
||||
|
||||
-- Building frame
|
||||
local GarrisonBuildingFrame = _G.GarrisonBuildingFrame
|
||||
GarrisonBuildingFrame:StripTextures(true)
|
||||
GarrisonBuildingFrame.TitleText:Show()
|
||||
GarrisonBuildingFrame:CreateBackdrop('Transparent')
|
||||
|
||||
S:HandleCloseButton(GarrisonBuildingFrame.CloseButton, GarrisonBuildingFrame.backdrop)
|
||||
if E.private.skins.blizzard.tooltip then
|
||||
GarrisonBuildingFrame.BuildingLevelTooltip:StripTextures()
|
||||
GarrisonBuildingFrame.BuildingLevelTooltip:CreateBackdrop('Transparent')
|
||||
end
|
||||
|
||||
-- Follower List
|
||||
local FollowerList = GarrisonBuildingFrame.FollowerList
|
||||
S:HandleScrollBar(FollowerList.listScroll.scrollBar)
|
||||
|
||||
FollowerList:ClearAllPoints()
|
||||
FollowerList:Point('BOTTOMLEFT', 24, 34)
|
||||
|
||||
local scrollFrame = FollowerList.listScroll
|
||||
S:HandleScrollBar(scrollFrame.scrollBar)
|
||||
|
||||
-- Capacitive display frame
|
||||
local GarrisonCapacitiveDisplayFrame = _G.GarrisonCapacitiveDisplayFrame
|
||||
S:HandlePortraitFrame(GarrisonCapacitiveDisplayFrame)
|
||||
S:HandleButton(GarrisonCapacitiveDisplayFrame.StartWorkOrderButton)
|
||||
S:HandleButton(GarrisonCapacitiveDisplayFrame.CreateAllWorkOrdersButton)
|
||||
GarrisonCapacitiveDisplayFrame.Count:StripTextures()
|
||||
S:HandleEditBox(GarrisonCapacitiveDisplayFrame.Count)
|
||||
S:HandleNextPrevButton(GarrisonCapacitiveDisplayFrame.DecrementButton)
|
||||
S:HandleNextPrevButton(GarrisonCapacitiveDisplayFrame.IncrementButton)
|
||||
local CapacitiveDisplay = GarrisonCapacitiveDisplayFrame.CapacitiveDisplay
|
||||
CapacitiveDisplay.IconBG:SetTexture()
|
||||
CapacitiveDisplay.ShipmentIconFrame.Icon:SetTexCoord(unpack(E.TexCoords))
|
||||
CapacitiveDisplay.ShipmentIconFrame.Icon:SetInside()
|
||||
--Fix unitframes appearing above work orders
|
||||
GarrisonCapacitiveDisplayFrame:SetFrameStrata('MEDIUM')
|
||||
GarrisonCapacitiveDisplayFrame:SetFrameLevel(45)
|
||||
|
||||
hooksecurefunc('GarrisonCapacitiveDisplayFrame_Update', function(s)
|
||||
for _, Reagent in ipairs(s.CapacitiveDisplay.Reagents) do
|
||||
if not Reagent.backdrop then
|
||||
Reagent.NameFrame:SetTexture()
|
||||
S:HandleIcon(Reagent.Icon, true)
|
||||
Reagent:CreateBackdrop()
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
-- Recruiter frame
|
||||
S:HandlePortraitFrame(_G.GarrisonRecruiterFrame)
|
||||
|
||||
-- Recruiter Unavailable frame
|
||||
local UnavailableFrame = _G.GarrisonRecruiterFrame.UnavailableFrame
|
||||
S:HandleButton(UnavailableFrame:GetChildren())
|
||||
|
||||
-- Mission UI
|
||||
local GarrisonMissionFrame = _G.GarrisonMissionFrame
|
||||
GarrisonMissionFrame:StripTextures(true)
|
||||
GarrisonMissionFrame.TitleText:Show()
|
||||
GarrisonMissionFrame:CreateBackdrop('Transparent')
|
||||
S:HandleCloseButton(GarrisonMissionFrame.CloseButton, GarrisonMissionFrame.backdrop)
|
||||
|
||||
for i = 1,2 do
|
||||
S:HandleTab(_G['GarrisonMissionFrameTab'..i])
|
||||
end
|
||||
|
||||
_G.GarrisonMissionFrameTab1:ClearAllPoints()
|
||||
_G.GarrisonMissionFrameTab1:Point('BOTTOMLEFT', 11, -40)
|
||||
GarrisonMissionFrame.GarrCorners:Hide()
|
||||
|
||||
-- Follower list
|
||||
FollowerList = GarrisonMissionFrame.FollowerList
|
||||
FollowerList:DisableDrawLayer('BORDER')
|
||||
FollowerList.MaterialFrame:StripTextures()
|
||||
S:HandleEditBox(FollowerList.SearchBox)
|
||||
S:HandleScrollBar(FollowerList.listScroll.scrollBar)
|
||||
hooksecurefunc(FollowerList, 'ShowFollower', showFollower)
|
||||
|
||||
-- Mission list
|
||||
local MissionTab = GarrisonMissionFrame.MissionTab
|
||||
local MissionList = MissionTab.MissionList
|
||||
local MissionPage = GarrisonMissionFrame.MissionTab.MissionPage
|
||||
MissionList:DisableDrawLayer('BORDER')
|
||||
S:HandleScrollBar(MissionList.listScroll.scrollBar)
|
||||
S:HandleCloseButton(MissionPage.CloseButton)
|
||||
MissionPage.CloseButton:SetFrameLevel(MissionPage:GetFrameLevel() + 2)
|
||||
S:HandleButton(MissionList.CompleteDialog.BorderFrame.ViewButton)
|
||||
MissionList.CompleteDialog.BorderFrame.ViewButton.backdrop:SetFrameLevel(MissionList.CompleteDialog.BorderFrame.ViewButton:GetFrameLevel())
|
||||
S:HandleButton(MissionPage.StartMissionButton)
|
||||
S:HandleButton(GarrisonMissionFrame.MissionComplete.NextMissionButton)
|
||||
|
||||
MissionPage.StartMissionButton.Flash:Hide()
|
||||
MissionPage.StartMissionButton.Flash.Show = E.noop
|
||||
MissionPage.StartMissionButton.FlashAnim:Stop()
|
||||
MissionPage.StartMissionButton.FlashAnim.Play = E.noop
|
||||
|
||||
-- Landing page
|
||||
local GarrisonLandingPage = _G.GarrisonLandingPage
|
||||
local Report = GarrisonLandingPage.Report
|
||||
GarrisonLandingPage:CreateBackdrop('Transparent')
|
||||
S:HandleCloseButton(GarrisonLandingPage.CloseButton, GarrisonLandingPage.backdrop)
|
||||
S:HandleTab(_G.GarrisonLandingPageTab1)
|
||||
S:HandleTab(_G.GarrisonLandingPageTab2)
|
||||
S:HandleTab(_G.GarrisonLandingPageTab3)
|
||||
_G.GarrisonLandingPageTab1:ClearAllPoints()
|
||||
_G.GarrisonLandingPageTab1:Point('TOPLEFT', GarrisonLandingPage, 'BOTTOMLEFT', 70, 2)
|
||||
|
||||
if E.private.skins.parchmentRemoverEnable then
|
||||
for i = 1, 10 do
|
||||
select(i, GarrisonLandingPage:GetRegions()):Hide()
|
||||
end
|
||||
|
||||
for _, tab in pairs({Report.InProgress, Report.Available}) do
|
||||
tab:SetHighlightTexture('')
|
||||
tab.Text:ClearAllPoints()
|
||||
tab.Text:Point('CENTER')
|
||||
|
||||
local bg = CreateFrame('Frame', nil, tab)
|
||||
bg:SetFrameLevel(tab:GetFrameLevel() - 1)
|
||||
bg:CreateBackdrop('Transparent')
|
||||
|
||||
local selectedTex = bg:CreateTexture(nil, 'BACKGROUND')
|
||||
selectedTex:SetAllPoints()
|
||||
selectedTex:SetColorTexture(unpack(E.media.rgbvaluecolor))
|
||||
selectedTex:SetAlpha(0.25)
|
||||
selectedTex:Hide()
|
||||
tab.selectedTex = selectedTex
|
||||
|
||||
if tab == Report.InProgress then
|
||||
bg:Point('TOPLEFT', 5, 0)
|
||||
bg:Point('BOTTOMRIGHT')
|
||||
else
|
||||
bg:Point('TOPLEFT')
|
||||
bg:Point('BOTTOMRIGHT', -7, 0)
|
||||
end
|
||||
end
|
||||
|
||||
hooksecurefunc('GarrisonLandingPageReport_SetTab', function(s)
|
||||
local unselectedTab = Report.unselectedTab
|
||||
unselectedTab:Height(36)
|
||||
unselectedTab:SetNormalTexture('')
|
||||
unselectedTab.selectedTex:Hide()
|
||||
|
||||
s:SetNormalTexture('')
|
||||
s.selectedTex:Show()
|
||||
end)
|
||||
end
|
||||
|
||||
-- Landing page: Report
|
||||
Report = GarrisonLandingPage.Report -- reassigned
|
||||
Report.List:StripTextures(true)
|
||||
scrollFrame = Report.List.listScroll
|
||||
S:HandleScrollBar(scrollFrame.scrollBar)
|
||||
local buttons = scrollFrame.buttons
|
||||
for i = 1, #buttons do
|
||||
local button = buttons[i]
|
||||
for _, reward in pairs(button.Rewards) do
|
||||
reward.Icon:SetTexCoord(unpack(E.TexCoords))
|
||||
if not reward.border then
|
||||
reward.border = CreateFrame('Frame', nil, reward)
|
||||
S:HandleIcon(reward.Icon, reward.border)
|
||||
reward.Quantity:SetParent(reward.border)
|
||||
reward.IconBorder:Kill()
|
||||
-- For some reason, this fix icon border in 8.1
|
||||
reward:ClearAllPoints()
|
||||
reward:Point('TOPRIGHT', -5, -5)
|
||||
|
||||
if E.private.skins.parchmentRemoverEnable then
|
||||
button.BG:Hide()
|
||||
|
||||
local bg = CreateFrame('Frame', nil, button)
|
||||
bg:Point('TOPLEFT')
|
||||
bg:Point('BOTTOMRIGHT', 0, 1)
|
||||
bg:SetFrameLevel(button:GetFrameLevel() - 1)
|
||||
bg:CreateBackdrop('Transparent')
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Landing page: Follower list
|
||||
FollowerList = GarrisonLandingPage.FollowerList
|
||||
FollowerList.FollowerHeaderBar:Hide()
|
||||
FollowerList.FollowerScrollFrame:Hide()
|
||||
S:HandleEditBox(FollowerList.SearchBox)
|
||||
scrollFrame = FollowerList.listScroll
|
||||
S:HandleScrollBar(scrollFrame.scrollBar)
|
||||
|
||||
hooksecurefunc(FollowerList, 'ShowFollower', showFollower)
|
||||
|
||||
hooksecurefunc('GarrisonFollowerButton_AddAbility', function(s, index)
|
||||
local ability = s.Abilities[index]
|
||||
if not ability.styled then
|
||||
S:HandleIcon(ability.Icon, ability)
|
||||
ability.styled = true
|
||||
end
|
||||
end)
|
||||
|
||||
-- Garrison Portraits
|
||||
S:HandleFollowerListOnUpdateData('GarrisonMissionFrameFollowers')
|
||||
S:HandleFollowerListOnUpdateData('GarrisonLandingPageFollowerList') -- this also applies to orderhall landing page
|
||||
|
||||
local FollowerTab = GarrisonLandingPage.FollowerTab
|
||||
hooksecurefunc(FollowerTab, 'UpdateCombatantStats', UpdateSpellAbilities)
|
||||
|
||||
-- Landing page: Fleet
|
||||
local ShipFollowerList = GarrisonLandingPage.ShipFollowerList
|
||||
ShipFollowerList.FollowerHeaderBar:Hide()
|
||||
S:HandleEditBox(ShipFollowerList.SearchBox)
|
||||
scrollFrame = ShipFollowerList.listScroll
|
||||
S:HandleScrollBar(scrollFrame.scrollBar)
|
||||
-- HandleShipFollowerPage(ShipFollowerList.followerTab)
|
||||
|
||||
-- ShipYard
|
||||
local GarrisonShipyardFrame = _G.GarrisonShipyardFrame
|
||||
GarrisonShipyardFrame:StripTextures(true)
|
||||
GarrisonShipyardFrame.BorderFrame:StripTextures(true)
|
||||
GarrisonShipyardFrame:CreateBackdrop('Transparent')
|
||||
GarrisonShipyardFrame.backdrop:SetOutside(GarrisonShipyardFrame.BorderFrame)
|
||||
GarrisonShipyardFrame.BorderFrame.GarrCorners:Hide()
|
||||
S:HandleCloseButton(GarrisonShipyardFrame.BorderFrame.CloseButton2)
|
||||
S:HandleTab(_G.GarrisonShipyardFrameTab1)
|
||||
S:HandleTab(_G.GarrisonShipyardFrameTab2)
|
||||
|
||||
-- ShipYard: Naval Map
|
||||
MissionTab = GarrisonShipyardFrame.MissionTab
|
||||
MissionList = MissionTab.MissionList
|
||||
MissionList:CreateBackdrop('Transparent')
|
||||
MissionList.backdrop:SetOutside(MissionList.MapTexture)
|
||||
MissionList.CompleteDialog.BorderFrame:StripTextures()
|
||||
MissionList.CompleteDialog.BorderFrame:CreateBackdrop('Transparent')
|
||||
|
||||
-- ShipYard: Mission
|
||||
MissionPage = MissionTab.MissionPage
|
||||
S:HandleCloseButton(MissionPage.CloseButton)
|
||||
MissionPage.CloseButton:SetFrameLevel(MissionPage.CloseButton:GetFrameLevel() + 2)
|
||||
S:HandleButton(MissionList.CompleteDialog.BorderFrame.ViewButton)
|
||||
MissionList.CompleteDialog.BorderFrame.ViewButton.backdrop:SetFrameLevel(MissionList.CompleteDialog.BorderFrame.ViewButton:GetFrameLevel())
|
||||
S:HandleButton(GarrisonShipyardFrame.MissionComplete.NextMissionButton)
|
||||
MissionList.CompleteDialog:SetAllPoints(MissionList.MapTexture)
|
||||
GarrisonShipyardFrame.MissionCompleteBackground:SetAllPoints(MissionList.MapTexture)
|
||||
S:HandleButton(MissionPage.StartMissionButton)
|
||||
MissionPage.StartMissionButton.Flash:Hide()
|
||||
MissionPage.StartMissionButton.Flash.Show = E.noop
|
||||
MissionPage.StartMissionButton.FlashAnim:Stop()
|
||||
MissionPage.StartMissionButton.FlashAnim.Play = E.noop
|
||||
|
||||
-- ShipYard: Follower List
|
||||
FollowerList = GarrisonShipyardFrame.FollowerList
|
||||
scrollFrame = FollowerList.listScroll
|
||||
FollowerList:StripTextures()
|
||||
S:HandleScrollBar(scrollFrame.scrollBar)
|
||||
S:HandleEditBox(FollowerList.SearchBox)
|
||||
FollowerList.MaterialFrame:StripTextures()
|
||||
FollowerList.MaterialFrame.Icon:SetAtlas('ShipMission_CurrencyIcon-Oil', false) --Re-add the material icon
|
||||
-- HandleShipFollowerPage(FollowerList.followerTab)
|
||||
|
||||
if E.private.skins.blizzard.tooltip ~= true then return end
|
||||
|
||||
-- ShipYard: Mission Tooltip
|
||||
local tooltip = _G.GarrisonShipyardMapMissionTooltip
|
||||
tooltip:CreateBackdrop('Transparent')
|
||||
local reward = tooltip.ItemTooltip
|
||||
local icon = reward.Icon
|
||||
if icon then
|
||||
S:HandleIcon(icon)
|
||||
reward.IconBorder:SetTexture()
|
||||
end
|
||||
|
||||
local bonusIcon = tooltip.BonusReward and tooltip.BonusReward.Icon
|
||||
if bonusIcon then S:HandleIcon(bonusIcon) end
|
||||
|
||||
-- Threat Counter Tooltips
|
||||
_G.GarrisonMissionMechanicFollowerCounterTooltip:CreateBackdrop('Transparent')
|
||||
_G.GarrisonMissionMechanicTooltip:CreateBackdrop('Transparent')
|
||||
|
||||
-- MissionFrame
|
||||
local OrderHallMissionFrame = _G.OrderHallMissionFrame
|
||||
OrderHallMissionFrame:StripTextures()
|
||||
OrderHallMissionFrame.ClassHallIcon:Kill()
|
||||
OrderHallMissionFrame:StripTextures()
|
||||
OrderHallMissionFrame.GarrCorners:Hide()
|
||||
OrderHallMissionFrame:CreateBackdrop('Transparent')
|
||||
OrderHallMissionFrame.backdrop:SetOutside(OrderHallMissionFrame.BorderFrame)
|
||||
S:HandleCloseButton(OrderHallMissionFrame.CloseButton)
|
||||
|
||||
for i = 1, 3 do
|
||||
S:HandleTab(_G['OrderHallMissionFrameTab' .. i])
|
||||
end
|
||||
|
||||
for _, Button in pairs(OrderHallMissionFrame.MissionTab.MissionList.listScroll.buttons) do
|
||||
if not Button.backdrop then -- added in S:HandleButton
|
||||
S:HandleButton(Button, true)
|
||||
Button.backdrop:SetFrameLevel(Button:GetFrameLevel())
|
||||
Button.LocBG:SetDrawLayer('BACKGROUND', 1)
|
||||
end
|
||||
end
|
||||
|
||||
-- Followers
|
||||
local Follower = _G.OrderHallMissionFrameFollowers
|
||||
FollowerList = OrderHallMissionFrame.FollowerList -- swap
|
||||
local FollowerTab = OrderHallMissionFrame.FollowerTab
|
||||
Follower:StripTextures()
|
||||
Follower:CreateBackdrop('Transparent')
|
||||
FollowerList:StripTextures()
|
||||
FollowerList.MaterialFrame:StripTextures()
|
||||
S:HandleEditBox(FollowerList.SearchBox)
|
||||
S:HandleScrollBar(OrderHallMissionFrame.FollowerList.listScroll.scrollBar)
|
||||
hooksecurefunc(FollowerList, 'ShowFollower', showFollower)
|
||||
FollowerTab:StripTextures()
|
||||
FollowerTab.Class:Size(50, 43)
|
||||
FollowerTab.XPBar:StripTextures()
|
||||
FollowerTab.XPBar:SetStatusBarTexture(E.media.normTex)
|
||||
FollowerTab.XPBar:CreateBackdrop()
|
||||
|
||||
-- Orderhall Portraits
|
||||
S:HandleFollowerListOnUpdateData('OrderHallMissionFrameFollowers')
|
||||
S:HandleFollowerListOnUpdateData('GarrisonLandingPageFollowerList') -- this also applies to garrison landing page
|
||||
|
||||
-- Missions
|
||||
MissionTab = OrderHallMissionFrame.MissionTab -- swap
|
||||
local MissionComplete = OrderHallMissionFrame.MissionComplete
|
||||
MissionList = MissionTab.MissionList -- swap
|
||||
MissionPage = MissionTab.MissionPage -- swap
|
||||
local ZoneSupportMissionPage = MissionTab.ZoneSupportMissionPage
|
||||
S:HandleScrollBar(MissionList.listScroll.scrollBar)
|
||||
MissionList.CompleteDialog:StripTextures()
|
||||
MissionList.CompleteDialog:CreateBackdrop('Transparent')
|
||||
S:HandleButton(MissionList.CompleteDialog.BorderFrame.ViewButton)
|
||||
MissionList.CompleteDialog.BorderFrame.ViewButton.backdrop:SetFrameLevel(MissionList.CompleteDialog.BorderFrame.ViewButton:GetFrameLevel())
|
||||
MissionList:StripTextures()
|
||||
MissionList.listScroll:StripTextures()
|
||||
S:HandleButton(_G.OrderHallMissionFrameMissions.CombatAllyUI.InProgress.Unassign)
|
||||
S:HandleCloseButton(MissionPage.CloseButton)
|
||||
S:HandleButton(MissionPage.StartMissionButton)
|
||||
S:HandleCloseButton(ZoneSupportMissionPage.CloseButton)
|
||||
S:HandleButton(ZoneSupportMissionPage.StartMissionButton)
|
||||
S:HandleButton(MissionComplete.NextMissionButton)
|
||||
|
||||
-- BFA Mission
|
||||
local MissionFrame = _G.BFAMissionFrame
|
||||
MissionFrame.OverlayElements:Hide()
|
||||
MissionFrame.TopBorder:Hide()
|
||||
MissionFrame.TopLeftCorner:Hide()
|
||||
MissionFrame.TopRightCorner:Hide()
|
||||
MissionFrame.RightBorder:Hide()
|
||||
MissionFrame.LeftBorder:Hide()
|
||||
MissionFrame.BotLeftCorner:Hide()
|
||||
MissionFrame.BotRightCorner:Hide()
|
||||
MissionFrame.BottomBorder:Hide()
|
||||
MissionFrame.GarrCorners:Hide()
|
||||
MissionFrame.TitleScroll:Hide()
|
||||
MissionFrame.BackgroundTile:Kill()
|
||||
MissionFrame.Left:Hide()
|
||||
MissionFrame.Bottom:Hide()
|
||||
MissionFrame.Top:Hide()
|
||||
MissionFrame.Right:Hide()
|
||||
|
||||
MissionFrame:CreateBackdrop('Transparent')
|
||||
|
||||
S:HandleCloseButton(MissionFrame.CloseButton)
|
||||
S:HandleButton(MissionFrame.MissionComplete.NextMissionButton)
|
||||
for i = 1, 3 do
|
||||
S:HandleTab(_G['BFAMissionFrameTab'..i])
|
||||
end
|
||||
|
||||
-- Missions
|
||||
S:HandleButton(_G.BFAMissionFrameMissions.CompleteDialog.BorderFrame.ViewButton)
|
||||
|
||||
-- Mission Tab
|
||||
MissionTab = MissionFrame.MissionTab -- swap
|
||||
|
||||
S:HandleCloseButton(MissionTab.MissionPage.CloseButton)
|
||||
S:HandleButton(MissionTab.MissionPage.StartMissionButton)
|
||||
S:HandleScrollBar(_G.BFAMissionFrameMissionsListScrollFrameScrollBar)
|
||||
|
||||
-- Follower Tab
|
||||
Follower = _G.BFAMissionFrameFollowers -- swap
|
||||
local XPBar = MissionFrame.FollowerTab.XPBar
|
||||
local Class = MissionFrame.FollowerTab.Class
|
||||
Follower:StripTextures()
|
||||
Follower:CreateBackdrop('Transparent')
|
||||
S:HandleEditBox(Follower.SearchBox)
|
||||
hooksecurefunc(Follower, 'ShowFollower', showFollower)
|
||||
S:HandleScrollBar(_G.BFAMissionFrameFollowersListScrollFrameScrollBar)
|
||||
|
||||
S:HandleFollowerListOnUpdateData('BFAMissionFrameFollowers') -- The function needs to be updated for BFA
|
||||
|
||||
XPBar:StripTextures()
|
||||
XPBar:SetStatusBarTexture(E.media.normTex)
|
||||
XPBar:CreateBackdrop()
|
||||
|
||||
Class:Size(50, 43)
|
||||
|
||||
-- Shadowlands Mission
|
||||
local CovenantMissionFrame = _G.CovenantMissionFrame
|
||||
SkinMissionFrame(CovenantMissionFrame) -- currently dont use StripTextures here, cause it seems blizzard fucks this up /shurg
|
||||
_G.CovenantMissionFrameMissions.RaisedFrameEdges:SetAlpha(0)
|
||||
|
||||
S:HandleIcon(_G.CovenantMissionFrameMissions.MaterialFrame.Icon)
|
||||
--S:HandleScrollBar(_G.CovenantMissionFrameMissionsListScrollFrameScrollBar) -- Dont skin it, the "NEW" default ones looks amazing
|
||||
|
||||
-- Complete Missions
|
||||
_G.CombatLog.CombatLogMessageFrame:StripTextures()
|
||||
_G.CombatLog.ElevatedFrame:SetAlpha(0)
|
||||
_G.CombatLog.CombatLogMessageFrame:CreateBackdrop('Transparent')
|
||||
|
||||
-- Adventures / Follower Tab
|
||||
Follower = _G.CovenantMissionFrameFollowers -- swap
|
||||
FollowerTab = CovenantMissionFrame.FollowerTab
|
||||
|
||||
hooksecurefunc(Follower, 'ShowFollower', showFollower)
|
||||
Follower:StripTextures()
|
||||
Follower:CreateBackdrop('Transparent')
|
||||
|
||||
FollowerTab:StripTextures()
|
||||
FollowerTab.RaisedFrameEdges:SetAlpha(0)
|
||||
S:HandleIcon(CovenantMissionFrame.FollowerTab.HealFollowerFrame.CostFrame.CostIcon)
|
||||
|
||||
S:HandleFollowerListOnUpdateData('CovenantMissionFrameFollowers')
|
||||
|
||||
if Follower.HealAllButton then
|
||||
S:HandleButton(Follower.HealAllButton)
|
||||
end
|
||||
if _G.HealFollowerButtonTemplate then
|
||||
S:HandleButton(_G.HealFollowerButtonTemplate)
|
||||
end
|
||||
|
||||
-- Mission Tab
|
||||
S:HandleButton(CovenantMissionFrame.MissionTab.MissionPage.StartMissionButton)
|
||||
S:HandleCloseButton(CovenantMissionFrame.MissionTab.MissionPage.CloseButton)
|
||||
S:HandleIcon(CovenantMissionFrame.MissionTab.MissionPage.CostFrame.CostIcon)
|
||||
|
||||
CovenantMissionFrame.MissionTab.MissionPage.Board:HookScript('OnShow', SkinMissionBoards)
|
||||
CovenantMissionFrame.MissionComplete.Board:HookScript('OnShow', SkinMissionBoards)
|
||||
end
|
||||
|
||||
local function SkinFollowerTooltip(frame)
|
||||
if not frame then return end
|
||||
|
||||
S:HandleTooltipBorderedFrame(frame)
|
||||
end
|
||||
|
||||
local function SkinAbilityTooltip(frame)
|
||||
if not frame then return end
|
||||
|
||||
for i = 1, 9 do
|
||||
select(i, frame:GetRegions()):Hide()
|
||||
end
|
||||
|
||||
local icon = frame.Icon
|
||||
icon:SetTexCoord(unpack(E.TexCoords))
|
||||
if not frame.border then
|
||||
frame.border = CreateFrame('Frame', nil, frame)
|
||||
S:HandleIcon(frame.Icon, frame.border)
|
||||
end
|
||||
|
||||
frame:CreateBackdrop('Transparent')
|
||||
end
|
||||
|
||||
function S:GarrisonTooltips()
|
||||
if not (E.private.skins.blizzard.enable ~= true or E.private.skins.blizzard.garrison and E.private.skins.blizzard.tooltip) then return end
|
||||
|
||||
SkinFollowerTooltip(_G.GarrisonFollowerTooltip)
|
||||
SkinFollowerTooltip(_G.FloatingGarrisonFollowerTooltip)
|
||||
SkinFollowerTooltip(_G.FloatingGarrisonMissionTooltip)
|
||||
SkinFollowerTooltip(_G.FloatingGarrisonShipyardFollowerTooltip)
|
||||
SkinFollowerTooltip(_G.GarrisonShipyardFollowerTooltip)
|
||||
|
||||
SkinAbilityTooltip(_G.GarrisonFollowerAbilityTooltip)
|
||||
SkinAbilityTooltip(_G.FloatingGarrisonFollowerAbilityTooltip)
|
||||
SkinAbilityTooltip(_G.GarrisonFollowerMissionAbilityWithoutCountersTooltip)
|
||||
SkinAbilityTooltip(_G.GarrisonFollowerAbilityWithoutCountersTooltip)
|
||||
|
||||
S:HandleCloseButton(_G.FloatingGarrisonFollowerTooltip.CloseButton)
|
||||
S:HandleCloseButton(_G.FloatingGarrisonFollowerAbilityTooltip.CloseButton)
|
||||
S:HandleCloseButton(_G.FloatingGarrisonMissionTooltip.CloseButton)
|
||||
S:HandleCloseButton(_G.FloatingGarrisonShipyardFollowerTooltip.CloseButton)
|
||||
|
||||
hooksecurefunc('GarrisonFollowerTooltipTemplate_SetGarrisonFollower', function(tooltipFrame)
|
||||
-- Abilities
|
||||
if tooltipFrame.numAbilitiesStyled == nil then
|
||||
tooltipFrame.numAbilitiesStyled = 1
|
||||
end
|
||||
local numAbilitiesStyled = tooltipFrame.numAbilitiesStyled
|
||||
local abilities = tooltipFrame.Abilities
|
||||
local ability = abilities[numAbilitiesStyled]
|
||||
while ability do
|
||||
local icon = ability.Icon
|
||||
icon:SetTexCoord(unpack(E.TexCoords))
|
||||
if not ability.border then
|
||||
ability.border = CreateFrame('Frame', nil, ability)
|
||||
S:HandleIcon(ability.Icon, ability.border)
|
||||
end
|
||||
|
||||
numAbilitiesStyled = numAbilitiesStyled + 1
|
||||
ability = abilities[numAbilitiesStyled]
|
||||
end
|
||||
tooltipFrame.numAbilitiesStyled = numAbilitiesStyled
|
||||
|
||||
-- Traits
|
||||
if tooltipFrame.numTraitsStyled == nil then
|
||||
tooltipFrame.numTraitsStyled = 1
|
||||
end
|
||||
local numTraitsStyled = tooltipFrame.numTraitsStyled
|
||||
local traits = tooltipFrame.Traits
|
||||
local trait = traits[numTraitsStyled]
|
||||
while trait do
|
||||
local icon = trait.Icon
|
||||
icon:SetTexCoord(unpack(E.TexCoords))
|
||||
if not trait.border then
|
||||
trait.border = CreateFrame('Frame', nil, trait)
|
||||
S:HandleIcon(trait.Icon, trait.border)
|
||||
end
|
||||
|
||||
numTraitsStyled = numTraitsStyled + 1
|
||||
trait = traits[numTraitsStyled]
|
||||
end
|
||||
tooltipFrame.numTraitsStyled = numTraitsStyled
|
||||
end)
|
||||
|
||||
hooksecurefunc('GarrisonFollowerTooltipTemplate_SetShipyardFollower', function(tooltipFrame)
|
||||
-- Properties
|
||||
if tooltipFrame.numPropertiesStyled == nil then
|
||||
tooltipFrame.numPropertiesStyled = 1
|
||||
end
|
||||
local numPropertiesStyled = tooltipFrame.numPropertiesStyled
|
||||
local properties = tooltipFrame.Properties
|
||||
local property = properties[numPropertiesStyled]
|
||||
while property do
|
||||
local icon = property.Icon
|
||||
icon:SetTexCoord(unpack(E.TexCoords))
|
||||
if not property.border then
|
||||
property.border = CreateFrame('Frame', nil, property)
|
||||
S:HandleIcon(property.Icon, property.border)
|
||||
end
|
||||
|
||||
numPropertiesStyled = numPropertiesStyled + 1
|
||||
property = properties[numPropertiesStyled]
|
||||
end
|
||||
tooltipFrame.numPropertiesStyled = numPropertiesStyled
|
||||
end)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_GarrisonUI')
|
||||
S:AddCallback('GarrisonTooltips')
|
||||
34
Modules/Skins/Blizzard/GarrisonTemplate.lua
Normal file
34
Modules/Skins/Blizzard/GarrisonTemplate.lua
Normal file
@@ -0,0 +1,34 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...))
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
local C_Garrison_GetFollowerInfo = C_Garrison.GetFollowerInfo
|
||||
local ITEM_QUALITY_COLORS = ITEM_QUALITY_COLORS
|
||||
|
||||
function S:Blizzard_GarrisonTemplates()
|
||||
if E.private.skins.blizzard.enable ~= true or (E.private.skins.blizzard.orderhall ~= true or E.private.skins.blizzard.garrison ~= true) then return end
|
||||
|
||||
hooksecurefunc(_G.GarrisonFollowerTabMixin, 'ShowFollower', function(s, followerID)
|
||||
local followerInfo = followerID and C_Garrison_GetFollowerInfo(followerID)
|
||||
if not followerInfo then return end
|
||||
|
||||
if not s.PortraitFrameStyled then
|
||||
S:HandleGarrisonPortrait(s.PortraitFrame)
|
||||
s.PortraitFrameStyled = true
|
||||
end
|
||||
|
||||
local color = followerInfo.quality and ITEM_QUALITY_COLORS[followerInfo.quality]
|
||||
if color then
|
||||
if s.PortraitFrame.backdrop then
|
||||
s.PortraitFrame.backdrop:SetBackdropBorderColor(color.r, color.g, color.b)
|
||||
end
|
||||
s.Name:SetVertexColor(color.r, color.g, color.b)
|
||||
end
|
||||
|
||||
s.XPBar:ClearAllPoints()
|
||||
s.XPBar:Point('BOTTOMLEFT', s.PortraitFrame, 'BOTTOMRIGHT', 7, -15)
|
||||
end)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_GarrisonTemplates')
|
||||
98
Modules/Skins/Blizzard/Gossip.lua
Normal file
98
Modules/Skins/Blizzard/Gossip.lua
Normal file
@@ -0,0 +1,98 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local next, pairs, ipairs = next, pairs, ipairs
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
local function handleGossipText()
|
||||
local buttons = _G.GossipFrame.buttons
|
||||
if buttons and next(buttons) then
|
||||
for _, button in ipairs(buttons) do
|
||||
local str = button:GetFontString()
|
||||
if str then
|
||||
str:SetTextColor(1, 1, 1)
|
||||
|
||||
local text = str:GetText()
|
||||
if text then
|
||||
local stripped = E:StripString(text)
|
||||
str:SetText(stripped)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function S:GossipFrame()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.gossip) then return end
|
||||
|
||||
_G.ItemTextFrame:StripTextures(true)
|
||||
_G.ItemTextFrame:CreateBackdrop('Transparent')
|
||||
|
||||
_G.ItemTextScrollFrame:StripTextures()
|
||||
|
||||
_G.GossipFrame:CreateBackdrop('Transparent')
|
||||
_G.GossipFramePortrait:Kill()
|
||||
|
||||
S:HandleCloseButton(_G.ItemTextFrameCloseButton)
|
||||
|
||||
S:HandleScrollBar(_G.GossipGreetingScrollFrameScrollBar, 5)
|
||||
S:HandleScrollBar(_G.ItemTextScrollFrameScrollBar)
|
||||
|
||||
S:HandleNextPrevButton(_G.ItemTextPrevPageButton)
|
||||
S:HandleNextPrevButton(_G.ItemTextNextPageButton)
|
||||
|
||||
_G.ItemTextPageText:SetTextColor(1, 1, 1)
|
||||
hooksecurefunc(_G.ItemTextPageText, 'SetTextColor', function(pageText, headerType, r, g, b)
|
||||
if r ~= 1 or g ~= 1 or b ~= 1 then
|
||||
pageText:SetTextColor(headerType, 1, 1, 1)
|
||||
end
|
||||
end)
|
||||
|
||||
local StripAllTextures = { 'GossipFrameGreetingPanel', 'GossipGreetingScrollFrame' }
|
||||
|
||||
for _, object in pairs(StripAllTextures) do
|
||||
_G[object]:StripTextures()
|
||||
end
|
||||
|
||||
local GossipFrame = _G.GossipFrame
|
||||
S:HandlePortraitFrame(GossipFrame)
|
||||
|
||||
local GossipGreetingScrollFrame = _G.GossipGreetingScrollFrame
|
||||
GossipGreetingScrollFrame:CreateBackdrop()
|
||||
|
||||
if E.private.skins.parchmentRemoverEnable then
|
||||
hooksecurefunc('GossipFrameUpdate', handleGossipText)
|
||||
_G.GossipGreetingText:SetTextColor(1, 1, 1)
|
||||
handleGossipText()
|
||||
else
|
||||
GossipGreetingScrollFrame.spellTex = GossipGreetingScrollFrame:CreateTexture(nil, 'ARTWORK')
|
||||
GossipGreetingScrollFrame.spellTex:SetTexture([[Interface\QuestFrame\QuestBG]])
|
||||
GossipGreetingScrollFrame.spellTex:Point('TOPLEFT', 2, -2)
|
||||
GossipGreetingScrollFrame.spellTex:Size(506, 615)
|
||||
GossipGreetingScrollFrame.spellTex:SetTexCoord(0, 1, 0.02, 1)
|
||||
end
|
||||
|
||||
_G.GossipFrameGreetingGoodbyeButton:StripTextures()
|
||||
S:HandleButton(_G.GossipFrameGreetingGoodbyeButton)
|
||||
|
||||
for i = 1, 4 do
|
||||
local notch = _G['NPCFriendshipStatusBarNotch'..i]
|
||||
if notch then
|
||||
notch:SetColorTexture(0, 0, 0)
|
||||
notch:Size(1, 16)
|
||||
end
|
||||
end
|
||||
|
||||
local NPCFriendshipStatusBar = _G.NPCFriendshipStatusBar
|
||||
NPCFriendshipStatusBar:StripTextures()
|
||||
NPCFriendshipStatusBar:SetStatusBarTexture(E.media.normTex)
|
||||
NPCFriendshipStatusBar:CreateBackdrop()
|
||||
E:RegisterStatusBar(NPCFriendshipStatusBar)
|
||||
|
||||
NPCFriendshipStatusBar.icon:ClearAllPoints()
|
||||
NPCFriendshipStatusBar.icon:Point('RIGHT', NPCFriendshipStatusBar, 'LEFT', 0, -3)
|
||||
S:HandleIcon(NPCFriendshipStatusBar.icon)
|
||||
end
|
||||
|
||||
S:AddCallback('GossipFrame')
|
||||
24
Modules/Skins/Blizzard/Guide.lua
Normal file
24
Modules/Skins/Blizzard/Guide.lua
Normal file
@@ -0,0 +1,24 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
|
||||
function S:Blizzard_NewPlayerExperienceGuide()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.guide) then return end
|
||||
|
||||
local frame = _G.GuideFrame
|
||||
S:HandlePortraitFrame(frame)
|
||||
|
||||
S:HandleScrollBar(frame.ScrollFrame.ScrollBar)
|
||||
S:HandleButton(frame.ScrollFrame.ConfirmationButton)
|
||||
|
||||
frame.ScrollFrame.Child.ObjectivesFrame:StripTextures()
|
||||
frame.ScrollFrame.Child.ObjectivesFrame:CreateBackdrop('Transparent')
|
||||
|
||||
-- Texts if parchment is enabled
|
||||
-- TO DO: Add Parchment option
|
||||
frame.Title:SetTextColor(1, 1, 1)
|
||||
frame.ScrollFrame.Child.Text:SetTextColor(1, 1, 1)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_NewPlayerExperienceGuide')
|
||||
274
Modules/Skins/Blizzard/Guild.lua
Normal file
274
Modules/Skins/Blizzard/Guild.lua
Normal file
@@ -0,0 +1,274 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local next, pairs, select, unpack = next, pairs, select, unpack
|
||||
|
||||
local CreateFrame = CreateFrame
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
local C_GuildInfo_CanViewOfficerNote = C_GuildInfo.CanViewOfficerNote
|
||||
|
||||
function S:Blizzard_GuildUI()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.guild) then return end
|
||||
|
||||
local GuildFrame = _G.GuildFrame
|
||||
S:HandlePortraitFrame(GuildFrame)
|
||||
|
||||
S:HandleCloseButton(_G.GuildMemberDetailCloseButton)
|
||||
S:HandleScrollBar(_G.GuildInfoFrameApplicantsContainerScrollBar)
|
||||
|
||||
local striptextures = {
|
||||
'GuildFrameInset',
|
||||
'GuildFrameBottomInset',
|
||||
'GuildAllPerksFrame',
|
||||
'GuildMemberDetailFrame',
|
||||
'GuildMemberNoteBackground',
|
||||
'GuildInfoFrameInfo',
|
||||
'GuildLogContainer',
|
||||
'GuildLogFrame',
|
||||
'GuildRewardsFrame',
|
||||
'GuildMemberOfficerNoteBackground',
|
||||
'GuildTextEditContainer',
|
||||
'GuildTextEditFrame',
|
||||
'GuildRecruitmentRolesFrame',
|
||||
'GuildRecruitmentAvailabilityFrame',
|
||||
'GuildRecruitmentInterestFrame',
|
||||
'GuildRecruitmentLevelFrame',
|
||||
'GuildRecruitmentCommentFrame',
|
||||
'GuildRecruitmentCommentInputFrame',
|
||||
'GuildInfoFrameApplicantsContainer',
|
||||
'GuildInfoFrameApplicants',
|
||||
'GuildNewsBossModel',
|
||||
'GuildNewsBossModelTextFrame',
|
||||
}
|
||||
|
||||
_G.GuildRewardsFrameVisitText:ClearAllPoints()
|
||||
_G.GuildRewardsFrameVisitText:Point('TOP', _G.GuildRewardsFrame, 'TOP', 0, 30)
|
||||
for _, frame in pairs(striptextures) do
|
||||
_G[frame]:StripTextures()
|
||||
end
|
||||
|
||||
_G.GuildNewsBossModel:CreateBackdrop('Transparent')
|
||||
_G.GuildNewsBossModelTextFrame:CreateBackdrop()
|
||||
_G.GuildNewsBossModelTextFrame.backdrop:Point('TOPLEFT', _G.GuildNewsBossModel.backdrop, 'BOTTOMLEFT', 0, -1)
|
||||
_G.GuildNewsBossModel:Point('TOPLEFT', GuildFrame, 'TOPRIGHT', 4, -43)
|
||||
|
||||
local buttons = {
|
||||
'GuildMemberRemoveButton',
|
||||
'GuildMemberGroupInviteButton',
|
||||
'GuildAddMemberButton',
|
||||
'GuildViewLogButton',
|
||||
'GuildControlButton',
|
||||
'GuildRecruitmentListGuildButton',
|
||||
'GuildTextEditFrameAcceptButton',
|
||||
'GuildRecruitmentInviteButton',
|
||||
'GuildRecruitmentMessageButton',
|
||||
'GuildRecruitmentDeclineButton',
|
||||
}
|
||||
|
||||
for i, button in pairs(buttons) do
|
||||
if i == 1 then
|
||||
S:HandleButton(_G[button])
|
||||
else
|
||||
S:HandleButton(_G[button], true)
|
||||
end
|
||||
end
|
||||
|
||||
local checkbuttons = {
|
||||
'Quest',
|
||||
'Dungeon',
|
||||
'Raid',
|
||||
'PvP',
|
||||
'RP',
|
||||
'Weekdays',
|
||||
'Weekends',
|
||||
}
|
||||
|
||||
for _, frame in pairs(checkbuttons) do
|
||||
S:HandleCheckBox(_G['GuildRecruitment'..frame..'Button'])
|
||||
end
|
||||
|
||||
S:HandleCheckBox(_G.GuildRecruitmentTankButton:GetChildren())
|
||||
S:HandleCheckBox(_G.GuildRecruitmentHealerButton:GetChildren())
|
||||
S:HandleCheckBox(_G.GuildRecruitmentDamagerButton:GetChildren())
|
||||
S:HandleButton(_G.GuildRecruitmentLevelAnyButton)
|
||||
S:HandleButton(_G.GuildRecruitmentLevelMaxButton)
|
||||
|
||||
for i=1,5 do
|
||||
S:HandleTab(_G['GuildFrameTab'..i])
|
||||
end
|
||||
|
||||
S:HandleScrollBar(_G.GuildPerksContainerScrollBar, 4)
|
||||
|
||||
local GuildFactionBar = _G.GuildFactionBar
|
||||
GuildFactionBar:StripTextures()
|
||||
GuildFactionBar.progress:SetTexture(E.media.normTex)
|
||||
E:RegisterStatusBar(GuildFactionBar.progress)
|
||||
GuildFactionBar:CreateBackdrop()
|
||||
GuildFactionBar.backdrop:Point('TOPLEFT', GuildFactionBar.progress, 'TOPLEFT', -E.Border, E.Border)
|
||||
GuildFactionBar.backdrop:Point('BOTTOMRIGHT', GuildFactionBar, 'BOTTOMRIGHT', E.Spacing, E.PixelMode and 1 or 0)
|
||||
|
||||
--Roster
|
||||
S:HandleScrollBar(_G.GuildRosterContainerScrollBar, 5)
|
||||
S:HandleCheckBox(_G.GuildRosterShowOfflineButton)
|
||||
|
||||
for i=1, 4 do
|
||||
_G['GuildRosterColumnButton'..i]:StripTextures(true)
|
||||
end
|
||||
|
||||
S:HandleDropDownBox(_G.GuildRosterViewDropdown, 200)
|
||||
|
||||
for i=1, 14 do
|
||||
S:HandleButton(_G['GuildRosterContainerButton'..i..'HeaderButton'], true)
|
||||
end
|
||||
|
||||
--Detail Frame
|
||||
_G.GuildMemberDetailFrame:CreateBackdrop('Transparent')
|
||||
_G.GuildMemberNoteBackground:CreateBackdrop('Transparent')
|
||||
_G.GuildMemberOfficerNoteBackground:CreateBackdrop('Transparent')
|
||||
_G.GuildMemberRankDropdown:SetFrameLevel(_G.GuildMemberRankDropdown:GetFrameLevel() + 5)
|
||||
S:HandleDropDownBox(_G.GuildMemberRankDropdown, 175)
|
||||
|
||||
--Increase height of GuildMemberDetailFrame by changing global variables
|
||||
local GuildMemberDetailFrame = _G.GuildMemberDetailFrame
|
||||
local GuildMemberDetailName = _G.GuildMemberDetailName
|
||||
local GuildMemberDetailRankLabel = _G.GuildMemberDetailRankLabel
|
||||
hooksecurefunc(GuildMemberDetailFrame, 'SetHeight', function(_, _, breakLoop)
|
||||
if breakLoop then return; end
|
||||
if C_GuildInfo_CanViewOfficerNote() then
|
||||
GuildMemberDetailFrame:Height(_G.GUILD_DETAIL_OFFICER_HEIGHT + 50 + GuildMemberDetailName:GetHeight() + GuildMemberDetailRankLabel:GetHeight(), true)
|
||||
else
|
||||
GuildMemberDetailFrame:Height(_G.GUILD_DETAIL_NORM_HEIGHT + 50 + GuildMemberDetailName:GetHeight() + GuildMemberDetailRankLabel:GetHeight(), true)
|
||||
end
|
||||
end)
|
||||
|
||||
--News
|
||||
_G.GuildNewsFrame:StripTextures()
|
||||
for i=1, 17 do
|
||||
if _G['GuildNewsContainerButton'..i] then
|
||||
_G['GuildNewsContainerButton'..i].header:Kill()
|
||||
end
|
||||
end
|
||||
|
||||
_G.GuildNewsFiltersFrame:StripTextures()
|
||||
_G.GuildNewsFiltersFrame:CreateBackdrop('Transparent')
|
||||
S:HandleCloseButton(_G.GuildNewsFiltersFrameCloseButton)
|
||||
|
||||
for i = 1, #_G.GuildNewsFiltersFrame.GuildNewsFilterButtons do
|
||||
S:HandleCheckBox(_G.GuildNewsFiltersFrame.GuildNewsFilterButtons[i])
|
||||
end
|
||||
|
||||
_G.GuildNewsFiltersFrame:Point('TOPLEFT', GuildFrame, 'TOPRIGHT', 4, -20)
|
||||
S:HandleScrollBar(_G.GuildNewsContainerScrollBar, 4)
|
||||
|
||||
--Info Frame
|
||||
S:HandleScrollBar(_G.GuildInfoDetailsFrameScrollBar, 4)
|
||||
|
||||
for i=1, 3 do
|
||||
_G['GuildInfoFrameTab'..i]:StripTextures()
|
||||
end
|
||||
|
||||
local GuildInfoFrameInfo = _G.GuildInfoFrameInfo
|
||||
local backdrop1 = CreateFrame('Frame', nil, GuildInfoFrameInfo, 'BackdropTemplate')
|
||||
backdrop1:SetTemplate('Transparent')
|
||||
backdrop1:SetFrameLevel(GuildInfoFrameInfo:GetFrameLevel() - 1)
|
||||
backdrop1:Point('TOPLEFT', GuildInfoFrameInfo, 'TOPLEFT', 2, -22)
|
||||
backdrop1:Point('BOTTOMRIGHT', GuildInfoFrameInfo, 'BOTTOMRIGHT', 0, 200)
|
||||
|
||||
local backdrop2 = CreateFrame('Frame', nil, GuildInfoFrameInfo, 'BackdropTemplate')
|
||||
backdrop2:SetTemplate('Transparent')
|
||||
backdrop2:SetFrameLevel(GuildInfoFrameInfo:GetFrameLevel() - 1)
|
||||
backdrop2:Point('TOPLEFT', GuildInfoFrameInfo, 'TOPLEFT', 2, -158)
|
||||
backdrop2:Point('BOTTOMRIGHT', GuildInfoFrameInfo, 'BOTTOMRIGHT', 0, 118)
|
||||
|
||||
local backdrop3 = CreateFrame('Frame', nil, GuildInfoFrameInfo, 'BackdropTemplate')
|
||||
backdrop3:SetTemplate('Transparent')
|
||||
backdrop3:SetFrameLevel(GuildInfoFrameInfo:GetFrameLevel() - 1)
|
||||
backdrop3:Point('TOPLEFT', GuildInfoFrameInfo, 'TOPLEFT', 2, -233)
|
||||
backdrop3:Point('BOTTOMRIGHT', GuildInfoFrameInfo, 'BOTTOMRIGHT', 0, 3)
|
||||
|
||||
_G.GuildRecruitmentCommentInputFrame:CreateBackdrop('Transparent')
|
||||
|
||||
for _, button in next, _G.GuildInfoFrameApplicantsContainer.buttons do
|
||||
button.selectedTex:Kill()
|
||||
button:GetHighlightTexture():Kill()
|
||||
button:SetBackdrop()
|
||||
end
|
||||
|
||||
--Text Edit Frame
|
||||
_G.GuildTextEditFrame:CreateBackdrop('Transparent')
|
||||
S:HandleScrollBar(_G.GuildTextEditScrollFrameScrollBar, 5)
|
||||
_G.GuildTextEditContainer:CreateBackdrop('Transparent')
|
||||
for i=1, _G.GuildTextEditFrame:GetNumChildren() do
|
||||
local child = select(i, _G.GuildTextEditFrame:GetChildren())
|
||||
if child:GetName() == 'GuildTextEditFrameCloseButton' and child:GetWidth() < 33 then
|
||||
S:HandleCloseButton(child)
|
||||
elseif child:GetName() == 'GuildTextEditFrameCloseButton' then
|
||||
S:HandleButton(child, true)
|
||||
end
|
||||
end
|
||||
|
||||
--Guild Log
|
||||
local GuildLogFrame = _G.GuildLogFrame
|
||||
S:HandleScrollBar(_G.GuildLogScrollFrameScrollBar, 4)
|
||||
GuildLogFrame:CreateBackdrop('Transparent')
|
||||
|
||||
--Blizzard has two buttons with the same name, this is a fucked up way of determining that it isn't the other button
|
||||
for i=1, GuildLogFrame:GetNumChildren() do
|
||||
local child = select(i, GuildLogFrame:GetChildren())
|
||||
if child:GetName() == 'GuildLogFrameCloseButton' and child:GetWidth() < 33 then
|
||||
S:HandleCloseButton(child)
|
||||
elseif child:GetName() == 'GuildLogFrameCloseButton' then
|
||||
S:HandleButton(child, true)
|
||||
end
|
||||
end
|
||||
|
||||
--Perks
|
||||
for i=1, 9 do
|
||||
local button = _G['GuildPerksContainerButton'..i]
|
||||
button:DisableDrawLayer('BACKGROUND')
|
||||
button:DisableDrawLayer('BORDER')
|
||||
|
||||
button.icon:SetTexCoord(unpack(E.TexCoords))
|
||||
button:CreateBackdrop()
|
||||
button.backdrop:SetOutside(button.icon)
|
||||
end
|
||||
|
||||
--Rewards
|
||||
S:HandleScrollBar(_G.GuildRewardsContainerScrollBar, 5)
|
||||
|
||||
for i=1, 8 do
|
||||
local button = _G['GuildRewardsContainerButton'..i]
|
||||
button:StripTextures()
|
||||
|
||||
if button.icon then
|
||||
button.icon:SetTexCoord(unpack(E.TexCoords))
|
||||
button.icon:ClearAllPoints()
|
||||
button.icon:Point('TOPLEFT', 2, -2)
|
||||
button:CreateBackdrop()
|
||||
button.backdrop:SetOutside(button.icon)
|
||||
button.icon:SetParent(button.backdrop)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function S:GuildInviteFrame()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.guild) then return end
|
||||
|
||||
local GuildInviteFrame = _G.GuildInviteFrame
|
||||
GuildInviteFrame:StripTextures()
|
||||
GuildInviteFrame:CreateBackdrop('Transparent')
|
||||
GuildInviteFrame.Points:ClearAllPoints()
|
||||
GuildInviteFrame.Points:Point('TOP', GuildInviteFrame, 'CENTER', 15, -25)
|
||||
S:HandleButton(_G.GuildInviteFrameJoinButton)
|
||||
S:HandleButton(_G.GuildInviteFrameDeclineButton)
|
||||
GuildInviteFrame:Height(225)
|
||||
GuildInviteFrame:HookScript('OnEvent', function()
|
||||
GuildInviteFrame:Height(225)
|
||||
end)
|
||||
|
||||
_G.GuildInviteFrameWarningText:Kill()
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_GuildUI')
|
||||
S:AddCallback('GuildInviteFrame')
|
||||
100
Modules/Skins/Blizzard/GuildBank.lua
Normal file
100
Modules/Skins/Blizzard/GuildBank.lua
Normal file
@@ -0,0 +1,100 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local select, unpack = select, unpack
|
||||
local CreateFrame = CreateFrame
|
||||
|
||||
function S:Blizzard_GuildBankUI()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.gbank) then return end
|
||||
|
||||
local GuildBankFrame = _G.GuildBankFrame
|
||||
GuildBankFrame:StripTextures()
|
||||
GuildBankFrame:CreateBackdrop('Transparent')
|
||||
_G.GuildBankEmblemFrame:StripTextures(true)
|
||||
_G.GuildBankMoneyFrameBackground:Kill()
|
||||
S:HandleScrollBar(_G.GuildBankPopupScrollFrameScrollBar)
|
||||
|
||||
--Close button doesn't have a fucking name, extreme hackage
|
||||
for i = 1, GuildBankFrame:GetNumChildren() do
|
||||
local child = select(i, GuildBankFrame:GetChildren())
|
||||
if child.GetPushedTexture and child:GetPushedTexture() and not child:GetName() then
|
||||
S:HandleCloseButton(child)
|
||||
child:Point('TOPRIGHT', 0, 0)
|
||||
child:SetFrameLevel(child:GetFrameLevel()+1)
|
||||
end
|
||||
end
|
||||
|
||||
S:HandleButton(_G.GuildBankFrameDepositButton, true)
|
||||
S:HandleButton(_G.GuildBankFrameWithdrawButton, true)
|
||||
S:HandleButton(_G.GuildBankInfoSaveButton, true)
|
||||
S:HandleButton(_G.GuildBankFramePurchaseButton, true)
|
||||
|
||||
_G.GuildBankFrameWithdrawButton:Point('RIGHT', _G.GuildBankFrameDepositButton, 'LEFT', -2, 0)
|
||||
_G.GuildBankInfoScrollFrame:Point('TOPLEFT', _G.GuildBankInfo, 'TOPLEFT', -10, 12)
|
||||
_G.GuildBankInfoScrollFrame:StripTextures()
|
||||
_G.GuildBankInfoScrollFrame:Width(_G.GuildBankInfoScrollFrame:GetWidth() - 8)
|
||||
_G.GuildBankTransactionsScrollFrame:StripTextures()
|
||||
|
||||
GuildBankFrame.inset = CreateFrame('Frame', nil, GuildBankFrame, 'BackdropTemplate')
|
||||
GuildBankFrame.inset:SetTemplate()
|
||||
GuildBankFrame.inset:Point('TOPLEFT', 20, -58)
|
||||
GuildBankFrame.inset:Point('BOTTOMRIGHT', -16, 60)
|
||||
|
||||
for i = 1, _G.NUM_GUILDBANK_COLUMNS do
|
||||
_G['GuildBankColumn'..i]:StripTextures()
|
||||
|
||||
for x = 1, _G.NUM_SLOTS_PER_GUILDBANK_GROUP do
|
||||
local button = _G['GuildBankColumn'..i..'Button'..x]
|
||||
local icon = _G['GuildBankColumn'..i..'Button'..x..'IconTexture']
|
||||
local texture = _G['GuildBankColumn'..i..'Button'..x..'NormalTexture']
|
||||
if texture then
|
||||
texture:SetTexture()
|
||||
end
|
||||
|
||||
button:StyleButton()
|
||||
button:CreateBackdrop(nil, true)
|
||||
|
||||
icon:SetInside()
|
||||
icon:SetTexCoord(unpack(E.TexCoords))
|
||||
S:HandleIconBorder(button.IconBorder)
|
||||
end
|
||||
end
|
||||
|
||||
for i = 1, _G.MAX_GUILDBANK_TABS do
|
||||
local button = _G['GuildBankTab'..i..'Button']
|
||||
local texture = _G['GuildBankTab'..i..'ButtonIconTexture']
|
||||
_G['GuildBankTab'..i]:StripTextures(true)
|
||||
|
||||
button:StripTextures()
|
||||
button:StyleButton(true)
|
||||
button:CreateBackdrop(nil, true)
|
||||
button.backdrop:SetAllPoints()
|
||||
|
||||
texture:SetInside()
|
||||
texture:SetTexCoord(unpack(E.TexCoords))
|
||||
end
|
||||
|
||||
for i = 1, 4 do
|
||||
S:HandleTab(_G['GuildBankFrameTab'..i])
|
||||
end
|
||||
|
||||
local GuildItemSearchBox = _G.GuildItemSearchBox
|
||||
GuildItemSearchBox.Left:Kill()
|
||||
GuildItemSearchBox.Middle:Kill()
|
||||
GuildItemSearchBox.Right:Kill()
|
||||
GuildItemSearchBox.searchIcon:Kill()
|
||||
GuildItemSearchBox:CreateBackdrop('Overlay')
|
||||
GuildItemSearchBox.backdrop:Point('TOPLEFT', 10, -1)
|
||||
GuildItemSearchBox.backdrop:Point('BOTTOMRIGHT', -1, 1)
|
||||
|
||||
S:HandleScrollBar(_G.GuildBankTransactionsScrollFrameScrollBar)
|
||||
S:HandleScrollBar(_G.GuildBankInfoScrollFrameScrollBar)
|
||||
|
||||
--Popup
|
||||
_G.GuildBankPopupFrame:Show() --Toggle the frame in order to create the necessary button elements
|
||||
_G.GuildBankPopupFrame:Hide()
|
||||
S:HandleIconSelectionFrame(_G.GuildBankPopupFrame, _G.NUM_GUILDBANK_ICONS_SHOWN, 'GuildBankPopupButton', 'GuildBankPopup')
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_GuildBankUI')
|
||||
143
Modules/Skins/Blizzard/GuildControl.lua
Normal file
143
Modules/Skins/Blizzard/GuildControl.lua
Normal file
@@ -0,0 +1,143 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local unpack = unpack
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
local GuildControlGetNumRanks = GuildControlGetNumRanks
|
||||
local GetNumGuildBankTabs = GetNumGuildBankTabs
|
||||
|
||||
local function SkinGuildRanks()
|
||||
for i=1, GuildControlGetNumRanks() do
|
||||
local rankFrame = _G['GuildControlUIRankOrderFrameRank'..i]
|
||||
if rankFrame then
|
||||
if not rankFrame.nameBox.backdrop then
|
||||
S:HandleButton(rankFrame.downButton)
|
||||
S:HandleButton(rankFrame.upButton)
|
||||
S:HandleButton(rankFrame.deleteButton)
|
||||
S:HandleEditBox(rankFrame.nameBox)
|
||||
end
|
||||
|
||||
rankFrame.nameBox.backdrop:ClearAllPoints()
|
||||
rankFrame.nameBox.backdrop:Point('TOPLEFT', -2, -4)
|
||||
rankFrame.nameBox.backdrop:Point('BOTTOMRIGHT', -4, 4)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function fixSkin(frame)
|
||||
frame.backdrop:Hide();
|
||||
--Initiate fucked up method of creating a backdrop
|
||||
if not E.PixelMode then
|
||||
frame.bg1 = frame:CreateTexture(nil, 'BACKGROUND')
|
||||
frame.bg1:SetDrawLayer('BACKGROUND', 4)
|
||||
frame.bg1:SetTexture(E.media.normTex) --Default TukUI users this is normTex, normTex doesn't exist
|
||||
E:RegisterStatusBar(frame.bg1)
|
||||
frame.bg1:SetVertexColor(unpack(E.media.backdropcolor))
|
||||
frame.bg1:Point('TOPLEFT', frame.backdrop, 'TOPLEFT', 4, -4)
|
||||
frame.bg1:Point('BOTTOMRIGHT', frame.backdrop, 'BOTTOMRIGHT', -4, 4)
|
||||
|
||||
frame.bg2 = frame:CreateTexture(nil, 'BACKGROUND')
|
||||
frame.bg2:SetDrawLayer('BACKGROUND', 3)
|
||||
frame.bg2:SetColorTexture(0,0,0)
|
||||
frame.bg2:Point('TOPLEFT', frame.backdrop, 'TOPLEFT', 3, -3)
|
||||
frame.bg2:Point('BOTTOMRIGHT', frame.backdrop, 'BOTTOMRIGHT', -3, 3)
|
||||
|
||||
frame.bg3 = frame:CreateTexture(nil, 'BACKGROUND')
|
||||
frame.bg3:SetDrawLayer('BACKGROUND', 2)
|
||||
frame.bg3:SetColorTexture(unpack(E.media.bordercolor))
|
||||
frame.bg3:Point('TOPLEFT', frame.backdrop, 'TOPLEFT', 2, -2)
|
||||
frame.bg3:Point('BOTTOMRIGHT', frame.backdrop, 'BOTTOMRIGHT', -2, 2)
|
||||
|
||||
frame.bg4 = frame:CreateTexture(nil, 'BACKGROUND')
|
||||
frame.bg4:SetDrawLayer('BACKGROUND', 1)
|
||||
frame.bg4:SetColorTexture(0,0,0)
|
||||
frame.bg4:Point('TOPLEFT', frame.backdrop, 'TOPLEFT', 1, -1)
|
||||
frame.bg4:Point('BOTTOMRIGHT', frame.backdrop, 'BOTTOMRIGHT', -1, 1)
|
||||
else
|
||||
frame.bg1 = frame:CreateTexture(nil, 'BACKGROUND')
|
||||
frame.bg1:SetDrawLayer('BACKGROUND', 4)
|
||||
frame.bg1:SetTexture(E.media.normTex) --Default TukUI users this is normTex, normTex doesn't exist
|
||||
E:RegisterStatusBar(frame.bg1)
|
||||
frame.bg1:SetVertexColor(unpack(E.media.backdropcolor))
|
||||
frame.bg1:SetInside(frame.backdrop)
|
||||
|
||||
frame.bg3 = frame:CreateTexture(nil, 'BACKGROUND')
|
||||
frame.bg3:SetDrawLayer('BACKGROUND', 2)
|
||||
frame.bg3:SetColorTexture(unpack(E.media.bordercolor))
|
||||
frame.bg3:SetAllPoints(frame.backdrop)
|
||||
end
|
||||
end
|
||||
|
||||
function S:Blizzard_GuildControlUI()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.guildcontrol) then return end
|
||||
|
||||
local GuildControlUI = _G.GuildControlUI
|
||||
GuildControlUI:StripTextures()
|
||||
GuildControlUI:CreateBackdrop('Transparent')
|
||||
_G.GuildControlUIHbar:StripTextures()
|
||||
_G.GuildControlUIRankBankFrameInset:StripTextures()
|
||||
_G.GuildControlUIRankBankFrameInsetScrollFrame:StripTextures()
|
||||
S:HandleCloseButton(_G.GuildControlUICloseButton)
|
||||
S:HandleScrollBar(_G.GuildControlUIRankBankFrameInsetScrollFrameScrollBar);
|
||||
|
||||
hooksecurefunc('GuildControlUI_RankOrder_Update', SkinGuildRanks)
|
||||
_G.GuildControlUIRankOrderFrameNewButton:HookScript('OnClick', function()
|
||||
E:Delay(1, SkinGuildRanks)
|
||||
end)
|
||||
|
||||
S:HandleDropDownBox(_G.GuildControlUINavigationDropDown)
|
||||
S:HandleDropDownBox(_G.GuildControlUIRankSettingsFrameRankDropDown, 180)
|
||||
_G.GuildControlUINavigationDropDownButton:Width(20)
|
||||
_G.GuildControlUIRankSettingsFrameRankDropDownButton:Width(20)
|
||||
|
||||
for i=1, _G.NUM_RANK_FLAGS do
|
||||
if _G['GuildControlUIRankSettingsFrameCheckbox'..i] then
|
||||
S:HandleCheckBox(_G['GuildControlUIRankSettingsFrameCheckbox'..i])
|
||||
end
|
||||
end
|
||||
|
||||
S:HandleButton(_G.GuildControlUIRankOrderFrameNewButton)
|
||||
|
||||
local GuildControlUIRankSettingsFrameGoldBox = _G.GuildControlUIRankSettingsFrameGoldBox
|
||||
S:HandleEditBox(GuildControlUIRankSettingsFrameGoldBox)
|
||||
GuildControlUIRankSettingsFrameGoldBox.backdrop:Point('TOPLEFT', -2, -4)
|
||||
GuildControlUIRankSettingsFrameGoldBox.backdrop:Point('BOTTOMRIGHT', 2, 4)
|
||||
GuildControlUIRankSettingsFrameGoldBox:StripTextures()
|
||||
|
||||
_G.GuildControlUIRankBankFrame:StripTextures()
|
||||
|
||||
local once = false
|
||||
hooksecurefunc('GuildControlUI_BankTabPermissions_Update', function()
|
||||
local numTabs = GetNumGuildBankTabs()
|
||||
if numTabs < _G.MAX_BUY_GUILDBANK_TABS then
|
||||
numTabs = numTabs + 1
|
||||
end
|
||||
for i=1, numTabs do
|
||||
local tab = _G['GuildControlBankTab'..i..'Owned']
|
||||
local icon = tab.tabIcon
|
||||
|
||||
icon:SetTexCoord(unpack(E.TexCoords))
|
||||
|
||||
if once == false then
|
||||
S:HandleButton(_G['GuildControlBankTab'..i..'BuyPurchaseButton'])
|
||||
S:HandleEditBox(_G['GuildControlBankTab'..i..'OwnedStackBox'])
|
||||
S:HandleCheckBox(_G['GuildControlBankTab'..i..'OwnedViewCheck'])
|
||||
S:HandleCheckBox(_G['GuildControlBankTab'..i..'OwnedDepositCheck'])
|
||||
S:HandleCheckBox(_G['GuildControlBankTab'..i..'OwnedUpdateInfoCheck'])
|
||||
|
||||
fixSkin(_G['GuildControlBankTab'..i..'OwnedStackBox'])
|
||||
fixSkin(_G['GuildControlBankTab'..i..'OwnedViewCheck'])
|
||||
fixSkin(_G['GuildControlBankTab'..i..'OwnedDepositCheck'])
|
||||
fixSkin(_G['GuildControlBankTab'..i..'OwnedUpdateInfoCheck'])
|
||||
|
||||
end
|
||||
end
|
||||
once = true
|
||||
end)
|
||||
|
||||
S:HandleDropDownBox(_G.GuildControlUIRankBankFrameRankDropDown, 180)
|
||||
_G.GuildControlUIRankBankFrameRankDropDownButton:Width(20)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_GuildControlUI')
|
||||
39
Modules/Skins/Blizzard/GuildRegistrar.lua
Normal file
39
Modules/Skins/Blizzard/GuildRegistrar.lua
Normal file
@@ -0,0 +1,39 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local select = select
|
||||
|
||||
function S:GuildRegistrarFrame()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.guildregistrar) then return end
|
||||
|
||||
local GuildRegistrarFrame = _G.GuildRegistrarFrame
|
||||
S:HandlePortraitFrame(GuildRegistrarFrame)
|
||||
|
||||
_G.GuildRegistrarFrameEditBox:StripTextures()
|
||||
_G.GuildRegistrarGreetingFrame:StripTextures()
|
||||
S:HandleButton(_G.GuildRegistrarFrameGoodbyeButton)
|
||||
S:HandleButton(_G.GuildRegistrarFrameCancelButton)
|
||||
S:HandleButton(_G.GuildRegistrarFramePurchaseButton)
|
||||
S:HandleEditBox(_G.GuildRegistrarFrameEditBox)
|
||||
|
||||
for i = 1, _G.GuildRegistrarFrameEditBox:GetNumRegions() do
|
||||
local region = select(i, _G.GuildRegistrarFrameEditBox:GetRegions())
|
||||
if region and region:IsObjectType('Texture') then
|
||||
if region:GetTexture() == [[Interface\ChatFrame\UI-ChatInputBorder-Left]] or region:GetTexture() == [[Interface\ChatFrame\UI-ChatInputBorder-Right]] then
|
||||
region:Kill()
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
_G.GuildRegistrarFrameEditBox:Height(20)
|
||||
|
||||
for i=1, 2 do
|
||||
_G['GuildRegistrarButton'..i]:GetFontString():SetTextColor(1, 1, 1)
|
||||
end
|
||||
|
||||
_G.GuildRegistrarPurchaseText:SetTextColor(1, 1, 1)
|
||||
_G.AvailableServicesText:SetTextColor(1, 1, 0)
|
||||
end
|
||||
|
||||
S:AddCallback('GuildRegistrarFrame')
|
||||
174
Modules/Skins/Blizzard/Help.lua
Normal file
174
Modules/Skins/Blizzard/Help.lua
Normal file
@@ -0,0 +1,174 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
|
||||
local function OnEnter(f)
|
||||
if f.selected:IsShown() or f:IsEnabled() then
|
||||
f.text:SetTextColor(1, 1, 1)
|
||||
end
|
||||
end
|
||||
|
||||
local function OnLeave(f)
|
||||
if f.selected:IsShown() or f:IsEnabled() then
|
||||
f.text:SetTextColor(1, .8, 0)
|
||||
end
|
||||
end
|
||||
|
||||
local function HandleTabButton(button)
|
||||
button.selected:SetColorTexture(1, 1, 1, 0.3)
|
||||
button.selected:SetDrawLayer('BACKGROUND')
|
||||
|
||||
S:HandleButton(button)
|
||||
|
||||
button:SetScript('OnEnter', OnEnter)
|
||||
button:SetScript('OnLeave', OnLeave)
|
||||
end
|
||||
|
||||
function S:HelpFrame()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.help) then return end
|
||||
|
||||
local frame = _G.HelpFrame
|
||||
frame:StripTextures()
|
||||
frame:CreateBackdrop('Transparent')
|
||||
S:HandleCloseButton(_G.HelpFrameCloseButton, frame.backdrop)
|
||||
|
||||
local browser = _G.HelpBrowser
|
||||
browser.BrowserInset:StripTextures()
|
||||
|
||||
local frames = {
|
||||
_G.HelpFrameLeftInset,
|
||||
_G.HelpFrameMainInset,
|
||||
_G.HelpFrameKnowledgebase,
|
||||
_G.HelpFrameKnowledgebaseErrorFrame,
|
||||
}
|
||||
|
||||
local buttons = {
|
||||
_G.HelpFrameAccountSecurityOpenTicket,
|
||||
_G.HelpFrameOpenTicketHelpOpenTicket,
|
||||
_G.HelpFrameKnowledgebaseSearchButton,
|
||||
_G.HelpFrameKnowledgebaseNavBarHomeButton,
|
||||
_G.HelpFrameCharacterStuckStuck,
|
||||
_G.HelpFrameSubmitSuggestionSubmit,
|
||||
_G.HelpFrameReportBugSubmit,
|
||||
}
|
||||
|
||||
for i = 1, #frames do
|
||||
frames[i]:StripTextures(true)
|
||||
frames[i]:CreateBackdrop('Transparent')
|
||||
end
|
||||
|
||||
local Header = _G.HelpFrame.Header
|
||||
Header:StripTextures(true)
|
||||
Header:CreateBackdrop(nil, true)
|
||||
Header:SetFrameLevel(Header:GetFrameLevel() + 2)
|
||||
_G.HelpFrameKnowledgebaseErrorFrame:SetFrameLevel(_G.HelpFrameKnowledgebaseErrorFrame:GetFrameLevel() + 2)
|
||||
|
||||
local HelpFrameReportBugScrollFrame = _G.HelpFrameReportBugScrollFrame
|
||||
HelpFrameReportBugScrollFrame:StripTextures()
|
||||
HelpFrameReportBugScrollFrame:CreateBackdrop('Transparent')
|
||||
HelpFrameReportBugScrollFrame.backdrop:Point('TOPLEFT', -4, 4)
|
||||
HelpFrameReportBugScrollFrame.backdrop:Point('BOTTOMRIGHT', 6, -4)
|
||||
|
||||
for i = 1, _G.HelpFrameReportBug:GetNumChildren() do
|
||||
local child = select(i, _G.HelpFrameReportBug:GetChildren())
|
||||
if child and not child:GetName() then
|
||||
child:StripTextures()
|
||||
end
|
||||
end
|
||||
|
||||
S:HandleScrollBar(_G.HelpFrameReportBugScrollFrameScrollBar)
|
||||
|
||||
local HelpFrameSubmitSuggestionScrollFrame = _G.HelpFrameSubmitSuggestionScrollFrame
|
||||
HelpFrameSubmitSuggestionScrollFrame:StripTextures()
|
||||
HelpFrameSubmitSuggestionScrollFrame:CreateBackdrop('Transparent')
|
||||
HelpFrameSubmitSuggestionScrollFrame.backdrop:Point('TOPLEFT', -4, 4)
|
||||
HelpFrameSubmitSuggestionScrollFrame.backdrop:Point('BOTTOMRIGHT', 6, -4)
|
||||
for i = 1, _G.HelpFrameSubmitSuggestion:GetNumChildren() do
|
||||
local child = select(i, _G.HelpFrameSubmitSuggestion:GetChildren())
|
||||
if not child:GetName() then
|
||||
child:StripTextures()
|
||||
end
|
||||
end
|
||||
|
||||
S:HandleScrollBar(_G.HelpFrameSubmitSuggestionScrollFrameScrollBar)
|
||||
S:HandleScrollBar(_G.HelpFrameKnowledgebaseScrollFrame2ScrollBar)
|
||||
|
||||
-- skin sub buttons
|
||||
for i = 1, #buttons do
|
||||
buttons[i]:StripTextures(true)
|
||||
S:HandleButton(buttons[i], true)
|
||||
|
||||
if buttons[i].text then
|
||||
buttons[i].text:ClearAllPoints()
|
||||
buttons[i].text:Point('CENTER')
|
||||
buttons[i].text:SetJustifyH('CENTER')
|
||||
end
|
||||
end
|
||||
|
||||
-- skin main buttons
|
||||
for i = 1, 6 do
|
||||
HandleTabButton(_G['HelpFrameButton'..i])
|
||||
end
|
||||
HandleTabButton(_G.HelpFrameButton16)
|
||||
|
||||
-- skin table options
|
||||
for i = 1, _G.HelpFrameKnowledgebaseScrollFrameScrollChild:GetNumChildren() do
|
||||
local b = _G['HelpFrameKnowledgebaseScrollFrameButton'..i]
|
||||
b:StripTextures(true)
|
||||
S:HandleButton(b, true)
|
||||
end
|
||||
|
||||
--Navigation buttons
|
||||
local HelpBrowserNavHome = _G.HelpBrowserNavHome
|
||||
S:HandleButton(HelpBrowserNavHome)
|
||||
HelpBrowserNavHome:Size(26)
|
||||
HelpBrowserNavHome:ClearAllPoints()
|
||||
HelpBrowserNavHome:Point('BOTTOMLEFT', _G.HelpBrowser, 'TOPLEFT', -5, 9)
|
||||
S:HandleNextPrevButton(_G.HelpBrowserNavBack)
|
||||
_G.HelpBrowserNavBack:Size(26)
|
||||
S:HandleNextPrevButton(_G.HelpBrowserNavForward)
|
||||
_G.HelpBrowserNavForward:Size(26)
|
||||
S:HandleButton(_G.HelpBrowserNavReload)
|
||||
_G.HelpBrowserNavReload:Size(26)
|
||||
S:HandleButton(_G.HelpBrowserNavStop)
|
||||
_G.HelpBrowserNavStop:Size(26)
|
||||
S:HandleButton(_G.HelpBrowserBrowserSettings)
|
||||
_G.HelpBrowserBrowserSettings:Size(26)
|
||||
_G.HelpBrowserBrowserSettings:ClearAllPoints()
|
||||
_G.HelpBrowserBrowserSettings:Point('TOPRIGHT', _G.HelpFrameCloseButton, 'TOPLEFT', -3, -8)
|
||||
|
||||
_G.BrowserSettingsTooltip:StripTextures()
|
||||
_G.BrowserSettingsTooltip:CreateBackdrop('Transparent')
|
||||
S:HandleButton(_G.BrowserSettingsTooltip.CookiesButton)
|
||||
|
||||
-- skin misc items
|
||||
_G.HelpFrameKnowledgebaseSearchBox:ClearAllPoints()
|
||||
_G.HelpFrameKnowledgebaseSearchBox:Point('TOPLEFT', _G.HelpFrameMainInset, 'TOPLEFT', 13, -10)
|
||||
_G.HelpFrameKnowledgebaseNavBar:StripTextures()
|
||||
|
||||
local HelpFrame = _G.HelpFrame
|
||||
HelpFrame:StripTextures(true)
|
||||
HelpFrame:CreateBackdrop('Transparent')
|
||||
S:HandleEditBox(_G.HelpFrameKnowledgebaseSearchBox)
|
||||
S:HandleScrollBar(_G.HelpFrameKnowledgebaseScrollFrameScrollBar, 5)
|
||||
S:HandleCloseButton(_G.HelpFrameKnowledgebaseErrorFrameCloseButton, _G.HelpFrameKnowledgebaseErrorFrame.backdrop)
|
||||
|
||||
--Hearth Stone Button
|
||||
local HelpFrameCharacterStuckHearthstone = _G.HelpFrameCharacterStuckHearthstone
|
||||
HelpFrameCharacterStuckHearthstone:StyleButton()
|
||||
HelpFrameCharacterStuckHearthstone:CreateBackdrop(nil, true)
|
||||
HelpFrameCharacterStuckHearthstone.IconTexture:SetInside()
|
||||
HelpFrameCharacterStuckHearthstone.IconTexture:SetTexCoord(unpack(E.TexCoords))
|
||||
|
||||
S:HandleButton(_G.HelpFrameGM_ResponseNeedMoreHelp)
|
||||
S:HandleButton(_G.HelpFrameGM_ResponseCancel)
|
||||
for i = 1, _G.HelpFrameGM_Response:GetNumChildren() do
|
||||
local child = select(i, _G.HelpFrameGM_Response:GetChildren())
|
||||
if child and child:IsObjectType('Frame') and not child:GetName() then
|
||||
child:CreateBackdrop()
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
S:AddCallback('HelpFrame')
|
||||
105
Modules/Skins/Blizzard/Inspect.lua
Normal file
105
Modules/Skins/Blizzard/Inspect.lua
Normal file
@@ -0,0 +1,105 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local pairs = pairs
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
function S:Blizzard_InspectUI()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.inspect) then return end
|
||||
|
||||
local InspectFrame = _G.InspectFrame
|
||||
S:HandlePortraitFrame(InspectFrame)
|
||||
S:HandleButton(_G.InspectPaperDollFrame.ViewButton)
|
||||
|
||||
_G.SpecializationRing:Hide()
|
||||
S:HandleIcon(_G.SpecializationSpecIcon, true)
|
||||
_G.SpecializationSpecIcon:Size(55, 55) -- 70, 70 default size
|
||||
|
||||
--Create portrait element for the PvP Frame so we can see prestige
|
||||
local InspectPVPFrame = _G.InspectPVPFrame
|
||||
local portrait = InspectPVPFrame:CreateTexture(nil, 'OVERLAY')
|
||||
portrait:Size(55, 55)
|
||||
portrait:Point('CENTER', InspectPVPFrame.PortraitBackground)
|
||||
InspectPVPFrame.PortraitBackground:Kill()
|
||||
InspectPVPFrame.PortraitBackground:ClearAllPoints()
|
||||
InspectPVPFrame.PortraitBackground:Point('TOPLEFT', 5, -5)
|
||||
InspectPVPFrame.SmallWreath:ClearAllPoints()
|
||||
InspectPVPFrame.SmallWreath:Point('TOPLEFT', -2, -25)
|
||||
|
||||
-- PVE Talents
|
||||
for i = 1, 7 do
|
||||
for j = 1, 3 do
|
||||
local button = _G['TalentsTalentRow'..i..'Talent'..j]
|
||||
|
||||
button:StripTextures()
|
||||
S:HandleIcon(button.icon, true)
|
||||
end
|
||||
end
|
||||
|
||||
-- PVP Talents
|
||||
local function SkinPvpTalents(slot)
|
||||
local icon = slot.Texture
|
||||
slot:StripTextures()
|
||||
S:HandleIcon(icon, true)
|
||||
slot.Border:Hide()
|
||||
end
|
||||
|
||||
for i = 1, 3 do
|
||||
SkinPvpTalents(InspectPVPFrame['TalentSlot'..i])
|
||||
end
|
||||
|
||||
for i = 1, 4 do
|
||||
S:HandleTab(_G['InspectFrameTab'..i])
|
||||
end
|
||||
|
||||
local InspectModelFrame = _G.InspectModelFrame
|
||||
InspectModelFrame:StripTextures()
|
||||
InspectModelFrame:CreateBackdrop()
|
||||
InspectModelFrame.backdrop:Point('TOPLEFT', E.PixelMode and -1 or -2, E.PixelMode and 1 or 2)
|
||||
InspectModelFrame.backdrop:Point('BOTTOMRIGHT', E.PixelMode and 1 or 2, E.PixelMode and -2 or -3)
|
||||
|
||||
_G.InspectModelFrameBorderTopLeft:Kill()
|
||||
_G.InspectModelFrameBorderTopRight:Kill()
|
||||
_G.InspectModelFrameBorderTop:Kill()
|
||||
_G.InspectModelFrameBorderLeft:Kill()
|
||||
_G.InspectModelFrameBorderRight:Kill()
|
||||
_G.InspectModelFrameBorderBottomLeft:Kill()
|
||||
_G.InspectModelFrameBorderBottomRight:Kill()
|
||||
_G.InspectModelFrameBorderBottom:Kill()
|
||||
_G.InspectModelFrameBorderBottom2:Kill()
|
||||
|
||||
--Re-add the overlay texture which was removed via StripTextures
|
||||
InspectModelFrame.BackgroundOverlay:SetColorTexture(0, 0, 0)
|
||||
|
||||
-- Give inspect frame model backdrop it's color back
|
||||
for _, corner in pairs({'TopLeft','TopRight','BotLeft','BotRight'}) do
|
||||
local bg = _G['InspectModelFrameBackground'..corner];
|
||||
if bg then
|
||||
bg:SetDesaturated(false);
|
||||
bg.ignoreDesaturated = true; -- so plugins can prevent this if they want.
|
||||
hooksecurefunc(bg, 'SetDesaturated', function(bckgnd, value)
|
||||
if value and bckgnd.ignoreDesaturated then
|
||||
bckgnd:SetDesaturated(false);
|
||||
end
|
||||
end)
|
||||
end
|
||||
end
|
||||
|
||||
for _, Slot in pairs({_G.InspectPaperDollItemsFrame:GetChildren()}) do
|
||||
if Slot:IsObjectType('Button') or Slot:IsObjectType('ItemButton') then
|
||||
S:HandleIcon(Slot.icon, true)
|
||||
Slot.icon.backdrop:SetFrameLevel(Slot:GetFrameLevel())
|
||||
Slot.icon:SetInside()
|
||||
Slot:StripTextures()
|
||||
Slot:StyleButton()
|
||||
S:HandleIconBorder(Slot.IconBorder, Slot.icon.backdrop)
|
||||
end
|
||||
end
|
||||
|
||||
InspectPVPFrame.BG:Kill()
|
||||
_G.InspectGuildFrameBG:Kill()
|
||||
_G.InspectTalentFrame:StripTextures()
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_InspectUI')
|
||||
15
Modules/Skins/Blizzard/IslandPartyPose.lua
Normal file
15
Modules/Skins/Blizzard/IslandPartyPose.lua
Normal file
@@ -0,0 +1,15 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
|
||||
function S:Blizzard_IslandsPartyPoseUI()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.islandsPartyPose) then return end
|
||||
|
||||
local IslandsPartyPoseFrame = _G.IslandsPartyPoseFrame
|
||||
IslandsPartyPoseFrame:StripTextures()
|
||||
IslandsPartyPoseFrame:CreateBackdrop('Transparent')
|
||||
S:HandleButton(IslandsPartyPoseFrame.LeaveButton)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_IslandsPartyPoseUI')
|
||||
30
Modules/Skins/Blizzard/IslandQueue.lua
Normal file
30
Modules/Skins/Blizzard/IslandQueue.lua
Normal file
@@ -0,0 +1,30 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local unpack = unpack
|
||||
|
||||
function S:Blizzard_IslandsQueueUI()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.islandQueue) then return end
|
||||
|
||||
local IslandsFrame = _G.IslandsQueueFrame
|
||||
S:HandlePortraitFrame(IslandsFrame)
|
||||
S:HandleButton(IslandsFrame.DifficultySelectorFrame.QueueButton)
|
||||
|
||||
local WeeklyQuest = IslandsFrame.WeeklyQuest
|
||||
local StatusBar = WeeklyQuest.StatusBar
|
||||
WeeklyQuest.OverlayFrame:StripTextures()
|
||||
|
||||
-- StatusBar
|
||||
StatusBar:CreateBackdrop()
|
||||
|
||||
--StatusBar Icon
|
||||
WeeklyQuest.QuestReward.Icon:SetTexCoord(unpack(E.TexCoords))
|
||||
|
||||
-- Maybe Adjust me
|
||||
local TutorialFrame = IslandsFrame.TutorialFrame
|
||||
S:HandleButton(TutorialFrame.Leave)
|
||||
S:HandleCloseButton(TutorialFrame.CloseButton)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_IslandsQueueUI')
|
||||
49
Modules/Skins/Blizzard/ItemInteraction.lua
Normal file
49
Modules/Skins/Blizzard/ItemInteraction.lua
Normal file
@@ -0,0 +1,49 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...))
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
|
||||
function S:Blizzard_ItemInteractionUI()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.itemInteraction) then return end
|
||||
|
||||
local ItemInteractionFrame = _G.ItemInteractionFrame
|
||||
S:HandlePortraitFrame(ItemInteractionFrame)
|
||||
|
||||
do -- ItemSlot
|
||||
local ItemSlot = ItemInteractionFrame.ItemSlot
|
||||
ItemSlot:StripTextures()
|
||||
ItemSlot:CreateBackdrop()
|
||||
|
||||
ItemSlot:Size(58)
|
||||
ItemSlot:ClearAllPoints()
|
||||
ItemSlot:Point('TOPLEFT', 143, -97)
|
||||
|
||||
ItemSlot.Icon:ClearAllPoints()
|
||||
ItemSlot.Icon:Point('TOPLEFT', 1, -1)
|
||||
ItemSlot.Icon:Point('BOTTOMRIGHT', -1, 1)
|
||||
S:HandleIcon(ItemSlot.Icon)
|
||||
|
||||
ItemSlot.GlowOverlay:SetAlpha(0)
|
||||
end
|
||||
|
||||
local ButtonFrame = ItemInteractionFrame.ButtonFrame
|
||||
ButtonFrame:StripTextures()
|
||||
ButtonFrame.MoneyFrameEdge:SetAlpha(0)
|
||||
ButtonFrame.BlackBorder:SetAlpha(0)
|
||||
ButtonFrame.ButtonBorder:Hide()
|
||||
ButtonFrame.ButtonBottomBorder:Hide()
|
||||
|
||||
ButtonFrame.Currency:Point('BOTTOMRIGHT', ButtonFrame.MoneyFrameEdge, -9, 4)
|
||||
ButtonFrame.MoneyFrame:Point('BOTTOMRIGHT', ButtonFrame.MoneyFrameEdge, 7, 5)
|
||||
|
||||
S:HandleIcon(ButtonFrame.Currency.icon)
|
||||
S:HandleButton(ButtonFrame.ActionButton)
|
||||
|
||||
-- Temp mover
|
||||
ItemInteractionFrame:SetMovable(true)
|
||||
ItemInteractionFrame:RegisterForDrag('LeftButton')
|
||||
ItemInteractionFrame:SetScript('OnDragStart', function(s) s:StartMoving() end)
|
||||
ItemInteractionFrame:SetScript('OnDragStop', function(s) s:StopMovingOrSizing() end)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_ItemInteractionUI')
|
||||
51
Modules/Skins/Blizzard/ItemUpgrade.lua
Normal file
51
Modules/Skins/Blizzard/ItemUpgrade.lua
Normal file
@@ -0,0 +1,51 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local unpack = unpack
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
local GetItemUpgradeItemInfo = GetItemUpgradeItemInfo
|
||||
local BAG_ITEM_QUALITY_COLORS = BAG_ITEM_QUALITY_COLORS
|
||||
|
||||
function S:Blizzard_ItemUpgradeUI()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.itemUpgrade) then return end
|
||||
|
||||
local ItemUpgradeFrame = _G.ItemUpgradeFrame
|
||||
S:HandlePortraitFrame(ItemUpgradeFrame)
|
||||
|
||||
local ItemButton = ItemUpgradeFrame.ItemButton
|
||||
ItemButton:CreateBackdrop()
|
||||
ItemButton.backdrop:SetAllPoints()
|
||||
ItemButton.Frame:SetTexture('')
|
||||
ItemButton:SetPushedTexture('')
|
||||
S:HandleItemButton(ItemButton)
|
||||
|
||||
local Highlight = ItemButton:GetHighlightTexture()
|
||||
Highlight:SetColorTexture(1, 1, 1, .25)
|
||||
|
||||
hooksecurefunc('ItemUpgradeFrame_Update', function()
|
||||
local icon, _, quality = GetItemUpgradeItemInfo()
|
||||
if icon then
|
||||
ItemButton.IconTexture:SetTexCoord(unpack(E.TexCoords))
|
||||
local color = BAG_ITEM_QUALITY_COLORS[quality or 1]
|
||||
ItemButton.backdrop:SetBackdropBorderColor(color.r, color.g, color.b)
|
||||
else
|
||||
ItemButton.IconTexture:SetTexture('')
|
||||
ItemButton.backdrop:SetBackdropBorderColor(0, 0, 0)
|
||||
end
|
||||
end)
|
||||
|
||||
local TextFrame = ItemUpgradeFrame.TextFrame
|
||||
TextFrame:StripTextures()
|
||||
TextFrame:CreateBackdrop('Transparent')
|
||||
TextFrame.backdrop:Point('TOPLEFT', ItemButton.IconTexture, 'TOPRIGHT', 3, 1)
|
||||
TextFrame.backdrop:Point('BOTTOMRIGHT', -6, 2)
|
||||
|
||||
_G.ItemUpgradeFrameMoneyFrame:StripTextures()
|
||||
S:HandleIcon(_G.ItemUpgradeFrameMoneyFrame.Currency.icon)
|
||||
S:HandleButton(_G.ItemUpgradeFrameUpgradeButton, true)
|
||||
ItemUpgradeFrame.FinishedGlow:Kill()
|
||||
ItemUpgradeFrame.ButtonFrame:DisableDrawLayer('BORDER')
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_ItemUpgradeUI')
|
||||
728
Modules/Skins/Blizzard/LFG.lua
Normal file
728
Modules/Skins/Blizzard/LFG.lua
Normal file
@@ -0,0 +1,728 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
local LBG = E.Libs.ButtonGlow
|
||||
|
||||
local _G = _G
|
||||
local unpack, ipairs, pairs, select = unpack, ipairs, pairs, select
|
||||
local min, strlower = min, strlower
|
||||
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
local GetLFGProposal = GetLFGProposal
|
||||
local GetLFGProposalMember = GetLFGProposalMember
|
||||
local GetBackgroundTexCoordsForRole = GetBackgroundTexCoordsForRole
|
||||
local C_ChallengeMode_GetAffixInfo = C_ChallengeMode.GetAffixInfo
|
||||
local C_LFGList_GetApplicationInfo = C_LFGList.GetApplicationInfo
|
||||
local C_LFGList_GetAvailableActivities = C_LFGList.GetAvailableActivities
|
||||
local C_LFGList_GetAvailableRoles = C_LFGList.GetAvailableRoles
|
||||
local C_MythicPlus_GetCurrentAffixes = C_MythicPlus.GetCurrentAffixes
|
||||
|
||||
local function LFDQueueFrameRoleButtonIconOnShow(self)
|
||||
LBG.ShowOverlayGlow(self:GetParent().checkButton)
|
||||
end
|
||||
local function LFDQueueFrameRoleButtonIconOnHide(self)
|
||||
LBG.HideOverlayGlow(self:GetParent().checkButton)
|
||||
end
|
||||
|
||||
local function HandleGoldIcon(button)
|
||||
local Button = _G[button]
|
||||
if Button.backdrop then return end
|
||||
|
||||
local count = _G[button..'Count']
|
||||
local nameFrame = _G[button..'NameFrame']
|
||||
local iconTexture = _G[button..'IconTexture']
|
||||
|
||||
Button:CreateBackdrop()
|
||||
Button.backdrop:ClearAllPoints()
|
||||
Button.backdrop:Point('LEFT', 1, 0)
|
||||
Button.backdrop:Size(42)
|
||||
|
||||
iconTexture:SetTexCoord(unpack(E.TexCoords))
|
||||
iconTexture:SetDrawLayer('OVERLAY')
|
||||
iconTexture:SetParent(Button.backdrop)
|
||||
iconTexture:SetInside()
|
||||
|
||||
count:SetParent(Button.backdrop)
|
||||
count:SetDrawLayer('OVERLAY')
|
||||
|
||||
nameFrame:SetTexture()
|
||||
nameFrame:Size(118, 39)
|
||||
end
|
||||
|
||||
local function SkinItemButton(parentFrame, _, index)
|
||||
local parentName = parentFrame:GetName()
|
||||
local item = _G[parentName..'Item'..index]
|
||||
if item and not item.backdrop then
|
||||
item:CreateBackdrop()
|
||||
item.backdrop:ClearAllPoints()
|
||||
item.backdrop:Point('LEFT', 1, 0)
|
||||
item.backdrop:Size(42)
|
||||
|
||||
item.Icon:SetTexCoord(unpack(E.TexCoords))
|
||||
item.Icon:SetDrawLayer('OVERLAY')
|
||||
item.Icon:SetParent(item.backdrop)
|
||||
item.Icon:SetInside()
|
||||
|
||||
item.Count:SetDrawLayer('OVERLAY')
|
||||
item.Count:SetParent(item.backdrop)
|
||||
|
||||
item.NameFrame:SetTexture()
|
||||
item.NameFrame:Size(118, 39)
|
||||
|
||||
item.shortageBorder:SetTexture()
|
||||
|
||||
item.roleIcon1:SetParent(item.backdrop)
|
||||
item.roleIcon2:SetParent(item.backdrop)
|
||||
|
||||
S:HandleIconBorder(item.IconBorder)
|
||||
end
|
||||
end
|
||||
|
||||
local function SetRoleIcon(self, resultID)
|
||||
local _,_,_,_, role = C_LFGList_GetApplicationInfo(resultID)
|
||||
self.RoleIcon:SetTexCoord(GetBackgroundTexCoordsForRole(role))
|
||||
end
|
||||
|
||||
local function HandleAffixIcons(self)
|
||||
for _, frame in ipairs(self.Affixes) do
|
||||
frame.Border:SetTexture()
|
||||
frame.Portrait:SetTexture()
|
||||
|
||||
if frame.info then
|
||||
frame.Portrait:SetTexture(_G.CHALLENGE_MODE_EXTRA_AFFIX_INFO[frame.info.key].texture)
|
||||
elseif frame.affixID then
|
||||
local _, _, filedataid = C_ChallengeMode_GetAffixInfo(frame.affixID)
|
||||
frame.Portrait:SetTexture(filedataid)
|
||||
end
|
||||
frame.Portrait:SetTexCoord(unpack(E.TexCoords))
|
||||
end
|
||||
end
|
||||
|
||||
function S:LookingForGroupFrames()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.lfg) then return end
|
||||
|
||||
local PVEFrame = _G.PVEFrame
|
||||
S:HandlePortraitFrame(PVEFrame)
|
||||
|
||||
_G.RaidFinderQueueFrame:StripTextures(true)
|
||||
_G.PVEFrameBg:Hide()
|
||||
PVEFrame.shadows:Kill() -- We need to kill it, because if you switch to Mythic Dungeon Tab and back, it shows back up.
|
||||
|
||||
S:HandleButton(_G.LFDQueueFramePartyBackfillBackfillButton)
|
||||
S:HandleButton(_G.LFDQueueFramePartyBackfillNoBackfillButton)
|
||||
|
||||
_G.GroupFinderFrame.groupButton1.icon:SetTexture([[Interface\Icons\INV_Helmet_08]])
|
||||
_G.GroupFinderFrame.groupButton2.icon:SetTexture([[Interface\LFGFrame\UI-LFR-PORTRAIT]])
|
||||
_G.GroupFinderFrame.groupButton3.icon:SetTexture([[Interface\Icons\Icon_Scenarios]])
|
||||
|
||||
_G.LFGDungeonReadyDialogBackground:Kill()
|
||||
S:HandleButton(_G.LFGDungeonReadyDialogEnterDungeonButton)
|
||||
S:HandleButton(_G.LFGDungeonReadyDialogLeaveQueueButton)
|
||||
S:HandleCloseButton(_G.LFGDungeonReadyDialogCloseButton)
|
||||
_G.LFGDungeonReadyDialog:StripTextures()
|
||||
_G.LFGDungeonReadyDialog:CreateBackdrop('Transparent')
|
||||
_G.LFGDungeonReadyStatus:StripTextures()
|
||||
_G.LFGDungeonReadyStatus:CreateBackdrop('Transparent')
|
||||
_G.LFGDungeonReadyDialogRoleIconTexture:SetTexture([[Interface\LFGFrame\UI-LFG-ICONS-ROLEBACKGROUNDS]])
|
||||
_G.LFGDungeonReadyDialogRoleIconTexture:SetAlpha(0.5)
|
||||
|
||||
hooksecurefunc(_G.LFGDungeonReadyDialog, 'SetBackdrop', function(frame, backdrop)
|
||||
if backdrop ~= nil then frame:SetBackdrop() end
|
||||
end)
|
||||
|
||||
hooksecurefunc('LFGDungeonReadyPopup_Update', function()
|
||||
local _, _, _, _, _, _, role = GetLFGProposal()
|
||||
if _G.LFGDungeonReadyDialogRoleIcon:IsShown() then
|
||||
if role == 'DAMAGER' then
|
||||
_G.LFGDungeonReadyDialogRoleIconTexture:SetTexCoord(_G.LFDQueueFrameRoleButtonDPS.background:GetTexCoord())
|
||||
elseif role == 'TANK' then
|
||||
_G.LFGDungeonReadyDialogRoleIconTexture:SetTexCoord(_G.LFDQueueFrameRoleButtonTank.background:GetTexCoord())
|
||||
elseif role == 'HEALER' then
|
||||
_G.LFGDungeonReadyDialogRoleIconTexture:SetTexCoord(_G.LFDQueueFrameRoleButtonHealer.background:GetTexCoord())
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
hooksecurefunc('LFGDungeonReadyStatusIndividual_UpdateIcon', function(button)
|
||||
local _, role = GetLFGProposalMember(button:GetID())
|
||||
|
||||
button.texture:SetTexture([[Interface\LFGFrame\UI-LFG-ICONS-ROLEBACKGROUNDS]])
|
||||
button.texture:SetAlpha(0.6)
|
||||
|
||||
if role == 'DAMAGER' then
|
||||
button.texture:SetTexCoord(_G.LFDQueueFrameRoleButtonDPS.background:GetTexCoord())
|
||||
elseif role == 'TANK' then
|
||||
button.texture:SetTexCoord(_G.LFDQueueFrameRoleButtonTank.background:GetTexCoord())
|
||||
elseif role == 'HEALER' then
|
||||
button.texture:SetTexCoord(_G.LFDQueueFrameRoleButtonHealer.background:GetTexCoord())
|
||||
end
|
||||
end)
|
||||
|
||||
_G.LFDQueueFrame:StripTextures(true)
|
||||
_G.LFDQueueFrameRoleButtonTankIncentiveIcon:SetAlpha(0)
|
||||
_G.LFDQueueFrameRoleButtonHealerIncentiveIcon:SetAlpha(0)
|
||||
_G.LFDQueueFrameRoleButtonDPSIncentiveIcon:SetAlpha(0)
|
||||
|
||||
_G.LFDQueueFrameRoleButtonTankIncentiveIcon:HookScript('OnShow', LFDQueueFrameRoleButtonIconOnShow)
|
||||
_G.LFDQueueFrameRoleButtonHealerIncentiveIcon:HookScript('OnShow', LFDQueueFrameRoleButtonIconOnShow)
|
||||
_G.LFDQueueFrameRoleButtonDPSIncentiveIcon:HookScript('OnShow', LFDQueueFrameRoleButtonIconOnShow)
|
||||
_G.LFDQueueFrameRoleButtonTankIncentiveIcon:HookScript('OnHide', LFDQueueFrameRoleButtonIconOnHide)
|
||||
_G.LFDQueueFrameRoleButtonHealerIncentiveIcon:HookScript('OnHide', LFDQueueFrameRoleButtonIconOnHide)
|
||||
_G.LFDQueueFrameRoleButtonDPSIncentiveIcon:HookScript('OnHide', LFDQueueFrameRoleButtonIconOnHide)
|
||||
_G.LFDQueueFrameRoleButtonTank.shortageBorder:Kill()
|
||||
_G.LFDQueueFrameRoleButtonDPS.shortageBorder:Kill()
|
||||
_G.LFDQueueFrameRoleButtonHealer.shortageBorder:Kill()
|
||||
_G.LFGDungeonReadyDialog.filigree:SetAlpha(0)
|
||||
_G.LFGDungeonReadyDialog.bottomArt:SetAlpha(0)
|
||||
S:HandleCloseButton(_G.LFGDungeonReadyStatusCloseButton)
|
||||
|
||||
local RoleButtons1 = {
|
||||
_G.LFDQueueFrameRoleButtonHealer,
|
||||
_G.LFDQueueFrameRoleButtonDPS,
|
||||
_G.LFDQueueFrameRoleButtonLeader,
|
||||
_G.LFDQueueFrameRoleButtonTank,
|
||||
_G.RaidFinderQueueFrameRoleButtonHealer,
|
||||
_G.RaidFinderQueueFrameRoleButtonDPS,
|
||||
_G.RaidFinderQueueFrameRoleButtonLeader,
|
||||
_G.RaidFinderQueueFrameRoleButtonTank,
|
||||
_G.LFGInvitePopupRoleButtonTank,
|
||||
_G.LFGInvitePopupRoleButtonHealer,
|
||||
_G.LFGInvitePopupRoleButtonDPS,
|
||||
_G.LFGListApplicationDialog.TankButton,
|
||||
_G.LFGListApplicationDialog.HealerButton,
|
||||
_G.LFGListApplicationDialog.DamagerButton,
|
||||
_G.RolePollPopupRoleButtonTank,
|
||||
_G.RolePollPopupRoleButtonHealer,
|
||||
_G.RolePollPopupRoleButtonDPS,
|
||||
}
|
||||
|
||||
for _, roleButton in pairs(RoleButtons1) do
|
||||
S:HandleCheckBox(roleButton.checkButton or roleButton.CheckButton)
|
||||
roleButton:DisableDrawLayer('ARTWORK')
|
||||
roleButton:DisableDrawLayer('OVERLAY')
|
||||
|
||||
if not roleButton.background then
|
||||
local isLeader = roleButton:GetName() ~= nil and roleButton:GetName():find('Leader') or false
|
||||
if not isLeader then
|
||||
roleButton.background = roleButton:CreateTexture(nil, 'BACKGROUND')
|
||||
roleButton.background:Size(80, 80)
|
||||
roleButton.background:Point('CENTER')
|
||||
roleButton.background:SetTexture([[Interface\LFGFrame\UI-LFG-ICONS-ROLEBACKGROUNDS]])
|
||||
roleButton.background:SetAlpha(0.65)
|
||||
|
||||
local buttonName = roleButton:GetName() ~= nil and roleButton:GetName() or roleButton.role
|
||||
roleButton.background:SetTexCoord(GetBackgroundTexCoordsForRole((strlower(buttonName):find('tank') and 'TANK') or (strlower(buttonName):find('healer') and 'HEALER') or 'DAMAGER'))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
hooksecurefunc('SetCheckButtonIsRadio', function(button)
|
||||
S:HandleCheckBox(button)
|
||||
end)
|
||||
|
||||
--Fix issue with role buttons overlapping each other (Blizzard bug)
|
||||
local repositionCheckButtons = {
|
||||
_G.LFGListApplicationDialog.TankButton.CheckButton,
|
||||
_G.LFGListApplicationDialog.HealerButton.CheckButton,
|
||||
_G.LFGListApplicationDialog.DamagerButton.CheckButton,
|
||||
}
|
||||
for _, checkButton in pairs(repositionCheckButtons) do
|
||||
checkButton:ClearAllPoints()
|
||||
checkButton:Point('BOTTOMLEFT', 0, 0)
|
||||
end
|
||||
hooksecurefunc('LFGListApplicationDialog_UpdateRoles', function(self) --Copy from Blizzard, we just fix position
|
||||
local availTank, availHealer, availDPS = C_LFGList_GetAvailableRoles()
|
||||
|
||||
local avail1, avail2
|
||||
if availTank then
|
||||
avail1 = self.TankButton
|
||||
end
|
||||
if availHealer then
|
||||
if avail1 then
|
||||
avail2 = self.HealerButton
|
||||
else
|
||||
avail1 = self.HealerButton
|
||||
end
|
||||
end
|
||||
if availDPS then
|
||||
if avail1 then
|
||||
avail2 = self.DamagerButton
|
||||
else
|
||||
avail1 = self.DamagerButton
|
||||
end
|
||||
end
|
||||
|
||||
if avail2 then
|
||||
avail1:ClearAllPoints();
|
||||
avail1:Point('TOPRIGHT', self, 'TOP', -40, -35)
|
||||
avail2:ClearAllPoints()
|
||||
avail2:Point('TOPLEFT', self, 'TOP', 40, -35)
|
||||
elseif avail1 then
|
||||
avail1:ClearAllPoints()
|
||||
avail1:Point('TOP', self, 'TOP', 0, -35)
|
||||
end
|
||||
end)
|
||||
|
||||
_G.LFDQueueFrameRoleButtonLeader.leadIcon = _G.LFDQueueFrameRoleButtonLeader:CreateTexture(nil, 'BACKGROUND')
|
||||
_G.LFDQueueFrameRoleButtonLeader.leadIcon:SetTexture(E.Media.Textures.LeaderHQ)
|
||||
_G.LFDQueueFrameRoleButtonLeader.leadIcon:Point(_G.LFDQueueFrameRoleButtonLeader:GetNormalTexture():GetPoint(), -10, 5)
|
||||
_G.LFDQueueFrameRoleButtonLeader.leadIcon:Size(50)
|
||||
_G.LFDQueueFrameRoleButtonLeader.leadIcon:SetAlpha(0.6)
|
||||
_G.LFDQueueFrameRoleButtonTankBackground:SetTexture(E.Media.Textures.RolesHQ)
|
||||
_G.LFDQueueFrameRoleButtonHealerBackground:SetTexture(E.Media.Textures.RolesHQ)
|
||||
_G.LFDQueueFrameRoleButtonDPSBackground:SetTexture(E.Media.Textures.RolesHQ)
|
||||
|
||||
_G.RaidFinderQueueFrameRoleButtonLeader.leadIcon = _G.RaidFinderQueueFrameRoleButtonLeader:CreateTexture(nil, 'BACKGROUND')
|
||||
_G.RaidFinderQueueFrameRoleButtonLeader.leadIcon:SetTexture(E.Media.Textures.LeaderHQ)
|
||||
_G.RaidFinderQueueFrameRoleButtonLeader.leadIcon:Point(_G.RaidFinderQueueFrameRoleButtonLeader:GetNormalTexture():GetPoint(), -10, 5)
|
||||
_G.RaidFinderQueueFrameRoleButtonLeader.leadIcon:Size(50)
|
||||
_G.RaidFinderQueueFrameRoleButtonLeader.leadIcon:SetAlpha(0.6)
|
||||
|
||||
hooksecurefunc('LFG_DisableRoleButton', function(button)
|
||||
if button.checkButton:GetChecked() then
|
||||
button.checkButton:SetAlpha(1)
|
||||
else
|
||||
button.checkButton:SetAlpha(0)
|
||||
end
|
||||
|
||||
if button.background then
|
||||
button.background:Show()
|
||||
end
|
||||
end)
|
||||
|
||||
hooksecurefunc('LFG_EnableRoleButton', function(button)
|
||||
button.checkButton:SetAlpha(1)
|
||||
end)
|
||||
|
||||
hooksecurefunc('LFG_PermanentlyDisableRoleButton', function(self)
|
||||
if self.background then
|
||||
self.background:Show()
|
||||
self.background:SetDesaturated(true)
|
||||
end
|
||||
end)
|
||||
|
||||
for i = 1, 3 do
|
||||
local bu = _G.GroupFinderFrame['groupButton'..i]
|
||||
bu.ring:Kill()
|
||||
bu.bg:Kill()
|
||||
S:HandleButton(bu)
|
||||
|
||||
bu.icon:Size(45)
|
||||
bu.icon:ClearAllPoints()
|
||||
bu.icon:Point('LEFT', 10, 0)
|
||||
S:HandleIcon(bu.icon, true)
|
||||
end
|
||||
|
||||
for i = 1, 3 do
|
||||
S:HandleTab(_G['PVEFrameTab'..i])
|
||||
end
|
||||
_G.PVEFrameTab1:Point('BOTTOMLEFT', PVEFrame, 'BOTTOMLEFT', 19, E.PixelMode and -31 or -32)
|
||||
|
||||
-- Raid finder
|
||||
S:HandleButton(_G.LFDQueueFrameFindGroupButton)
|
||||
|
||||
_G.LFDParentFrame:StripTextures()
|
||||
_G.LFDParentFrameInset:StripTextures()
|
||||
|
||||
HandleGoldIcon('LFDQueueFrameRandomScrollFrameChildFrameMoneyReward')
|
||||
HandleGoldIcon('RaidFinderQueueFrameScrollFrameChildFrameMoneyReward')
|
||||
|
||||
for i = 1, _G.NUM_LFD_CHOICE_BUTTONS do
|
||||
S:HandleCheckBox(_G['LFDQueueFrameSpecificListButton'..i].enableButton, nil, true)
|
||||
end
|
||||
|
||||
hooksecurefunc('LFGDungeonListButton_SetDungeon', function(button)
|
||||
if button and button.expandOrCollapseButton:IsShown() then
|
||||
if button.isCollapsed then
|
||||
button.expandOrCollapseButton:SetNormalTexture(E.Media.Textures.PlusButton);
|
||||
else
|
||||
button.expandOrCollapseButton:SetNormalTexture(E.Media.Textures.MinusButton);
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
for i = 1, _G.NUM_LFR_CHOICE_BUTTONS do
|
||||
local bu = _G['LFRQueueFrameSpecificListButton'..i].enableButton
|
||||
S:HandleCheckBox(bu, nil, true)
|
||||
end
|
||||
|
||||
S:HandleDropDownBox(_G.LFDQueueFrameTypeDropDown)
|
||||
|
||||
-- Raid Finder
|
||||
_G.RaidFinderFrame:StripTextures()
|
||||
_G.RaidFinderFrameRoleInset:StripTextures()
|
||||
S:HandleDropDownBox(_G.RaidFinderQueueFrameSelectionDropDown)
|
||||
_G.RaidFinderFrameFindRaidButton:StripTextures()
|
||||
S:HandleButton(_G.RaidFinderFrameFindRaidButton)
|
||||
_G.RaidFinderQueueFrame:StripTextures()
|
||||
_G.RaidFinderQueueFrameScrollFrameScrollBar:StripTextures()
|
||||
S:HandleScrollBar(_G.RaidFinderQueueFrameScrollFrameScrollBar)
|
||||
|
||||
--Skin Reward Items (This works for all frames, LFD, Raid, Scenario)
|
||||
hooksecurefunc('LFGRewardsFrame_SetItemButton', SkinItemButton)
|
||||
|
||||
-- Looking for raid
|
||||
_G.LFRBrowseFrameListScrollFrame:StripTextures()
|
||||
|
||||
_G.LFRBrowseFrame:HookScript('OnShow', function()
|
||||
if not _G.LFRBrowseFrameListScrollFrameScrollBar.skinned then
|
||||
S:HandleScrollBar(_G.LFRBrowseFrameListScrollFrameScrollBar)
|
||||
_G.LFRBrowseFrameListScrollFrameScrollBar.skinned = true
|
||||
end
|
||||
end)
|
||||
|
||||
_G.LFRBrowseFrameRoleInset:DisableDrawLayer('BORDER')
|
||||
_G.RaidBrowserFrameBg:Hide()
|
||||
_G.LFRQueueFrameSpecificListScrollFrameScrollBackgroundTopLeft:Hide()
|
||||
_G.LFRQueueFrameSpecificListScrollFrameScrollBackgroundBottomRight:Hide()
|
||||
_G.LFRQueueFrameCommentScrollFrame:CreateBackdrop()
|
||||
_G.LFRBrowseFrameColumnHeader1:Width(94) --Fix the columns being slightly off
|
||||
_G.LFRBrowseFrameColumnHeader2:Width(38)
|
||||
|
||||
_G.RaidBrowserFrame:CreateBackdrop('Transparent')
|
||||
S:HandleCloseButton(_G.RaidBrowserFrameCloseButton)
|
||||
S:HandleButton(_G.LFRQueueFrameFindGroupButton)
|
||||
S:HandleButton(_G.LFRQueueFrameAcceptCommentButton)
|
||||
|
||||
local RoleButtons2 = {
|
||||
_G.LFRQueueFrameRoleButtonHealer,
|
||||
_G.LFRQueueFrameRoleButtonDPS,
|
||||
_G.LFRQueueFrameRoleButtonTank,
|
||||
}
|
||||
|
||||
S:HandleScrollBar(_G.LFRQueueFrameCommentScrollFrameScrollBar)
|
||||
S:HandleScrollBar(_G.LFDQueueFrameSpecificListScrollFrameScrollBar)
|
||||
_G.LFDQueueFrameSpecificListScrollFrame:StripTextures()
|
||||
_G.RaidBrowserFrame:HookScript('OnShow', function()
|
||||
if not _G.LFRQueueFrameSpecificListScrollFrameScrollBar.skinned then
|
||||
S:HandleScrollBar(_G.LFRQueueFrameSpecificListScrollFrameScrollBar)
|
||||
_G.LFRBrowseFrame:StripTextures()
|
||||
for _, roleButton in pairs(RoleButtons2) do
|
||||
roleButton:SetNormalTexture('')
|
||||
S:HandleCheckBox(roleButton.checkButton, nil, true)
|
||||
roleButton:GetChildren():SetFrameLevel(roleButton:GetChildren():GetFrameLevel() + 1)
|
||||
end
|
||||
|
||||
for i=1, 2 do
|
||||
local tab = _G['LFRParentFrameSideTab'..i]
|
||||
tab:DisableDrawLayer('BACKGROUND')
|
||||
|
||||
tab:GetNormalTexture():SetTexCoord(unpack(E.TexCoords))
|
||||
tab:GetNormalTexture():SetInside()
|
||||
|
||||
tab.pushed = true
|
||||
tab:CreateBackdrop()
|
||||
tab.backdrop:SetAllPoints()
|
||||
tab:StyleButton(true)
|
||||
hooksecurefunc(tab:GetHighlightTexture(), 'SetTexture', function(highlight, texPath)
|
||||
if texPath ~= nil then
|
||||
highlight:SetTexture()
|
||||
end
|
||||
end)
|
||||
|
||||
hooksecurefunc(tab:GetCheckedTexture(), 'SetTexture', function(highlight, texPath)
|
||||
if texPath ~= nil then
|
||||
highlight:SetTexture()
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
for i=1, 7 do
|
||||
local tab = _G['LFRBrowseFrameColumnHeader'..i]
|
||||
tab:DisableDrawLayer('BACKGROUND')
|
||||
end
|
||||
|
||||
S:HandleDropDownBox(_G.LFRBrowseFrameRaidDropDown)
|
||||
S:HandleButton(_G.LFRBrowseFrameRefreshButton)
|
||||
S:HandleButton(_G.LFRBrowseFrameInviteButton)
|
||||
S:HandleButton(_G.LFRBrowseFrameSendMessageButton)
|
||||
|
||||
_G.LFRQueueFrameSpecificListScrollFrameScrollBar.skinned = true
|
||||
end
|
||||
end)
|
||||
|
||||
--[[LFGInvitePopup_Update('Elvz', true, true, true)
|
||||
StaticPopupSpecial_Show(LFGInvitePopup);]]
|
||||
_G.LFGInvitePopup:StripTextures()
|
||||
_G.LFGInvitePopup:CreateBackdrop('Transparent')
|
||||
S:HandleButton(_G.LFGInvitePopupAcceptButton)
|
||||
S:HandleButton(_G.LFGInvitePopupDeclineButton)
|
||||
|
||||
S:HandleButton(_G[_G.LFDQueueFrame.PartyBackfill:GetName()..'BackfillButton'])
|
||||
S:HandleButton(_G[_G.LFDQueueFrame.PartyBackfill:GetName()..'NoBackfillButton'])
|
||||
S:HandleButton(_G[_G.RaidFinderQueueFrame.PartyBackfill:GetName()..'BackfillButton'])
|
||||
S:HandleButton(_G[_G.RaidFinderQueueFrame.PartyBackfill:GetName()..'NoBackfillButton'])
|
||||
_G.LFDQueueFrameRandomScrollFrameScrollBar:StripTextures()
|
||||
S:HandleScrollBar(_G.LFDQueueFrameRandomScrollFrameScrollBar)
|
||||
|
||||
--LFGListFrame
|
||||
local LFGListFrame = _G.LFGListFrame
|
||||
LFGListFrame.CategorySelection.Inset:StripTextures()
|
||||
S:HandleButton(LFGListFrame.CategorySelection.StartGroupButton)
|
||||
S:HandleButton(LFGListFrame.CategorySelection.FindGroupButton)
|
||||
LFGListFrame.CategorySelection.StartGroupButton:ClearAllPoints()
|
||||
LFGListFrame.CategorySelection.StartGroupButton:Point('BOTTOMLEFT', -1, 3)
|
||||
LFGListFrame.CategorySelection.FindGroupButton:ClearAllPoints()
|
||||
LFGListFrame.CategorySelection.FindGroupButton:Point('BOTTOMRIGHT', -6, 3)
|
||||
|
||||
LFGListFrame.EntryCreation.Inset:StripTextures()
|
||||
S:HandleButton(LFGListFrame.EntryCreation.CancelButton)
|
||||
S:HandleButton(LFGListFrame.EntryCreation.ListGroupButton)
|
||||
LFGListFrame.EntryCreation.CancelButton:ClearAllPoints()
|
||||
LFGListFrame.EntryCreation.CancelButton:Point('BOTTOMLEFT', -1, 3)
|
||||
LFGListFrame.EntryCreation.ListGroupButton:ClearAllPoints()
|
||||
LFGListFrame.EntryCreation.ListGroupButton:Point('BOTTOMRIGHT', -6, 3)
|
||||
S:HandleEditBox(LFGListFrame.EntryCreation.Description)
|
||||
|
||||
S:HandleEditBox(LFGListFrame.EntryCreation.Name)
|
||||
S:HandleEditBox(LFGListFrame.EntryCreation.ItemLevel.EditBox)
|
||||
S:HandleEditBox(LFGListFrame.EntryCreation.HonorLevel.EditBox)
|
||||
S:HandleEditBox(LFGListFrame.EntryCreation.VoiceChat.EditBox)
|
||||
|
||||
S:HandleDropDownBox(_G.LFGListEntryCreationActivityDropDown)
|
||||
S:HandleDropDownBox(_G.LFGListEntryCreationGroupDropDown)
|
||||
S:HandleDropDownBox(_G.LFGListEntryCreationCategoryDropDown, 330)
|
||||
|
||||
S:HandleCheckBox(LFGListFrame.EntryCreation.ItemLevel.CheckButton)
|
||||
S:HandleCheckBox(LFGListFrame.EntryCreation.HonorLevel.CheckButton)
|
||||
S:HandleCheckBox(LFGListFrame.EntryCreation.VoiceChat.CheckButton)
|
||||
S:HandleCheckBox(LFGListFrame.EntryCreation.PrivateGroup.CheckButton)
|
||||
|
||||
LFGListFrame.EntryCreation.ActivityFinder.Dialog:StripTextures()
|
||||
LFGListFrame.EntryCreation.ActivityFinder.Dialog:CreateBackdrop('Transparent')
|
||||
LFGListFrame.EntryCreation.ActivityFinder.Dialog.BorderFrame:StripTextures()
|
||||
LFGListFrame.EntryCreation.ActivityFinder.Dialog.BorderFrame:CreateBackdrop('Transparent')
|
||||
|
||||
S:HandleEditBox(LFGListFrame.EntryCreation.ActivityFinder.Dialog.EntryBox)
|
||||
S:HandleScrollBar(_G.LFGListEntryCreationSearchScrollFrameScrollBar)
|
||||
S:HandleButton(LFGListFrame.EntryCreation.ActivityFinder.Dialog.SelectButton)
|
||||
S:HandleButton(LFGListFrame.EntryCreation.ActivityFinder.Dialog.CancelButton)
|
||||
|
||||
_G.LFGListApplicationDialog:StripTextures()
|
||||
_G.LFGListApplicationDialog:CreateBackdrop('Transparent')
|
||||
S:HandleButton(_G.LFGListApplicationDialog.SignUpButton)
|
||||
S:HandleButton(_G.LFGListApplicationDialog.CancelButton)
|
||||
S:HandleEditBox(_G.LFGListApplicationDialogDescription)
|
||||
|
||||
_G.LFGListInviteDialog:StripTextures()
|
||||
_G.LFGListInviteDialog:CreateBackdrop('Transparent')
|
||||
S:HandleButton(_G.LFGListInviteDialog.AcknowledgeButton)
|
||||
S:HandleButton(_G.LFGListInviteDialog.AcceptButton)
|
||||
S:HandleButton(_G.LFGListInviteDialog.DeclineButton)
|
||||
_G.LFGListInviteDialog.RoleIcon:SetTexture([[Interface\LFGFrame\UI-LFG-ICONS-ROLEBACKGROUNDS]])
|
||||
|
||||
hooksecurefunc('LFGListInviteDialog_Show', SetRoleIcon)
|
||||
|
||||
S:HandleEditBox(LFGListFrame.SearchPanel.SearchBox)
|
||||
|
||||
--[[local columns = {
|
||||
Name = true,
|
||||
Tank = true,
|
||||
Healer = true,
|
||||
Damager = true
|
||||
}
|
||||
|
||||
for x in pairs(columns) do
|
||||
LFGListFrame.SearchPanel[x..'ColumnHeader'].Left:Hide()
|
||||
LFGListFrame.SearchPanel[x..'ColumnHeader'].Middle:Hide()
|
||||
LFGListFrame.SearchPanel[x..'ColumnHeader'].Right:Hide()
|
||||
end]]
|
||||
|
||||
S:HandleButton(LFGListFrame.SearchPanel.BackButton)
|
||||
S:HandleButton(LFGListFrame.SearchPanel.SignUpButton)
|
||||
S:HandleButton(_G.LFGListSearchPanelScrollFrame.StartGroupButton)
|
||||
LFGListFrame.SearchPanel.BackButton:ClearAllPoints()
|
||||
LFGListFrame.SearchPanel.BackButton:Point('BOTTOMLEFT', -1, 3)
|
||||
LFGListFrame.SearchPanel.SignUpButton:ClearAllPoints()
|
||||
LFGListFrame.SearchPanel.SignUpButton:Point('BOTTOMRIGHT', -6, 3)
|
||||
LFGListFrame.SearchPanel.ResultsInset:StripTextures()
|
||||
S:HandleScrollBar(_G.LFGListSearchPanelScrollFrameScrollBar)
|
||||
|
||||
S:HandleButton(LFGListFrame.SearchPanel.FilterButton)
|
||||
LFGListFrame.SearchPanel.FilterButton:Point('LEFT', LFGListFrame.SearchPanel.SearchBox, 'RIGHT', 5, 0)
|
||||
S:HandleButton(LFGListFrame.SearchPanel.RefreshButton)
|
||||
LFGListFrame.SearchPanel.RefreshButton:Size(24)
|
||||
LFGListFrame.SearchPanel.RefreshButton.Icon:Point('CENTER')
|
||||
|
||||
hooksecurefunc('LFGListApplicationViewer_UpdateApplicant', function(button)
|
||||
if not button.DeclineButton.template then
|
||||
S:HandleButton(button.DeclineButton, nil, true)
|
||||
end
|
||||
if not button.InviteButton.template then
|
||||
S:HandleButton(button.InviteButton)
|
||||
end
|
||||
end)
|
||||
|
||||
hooksecurefunc('LFGListSearchEntry_Update', function(button)
|
||||
if not button.CancelButton.template then
|
||||
S:HandleButton(button.CancelButton, nil, true)
|
||||
end
|
||||
end)
|
||||
|
||||
hooksecurefunc('LFGListSearchPanel_UpdateAutoComplete', function(self)
|
||||
for i = 1, LFGListFrame.SearchPanel.AutoCompleteFrame:GetNumChildren() do
|
||||
local child = select(i, LFGListFrame.SearchPanel.AutoCompleteFrame:GetChildren())
|
||||
if child and not child.isSkinned and child:IsObjectType('Button') then
|
||||
S:HandleButton(child)
|
||||
child.isSkinned = true
|
||||
end
|
||||
end
|
||||
|
||||
local text = self.SearchBox:GetText()
|
||||
local matchingActivities = C_LFGList_GetAvailableActivities(self.categoryID, nil, self.filters, text)
|
||||
local numResults = min(#matchingActivities, _G.MAX_LFG_LIST_SEARCH_AUTOCOMPLETE_ENTRIES)
|
||||
|
||||
for i = 2, numResults do
|
||||
local button = self.AutoCompleteFrame.Results[i]
|
||||
if button and not button.moved then
|
||||
button:Point('TOPLEFT', self.AutoCompleteFrame.Results[i-1], 'BOTTOMLEFT', 0, -2)
|
||||
button:Point('TOPRIGHT', self.AutoCompleteFrame.Results[i-1], 'BOTTOMRIGHT', 0, -2)
|
||||
button.moved = true
|
||||
end
|
||||
end
|
||||
self.AutoCompleteFrame:Height(numResults * (self.AutoCompleteFrame.Results[1]:GetHeight() + 3.5) + 8)
|
||||
end)
|
||||
|
||||
LFGListFrame.SearchPanel.AutoCompleteFrame:StripTextures()
|
||||
LFGListFrame.SearchPanel.AutoCompleteFrame:CreateBackdrop('Transparent')
|
||||
LFGListFrame.SearchPanel.AutoCompleteFrame.backdrop:Point('TOPLEFT', LFGListFrame.SearchPanel.AutoCompleteFrame, 'TOPLEFT', 0, 3)
|
||||
LFGListFrame.SearchPanel.AutoCompleteFrame.backdrop:Point('BOTTOMRIGHT', LFGListFrame.SearchPanel.AutoCompleteFrame, 'BOTTOMRIGHT', 6, 3)
|
||||
|
||||
LFGListFrame.SearchPanel.AutoCompleteFrame:Point('TOPLEFT', LFGListFrame.SearchPanel.SearchBox, 'BOTTOMLEFT', -2, -8)
|
||||
LFGListFrame.SearchPanel.AutoCompleteFrame:Point('TOPRIGHT', LFGListFrame.SearchPanel.SearchBox, 'BOTTOMRIGHT', -4, -8)
|
||||
|
||||
--ApplicationViewer (Custom Groups)
|
||||
LFGListFrame.ApplicationViewer.EntryName:FontTemplate()
|
||||
LFGListFrame.ApplicationViewer.InfoBackground:SetTexCoord(unpack(E.TexCoords))
|
||||
S:HandleCheckBox(LFGListFrame.ApplicationViewer.AutoAcceptButton)
|
||||
|
||||
LFGListFrame.ApplicationViewer.Inset:StripTextures()
|
||||
LFGListFrame.ApplicationViewer.Inset:CreateBackdrop('Transparent')
|
||||
|
||||
S:HandleButton(LFGListFrame.ApplicationViewer.NameColumnHeader, true)
|
||||
S:HandleButton(LFGListFrame.ApplicationViewer.RoleColumnHeader, true)
|
||||
S:HandleButton(LFGListFrame.ApplicationViewer.ItemLevelColumnHeader, true)
|
||||
LFGListFrame.ApplicationViewer.NameColumnHeader:ClearAllPoints()
|
||||
LFGListFrame.ApplicationViewer.NameColumnHeader:Point('BOTTOMLEFT', LFGListFrame.ApplicationViewer.Inset, 'TOPLEFT', 0, 1)
|
||||
LFGListFrame.ApplicationViewer.NameColumnHeader.Label:FontTemplate()
|
||||
LFGListFrame.ApplicationViewer.RoleColumnHeader:ClearAllPoints()
|
||||
LFGListFrame.ApplicationViewer.RoleColumnHeader:Point('LEFT', LFGListFrame.ApplicationViewer.NameColumnHeader, 'RIGHT', 1, 0)
|
||||
LFGListFrame.ApplicationViewer.RoleColumnHeader.Label:FontTemplate()
|
||||
LFGListFrame.ApplicationViewer.ItemLevelColumnHeader:ClearAllPoints()
|
||||
LFGListFrame.ApplicationViewer.ItemLevelColumnHeader:Point('LEFT', LFGListFrame.ApplicationViewer.RoleColumnHeader, 'RIGHT', 1, 0)
|
||||
LFGListFrame.ApplicationViewer.ItemLevelColumnHeader.Label:FontTemplate()
|
||||
LFGListFrame.ApplicationViewer.PrivateGroup:FontTemplate()
|
||||
|
||||
S:HandleButton(LFGListFrame.ApplicationViewer.RefreshButton)
|
||||
LFGListFrame.ApplicationViewer.RefreshButton:Size(24, 24)
|
||||
LFGListFrame.ApplicationViewer.RefreshButton:ClearAllPoints()
|
||||
LFGListFrame.ApplicationViewer.RefreshButton:Point('BOTTOMRIGHT', LFGListFrame.ApplicationViewer.Inset, 'TOPRIGHT', 16, 4)
|
||||
|
||||
S:HandleButton(LFGListFrame.ApplicationViewer.RemoveEntryButton, true)
|
||||
S:HandleButton(LFGListFrame.ApplicationViewer.EditButton, true)
|
||||
LFGListFrame.ApplicationViewer.RemoveEntryButton:ClearAllPoints()
|
||||
LFGListFrame.ApplicationViewer.RemoveEntryButton:Point('BOTTOMLEFT', -1, 3)
|
||||
LFGListFrame.ApplicationViewer.EditButton:ClearAllPoints()
|
||||
LFGListFrame.ApplicationViewer.EditButton:Point('BOTTOMRIGHT', -6, 3)
|
||||
|
||||
local LFGListApplicationViewerScrollFrameScrollBar = _G.LFGListApplicationViewerScrollFrameScrollBar
|
||||
S:HandleScrollBar(LFGListApplicationViewerScrollFrameScrollBar)
|
||||
LFGListApplicationViewerScrollFrameScrollBar:ClearAllPoints()
|
||||
LFGListApplicationViewerScrollFrameScrollBar:Point('TOPLEFT', LFGListFrame.ApplicationViewer.Inset, 'TOPRIGHT', 0, -14)
|
||||
LFGListApplicationViewerScrollFrameScrollBar:Point('BOTTOMLEFT', LFGListFrame.ApplicationViewer.Inset, 'BOTTOMRIGHT', 0, 14)
|
||||
|
||||
hooksecurefunc('LFGListCategorySelection_AddButton', function(self, btnIndex, categoryID, filters)
|
||||
local button = self.CategoryButtons[btnIndex]
|
||||
if button then
|
||||
if not button.isSkinned then
|
||||
button:CreateBackdrop()
|
||||
button.backdrop:SetAllPoints()
|
||||
button.Icon:SetDrawLayer('BACKGROUND', 2)
|
||||
button.Icon:SetTexCoord(unpack(E.TexCoords))
|
||||
button.Icon:SetInside()
|
||||
button.Cover:Hide()
|
||||
button.HighlightTexture:SetColorTexture(1, 1, 1, 0.1)
|
||||
button.HighlightTexture:SetInside()
|
||||
--Fix issue with labels not following changes to GameFontNormal as they should
|
||||
button.Label:SetFontObject(_G.GameFontNormal)
|
||||
button.isSkinned = true
|
||||
end
|
||||
|
||||
button.SelectedTexture:Hide()
|
||||
local selected = self.selectedCategory == categoryID and self.selectedFilters == filters
|
||||
if selected then
|
||||
button.backdrop:SetBackdropBorderColor(1, 1, 0)
|
||||
else
|
||||
button.backdrop:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
function S:Blizzard_ChallengesUI()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.lfg) then return end
|
||||
|
||||
local ChallengesFrame = _G.ChallengesFrame
|
||||
ChallengesFrame:DisableDrawLayer('BACKGROUND')
|
||||
_G.ChallengesFrameInset:StripTextures()
|
||||
|
||||
-- Mythic+ KeyStoneFrame
|
||||
local KeyStoneFrame = _G.ChallengesKeystoneFrame
|
||||
KeyStoneFrame:CreateBackdrop('Transparent')
|
||||
S:HandleCloseButton(KeyStoneFrame.CloseButton)
|
||||
S:HandleButton(KeyStoneFrame.StartButton)
|
||||
|
||||
hooksecurefunc('ChallengesFrame_Update', function(self)
|
||||
for _, frame in ipairs(self.DungeonIcons) do
|
||||
if not frame.backdrop then
|
||||
frame:GetRegions():SetAlpha(0)
|
||||
frame:CreateBackdrop('Transparent')
|
||||
frame.backdrop:SetAllPoints()
|
||||
S:HandleIcon(frame.Icon, true)
|
||||
frame.Icon:SetInside()
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
hooksecurefunc(ChallengesFrame.WeeklyInfo, 'SetUp', function(self)
|
||||
local affixes = C_MythicPlus_GetCurrentAffixes()
|
||||
if affixes then
|
||||
HandleAffixIcons(self.Child)
|
||||
end
|
||||
end)
|
||||
|
||||
hooksecurefunc(KeyStoneFrame, 'Reset', function(self)
|
||||
self:GetRegions():SetAlpha(0)
|
||||
self.InstructionBackground:SetAlpha(0)
|
||||
end)
|
||||
|
||||
hooksecurefunc(KeyStoneFrame, 'OnKeystoneSlotted', HandleAffixIcons)
|
||||
|
||||
-- New Season Frame
|
||||
local NoticeFrame = _G.ChallengesFrame.SeasonChangeNoticeFrame
|
||||
S:HandleButton(NoticeFrame.Leave)
|
||||
NoticeFrame:StripTextures()
|
||||
NoticeFrame:CreateBackdrop()
|
||||
NoticeFrame:SetFrameLevel(5)
|
||||
NoticeFrame.NewSeason:SetTextColor(1, .8, 0)
|
||||
NoticeFrame.NewSeason:SetShadowOffset(1, -1)
|
||||
NoticeFrame.SeasonDescription:SetTextColor(1, 1, 1)
|
||||
NoticeFrame.SeasonDescription:SetShadowOffset(1, -1)
|
||||
NoticeFrame.SeasonDescription2:SetTextColor(1, 1, 1)
|
||||
NoticeFrame.SeasonDescription2:SetShadowOffset(1, -1)
|
||||
NoticeFrame.SeasonDescription3:SetTextColor(1, .8, 0)
|
||||
NoticeFrame.SeasonDescription3:SetShadowOffset(1, -1)
|
||||
|
||||
local affix = NoticeFrame.Affix
|
||||
affix.AffixBorder:Hide()
|
||||
affix.Portrait:SetTexCoord(unpack(E.TexCoords))
|
||||
|
||||
hooksecurefunc(affix, 'SetUp', function(self, affixID)
|
||||
local _, _, texture = C_ChallengeMode_GetAffixInfo(affixID)
|
||||
if texture then
|
||||
affix.Portrait:SetTexture(texture)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
S:AddCallback('LookingForGroupFrames')
|
||||
S:AddCallbackForAddon('Blizzard_ChallengesUI')
|
||||
68
Modules/Skins/Blizzard/LFGuild.lua
Normal file
68
Modules/Skins/Blizzard/LFGuild.lua
Normal file
@@ -0,0 +1,68 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local pairs = pairs
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
function S:LookingForGuildFrame()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.lfguild) then return end
|
||||
|
||||
local LookingForGuildFrame = _G.LookingForGuildFrame
|
||||
S:HandlePortraitFrame(LookingForGuildFrame)
|
||||
|
||||
local checkbox = {
|
||||
'LookingForGuildPvPButton',
|
||||
'LookingForGuildWeekendsButton',
|
||||
'LookingForGuildWeekdaysButton',
|
||||
'LookingForGuildRPButton',
|
||||
'LookingForGuildRaidButton',
|
||||
'LookingForGuildQuestButton',
|
||||
'LookingForGuildDungeonButton',
|
||||
}
|
||||
|
||||
-- skin checkboxes
|
||||
for _, v in pairs(checkbox) do
|
||||
S:HandleCheckBox(_G[v])
|
||||
end
|
||||
|
||||
-- have to skin these checkboxes seperate for some reason o_O
|
||||
S:HandleCheckBox(_G.LookingForGuildTankButton.checkButton)
|
||||
S:HandleCheckBox(_G.LookingForGuildHealerButton.checkButton)
|
||||
S:HandleCheckBox(_G.LookingForGuildDamagerButton.checkButton)
|
||||
|
||||
S:HandleScrollBar(_G.LookingForGuildBrowseFrameContainerScrollBar)
|
||||
S:HandleButton(_G.LookingForGuildBrowseButton)
|
||||
S:HandleButton(_G.LookingForGuildRequestButton)
|
||||
|
||||
_G.LookingForGuildCommentInputFrame:CreateBackdrop()
|
||||
_G.LookingForGuildCommentInputFrame:StripTextures(false)
|
||||
|
||||
-- skin container buttons on browse and request page
|
||||
for i = 1, 5 do
|
||||
_G['LookingForGuildBrowseFrameContainerButton'..i]:SetBackdrop()
|
||||
_G['LookingForGuildAppsFrameContainerButton'..i]:SetBackdrop()
|
||||
end
|
||||
|
||||
-- skin tabs
|
||||
for i= 1, 3 do
|
||||
S:HandleTab(_G['LookingForGuildFrameTab'..i])
|
||||
end
|
||||
|
||||
_G.GuildFinderRequestMembershipFrame:StripTextures(true)
|
||||
_G.GuildFinderRequestMembershipFrame:SetTemplate('Transparent')
|
||||
S:HandleButton(_G.GuildFinderRequestMembershipFrameAcceptButton)
|
||||
S:HandleButton(_G.GuildFinderRequestMembershipFrameCancelButton)
|
||||
_G.GuildFinderRequestMembershipFrameInputFrame:StripTextures()
|
||||
_G.GuildFinderRequestMembershipFrameInputFrame:SetTemplate()
|
||||
end
|
||||
|
||||
function S:Blizzard_LookingForGuildUI()
|
||||
if _G.LookingForGuildFrame then -- frame exists
|
||||
S:LookingForGuildFrame()
|
||||
else -- not yet, wait until it is exists
|
||||
hooksecurefunc('LookingForGuildFrame_CreateUIElements', S.LookingForGuildFrame)
|
||||
end
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_LookingForGuildUI')
|
||||
98
Modules/Skins/Blizzard/Load_Blizzard.xml
Normal file
98
Modules/Skins/Blizzard/Load_Blizzard.xml
Normal file
@@ -0,0 +1,98 @@
|
||||
<Ui xmlns='http://www.blizzard.com/wow/ui/'>
|
||||
<Script file='Achievement.lua'/>
|
||||
<Script file='Addonmanager.lua'/>
|
||||
<Script file='AdventureMap.lua'/>
|
||||
<Script file='Alerts.lua'/>
|
||||
<Script file='AlliedRaces.lua'/>
|
||||
<Script file='Archaeology.lua'/>
|
||||
<Script file='Artifact.lua'/>
|
||||
<Script file='AuctionHouse.lua'/>
|
||||
<Script file='Azerite.lua'/>
|
||||
<Script file='AzeriteEssence.lua'/>
|
||||
<Script file='AzeriteRespec.lua'/>
|
||||
<Script file='Bags.lua'/>
|
||||
<Script file='Battlenet.lua'/>
|
||||
<Script file='BGMap.lua'/>
|
||||
<Script file='Binding.lua'/>
|
||||
<Script file='BlackMarket.lua'/>
|
||||
<Script file='BlizzardOptions.lua'/>
|
||||
<Script file='Calendar.lua'/>
|
||||
<Script file='Channels.lua'/>
|
||||
<Script file='Character.lua'/>
|
||||
<Script file='Collectables.lua'/>
|
||||
<Script file='CombatLog.lua' />
|
||||
<Script file='Communities.lua'/>
|
||||
<Script file='Contribution.lua'/>
|
||||
<Script file='DeathRecap.lua'/>
|
||||
<Script file='Debug.lua'/>
|
||||
<Script file='DressingRoom.lua'/>
|
||||
<Script file='EncounterJournal.lua'/>
|
||||
<Script file='FlightMap.lua'/>
|
||||
<Script file='Friends.lua'/>
|
||||
<Script file='Garrison.lua'/>
|
||||
<Script file='GarrisonTemplate.lua'/>
|
||||
<Script file='GMChat.lua'/>
|
||||
<Script file='Gossip.lua'/>
|
||||
<Script file='Guild.lua'/>
|
||||
<Script file='GuildBank.lua'/>
|
||||
<Script file='GuildControl.lua'/>
|
||||
<Script file='GuildRegistrar.lua'/>
|
||||
<Script file='Help.lua'/>
|
||||
<Script file='Inspect.lua'/>
|
||||
<Script file='IslandPartyPose.lua'/>
|
||||
<Script file='IslandQueue.lua'/>
|
||||
<Script file='ItemInteraction.lua'/>
|
||||
<Script file='ItemUpgrade.lua'/>
|
||||
<Script file='LFG.lua'/>
|
||||
<Script file='LFGuild.lua'/>
|
||||
<Script file='Loot.lua'/>
|
||||
<Script file='LossControl.lua'/>
|
||||
<Script file='Macro.lua'/>
|
||||
<Script file='Mail.lua'/>
|
||||
<Script file='Merchant.lua'/>
|
||||
<Script file='MirrorTimers.lua'/>
|
||||
<Script file='Misc.lua'/>
|
||||
<Script file='NonRaid.lua'/>
|
||||
<Script file='ObjectiveTracker.lua'/>
|
||||
<Script file='Obliterum.lua'/>
|
||||
<Script file='Orderhall.lua'/>
|
||||
<Script file='PetBattle.lua'/>
|
||||
<Script file='Petition.lua'/>
|
||||
<Script file='PVP.lua'/>
|
||||
<Script file='PVPMatch.lua'/>
|
||||
<Script file='Quest.lua'/>
|
||||
<Script file='QuestChoice.lua'/>
|
||||
<Script file='Raid.lua'/>
|
||||
<Script file='ScrappingMachine.lua'/>
|
||||
<Script file='Socket.lua'/>
|
||||
<Script file='SpellBook.lua'/>
|
||||
<Script file='Stable.lua'/>
|
||||
<Script file='Tabard.lua'/>
|
||||
<Script file='Talent.lua'/>
|
||||
<Script file='TalkingHead.lua'/>
|
||||
<Script file='Taxi.lua'/>
|
||||
<Script file='TimeManager.lua'/>
|
||||
<Script file='Tooltip.lua'/>
|
||||
<Script file='Trade.lua'/>
|
||||
<Script file='TradeSkill.lua'/>
|
||||
<Script file='Trainer.lua'/>
|
||||
<Script file='TutorialFrame.lua'/>
|
||||
<Script file='VoidStorage.lua'/>
|
||||
<Script file='Warboard.lua'/>
|
||||
<Script file='WarfrontPartyPose.lua'/>
|
||||
<Script file='WorldMap.lua'/>
|
||||
|
||||
<!--9.0-->
|
||||
<Script file='AnimaDiversion.lua'/>
|
||||
<Script file='Barber.lua'/>
|
||||
<Script file='CovenantPreview.lua'/>
|
||||
<Script file='CovenantSanctum.lua'/>
|
||||
<Script file='ChromieTime.lua'/>
|
||||
<Script file='Guide.lua'/>
|
||||
<Script file='PlayerChoice.lua'/>
|
||||
<Script file='Runeforge.lua'/>
|
||||
<Script file='Soulbinds.lua'/>
|
||||
<Script file='SubscriptionInterstitial.lua'/>
|
||||
<Script file='TorghastLevelPicker.lua'/>
|
||||
<Script file='WeeklyRewards.lua'/>
|
||||
</Ui>
|
||||
259
Modules/Skins/Blizzard/Loot.lua
Normal file
259
Modules/Skins/Blizzard/Loot.lua
Normal file
@@ -0,0 +1,259 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
local LBG = E.Libs.ButtonGlow
|
||||
|
||||
local _G = _G
|
||||
local unpack, select = unpack, select
|
||||
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
local CreateFrame = CreateFrame
|
||||
local GetLootSlotInfo = GetLootSlotInfo
|
||||
local UnitIsDead = UnitIsDead
|
||||
local UnitIsFriend = UnitIsFriend
|
||||
local UnitName = UnitName
|
||||
local IsFishingLoot = IsFishingLoot
|
||||
local C_LootHistory_GetNumItems = C_LootHistory.GetNumItems
|
||||
local ITEM_QUALITY_COLORS = ITEM_QUALITY_COLORS
|
||||
local LOOT, ITEMS = LOOT, ITEMS
|
||||
|
||||
local function UpdateLoots()
|
||||
local numItems = C_LootHistory_GetNumItems()
|
||||
for i=1, numItems do
|
||||
local frame = _G.LootHistoryFrame.itemFrames[i]
|
||||
if frame and not frame.isSkinned then
|
||||
local Icon = frame.Icon:GetTexture()
|
||||
frame:StripTextures()
|
||||
frame.Icon:SetTexture(Icon)
|
||||
frame.Icon:SetTexCoord(unpack(E.TexCoords))
|
||||
|
||||
-- create a backdrop around the icon
|
||||
frame:CreateBackdrop()
|
||||
frame.backdrop:SetOutside(frame.Icon)
|
||||
frame.Icon:SetParent(frame.backdrop)
|
||||
|
||||
frame.isSkinned = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function S:LootFrame()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.loot) then return end
|
||||
|
||||
-- Loot history frame
|
||||
local LootHistoryFrame = _G.LootHistoryFrame
|
||||
LootHistoryFrame:StripTextures()
|
||||
S:HandleCloseButton(LootHistoryFrame.CloseButton)
|
||||
LootHistoryFrame:StripTextures()
|
||||
LootHistoryFrame:CreateBackdrop('Transparent')
|
||||
LootHistoryFrame.ResizeButton:StripTextures()
|
||||
LootHistoryFrame.ResizeButton.text = LootHistoryFrame.ResizeButton:CreateFontString(nil, 'OVERLAY')
|
||||
LootHistoryFrame.ResizeButton.text:FontTemplate(nil, 16, 'OUTLINE')
|
||||
LootHistoryFrame.ResizeButton.text:SetJustifyH('CENTER')
|
||||
LootHistoryFrame.ResizeButton.text:Point('CENTER', LootHistoryFrame.ResizeButton)
|
||||
LootHistoryFrame.ResizeButton.text:SetText('v v v v')
|
||||
LootHistoryFrame.ResizeButton:CreateBackdrop()
|
||||
LootHistoryFrame.ResizeButton:Width(LootHistoryFrame:GetWidth())
|
||||
LootHistoryFrame.ResizeButton:Height(19)
|
||||
LootHistoryFrame.ResizeButton:ClearAllPoints()
|
||||
LootHistoryFrame.ResizeButton:Point('TOP', LootHistoryFrame, 'BOTTOM', 0, -2)
|
||||
_G.LootHistoryFrameScrollFrame:StripTextures()
|
||||
S:HandleScrollBar(_G.LootHistoryFrameScrollFrameScrollBar)
|
||||
|
||||
hooksecurefunc('LootHistoryFrame_FullUpdate', UpdateLoots)
|
||||
|
||||
-- Master Loot
|
||||
local MasterLooterFrame = _G.MasterLooterFrame
|
||||
MasterLooterFrame:StripTextures()
|
||||
MasterLooterFrame:CreateBackdrop()
|
||||
|
||||
hooksecurefunc('MasterLooterFrame_Show', function()
|
||||
local b = MasterLooterFrame.Item
|
||||
if b then
|
||||
local i = b.Icon
|
||||
local icon = i:GetTexture()
|
||||
local c = ITEM_QUALITY_COLORS[_G.LootFrame.selectedQuality]
|
||||
|
||||
b:StripTextures()
|
||||
i:SetTexture(icon)
|
||||
i:SetTexCoord(unpack(E.TexCoords))
|
||||
b:CreateBackdrop()
|
||||
b.backdrop:SetOutside(i)
|
||||
b.backdrop:SetBackdropBorderColor(c.r, c.g, c.b)
|
||||
end
|
||||
|
||||
for i=1, MasterLooterFrame:GetNumChildren() do
|
||||
local child = select(i, MasterLooterFrame:GetChildren())
|
||||
if child and not child.isSkinned and not child:GetName() then
|
||||
if child:IsObjectType('Button') then
|
||||
if child:GetPushedTexture() then
|
||||
S:HandleCloseButton(child)
|
||||
else
|
||||
child:SetTemplate()
|
||||
child:StyleButton()
|
||||
end
|
||||
child.isSkinned = true
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
-- Bonus Roll Frame
|
||||
local BonusRollFrame = _G.BonusRollFrame
|
||||
BonusRollFrame:StripTextures()
|
||||
BonusRollFrame:CreateBackdrop('Transparent')
|
||||
|
||||
BonusRollFrame.SpecRing:SetTexture()
|
||||
BonusRollFrame.CurrentCountFrame.Text:FontTemplate()
|
||||
|
||||
BonusRollFrame.PromptFrame.Icon:SetTexCoord(unpack(E.TexCoords))
|
||||
BonusRollFrame.PromptFrame.IconBackdrop = CreateFrame('Frame', nil, BonusRollFrame.PromptFrame, 'BackdropTemplate')
|
||||
BonusRollFrame.PromptFrame.IconBackdrop:SetFrameLevel(BonusRollFrame.PromptFrame.IconBackdrop:GetFrameLevel() - 1)
|
||||
BonusRollFrame.PromptFrame.IconBackdrop:SetOutside(BonusRollFrame.PromptFrame.Icon)
|
||||
BonusRollFrame.PromptFrame.IconBackdrop:CreateBackdrop()
|
||||
|
||||
BonusRollFrame.PromptFrame.Timer:SetStatusBarTexture(E.media.normTex)
|
||||
BonusRollFrame.PromptFrame.Timer:SetStatusBarColor(unpack(E.media.rgbvaluecolor))
|
||||
|
||||
BonusRollFrame.BlackBackgroundHoist.Background:Hide()
|
||||
BonusRollFrame.BlackBackgroundHoist.b = CreateFrame('Frame', nil, BonusRollFrame, 'BackdropTemplate')
|
||||
BonusRollFrame.BlackBackgroundHoist.b:SetTemplate()
|
||||
BonusRollFrame.BlackBackgroundHoist.b:SetOutside(BonusRollFrame.PromptFrame.Timer)
|
||||
|
||||
BonusRollFrame.SpecIcon.b = CreateFrame('Frame', nil, BonusRollFrame, 'BackdropTemplate')
|
||||
BonusRollFrame.SpecIcon.b:SetTemplate()
|
||||
BonusRollFrame.SpecIcon.b:Point('BOTTOMRIGHT', BonusRollFrame, -2, 2)
|
||||
BonusRollFrame.SpecIcon.b:Size(BonusRollFrame.SpecIcon:GetSize())
|
||||
BonusRollFrame.SpecIcon.b:SetFrameLevel(6)
|
||||
BonusRollFrame.SpecIcon:SetParent(BonusRollFrame.SpecIcon.b)
|
||||
BonusRollFrame.SpecIcon:SetTexCoord(unpack(E.TexCoords))
|
||||
BonusRollFrame.SpecIcon:SetInside()
|
||||
hooksecurefunc(BonusRollFrame.SpecIcon, 'Hide', function(specIcon)
|
||||
if specIcon.b and specIcon.b:IsShown() then
|
||||
BonusRollFrame.CurrentCountFrame:ClearAllPoints()
|
||||
BonusRollFrame.CurrentCountFrame:Point('BOTTOMRIGHT', BonusRollFrame, -2, 1)
|
||||
specIcon.b:Hide()
|
||||
end
|
||||
end)
|
||||
hooksecurefunc(BonusRollFrame.SpecIcon, 'Show', function(specIcon)
|
||||
if specIcon.b and not specIcon.b:IsShown() and specIcon:GetTexture() ~= nil then
|
||||
BonusRollFrame.CurrentCountFrame:ClearAllPoints()
|
||||
BonusRollFrame.CurrentCountFrame:Point('RIGHT', BonusRollFrame.SpecIcon.b, 'LEFT', -2, -2)
|
||||
specIcon.b:Show()
|
||||
end
|
||||
end)
|
||||
|
||||
hooksecurefunc('BonusRollFrame_StartBonusRoll', function()
|
||||
--keep the status bar a frame above but its increased 1 extra beacuse mera has a grid layer
|
||||
local BonusRollFrameLevel = BonusRollFrame:GetFrameLevel();
|
||||
BonusRollFrame.PromptFrame.Timer:SetFrameLevel(BonusRollFrameLevel+2);
|
||||
if BonusRollFrame.BlackBackgroundHoist.b then
|
||||
BonusRollFrame.BlackBackgroundHoist.b:SetFrameLevel(BonusRollFrameLevel+1);
|
||||
end
|
||||
|
||||
--set currency icons position at bottom right (or left of the spec icon, on the bottom right)
|
||||
BonusRollFrame.CurrentCountFrame:ClearAllPoints()
|
||||
if BonusRollFrame.SpecIcon.b then
|
||||
BonusRollFrame.SpecIcon.b:SetShown(BonusRollFrame.SpecIcon:IsShown() and BonusRollFrame.SpecIcon:GetTexture() ~= nil);
|
||||
if BonusRollFrame.SpecIcon.b:IsShown() then
|
||||
BonusRollFrame.CurrentCountFrame:Point('RIGHT', BonusRollFrame.SpecIcon.b, 'LEFT', -2, -2)
|
||||
else
|
||||
BonusRollFrame.CurrentCountFrame:Point('BOTTOMRIGHT', BonusRollFrame, -2, 1)
|
||||
end
|
||||
else
|
||||
BonusRollFrame.CurrentCountFrame:Point('BOTTOMRIGHT', BonusRollFrame, -2, 1)
|
||||
end
|
||||
|
||||
--skin currency icons
|
||||
local ccf, pfifc = BonusRollFrame.CurrentCountFrame.Text, BonusRollFrame.PromptFrame.InfoFrame.Cost
|
||||
local text1, text2 = ccf and ccf:GetText(), pfifc and pfifc:GetText()
|
||||
if text1 and text1:find('|t') then ccf:SetText(text1:gsub('|T(.-):.-|t', '|T%1:16:16:0:0:64:64:5:59:5:59|t')) end
|
||||
if text2 and text2:find('|t') then pfifc:SetText(text2:gsub('|T(.-):.-|t', '|T%1:16:16:0:0:64:64:5:59:5:59|t')) end
|
||||
end)
|
||||
|
||||
local LootFrame = _G.LootFrame
|
||||
S:HandlePortraitFrame(LootFrame)
|
||||
LootFrame:Height(LootFrame:GetHeight() - 30)
|
||||
_G.LootFramePortraitOverlay:SetParent(E.HiddenFrame)
|
||||
|
||||
for i=1, LootFrame:GetNumRegions() do
|
||||
local region = select(i, LootFrame:GetRegions());
|
||||
if region:IsObjectType('FontString') then
|
||||
if region:GetText() == ITEMS then
|
||||
LootFrame.Title = region
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
LootFrame.Title:ClearAllPoints()
|
||||
LootFrame.Title:Point('TOPLEFT', LootFrame, 'TOPLEFT', 4, -4)
|
||||
LootFrame.Title:SetJustifyH('LEFT')
|
||||
|
||||
for i=1, _G.LOOTFRAME_NUMBUTTONS do
|
||||
local button = _G['LootButton'..i]
|
||||
_G['LootButton'..i..'NameFrame']:Hide()
|
||||
_G['LootButton'..i..'IconQuestTexture']:SetParent(E.HiddenFrame)
|
||||
S:HandleItemButton(button, true)
|
||||
S:HandleIconBorder(button.IconBorder)
|
||||
|
||||
local point, attachTo, point2, x, y = button:GetPoint()
|
||||
button:ClearAllPoints()
|
||||
button:Point(point, attachTo, point2, x, y+30)
|
||||
end
|
||||
|
||||
hooksecurefunc('LootFrame_UpdateButton', function(index)
|
||||
local numLootItems = LootFrame.numLootItems;
|
||||
--Logic to determine how many items to show per page
|
||||
local numLootToShow = _G.LOOTFRAME_NUMBUTTONS;
|
||||
if LootFrame.AutoLootTable then
|
||||
numLootItems = #LootFrame.AutoLootTable;
|
||||
end
|
||||
if numLootItems > _G.LOOTFRAME_NUMBUTTONS then
|
||||
numLootToShow = numLootToShow - 1; -- make space for the page buttons
|
||||
end
|
||||
|
||||
local button = _G['LootButton'..index];
|
||||
local slot = (numLootToShow * (LootFrame.page - 1)) + index;
|
||||
if button and button:IsShown() then
|
||||
local texture, _, isQuestItem, questId, isActive;
|
||||
if LootFrame.AutoLootTable then
|
||||
local entry = LootFrame.AutoLootTable[slot];
|
||||
if entry.hide then
|
||||
button:Hide();
|
||||
return;
|
||||
else
|
||||
texture = entry.texture;
|
||||
isQuestItem = entry.isQuestItem;
|
||||
questId = entry.questId;
|
||||
isActive = entry.isActive;
|
||||
end
|
||||
else
|
||||
texture, _, _, _, _, isQuestItem, questId, isActive = GetLootSlotInfo(slot);
|
||||
end
|
||||
|
||||
if texture then
|
||||
if questId and not isActive then
|
||||
LBG.ShowOverlayGlow(button)
|
||||
elseif questId or isQuestItem then
|
||||
LBG.ShowOverlayGlow(button)
|
||||
else
|
||||
LBG.HideOverlayGlow(button)
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
LootFrame:HookScript('OnShow', function(s)
|
||||
if IsFishingLoot() then
|
||||
s.Title:SetText(L["Fishy Loot"])
|
||||
elseif not UnitIsFriend('player', 'target') and UnitIsDead('target') then
|
||||
s.Title:SetText(UnitName('target'))
|
||||
else
|
||||
s.Title:SetText(LOOT)
|
||||
end
|
||||
end)
|
||||
|
||||
S:HandleNextPrevButton(_G.LootFrameDownButton)
|
||||
S:HandleNextPrevButton(_G.LootFrameUpButton)
|
||||
end
|
||||
|
||||
S:AddCallback('LootFrame')
|
||||
49
Modules/Skins/Blizzard/LossControl.lua
Normal file
49
Modules/Skins/Blizzard/LossControl.lua
Normal file
@@ -0,0 +1,49 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local CreateFrame = CreateFrame
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
function S:LossOfControlFrame()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.losscontrol) then return end
|
||||
|
||||
--/run LossOfControlFrame.fadeTime = 2000; LossOfControlFrame_SetUpDisplay(LossOfControlFrame, true, 'CONFUSE', 2094, 'Disoriented', [[Interface\Icons\Spell_Shadow_MindSteal]], 72101.9765625, 7.9950003623962, 8, 0, 5, 2)
|
||||
local LossOfControlFrame = _G.LossOfControlFrame
|
||||
local IconBackdrop = CreateFrame('Frame', nil, LossOfControlFrame, 'BackdropTemplate')
|
||||
IconBackdrop:SetTemplate()
|
||||
IconBackdrop:SetOutside(LossOfControlFrame.Icon)
|
||||
IconBackdrop:SetFrameLevel(LossOfControlFrame:GetFrameLevel() - 1)
|
||||
|
||||
LossOfControlFrame.Icon:SetTexCoord(.1, .9, .1, .9)
|
||||
LossOfControlFrame:StripTextures()
|
||||
LossOfControlFrame.AbilityName:ClearAllPoints()
|
||||
LossOfControlFrame:Size(LossOfControlFrame.Icon:GetWidth() + 50)
|
||||
|
||||
hooksecurefunc('LossOfControlFrame_SetUpDisplay', function(s)
|
||||
s.Icon:ClearAllPoints()
|
||||
s.Icon:Point('CENTER', s, 'CENTER', 0, 0)
|
||||
|
||||
s.AbilityName:ClearAllPoints()
|
||||
s.AbilityName:Point('BOTTOM', s, 0, -28)
|
||||
s.AbilityName.scrollTime = nil;
|
||||
s.AbilityName:FontTemplate(nil, 20, 'OUTLINE')
|
||||
|
||||
s.TimeLeft.NumberText:ClearAllPoints()
|
||||
s.TimeLeft.NumberText:Point('BOTTOM', s, 4, -58)
|
||||
s.TimeLeft.NumberText.scrollTime = nil;
|
||||
s.TimeLeft.NumberText:FontTemplate(nil, 20, 'OUTLINE')
|
||||
|
||||
s.TimeLeft.SecondsText:ClearAllPoints()
|
||||
s.TimeLeft.SecondsText:Point('BOTTOM', s, 0, -80)
|
||||
s.TimeLeft.SecondsText.scrollTime = nil;
|
||||
s.TimeLeft.SecondsText:FontTemplate(nil, 20, 'OUTLINE')
|
||||
|
||||
-- always stop shake animation on start
|
||||
if s.Anim:IsPlaying() then
|
||||
s.Anim:Stop()
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
S:AddCallback('LossOfControlFrame')
|
||||
112
Modules/Skins/Blizzard/Macro.lua
Normal file
112
Modules/Skins/Blizzard/Macro.lua
Normal file
@@ -0,0 +1,112 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local unpack = unpack
|
||||
local format = format
|
||||
local HideUIPanel = HideUIPanel
|
||||
local ShowUIPanel = ShowUIPanel
|
||||
|
||||
function S:Blizzard_MacroUI()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.macro) then return end
|
||||
|
||||
local MacroFrame = _G.MacroFrame
|
||||
S:HandlePortraitFrame(MacroFrame)
|
||||
MacroFrame:Width(360)
|
||||
|
||||
_G.MacroFrameTextBackground:StripTextures()
|
||||
_G.MacroFrameTextBackground:SetTemplate('Transparent')
|
||||
_G.MacroButtonScrollFrame:StripTextures()
|
||||
_G.MacroButtonScrollFrame:CreateBackdrop('Transparent')
|
||||
|
||||
S:HandleScrollBar(_G.MacroButtonScrollFrameScrollBar)
|
||||
S:HandleScrollBar(_G.MacroFrameScrollFrameScrollBar)
|
||||
|
||||
local buttons = {
|
||||
_G.MacroSaveButton,
|
||||
_G.MacroCancelButton,
|
||||
_G.MacroDeleteButton,
|
||||
_G.MacroNewButton,
|
||||
_G.MacroExitButton,
|
||||
_G.MacroEditButton,
|
||||
_G.MacroFrameTab1,
|
||||
_G.MacroFrameTab2,
|
||||
}
|
||||
|
||||
for i = 1, #buttons do
|
||||
buttons[i]:StripTextures()
|
||||
S:HandleButton(buttons[i])
|
||||
end
|
||||
|
||||
_G.MacroNewButton:ClearAllPoints()
|
||||
_G.MacroNewButton:Point('RIGHT', _G.MacroExitButton, 'LEFT', -2 , 0)
|
||||
|
||||
for i = 1, 2 do
|
||||
local tab = _G[format('MacroFrameTab%s', i)]
|
||||
tab:Height(22)
|
||||
end
|
||||
_G.MacroFrameTab1:Point('TOPLEFT', MacroFrame, 'TOPLEFT', 85, -39)
|
||||
_G.MacroFrameTab2:Point('LEFT', _G.MacroFrameTab1, 'RIGHT', 4, 0)
|
||||
|
||||
--Reposition edit button
|
||||
_G.MacroEditButton:ClearAllPoints()
|
||||
_G.MacroEditButton:Point('BOTTOMLEFT', _G.MacroFrameSelectedMacroButton, 'BOTTOMRIGHT', 10, 0)
|
||||
|
||||
-- Regular scroll bar
|
||||
S:HandleScrollBar(_G.MacroButtonScrollFrame)
|
||||
|
||||
-- Big icon
|
||||
_G.MacroFrameSelectedMacroButton:StripTextures()
|
||||
_G.MacroFrameSelectedMacroButton:StyleButton(true)
|
||||
_G.MacroFrameSelectedMacroButton:GetNormalTexture():SetTexture()
|
||||
_G.MacroFrameSelectedMacroButton:CreateBackdrop()
|
||||
_G.MacroFrameSelectedMacroButtonIcon:SetTexCoord(unpack(E.TexCoords))
|
||||
_G.MacroFrameSelectedMacroButtonIcon:Point('TOPLEFT', 1, -1)
|
||||
_G.MacroFrameSelectedMacroButtonIcon:Point('BOTTOMRIGHT', -1, 1)
|
||||
|
||||
-- Skin all buttons
|
||||
for i = 1, _G.MAX_ACCOUNT_MACROS do
|
||||
local b = _G['MacroButton'..i]
|
||||
local t = _G['MacroButton'..i..'Icon']
|
||||
|
||||
if b then
|
||||
b:StripTextures()
|
||||
b:StyleButton(true)
|
||||
b:CreateBackdrop('Transparent')
|
||||
end
|
||||
|
||||
if t then
|
||||
t:SetTexCoord(unpack(E.TexCoords))
|
||||
t:Point('TOPLEFT', 1, -1)
|
||||
t:Point('BOTTOMRIGHT', -1, 1)
|
||||
end
|
||||
end
|
||||
|
||||
--Icon selection frame
|
||||
ShowUIPanel(MacroFrame); --Toggle frame to create necessary variables needed for popup frame
|
||||
HideUIPanel(MacroFrame);
|
||||
local MacroPopupFrame = _G.MacroPopupFrame
|
||||
MacroPopupFrame:Show() --Toggle the frame in order to create the necessary button elements
|
||||
MacroPopupFrame:Hide()
|
||||
|
||||
-- Popout Frame
|
||||
S:HandleButton(MacroPopupFrame.BorderBox.OkayButton)
|
||||
local cancel_btn = MacroPopupFrame.BorderBox.CancelButton
|
||||
S:HandleButton(cancel_btn)
|
||||
cancel_btn:ClearAllPoints()
|
||||
cancel_btn:Point('RIGHT', MacroPopupFrame.BorderBox, 'BOTTOMRIGHT', -5, 15)
|
||||
S:HandleScrollBar(_G.MacroPopupScrollFrameScrollBar)
|
||||
S:HandleEditBox(_G.MacroPopupEditBox)
|
||||
_G.MacroPopupNameLeft:SetTexture()
|
||||
_G.MacroPopupNameMiddle:SetTexture()
|
||||
_G.MacroPopupNameRight:SetTexture()
|
||||
|
||||
S:HandleIconSelectionFrame(MacroPopupFrame, _G.NUM_MACRO_ICONS_SHOWN, 'MacroPopupButton', 'MacroPopup')
|
||||
|
||||
MacroPopupFrame:HookScript('OnShow', function(s)
|
||||
s:ClearAllPoints()
|
||||
s:Point('TOPLEFT', MacroFrame, 'TOPRIGHT', 2, 0)
|
||||
end)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_MacroUI')
|
||||
158
Modules/Skins/Blizzard/Mail.lua
Normal file
158
Modules/Skins/Blizzard/Mail.lua
Normal file
@@ -0,0 +1,158 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local unpack = unpack
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
local function MailFrameSkin()
|
||||
for i = 1, _G.ATTACHMENTS_MAX_SEND do
|
||||
local btn = _G['SendMailAttachment'..i]
|
||||
if not btn.skinned then
|
||||
btn:StripTextures()
|
||||
btn:CreateBackdrop(nil, true)
|
||||
btn.backdrop:SetAllPoints()
|
||||
btn:StyleButton()
|
||||
S:HandleIconBorder(btn.IconBorder)
|
||||
|
||||
btn.skinned = true
|
||||
end
|
||||
|
||||
local t = btn:GetNormalTexture()
|
||||
if t then
|
||||
t:SetTexCoord(unpack(E.TexCoords))
|
||||
t:SetInside()
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function S:MailFrame()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.mail) then return end
|
||||
|
||||
local MailFrame = _G.MailFrame
|
||||
S:HandlePortraitFrame(MailFrame)
|
||||
|
||||
for i = 1, _G.INBOXITEMS_TO_DISPLAY do
|
||||
local bg = _G['MailItem'..i]
|
||||
bg:StripTextures()
|
||||
|
||||
local btn = _G['MailItem'..i..'Button']
|
||||
btn:StripTextures()
|
||||
btn:CreateBackdrop(nil, true)
|
||||
btn:StyleButton()
|
||||
|
||||
local t = _G['MailItem'..i..'ButtonIcon']
|
||||
t:SetTexCoord(unpack(E.TexCoords))
|
||||
t:SetInside()
|
||||
|
||||
S:HandleIconBorder(_G['MailItem'..i..'ButtonIconBorder'])
|
||||
end
|
||||
|
||||
_G.InboxFrame:CreateBackdrop('Transparent')
|
||||
_G.InboxFrame.backdrop:Point('TOPLEFT', _G.MailItem1, 'TOPLEFT')
|
||||
_G.InboxFrame.backdrop:Point('BOTTOMRIGHT', _G.MailItem7, 'BOTTOMRIGHT')
|
||||
|
||||
S:HandleNextPrevButton(_G.InboxPrevPageButton, nil, nil, true)
|
||||
S:HandleNextPrevButton(_G.InboxNextPageButton, nil, nil, true)
|
||||
_G.InboxPrevPageButton:StripTexts()
|
||||
_G.InboxNextPageButton:StripTexts()
|
||||
|
||||
_G.MailFrameTab1:StripTextures()
|
||||
_G.MailFrameTab2:StripTextures()
|
||||
S:HandleTab(_G.MailFrameTab1)
|
||||
S:HandleTab(_G.MailFrameTab2)
|
||||
|
||||
-- send mail
|
||||
_G.SendMailScrollFrame:StripTextures(true)
|
||||
_G.SendMailScrollFrame:CreateBackdrop()
|
||||
|
||||
S:HandleScrollBar(_G.SendMailScrollFrameScrollBar)
|
||||
|
||||
S:HandleEditBox(_G.SendMailNameEditBox)
|
||||
S:HandleEditBox(_G.SendMailSubjectEditBox)
|
||||
S:HandleEditBox(_G.SendMailMoneyGold)
|
||||
S:HandleEditBox(_G.SendMailMoneySilver)
|
||||
S:HandleEditBox(_G.SendMailMoneyCopper)
|
||||
_G.SendMailMoneyBg:Kill()
|
||||
_G.SendMailMoneyInset:StripTextures()
|
||||
|
||||
_G.SendMailNameEditBox:ClearAllPoints()
|
||||
_G.SendMailNameEditBox:Point('TOPLEFT', _G.SendMailFrame, 'TOPLEFT', 90, -30)
|
||||
_G.SendMailNameEditBox:Width(109)
|
||||
_G.SendMailNameEditBox:Height(18)
|
||||
|
||||
_G.SendMailSubjectEditBox:Point('TOPLEFT', _G.SendMailNameEditBox, 'BOTTOMLEFT', 0, -10)
|
||||
_G.SendMailSubjectEditBox:Width(214)
|
||||
_G.SendMailSubjectEditBox:Height(18)
|
||||
|
||||
_G.SendMailFrame:StripTextures()
|
||||
|
||||
hooksecurefunc('SendMailFrame_Update', MailFrameSkin)
|
||||
|
||||
S:HandleButton(_G.SendMailMailButton)
|
||||
S:HandleButton(_G.SendMailCancelButton)
|
||||
|
||||
S:HandleRadioButton(_G.SendMailSendMoneyButton)
|
||||
S:HandleRadioButton(_G.SendMailCODButton)
|
||||
|
||||
-- open mail (cod)
|
||||
_G.OpenMailFrame:StripTextures(true)
|
||||
_G.OpenMailFrame:CreateBackdrop('Transparent')
|
||||
_G.OpenMailFrameInset:Kill()
|
||||
|
||||
S:HandleCloseButton(_G.OpenMailFrameCloseButton)
|
||||
S:HandleButton(_G.OpenMailReportSpamButton)
|
||||
S:HandleButton(_G.OpenMailReplyButton)
|
||||
S:HandleButton(_G.OpenMailDeleteButton)
|
||||
S:HandleButton(_G.OpenMailCancelButton)
|
||||
S:HandleButton(_G.OpenAllMail)
|
||||
|
||||
_G.InboxFrame:StripTextures()
|
||||
_G.MailFrameInset:Kill()
|
||||
|
||||
_G.OpenMailScrollFrame:StripTextures(true)
|
||||
_G.OpenMailScrollFrame:CreateBackdrop()
|
||||
|
||||
S:HandleScrollBar(_G.OpenMailScrollFrameScrollBar)
|
||||
|
||||
_G.InboxPrevPageButton:Point('BOTTOMLEFT', 30, 100)
|
||||
_G.InboxNextPageButton:Point('BOTTOMRIGHT', -80, 100)
|
||||
_G.InvoiceTextFontNormal:FontTemplate(nil, 13)
|
||||
_G.MailTextFontNormal:FontTemplate(nil, 13)
|
||||
_G.InvoiceTextFontNormal:SetTextColor(1, 1, 1)
|
||||
_G.MailTextFontNormal:SetTextColor(1, 1, 1)
|
||||
_G.OpenMailArithmeticLine:Kill()
|
||||
|
||||
_G.OpenMailLetterButton:StripTextures()
|
||||
_G.OpenMailLetterButton:CreateBackdrop(nil, true)
|
||||
_G.OpenMailLetterButton:StyleButton()
|
||||
_G.OpenMailLetterButtonIconTexture:SetTexCoord(unpack(E.TexCoords))
|
||||
_G.OpenMailLetterButtonIconTexture:SetInside()
|
||||
|
||||
_G.OpenMailMoneyButton:StripTextures()
|
||||
_G.OpenMailMoneyButton:CreateBackdrop(nil, true)
|
||||
_G.OpenMailMoneyButton:StyleButton()
|
||||
_G.OpenMailMoneyButtonIconTexture:SetTexCoord(unpack(E.TexCoords))
|
||||
_G.OpenMailMoneyButtonIconTexture:SetInside()
|
||||
|
||||
for i = 1, _G.ATTACHMENTS_MAX_SEND do
|
||||
local btn = _G['OpenMailAttachmentButton'..i]
|
||||
btn:StripTextures()
|
||||
btn:CreateBackdrop(nil, true)
|
||||
btn:StyleButton()
|
||||
|
||||
S:HandleIconBorder(btn.IconBorder)
|
||||
|
||||
local t = _G['OpenMailAttachmentButton'..i..'IconTexture']
|
||||
if t then
|
||||
t:SetTexCoord(unpack(E.TexCoords))
|
||||
t:SetInside()
|
||||
end
|
||||
end
|
||||
|
||||
_G.OpenMailReplyButton:Point('RIGHT', _G.OpenMailDeleteButton, 'LEFT', -2, 0)
|
||||
_G.OpenMailDeleteButton:Point('RIGHT', _G.OpenMailCancelButton, 'LEFT', -2, 0)
|
||||
_G.SendMailMailButton:Point('RIGHT', _G.SendMailCancelButton, 'LEFT', -2, 0)
|
||||
end
|
||||
|
||||
S:AddCallback('MailFrame')
|
||||
97
Modules/Skins/Blizzard/Merchant.lua
Normal file
97
Modules/Skins/Blizzard/Merchant.lua
Normal file
@@ -0,0 +1,97 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local unpack = unpack
|
||||
|
||||
function S:MerchantFrame()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.merchant) then return end
|
||||
|
||||
local MerchantFrame = _G.MerchantFrame
|
||||
S:HandlePortraitFrame(MerchantFrame)
|
||||
|
||||
MerchantFrame.backdrop:Point('TOPLEFT', 6, 2)
|
||||
MerchantFrame.backdrop:Point('BOTTOMRIGHT', 2, -1)
|
||||
|
||||
MerchantFrame:Width(360)
|
||||
|
||||
_G.MerchantBuyBackItem:StripTextures(true)
|
||||
_G.MerchantBuyBackItem:CreateBackdrop('Transparent')
|
||||
|
||||
_G.MerchantExtraCurrencyInset:StripTextures()
|
||||
_G.MerchantExtraCurrencyBg:StripTextures()
|
||||
|
||||
_G.MerchantMoneyBg:StripTextures()
|
||||
_G.MerchantMoneyInset:StripTextures()
|
||||
_G.MerchantBuyBackItem.backdrop:Point('TOPLEFT', -6, 6)
|
||||
_G.MerchantBuyBackItem.backdrop:Point('BOTTOMRIGHT', 6, -6)
|
||||
|
||||
S:HandleDropDownBox(_G.MerchantFrameLootFilter)
|
||||
|
||||
-- Center the columns on the frame
|
||||
_G.MerchantItem1:Point('TOPLEFT', _G.MerchantFrame, 'TOPLEFT', 24, -69)
|
||||
|
||||
-- skin tabs
|
||||
for i = 1, 2 do
|
||||
S:HandleTab(_G['MerchantFrameTab'..i])
|
||||
end
|
||||
|
||||
-- Skin icons / merchant slots
|
||||
for i = 1, _G.BUYBACK_ITEMS_PER_PAGE do
|
||||
local button = _G['MerchantItem'..i..'ItemButton']
|
||||
local icon = button.icon
|
||||
local iconBorder = button.IconBorder
|
||||
local item = _G['MerchantItem'..i]
|
||||
item:StripTextures(true)
|
||||
item:CreateBackdrop()
|
||||
|
||||
button:StripTextures()
|
||||
button:StyleButton(false)
|
||||
button:CreateBackdrop(nil, true)
|
||||
button:Point('TOPLEFT', item, 'TOPLEFT', 4, -4)
|
||||
|
||||
icon:SetTexCoord(unpack(E.TexCoords))
|
||||
icon:ClearAllPoints()
|
||||
icon:Point('TOPLEFT', 1, -1)
|
||||
icon:Point('BOTTOMRIGHT', -1, 1)
|
||||
|
||||
S:HandleIconBorder(iconBorder)
|
||||
|
||||
_G['MerchantItem'..i..'MoneyFrame']:ClearAllPoints()
|
||||
_G['MerchantItem'..i..'MoneyFrame']:Point('BOTTOMLEFT', button, 'BOTTOMRIGHT', 3, 0)
|
||||
end
|
||||
|
||||
-- Skin buyback item frame + icon
|
||||
_G.MerchantBuyBackItemItemButton:StripTextures()
|
||||
_G.MerchantBuyBackItemItemButton:StyleButton(false)
|
||||
_G.MerchantBuyBackItemItemButton:CreateBackdrop(nil, true)
|
||||
|
||||
_G.MerchantBuyBackItemItemButtonIconTexture:SetTexCoord(unpack(E.TexCoords))
|
||||
_G.MerchantBuyBackItemItemButtonIconTexture:ClearAllPoints()
|
||||
_G.MerchantBuyBackItemItemButtonIconTexture:Point('TOPLEFT', 1, -1)
|
||||
_G.MerchantBuyBackItemItemButtonIconTexture:Point('BOTTOMRIGHT', -1, 1)
|
||||
|
||||
S:HandleIconBorder(_G.MerchantBuyBackItemItemButton.IconBorder)
|
||||
|
||||
S:HandleButton(_G.MerchantRepairItemButton)
|
||||
_G.MerchantRepairItemButton:StyleButton(false)
|
||||
_G.MerchantRepairItemButton:GetRegions():SetTexCoord(0.04, 0.24, 0.06, 0.5)
|
||||
_G.MerchantRepairItemButton:GetRegions():SetInside()
|
||||
|
||||
S:HandleButton(_G.MerchantGuildBankRepairButton)
|
||||
_G.MerchantGuildBankRepairButton:StyleButton()
|
||||
_G.MerchantGuildBankRepairButtonIcon:SetTexCoord(0.61, 0.82, 0.1, 0.52)
|
||||
_G.MerchantGuildBankRepairButtonIcon:SetInside()
|
||||
|
||||
S:HandleButton(_G.MerchantRepairAllButton)
|
||||
_G.MerchantRepairAllIcon:StyleButton(false)
|
||||
_G.MerchantRepairAllIcon:SetTexCoord(0.34, 0.1, 0.34, 0.535, 0.535, 0.1, 0.535, 0.535)
|
||||
_G.MerchantRepairAllIcon:SetInside()
|
||||
|
||||
S:HandleNextPrevButton(_G.MerchantNextPageButton, nil, nil, true, true)
|
||||
S:HandleNextPrevButton(_G.MerchantPrevPageButton, nil, nil, true, true)
|
||||
_G.MerchantNextPageButton:ClearAllPoints() -- Monitor this
|
||||
_G.MerchantNextPageButton:Point('LEFT', _G.MerchantPageText, 'RIGHT', 100, 4)
|
||||
end
|
||||
|
||||
S:AddCallback('MerchantFrame')
|
||||
55
Modules/Skins/Blizzard/MirrorTimers.lua
Normal file
55
Modules/Skins/Blizzard/MirrorTimers.lua
Normal file
@@ -0,0 +1,55 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
|
||||
local function MirrorTimer_OnUpdate(frame, elapsed)
|
||||
if frame.paused then return end
|
||||
if frame.timeSinceUpdate >= 0.3 then
|
||||
local minutes = frame.value/60
|
||||
local seconds = frame.value%60
|
||||
local text = frame.label:GetText()
|
||||
|
||||
if frame.value > 0 then
|
||||
frame.TimerText:SetFormattedText('%s (%d:%02d)', text, minutes, seconds)
|
||||
else
|
||||
frame.TimerText:SetFormattedText('%s (0:00)', text)
|
||||
end
|
||||
|
||||
frame.timeSinceUpdate = 0
|
||||
else
|
||||
frame.timeSinceUpdate = frame.timeSinceUpdate + elapsed
|
||||
end
|
||||
end
|
||||
|
||||
function S:MirrorTimers()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.mirrorTimers) then return end
|
||||
|
||||
--Mirror Timers (Underwater Breath etc.), credit to Azilroka
|
||||
for i = 1, _G.MIRRORTIMER_NUMTIMERS do
|
||||
local mirrorTimer = _G['MirrorTimer'..i]
|
||||
local statusBar = _G['MirrorTimer'..i..'StatusBar']
|
||||
local text = _G['MirrorTimer'..i..'Text']
|
||||
|
||||
mirrorTimer:StripTextures()
|
||||
mirrorTimer:Size(222, 18)
|
||||
mirrorTimer.label = text
|
||||
statusBar:SetStatusBarTexture(E.media.normTex)
|
||||
E:RegisterStatusBar(statusBar)
|
||||
statusBar:CreateBackdrop()
|
||||
statusBar:Size(222, 18)
|
||||
text:Hide()
|
||||
|
||||
local TimerText = mirrorTimer:CreateFontString(nil, 'OVERLAY')
|
||||
TimerText:FontTemplate(nil, nil, 'OUTLINE')
|
||||
TimerText:Point('CENTER', statusBar, 'CENTER', 0, 0)
|
||||
mirrorTimer.TimerText = TimerText
|
||||
|
||||
mirrorTimer.timeSinceUpdate = 0.3 --Make sure timer value updates right away on first show
|
||||
mirrorTimer:HookScript('OnUpdate', MirrorTimer_OnUpdate)
|
||||
|
||||
E:CreateMover(mirrorTimer, 'MirrorTimer'..i..'Mover', L["MirrorTimer"]..i, nil, nil, nil, 'ALL,SOLO')
|
||||
end
|
||||
end
|
||||
|
||||
S:AddCallback('MirrorTimers')
|
||||
392
Modules/Skins/Blizzard/Misc.lua
Normal file
392
Modules/Skins/Blizzard/Misc.lua
Normal file
@@ -0,0 +1,392 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local pairs = pairs
|
||||
local ipairs = ipairs
|
||||
local unpack = unpack
|
||||
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
local IsAddOnLoaded = IsAddOnLoaded
|
||||
local CreateFrame = CreateFrame
|
||||
|
||||
local LFG_ICONS = [[Interface\LFGFrame\UI-LFG-ICONS-ROLEBACKGROUNDS]]
|
||||
local function SkinNavBarButtons(self)
|
||||
if (self:GetParent():GetName() == 'EncounterJournal' and not E.private.skins.blizzard.encounterjournal) or (self:GetParent():GetName() == 'WorldMapFrame' and not E.private.skins.blizzard.worldmap) or (self:GetParent():GetName() == 'HelpFrameKnowledgebase' and not E.private.skins.blizzard.help) then
|
||||
return
|
||||
end
|
||||
|
||||
local navButton = self.navList[#self.navList]
|
||||
if navButton and not navButton.isSkinned then
|
||||
S:HandleButton(navButton, true)
|
||||
navButton:GetFontString():SetTextColor(1, 1, 1)
|
||||
if navButton.MenuArrowButton then
|
||||
navButton.MenuArrowButton:StripTextures()
|
||||
if navButton.MenuArrowButton.Art then
|
||||
navButton.MenuArrowButton.Art:SetTexture(E.Media.Textures.ArrowUp)
|
||||
navButton.MenuArrowButton.Art:SetTexCoord(0, 1, 0, 1)
|
||||
navButton.MenuArrowButton.Art:SetRotation(3.14)
|
||||
end
|
||||
end
|
||||
|
||||
navButton.xoffset = 1
|
||||
|
||||
navButton.isSkinned = true
|
||||
end
|
||||
end
|
||||
|
||||
function S:BlizzardMiscFrames()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.misc) then return end
|
||||
|
||||
_G.QueueStatusFrame:StripTextures()
|
||||
|
||||
-- Blizzard frame we want to reskin
|
||||
local skins = {
|
||||
'AutoCompleteBox',
|
||||
'ReadyCheckFrame',
|
||||
'QueueStatusFrame',
|
||||
'LFDReadyCheckPopup',
|
||||
}
|
||||
|
||||
for i = 1, #skins do
|
||||
local frame = _G[skins[i]]
|
||||
frame:StripTextures()
|
||||
frame:CreateBackdrop('Transparent')
|
||||
end
|
||||
|
||||
_G.AutoCompleteBox.backdrop:SetFrameLevel(_G.AutoCompleteBox:GetFrameLevel())
|
||||
|
||||
S:HandleButton(_G.StaticPopup1ExtraButton)
|
||||
|
||||
hooksecurefunc('QueueStatusEntry_SetFullDisplay', function(entry, _, _, _, isTank, isHealer, isDPS)
|
||||
if not entry then return end
|
||||
local nextRoleIcon = 1
|
||||
if isDPS then
|
||||
local icon = entry['RoleIcon'..nextRoleIcon]
|
||||
if icon then
|
||||
icon:SetTexture(LFG_ICONS)
|
||||
icon:SetTexCoord(_G.LFDQueueFrameRoleButtonDPS.background:GetTexCoord())
|
||||
nextRoleIcon = nextRoleIcon + 1
|
||||
end
|
||||
end
|
||||
if isHealer then
|
||||
local icon = entry['RoleIcon'..nextRoleIcon]
|
||||
if icon then
|
||||
icon:SetTexture(LFG_ICONS)
|
||||
icon:SetTexCoord(_G.LFDQueueFrameRoleButtonHealer.background:GetTexCoord())
|
||||
nextRoleIcon = nextRoleIcon + 1
|
||||
end
|
||||
end
|
||||
if isTank then
|
||||
local icon = entry['RoleIcon'..nextRoleIcon]
|
||||
if icon then
|
||||
icon:SetTexture(LFG_ICONS)
|
||||
icon:SetTexCoord(_G.LFDQueueFrameRoleButtonTank.background:GetTexCoord())
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
hooksecurefunc('QueueStatusFrame_Update', function()
|
||||
for frame in _G.QueueStatusFrame.statusEntriesPool:EnumerateActive() do
|
||||
frame.HealersFound.Texture:SetTexture(LFG_ICONS)
|
||||
frame.TanksFound.Texture:SetTexture(LFG_ICONS)
|
||||
frame.DamagersFound.Texture:SetTexture(LFG_ICONS)
|
||||
frame.HealersFound.Texture:SetTexCoord(_G.LFDQueueFrameRoleButtonHealer.background:GetTexCoord())
|
||||
frame.TanksFound.Texture:SetTexCoord(_G.LFDQueueFrameRoleButtonTank.background:GetTexCoord())
|
||||
frame.DamagersFound.Texture:SetTexCoord(_G.LFDQueueFrameRoleButtonDPS.background:GetTexCoord())
|
||||
end
|
||||
end)
|
||||
|
||||
if not IsAddOnLoaded('ConsolePortUI_Menu') then
|
||||
-- reskin all esc/menu buttons
|
||||
for _, Button in pairs({_G.GameMenuFrame:GetChildren()}) do
|
||||
if Button.IsObjectType and Button:IsObjectType('Button') then
|
||||
S:HandleButton(Button)
|
||||
end
|
||||
end
|
||||
|
||||
_G.GameMenuFrame:StripTextures()
|
||||
_G.GameMenuFrame:CreateBackdrop('Transparent')
|
||||
_G.GameMenuFrame.Header:StripTextures()
|
||||
_G.GameMenuFrame.Header:ClearAllPoints()
|
||||
_G.GameMenuFrame.Header:Point('TOP', _G.GameMenuFrame, 0, 7)
|
||||
end
|
||||
|
||||
if IsAddOnLoaded('OptionHouse') then
|
||||
S:HandleButton(_G.GameMenuButtonOptionHouse)
|
||||
end
|
||||
|
||||
-- since we cant hook `CinematicFrame_OnShow` or `CinematicFrame_OnEvent` directly
|
||||
-- we can just hook onto this function so that we can get the correct `self`
|
||||
-- this is called through `CinematicFrame_OnShow` so the result would still happen where we want
|
||||
hooksecurefunc('CinematicFrame_OnDisplaySizeChanged', function(s)
|
||||
if s and s.closeDialog and not s.closeDialog.template then
|
||||
s.closeDialog:StripTextures()
|
||||
s.closeDialog:CreateBackdrop('Transparent')
|
||||
s.closeDialog.backdrop:SetFrameLevel(s.closeDialog:GetFrameLevel())
|
||||
s:SetScale(_G.UIParent:GetScale())
|
||||
local dialogName = s.closeDialog.GetName and s.closeDialog:GetName()
|
||||
local closeButton = s.closeDialog.ConfirmButton or (dialogName and _G[dialogName..'ConfirmButton'])
|
||||
local resumeButton = s.closeDialog.ResumeButton or (dialogName and _G[dialogName..'ResumeButton'])
|
||||
if closeButton then S:HandleButton(closeButton) end
|
||||
if resumeButton then S:HandleButton(resumeButton) end
|
||||
end
|
||||
end)
|
||||
|
||||
-- same as above except `MovieFrame_OnEvent` and `MovieFrame_OnShow`
|
||||
-- cant be hooked directly so we can just use this
|
||||
-- this is called through `MovieFrame_OnEvent` on the event `PLAY_MOVIE`
|
||||
hooksecurefunc('MovieFrame_PlayMovie', function(s)
|
||||
if s and s.CloseDialog and not s.CloseDialog.template then
|
||||
s:SetScale(_G.UIParent:GetScale())
|
||||
s.CloseDialog:StripTextures()
|
||||
s.CloseDialog:CreateBackdrop('Transparent')
|
||||
s.CloseDialog.backdrop:SetFrameLevel(s.CloseDialog:GetFrameLevel())
|
||||
S:HandleButton(s.CloseDialog.ConfirmButton)
|
||||
S:HandleButton(s.CloseDialog.ResumeButton)
|
||||
end
|
||||
end)
|
||||
|
||||
do
|
||||
local ChatMenus = {
|
||||
_G.ChatMenu,
|
||||
_G.EmoteMenu,
|
||||
_G.LanguageMenu,
|
||||
_G.VoiceMacroMenu,
|
||||
}
|
||||
|
||||
local menuBackdrop = function(s)
|
||||
s:SetTemplate('Transparent')
|
||||
end
|
||||
|
||||
local chatMenuBackdrop = function(s)
|
||||
s:SetTemplate('Transparent')
|
||||
|
||||
s:ClearAllPoints()
|
||||
s:Point('BOTTOMLEFT', _G.ChatFrame1, 'TOPLEFT', 0, 30)
|
||||
end
|
||||
|
||||
for index, menu in ipairs(ChatMenus) do
|
||||
menu:StripTextures()
|
||||
|
||||
if index == 1 then -- ChatMenu
|
||||
menu:HookScript('OnShow', chatMenuBackdrop)
|
||||
else
|
||||
menu:HookScript('OnShow', menuBackdrop)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
--LFD Role Picker frame
|
||||
local roleButtons = {
|
||||
_G.LFDRoleCheckPopupRoleButtonTank,
|
||||
_G.LFDRoleCheckPopupRoleButtonDPS,
|
||||
_G.LFDRoleCheckPopupRoleButtonHealer,
|
||||
}
|
||||
|
||||
_G.LFDRoleCheckPopup:StripTextures()
|
||||
_G.LFDRoleCheckPopup:CreateBackdrop('Transparent')
|
||||
S:HandleButton(_G.LFDRoleCheckPopupAcceptButton)
|
||||
S:HandleButton(_G.LFDRoleCheckPopupDeclineButton)
|
||||
|
||||
for _, roleButton in pairs(roleButtons) do
|
||||
S:HandleCheckBox(roleButton.checkButton or roleButton.CheckButton, true)
|
||||
roleButton:DisableDrawLayer('OVERLAY')
|
||||
end
|
||||
|
||||
-- reskin popup buttons
|
||||
for i = 1, 4 do
|
||||
local StaticPopup = _G['StaticPopup'..i]
|
||||
StaticPopup:HookScript('OnShow', function() -- UpdateRecapButton is created OnShow
|
||||
if StaticPopup.UpdateRecapButton and (not StaticPopup.UpdateRecapButtonHooked) then
|
||||
StaticPopup.UpdateRecapButtonHooked = true -- we should only hook this once
|
||||
hooksecurefunc(_G['StaticPopup'..i], 'UpdateRecapButton', S.UpdateRecapButton)
|
||||
end
|
||||
end)
|
||||
StaticPopup:StripTextures()
|
||||
StaticPopup:CreateBackdrop('Transparent')
|
||||
|
||||
for j = 1, 4 do
|
||||
local button = StaticPopup['button'..j]
|
||||
S:HandleButton(button)
|
||||
|
||||
button.Flash:Hide()
|
||||
button:CreateShadow(5)
|
||||
button.shadow:SetAlpha(0)
|
||||
button.shadow:SetBackdropBorderColor(unpack(E.media.rgbvaluecolor))
|
||||
button:SetFrameLevel(button:GetFrameLevel() + 1)
|
||||
|
||||
local anim1, anim2 = button.PulseAnim:GetAnimations()
|
||||
anim1:SetTarget(button.shadow)
|
||||
anim2:SetTarget(button.shadow)
|
||||
end
|
||||
|
||||
_G['StaticPopup'..i..'EditBox']:SetFrameLevel(_G['StaticPopup'..i..'EditBox']:GetFrameLevel()+1)
|
||||
S:HandleEditBox(_G['StaticPopup'..i..'EditBox'])
|
||||
S:HandleEditBox(_G['StaticPopup'..i..'MoneyInputFrameGold'])
|
||||
S:HandleEditBox(_G['StaticPopup'..i..'MoneyInputFrameSilver'])
|
||||
S:HandleEditBox(_G['StaticPopup'..i..'MoneyInputFrameCopper'])
|
||||
|
||||
_G['StaticPopup'..i..'EditBox'].backdrop:Point('TOPLEFT', -2, -4)
|
||||
_G['StaticPopup'..i..'EditBox'].backdrop:Point('BOTTOMRIGHT', 2, 4)
|
||||
_G['StaticPopup'..i..'ItemFrameNameFrame']:Kill()
|
||||
_G['StaticPopup'..i..'ItemFrame']:CreateBackdrop()
|
||||
_G['StaticPopup'..i..'ItemFrame']:StyleButton()
|
||||
S:HandleIconBorder(_G['StaticPopup'..i..'ItemFrame'].IconBorder)
|
||||
_G['StaticPopup'..i..'ItemFrameIconTexture']:SetTexCoord(unpack(E.TexCoords))
|
||||
_G['StaticPopup'..i..'ItemFrameIconTexture']:SetInside()
|
||||
|
||||
local normTex = _G['StaticPopup'..i..'ItemFrame']:GetNormalTexture()
|
||||
if normTex then
|
||||
normTex:SetTexture()
|
||||
hooksecurefunc(normTex, 'SetTexture', function(s, tex)
|
||||
if tex ~= nil then s:SetTexture() end
|
||||
end)
|
||||
end
|
||||
end
|
||||
|
||||
-- skin return to graveyard button
|
||||
do
|
||||
_G.GhostFrameMiddle:SetAlpha(0)
|
||||
_G.GhostFrameRight:SetAlpha(0)
|
||||
_G.GhostFrameLeft:SetAlpha(0)
|
||||
_G.GhostFrame:StripTextures()
|
||||
_G.GhostFrame:ClearAllPoints()
|
||||
_G.GhostFrame:Point('TOP', E.UIParent, 'TOP', 0, -150)
|
||||
_G.GhostFrameContentsFrame:CreateBackdrop('Transparent')
|
||||
_G.GhostFrameContentsFrameText:Point('TOPLEFT', 53, 0)
|
||||
_G.GhostFrameContentsFrameIcon:SetTexCoord(unpack(E.TexCoords))
|
||||
_G.GhostFrameContentsFrameIcon:Point('RIGHT', _G.GhostFrameContentsFrameText, 'LEFT', -12, 0)
|
||||
local b = CreateFrame('Frame', nil, _G.GhostFrameContentsFrameIcon:GetParent(), 'BackdropTemplate')
|
||||
local p = E.PixelMode and 1 or 2
|
||||
b:Point('TOPLEFT', _G.GhostFrameContentsFrameIcon, -p, p)
|
||||
b:Point('BOTTOMRIGHT', _G.GhostFrameContentsFrameIcon, p, -p)
|
||||
_G.GhostFrameContentsFrameIcon:Size(37,38)
|
||||
_G.GhostFrameContentsFrameIcon:SetParent(b)
|
||||
b:CreateBackdrop()
|
||||
end
|
||||
|
||||
_G.OpacityFrame:StripTextures()
|
||||
_G.OpacityFrame:CreateBackdrop('Transparent')
|
||||
|
||||
--DropDownMenu
|
||||
hooksecurefunc('UIDropDownMenu_CreateFrames', function(level, index)
|
||||
local listFrame = _G['DropDownList'..level];
|
||||
local listFrameName = listFrame:GetName();
|
||||
local expandArrow = _G[listFrameName..'Button'..index..'ExpandArrow'];
|
||||
if expandArrow then
|
||||
local normTex = expandArrow:GetNormalTexture()
|
||||
expandArrow:SetNormalTexture(E.Media.Textures.ArrowUp)
|
||||
normTex:SetVertexColor(unpack(E.media.rgbvaluecolor))
|
||||
normTex:SetRotation(S.ArrowRotation.right)
|
||||
expandArrow:Size(12, 12)
|
||||
end
|
||||
|
||||
local Backdrop = _G[listFrameName..'Backdrop']
|
||||
if not Backdrop.template then Backdrop:StripTextures() end
|
||||
Backdrop:CreateBackdrop('Transparent')
|
||||
|
||||
local menuBackdrop = _G[listFrameName..'MenuBackdrop']
|
||||
if not menuBackdrop.template then menuBackdrop:StripTextures() end
|
||||
menuBackdrop:CreateBackdrop('Transparent')
|
||||
end)
|
||||
|
||||
hooksecurefunc('UIDropDownMenu_SetIconImage', function(icon, texture)
|
||||
if texture:find('Divider') then
|
||||
local r, g, b = unpack(E.media.rgbvaluecolor)
|
||||
icon:SetColorTexture(r, g, b, 0.45)
|
||||
icon:Height(1)
|
||||
end
|
||||
end)
|
||||
|
||||
hooksecurefunc('ToggleDropDownMenu', function(level)
|
||||
if not level then
|
||||
level = 1;
|
||||
end
|
||||
|
||||
local r, g, b = unpack(E.media.rgbvaluecolor)
|
||||
|
||||
for i = 1, _G.UIDROPDOWNMENU_MAXBUTTONS do
|
||||
local button = _G['DropDownList'..level..'Button'..i]
|
||||
local check = _G['DropDownList'..level..'Button'..i..'Check']
|
||||
local uncheck = _G['DropDownList'..level..'Button'..i..'UnCheck']
|
||||
local highlight = _G['DropDownList'..level..'Button'..i..'Highlight']
|
||||
|
||||
highlight:SetTexture(E.Media.Textures.Highlight)
|
||||
highlight:SetBlendMode('BLEND')
|
||||
highlight:SetDrawLayer('BACKGROUND')
|
||||
highlight:SetVertexColor(r, g, b)
|
||||
|
||||
if not button.backdrop then
|
||||
button:CreateBackdrop()
|
||||
end
|
||||
|
||||
button.backdrop:Hide()
|
||||
|
||||
if not button.notCheckable then
|
||||
uncheck:SetTexture()
|
||||
local _, co = check:GetTexCoord()
|
||||
if co == 0 then
|
||||
check:SetTexture([[Interface\Buttons\UI-CheckBox-Check]])
|
||||
check:SetVertexColor(r, g, b, 1)
|
||||
check:Size(20, 20)
|
||||
check:SetDesaturated(true)
|
||||
button.backdrop:SetInside(check, 4, 4)
|
||||
else
|
||||
check:SetTexture(E.media.normTex)
|
||||
check:SetVertexColor(r, g, b, 1)
|
||||
check:Size(10, 10)
|
||||
check:SetDesaturated(false)
|
||||
button.backdrop:SetOutside(check)
|
||||
end
|
||||
|
||||
button.backdrop:Show()
|
||||
check:SetTexCoord(0, 1, 0, 1)
|
||||
else
|
||||
check:Size(16, 16)
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
local SideDressUpFrame = _G.SideDressUpFrame
|
||||
S:HandleCloseButton(_G.SideDressUpFrameCloseButton)
|
||||
S:HandleButton(_G.SideDressUpFrame.ResetButton)
|
||||
_G.SideDressUpFrame.ResetButton:SetFrameLevel(_G.SideDressUpFrame.ResetButton:GetFrameLevel()+1)
|
||||
SideDressUpFrame:StripTextures()
|
||||
SideDressUpFrame.BGTopLeft:Hide()
|
||||
SideDressUpFrame.BGBottomLeft:Hide()
|
||||
SideDressUpFrame:CreateBackdrop('Transparent')
|
||||
|
||||
-- StackSplit
|
||||
local StackSplitFrame = _G.StackSplitFrame
|
||||
StackSplitFrame:StripTextures()
|
||||
StackSplitFrame:CreateBackdrop('Transparent')
|
||||
|
||||
StackSplitFrame.bg1 = CreateFrame('Frame', nil, StackSplitFrame, 'BackdropTemplate')
|
||||
StackSplitFrame.bg1:SetTemplate('Transparent')
|
||||
StackSplitFrame.bg1:Point('TOPLEFT', 10, -15)
|
||||
StackSplitFrame.bg1:Point('BOTTOMRIGHT', -10, 55)
|
||||
StackSplitFrame.bg1:SetFrameLevel(StackSplitFrame.bg1:GetFrameLevel() - 1)
|
||||
|
||||
S:HandleButton(StackSplitFrame.OkayButton)
|
||||
S:HandleButton(StackSplitFrame.CancelButton)
|
||||
|
||||
local buttons = {StackSplitFrame.LeftButton, StackSplitFrame.RightButton}
|
||||
for _, btn in pairs(buttons) do
|
||||
btn:Size(14, 18)
|
||||
btn:ClearAllPoints()
|
||||
|
||||
if btn == StackSplitFrame.LeftButton then
|
||||
btn:Point('LEFT', StackSplitFrame.bg1, 'LEFT', 4, 0)
|
||||
else
|
||||
btn:Point('RIGHT', StackSplitFrame.bg1, 'RIGHT', -4, 0)
|
||||
end
|
||||
|
||||
S:HandleNextPrevButton(btn, nil, nil, true)
|
||||
end
|
||||
|
||||
--NavBar Buttons (Used in WorldMapFrame, EncounterJournal and HelpFrame)
|
||||
hooksecurefunc('NavBar_AddButton', SkinNavBarButtons)
|
||||
end
|
||||
|
||||
S:AddCallback('BlizzardMiscFrames')
|
||||
50
Modules/Skins/Blizzard/NonRaid.lua
Normal file
50
Modules/Skins/Blizzard/NonRaid.lua
Normal file
@@ -0,0 +1,50 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local pairs = pairs
|
||||
|
||||
function S:RaidInfoFrame()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.nonraid) then return end
|
||||
|
||||
local StripAllTextures = {
|
||||
_G.RaidInfoFrame,
|
||||
_G.RaidInfoInstanceLabel,
|
||||
_G.RaidInfoIDLabel,
|
||||
}
|
||||
local KillTextures = {
|
||||
_G.RaidInfoScrollFrameScrollBarBG,
|
||||
_G.RaidInfoScrollFrameScrollBarTop,
|
||||
_G.RaidInfoScrollFrameScrollBarBottom,
|
||||
_G.RaidInfoScrollFrameScrollBarMiddle,
|
||||
}
|
||||
local buttons = {
|
||||
_G.RaidFrameConvertToRaidButton,
|
||||
_G.RaidFrameRaidInfoButton,
|
||||
_G.RaidInfoExtendButton,
|
||||
_G.RaidInfoCancelButton,
|
||||
}
|
||||
|
||||
for _, object in pairs(StripAllTextures) do
|
||||
object:StripTextures()
|
||||
end
|
||||
for _, texture in pairs(KillTextures) do
|
||||
texture:Kill()
|
||||
end
|
||||
for i = 1, #buttons do
|
||||
S:HandleButton(buttons[i])
|
||||
end
|
||||
|
||||
_G.RaidInfoScrollFrame:StripTextures()
|
||||
|
||||
local RaidInfoFrame = _G.RaidInfoFrame
|
||||
RaidInfoFrame:CreateBackdrop('Transparent')
|
||||
RaidInfoFrame.backdrop:Point('TOPLEFT', RaidInfoFrame, 'TOPLEFT')
|
||||
RaidInfoFrame.backdrop:Point('BOTTOMRIGHT', RaidInfoFrame, 'BOTTOMRIGHT')
|
||||
RaidInfoFrame.Header:StripTextures()
|
||||
S:HandleCloseButton(_G.RaidInfoCloseButton,RaidInfoFrame)
|
||||
S:HandleScrollBar(_G.RaidInfoScrollFrameScrollBar)
|
||||
S:HandleCheckBox(_G.RaidFrameAllAssistCheckButton)
|
||||
end
|
||||
|
||||
S:AddCallback('RaidInfoFrame')
|
||||
262
Modules/Skins/Blizzard/ObjectiveTracker.lua
Normal file
262
Modules/Skins/Blizzard/ObjectiveTracker.lua
Normal file
@@ -0,0 +1,262 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local pairs, unpack = pairs, unpack
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
local InCombatLockdown = InCombatLockdown
|
||||
|
||||
local headers = {
|
||||
_G.ObjectiveTrackerBlocksFrame.QuestHeader,
|
||||
_G.ObjectiveTrackerBlocksFrame.AchievementHeader,
|
||||
_G.ObjectiveTrackerBlocksFrame.ScenarioHeader,
|
||||
_G.ObjectiveTrackerBlocksFrame.CampaignQuestHeader,
|
||||
_G.BONUS_OBJECTIVE_TRACKER_MODULE.Header,
|
||||
_G.WORLD_QUEST_TRACKER_MODULE.Header,
|
||||
_G.ObjectiveTrackerFrame.BlocksFrame.UIWidgetsHeader
|
||||
}
|
||||
|
||||
local function SkinOjectiveTrackerHeaders()
|
||||
local frame = _G.ObjectiveTrackerFrame.MODULES
|
||||
if frame then
|
||||
for i = 1, #frame do
|
||||
local modules = frame[i]
|
||||
if modules then
|
||||
modules.Header.Background:SetAtlas(nil)
|
||||
|
||||
local text = modules.Header.Text
|
||||
text:FontTemplate()
|
||||
text:SetParent(modules.Header)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function ColorProgressBars(self, value)
|
||||
if not (self.Bar and self.isSkinned and value) then return end
|
||||
S:StatusBarColorGradient(self.Bar, value, 100)
|
||||
end
|
||||
|
||||
local function HotkeyShow(self)
|
||||
local item = self:GetParent()
|
||||
if item.rangeOverlay then item.rangeOverlay:Show() end
|
||||
end
|
||||
local function HotkeyHide(self)
|
||||
local item = self:GetParent()
|
||||
if item.rangeOverlay then item.rangeOverlay:Hide() end
|
||||
end
|
||||
local function HotkeyColor(self, r, g, b)
|
||||
local item = self:GetParent()
|
||||
if item.rangeOverlay then
|
||||
if r == 0.6 and g == 0.6 and b == 0.6 then
|
||||
item.rangeOverlay:SetVertexColor(0, 0, 0, 0)
|
||||
else
|
||||
item.rangeOverlay:SetVertexColor(.8, .1, .1, .5)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function SkinItemButton(item)
|
||||
item:CreateBackdrop('Transparent')
|
||||
item.backdrop:SetAllPoints()
|
||||
item:StyleButton()
|
||||
item:SetNormalTexture(nil)
|
||||
|
||||
item.icon:SetTexCoord(unpack(E.TexCoords))
|
||||
item.icon:SetInside()
|
||||
|
||||
item.Cooldown:SetInside()
|
||||
item.Count:ClearAllPoints()
|
||||
item.Count:Point('TOPLEFT', 1, -1)
|
||||
item.Count:FontTemplate(nil, 14, 'OUTLINE')
|
||||
item.Count:SetShadowOffset(5, -5)
|
||||
|
||||
local rangeOverlay = item:CreateTexture(nil, 'OVERLAY')
|
||||
rangeOverlay:SetTexture(E.Media.Textures.White8x8)
|
||||
rangeOverlay:SetInside()
|
||||
item.rangeOverlay = rangeOverlay
|
||||
|
||||
hooksecurefunc(item.HotKey, 'Show', HotkeyShow)
|
||||
hooksecurefunc(item.HotKey, 'Hide', HotkeyHide)
|
||||
hooksecurefunc(item.HotKey, 'SetVertexColor', HotkeyColor)
|
||||
HotkeyColor(item.HotKey, item.HotKey:GetTextColor())
|
||||
item.HotKey:SetAlpha(0)
|
||||
|
||||
E:RegisterCooldown(item.Cooldown)
|
||||
end
|
||||
|
||||
local function HandleItemButton(block)
|
||||
if InCombatLockdown() then return end -- will break quest item button
|
||||
|
||||
local item = block and block.itemButton
|
||||
if not item then return end
|
||||
|
||||
if not item.skinned then
|
||||
SkinItemButton(item)
|
||||
item.skinned = true
|
||||
end
|
||||
|
||||
if item.backdrop then
|
||||
item.backdrop:SetFrameLevel(item:GetFrameLevel() - 1)
|
||||
end
|
||||
end
|
||||
|
||||
-- 9.0 Needs Update
|
||||
local function SkinProgressBars(_, _, line)
|
||||
local progressBar = line and line.ProgressBar
|
||||
local bar = progressBar and progressBar.Bar
|
||||
if not bar then return end
|
||||
local icon = bar.Icon
|
||||
local label = bar.Label
|
||||
|
||||
if not progressBar.isSkinned then
|
||||
if bar.BarFrame then bar.BarFrame:Hide() end
|
||||
if bar.BarFrame2 then bar.BarFrame2:Hide() end
|
||||
if bar.BarFrame3 then bar.BarFrame3:Hide() end
|
||||
if bar.BarGlow then bar.BarGlow:Hide() end
|
||||
if bar.Sheen then bar.Sheen:Hide() end
|
||||
if bar.IconBG then bar.IconBG:SetAlpha(0) end
|
||||
if bar.BorderLeft then bar.BorderLeft:SetAlpha(0) end
|
||||
if bar.BorderRight then bar.BorderRight:SetAlpha(0) end
|
||||
if bar.BorderMid then bar.BorderMid:SetAlpha(0) end
|
||||
|
||||
bar:Height(18)
|
||||
bar:StripTextures()
|
||||
bar:CreateBackdrop('Transparent')
|
||||
bar:SetStatusBarTexture(E.media.normTex)
|
||||
E:RegisterStatusBar(bar)
|
||||
|
||||
if label then
|
||||
label:ClearAllPoints()
|
||||
label:Point('CENTER', bar, 0, 1)
|
||||
label:FontTemplate(nil, 14, 'OUTLINE')
|
||||
end
|
||||
|
||||
if icon then
|
||||
icon:ClearAllPoints()
|
||||
icon:Point('LEFT', bar, 'RIGHT', E.PixelMode and 3 or 7, 0)
|
||||
icon:SetMask('')
|
||||
icon:SetTexCoord(unpack(E.TexCoords))
|
||||
|
||||
if not progressBar.backdrop then
|
||||
progressBar:CreateBackdrop()
|
||||
progressBar.backdrop:SetOutside(icon)
|
||||
progressBar.backdrop:SetShown(icon:IsShown())
|
||||
end
|
||||
end
|
||||
|
||||
_G.BonusObjectiveTrackerProgressBar_PlayFlareAnim = E.noop
|
||||
progressBar.isSkinned = true
|
||||
|
||||
ColorProgressBars(progressBar, bar:GetValue())
|
||||
elseif icon and progressBar.backdrop then
|
||||
progressBar.backdrop:SetShown(icon:IsShown())
|
||||
end
|
||||
end
|
||||
|
||||
local function SkinTimerBars(_, _, line)
|
||||
local timerBar = line and line.TimerBar
|
||||
local bar = timerBar and timerBar.Bar
|
||||
|
||||
if not timerBar.isSkinned then
|
||||
bar:Height(18)
|
||||
bar:StripTextures()
|
||||
bar:CreateBackdrop('Transparent')
|
||||
bar:SetStatusBarTexture(E.media.normTex)
|
||||
E:RegisterStatusBar(bar)
|
||||
|
||||
timerBar.isSkinned = true
|
||||
end
|
||||
end
|
||||
|
||||
local function PositionFindGroupButton(block, button)
|
||||
if InCombatLockdown() then return end -- will break quest item button
|
||||
|
||||
if button and button.GetPoint then
|
||||
local a, b, c, d, e = button:GetPoint()
|
||||
if block.groupFinderButton and b == block.groupFinderButton and block.itemButton and button == block.itemButton then
|
||||
-- this fires when there is a group button and a item button to the left of it
|
||||
-- we push the item button away from the group button (to the left)
|
||||
button:Point(a, b, c, d-(E.PixelMode and -1 or 1), e);
|
||||
elseif b == block and block.groupFinderButton and button == block.groupFinderButton then
|
||||
-- this fires when there is a group finder button
|
||||
-- we push the group finder button down slightly
|
||||
button:Point(a, b, c, d, e-(E.PixelMode and 2 or -1));
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function SkinFindGroupButton(block)
|
||||
if block.hasGroupFinderButton and block.groupFinderButton then
|
||||
if block.groupFinderButton and not block.groupFinderButton.skinned then
|
||||
S:HandleButton(block.groupFinderButton)
|
||||
block.groupFinderButton:Size(20)
|
||||
block.groupFinderButton.backdrop:SetFrameLevel(3)
|
||||
block.groupFinderButton.skinned = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function TrackerStateChanged()
|
||||
local minimizeButton = _G.ObjectiveTrackerFrame.HeaderMenu.MinimizeButton
|
||||
if _G.ObjectiveTrackerFrame.collapsed then
|
||||
minimizeButton.tex:SetTexture(E.Media.Textures.PlusButton)
|
||||
else
|
||||
minimizeButton.tex:SetTexture(E.Media.Textures.MinusButton)
|
||||
end
|
||||
end
|
||||
|
||||
local function UpdateMinimizeButton(button, collapsed)
|
||||
if collapsed then
|
||||
button.tex:SetTexture(E.Media.Textures.PlusButton)
|
||||
else
|
||||
button.tex:SetTexture(E.Media.Textures.MinusButton)
|
||||
end
|
||||
end
|
||||
|
||||
function S:ObjectiveTrackerFrame()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.objectiveTracker) then return end
|
||||
|
||||
local minimize = _G.ObjectiveTrackerFrame.HeaderMenu.MinimizeButton
|
||||
minimize:StripTextures(nil, true)
|
||||
minimize:Size(16, 16)
|
||||
minimize:SetHighlightTexture([[Interface\Buttons\UI-PlusButton-Hilight]], 'ADD')
|
||||
minimize.tex = minimize:CreateTexture(nil, 'OVERLAY')
|
||||
minimize.tex:SetTexture(E.Media.Textures.MinusButton)
|
||||
minimize.tex:SetInside()
|
||||
|
||||
hooksecurefunc('ObjectiveTracker_Expand',TrackerStateChanged)
|
||||
hooksecurefunc('ObjectiveTracker_Collapse',TrackerStateChanged)
|
||||
hooksecurefunc('QuestObjectiveSetupBlockButton_Item', HandleItemButton)
|
||||
hooksecurefunc('BonusObjectiveTrackerProgressBar_SetValue',ColorProgressBars) --[Color]: Bonus Objective Progress Bar
|
||||
hooksecurefunc('ObjectiveTrackerProgressBar_SetValue',ColorProgressBars) --[Color]: Quest Progress Bar
|
||||
hooksecurefunc('ScenarioTrackerProgressBar_SetValue',ColorProgressBars) --[Color]: Scenario Progress Bar
|
||||
hooksecurefunc('QuestObjectiveSetupBlockButton_AddRightButton',PositionFindGroupButton) --[Move]: The eye & quest item to the left of the eye
|
||||
hooksecurefunc('ObjectiveTracker_Update',SkinOjectiveTrackerHeaders) --[Skin]: Module Headers
|
||||
hooksecurefunc('QuestObjectiveSetupBlockButton_FindGroup',SkinFindGroupButton) --[Skin]: The eye
|
||||
hooksecurefunc(_G.BONUS_OBJECTIVE_TRACKER_MODULE,'AddProgressBar',SkinProgressBars) --[Skin]: Bonus Objective Progress Bar
|
||||
hooksecurefunc(_G.WORLD_QUEST_TRACKER_MODULE,'AddProgressBar',SkinProgressBars) --[Skin]: World Quest Progress Bar
|
||||
hooksecurefunc(_G.DEFAULT_OBJECTIVE_TRACKER_MODULE,'AddProgressBar',SkinProgressBars) --[Skin]: Quest Progress Bar
|
||||
hooksecurefunc(_G.SCENARIO_TRACKER_MODULE,'AddProgressBar',SkinProgressBars) --[Skin]: Scenario Progress Bar
|
||||
hooksecurefunc(_G.CAMPAIGN_QUEST_TRACKER_MODULE,'AddProgressBar',SkinProgressBars) --[Skin]: Campaign Progress Bar
|
||||
hooksecurefunc(_G.QUEST_TRACKER_MODULE,'AddProgressBar',SkinProgressBars) --[Skin]: Quest Progress Bar
|
||||
hooksecurefunc(_G.QUEST_TRACKER_MODULE,'AddTimerBar',SkinTimerBars) --[Skin]: Quest Timer Bar
|
||||
hooksecurefunc(_G.SCENARIO_TRACKER_MODULE,'AddTimerBar',SkinTimerBars) --[Skin]: Scenario Timer Bar
|
||||
hooksecurefunc(_G.ACHIEVEMENT_TRACKER_MODULE,'AddTimerBar',SkinTimerBars) --[Skin]: Achievement Timer Bar
|
||||
|
||||
for _, header in pairs(headers) do
|
||||
local button = header.MinimizeButton
|
||||
if button then
|
||||
button:GetNormalTexture():SetAlpha(0)
|
||||
button:GetPushedTexture():SetAlpha(0)
|
||||
|
||||
button.tex = button:CreateTexture(nil, 'OVERLAY')
|
||||
button.tex:SetTexture(E.Media.Textures.MinusButton)
|
||||
button.tex:SetInside()
|
||||
|
||||
hooksecurefunc(button, 'SetCollapsed', UpdateMinimizeButton)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
S:AddCallback('ObjectiveTrackerFrame')
|
||||
17
Modules/Skins/Blizzard/Obliterum.lua
Normal file
17
Modules/Skins/Blizzard/Obliterum.lua
Normal file
@@ -0,0 +1,17 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local unpack = unpack
|
||||
|
||||
function S:Blizzard_ObliterumUI()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.obliterum) then return end
|
||||
|
||||
local ObliterumForgeFrame = _G.ObliterumForgeFrame
|
||||
S:HandlePortraitFrame(ObliterumForgeFrame)
|
||||
ObliterumForgeFrame.ItemSlot:CreateBackdrop()
|
||||
ObliterumForgeFrame.ItemSlot.Icon:SetTexCoord(unpack(E.TexCoords))
|
||||
S:HandleButton(ObliterumForgeFrame.ObliterateButton)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_ObliterumUI')
|
||||
59
Modules/Skins/Blizzard/Orderhall.lua
Normal file
59
Modules/Skins/Blizzard/Orderhall.lua
Normal file
@@ -0,0 +1,59 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local select = select
|
||||
local unpack = unpack
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
function S:Blizzard_OrderHallUI()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.orderhall) then return end
|
||||
|
||||
local classColor = E:ClassColor(E.myclass, true)
|
||||
|
||||
-- CommandBar
|
||||
local OrderHallCommandBar = _G.OrderHallCommandBar
|
||||
OrderHallCommandBar:StripTextures()
|
||||
OrderHallCommandBar:CreateBackdrop('Transparent')
|
||||
OrderHallCommandBar.ClassIcon:SetTexture([[Interface\TargetingFrame\UI-Classes-Circles]])
|
||||
OrderHallCommandBar.ClassIcon:Size(46, 20)
|
||||
OrderHallCommandBar.CurrencyIcon:SetAtlas('legionmission-icon-currency', false)
|
||||
OrderHallCommandBar.AreaName:SetVertexColor(classColor.r, classColor.g, classColor.b)
|
||||
OrderHallCommandBar.WorldMapButton:Hide()
|
||||
|
||||
local OrderHallTalentFrame = _G.OrderHallTalentFrame
|
||||
|
||||
S:HandlePortraitFrame(OrderHallTalentFrame)
|
||||
S:HandleButton(OrderHallTalentFrame.BackButton)
|
||||
S:HandleIcon(OrderHallTalentFrame.Currency.Icon)
|
||||
OrderHallTalentFrame.OverlayElements:SetAlpha(0)
|
||||
|
||||
hooksecurefunc(OrderHallTalentFrame, 'RefreshAllData', function(frame)
|
||||
-- We need to hide the objects again after an update is happen.
|
||||
if frame.CloseButton.Border then frame.CloseButton.Border:SetAlpha(0) end
|
||||
if frame.CurrencyBG then frame.CurrencyBG:SetAlpha(0) end
|
||||
frame:StripTextures()
|
||||
|
||||
for i = 1, frame:GetNumChildren() do
|
||||
local bu = select(i, frame:GetChildren())
|
||||
if bu and bu.talent then
|
||||
bu.Border:SetAlpha(0)
|
||||
bu.Icon:SetTexCoord(unpack(E.TexCoords))
|
||||
bu.Highlight:SetColorTexture(1, 1, 1, .25)
|
||||
|
||||
if not bu.backdrop then
|
||||
bu:CreateBackdrop()
|
||||
bu.backdrop:SetOutside(bu.Icon)
|
||||
end
|
||||
|
||||
if bu.talent.selected then
|
||||
bu.backdrop:SetBackdropBorderColor(1, 1, 0)
|
||||
else
|
||||
bu.backdrop:SetBackdropBorderColor(0, 0, 0)
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_OrderHallUI')
|
||||
269
Modules/Skins/Blizzard/PVP.lua
Normal file
269
Modules/Skins/Blizzard/PVP.lua
Normal file
@@ -0,0 +1,269 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local ipairs, pairs, select, unpack = ipairs, pairs, select, unpack
|
||||
|
||||
local CreateFrame = CreateFrame
|
||||
local CurrencyContainerUtil_GetCurrencyContainerInfo = CurrencyContainerUtil.GetCurrencyContainerInfo
|
||||
local C_CurrencyInfo_GetCurrencyInfo = C_CurrencyInfo.GetCurrencyInfo
|
||||
local GetItemInfo = GetItemInfo
|
||||
local GetItemQualityColor = GetItemQualityColor
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
local LE_ITEM_QUALITY_ARTIFACT = Enum.ItemQuality.Artifact
|
||||
|
||||
local function HandleRoleChecks(button, ...)
|
||||
button:StripTextures()
|
||||
button:DisableDrawLayer('ARTWORK')
|
||||
button:DisableDrawLayer('OVERLAY')
|
||||
|
||||
button.bg = button:CreateTexture(nil, 'BACKGROUND', nil, -7)
|
||||
button.bg:SetTexture([[Interface\LFGFrame\UI-LFG-ICONS-ROLEBACKGROUNDS]])
|
||||
button.bg:SetTexCoord(...)
|
||||
button.bg:Point('CENTER')
|
||||
button.bg:Size(40, 40)
|
||||
button.bg:SetAlpha(0.6)
|
||||
S:HandleCheckBox(button.checkButton)
|
||||
end
|
||||
|
||||
function S:Blizzard_PVPUI()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.pvp) then return end
|
||||
|
||||
_G.PVPUIFrame:StripTextures()
|
||||
|
||||
for i = 1, 2 do
|
||||
S:HandleTab(_G['PVPUIFrameTab'..i])
|
||||
end
|
||||
|
||||
for i = 1, 3 do
|
||||
local bu = _G['PVPQueueFrameCategoryButton'..i]
|
||||
bu.Ring:Kill()
|
||||
bu.Background:Kill()
|
||||
S:HandleButton(bu)
|
||||
|
||||
bu.Icon:Size(45)
|
||||
bu.Icon:ClearAllPoints()
|
||||
bu.Icon:Point('LEFT', 10, 0)
|
||||
S:HandleIcon(bu.Icon, true)
|
||||
end
|
||||
|
||||
local PVPQueueFrame = _G.PVPQueueFrame
|
||||
PVPQueueFrame.HonorInset:StripTextures()
|
||||
|
||||
PVPQueueFrame.CategoryButton1.Icon:SetTexture([[Interface\Icons\achievement_bg_winwsg]])
|
||||
PVPQueueFrame.CategoryButton2.Icon:SetTexture([[Interface\Icons\achievement_bg_killxenemies_generalsroom]])
|
||||
PVPQueueFrame.CategoryButton3.Icon:SetTexture([[Interface\Icons\Achievement_General_StayClassy]])
|
||||
|
||||
local SeasonReward = PVPQueueFrame.HonorInset.RatedPanel.SeasonRewardFrame
|
||||
SeasonReward.CircleMask:Hide()
|
||||
SeasonReward.Ring:Hide()
|
||||
SeasonReward.Icon:SetTexCoord(unpack(E.TexCoords))
|
||||
local RewardFrameBorder = CreateFrame('Frame', nil, SeasonReward, 'BackdropTemplate')
|
||||
RewardFrameBorder:SetTemplate()
|
||||
RewardFrameBorder:SetOutside(SeasonReward.Icon)
|
||||
SeasonReward.Icon:SetParent(RewardFrameBorder)
|
||||
SeasonReward.Icon:SetDrawLayer('OVERLAY')
|
||||
|
||||
-- Honor Frame
|
||||
local HonorFrame = _G.HonorFrame
|
||||
HonorFrame:StripTextures()
|
||||
|
||||
S:HandleScrollBar(_G.HonorFrameSpecificFrameScrollBar)
|
||||
S:HandleDropDownBox(_G.HonorFrameTypeDropDown, 230)
|
||||
S:HandleButton(_G.HonorFrameQueueButton)
|
||||
|
||||
local BonusFrame = HonorFrame.BonusFrame
|
||||
BonusFrame:StripTextures()
|
||||
BonusFrame.ShadowOverlay:Hide()
|
||||
BonusFrame.WorldBattlesTexture:Hide()
|
||||
|
||||
for _, bonusButton in pairs({'RandomBGButton', 'Arena1Button', 'RandomEpicBGButton', 'BrawlButton', 'SpecialEventButton'}) do
|
||||
local bu = BonusFrame[bonusButton]
|
||||
local reward = bu.Reward
|
||||
S:HandleButton(bu)
|
||||
bu.SelectedTexture:SetInside()
|
||||
bu.SelectedTexture:SetColorTexture(1, 1, 0, 0.1)
|
||||
|
||||
reward.Border:Hide()
|
||||
reward.CircleMask:Hide()
|
||||
S:HandleIcon(reward.Icon, true)
|
||||
|
||||
reward.EnlistmentBonus:StripTextures()
|
||||
reward.EnlistmentBonus:CreateBackdrop()
|
||||
reward.EnlistmentBonus:Size(20, 20)
|
||||
reward.EnlistmentBonus:Point('TOPRIGHT', 2, 2)
|
||||
|
||||
local EnlistmentBonusIcon = reward.EnlistmentBonus:CreateTexture()
|
||||
EnlistmentBonusIcon:Point('TOPLEFT', reward.EnlistmentBonus, 'TOPLEFT', 2, -2)
|
||||
EnlistmentBonusIcon:Point('BOTTOMRIGHT', reward.EnlistmentBonus, 'BOTTOMRIGHT', -2, 2)
|
||||
EnlistmentBonusIcon:SetTexture([[Interface\Icons\achievement_guildperk_honorablemention_rank2]])
|
||||
EnlistmentBonusIcon:SetTexCoord(0.1, 0.9, 0.1, 0.9)
|
||||
end
|
||||
|
||||
-- Honor Frame Specific Buttons
|
||||
for _, bu in pairs(HonorFrame.SpecificFrame.buttons) do
|
||||
bu.Bg:Hide()
|
||||
bu.Border:Hide()
|
||||
|
||||
bu:SetNormalTexture('')
|
||||
bu:SetHighlightTexture('')
|
||||
|
||||
bu:StripTextures()
|
||||
bu:CreateBackdrop()
|
||||
bu.backdrop:Point('TOPLEFT', 2, 0)
|
||||
bu.backdrop:Point('BOTTOMRIGHT', -1, 2)
|
||||
bu:StyleButton(nil, true)
|
||||
|
||||
bu.SelectedTexture:SetInside(bu.backdrop)
|
||||
bu.SelectedTexture:SetColorTexture(1, 1, 0, 0.1)
|
||||
|
||||
bu.Icon:SetTexCoord(unpack(E.TexCoords))
|
||||
bu.Icon:Point('TOPLEFT', 5, -3)
|
||||
end
|
||||
|
||||
hooksecurefunc('LFG_PermanentlyDisableRoleButton', function(s)
|
||||
if s.bg then s.bg:SetDesaturated(true) end
|
||||
end)
|
||||
|
||||
-- New tiny Role icons in Bfa
|
||||
HandleRoleChecks(HonorFrame.TankIcon, _G.LFDQueueFrameRoleButtonTank.background:GetTexCoord())
|
||||
HandleRoleChecks(HonorFrame.HealerIcon, _G.LFDQueueFrameRoleButtonHealer.background:GetTexCoord())
|
||||
HandleRoleChecks(HonorFrame.DPSIcon, _G.LFDQueueFrameRoleButtonDPS.background:GetTexCoord())
|
||||
|
||||
-- Conquest Frame
|
||||
local ConquestFrame = _G.ConquestFrame
|
||||
ConquestFrame:StripTextures()
|
||||
ConquestFrame.ShadowOverlay:Hide()
|
||||
|
||||
S:HandleButton(_G.ConquestJoinButton)
|
||||
|
||||
HandleRoleChecks(ConquestFrame.TankIcon, _G.LFDQueueFrameRoleButtonTank.background:GetTexCoord())
|
||||
HandleRoleChecks(ConquestFrame.HealerIcon, _G.LFDQueueFrameRoleButtonHealer.background:GetTexCoord())
|
||||
HandleRoleChecks(ConquestFrame.DPSIcon, _G.LFDQueueFrameRoleButtonDPS.background:GetTexCoord())
|
||||
|
||||
for _, bu in pairs({ConquestFrame.Arena2v2, ConquestFrame.Arena3v3, ConquestFrame.RatedBG}) do
|
||||
local reward = bu.Reward
|
||||
S:HandleButton(bu)
|
||||
bu.SelectedTexture:SetInside()
|
||||
bu.SelectedTexture:SetColorTexture(1, 1, 0, 0.1)
|
||||
|
||||
reward.Border:Hide()
|
||||
reward.CircleMask:Hide()
|
||||
S:HandleIcon(reward.Icon, true)
|
||||
end
|
||||
|
||||
ConquestFrame.Arena3v3:Point('TOP', ConquestFrame.Arena2v2, 'BOTTOM', 0, -2)
|
||||
|
||||
-- Item Borders for HonorFrame & ConquestFrame
|
||||
hooksecurefunc('PVPUIFrame_ConfigureRewardFrame', function(rewardFrame, _, _, itemRewards, currencyRewards)
|
||||
local rewardTexture, rewardQuaility, _ = nil, 1
|
||||
|
||||
if currencyRewards then
|
||||
for _, reward in ipairs(currencyRewards) do
|
||||
local info = C_CurrencyInfo_GetCurrencyInfo(reward.id)
|
||||
if info and info.quality == LE_ITEM_QUALITY_ARTIFACT then
|
||||
_, rewardTexture, _, rewardQuaility = CurrencyContainerUtil_GetCurrencyContainerInfo(reward.id, reward.quantity, info.name, info.iconFileID, info.quality)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if not rewardTexture and itemRewards then
|
||||
local reward = itemRewards[1]
|
||||
if reward then
|
||||
_, _, rewardQuaility, _, _, _, _, _, _, rewardTexture = GetItemInfo(reward.id)
|
||||
end
|
||||
end
|
||||
|
||||
if rewardTexture then
|
||||
rewardFrame.Icon:SetTexture(rewardTexture)
|
||||
rewardFrame.Icon.backdrop:SetBackdropBorderColor(GetItemQualityColor(rewardQuaility))
|
||||
end
|
||||
end)
|
||||
|
||||
if E.private.skins.blizzard.tooltip then
|
||||
_G.ConquestTooltip:SetTemplate('Transparent')
|
||||
end
|
||||
|
||||
-- PvP StatusBars
|
||||
for _, Frame in pairs({ HonorFrame, ConquestFrame }) do
|
||||
Frame.ConquestBar.Border:Hide()
|
||||
Frame.ConquestBar.Background:Hide()
|
||||
Frame.ConquestBar.Reward.Ring:Hide()
|
||||
Frame.ConquestBar.Reward.CircleMask:Hide()
|
||||
|
||||
if not Frame.ConquestBar.backdrop then
|
||||
Frame.ConquestBar:CreateBackdrop()
|
||||
Frame.ConquestBar.backdrop:SetOutside()
|
||||
end
|
||||
|
||||
Frame.ConquestBar.Reward:Point('LEFT', Frame.ConquestBar, 'RIGHT', -8, 0)
|
||||
Frame.ConquestBar:SetStatusBarTexture(E.media.normTex)
|
||||
Frame.ConquestBar:SetStatusBarColor(unpack(E.myfaction == 'Alliance' and {0.05, 0.15, 0.36} or {0.63, 0.09, 0.09}))
|
||||
|
||||
S:HandleIcon(Frame.ConquestBar.Reward.Icon)
|
||||
end
|
||||
|
||||
-- New Season Frame
|
||||
local NewSeasonPopup = _G.PVPQueueFrame.NewSeasonPopup
|
||||
S:HandleButton(NewSeasonPopup.Leave)
|
||||
NewSeasonPopup:StripTextures()
|
||||
NewSeasonPopup:CreateBackdrop('Overlay')
|
||||
NewSeasonPopup:SetFrameLevel(5)
|
||||
|
||||
if NewSeasonPopup.NewSeason then
|
||||
NewSeasonPopup.NewSeason:SetTextColor(1, .8, 0)
|
||||
NewSeasonPopup.NewSeason:SetShadowOffset(1, -1)
|
||||
end
|
||||
|
||||
if NewSeasonPopup.SeasonRewardText then
|
||||
NewSeasonPopup.SeasonRewardText:SetTextColor(1, .8, 0)
|
||||
NewSeasonPopup.SeasonRewardText:SetShadowOffset(1, -1)
|
||||
end
|
||||
|
||||
if NewSeasonPopup.SeasonDescription then
|
||||
NewSeasonPopup.SeasonDescription:SetTextColor(1, 1, 1)
|
||||
NewSeasonPopup.SeasonDescription:SetShadowOffset(1, -1)
|
||||
end
|
||||
|
||||
if NewSeasonPopup.SeasonDescription2 then
|
||||
NewSeasonPopup.SeasonDescription2:SetTextColor(1, 1, 1)
|
||||
NewSeasonPopup.SeasonDescription2:SetShadowOffset(1, -1)
|
||||
end
|
||||
|
||||
local RewardFrame = NewSeasonPopup.SeasonRewardFrame
|
||||
RewardFrame.CircleMask:Hide()
|
||||
RewardFrame.Ring:Hide()
|
||||
RewardFrame.Icon:SetTexCoord(unpack(E.TexCoords))
|
||||
end
|
||||
|
||||
function S:PVPReadyDialog()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.pvp) then return end
|
||||
|
||||
--PVP QUEUE FRAME
|
||||
_G.PVPReadyDialog:StripTextures()
|
||||
_G.PVPReadyDialog:CreateBackdrop('Transparent')
|
||||
S:HandleButton(_G.PVPReadyDialogEnterBattleButton)
|
||||
S:HandleButton(_G.PVPReadyDialogLeaveQueueButton)
|
||||
S:HandleCloseButton(_G.PVPReadyDialogCloseButton)
|
||||
_G.PVPReadyDialogRoleIcon.texture:SetTexture([[Interface\LFGFrame\UI-LFG-ICONS-ROLEBACKGROUNDS]])
|
||||
_G.PVPReadyDialogRoleIcon.texture:SetAlpha(0.5)
|
||||
|
||||
hooksecurefunc('PVPReadyDialog_Display', function(s, _, _, _, queueType, _, role)
|
||||
if role == 'DAMAGER' then
|
||||
_G.PVPReadyDialogRoleIcon.texture:SetTexCoord(_G.LFDQueueFrameRoleButtonDPS.background:GetTexCoord())
|
||||
elseif role == 'TANK' then
|
||||
_G.PVPReadyDialogRoleIcon.texture:SetTexCoord(_G.LFDQueueFrameRoleButtonTank.background:GetTexCoord())
|
||||
elseif role == 'HEALER' then
|
||||
_G.PVPReadyDialogRoleIcon.texture:SetTexCoord(_G.LFDQueueFrameRoleButtonHealer.background:GetTexCoord())
|
||||
end
|
||||
|
||||
if queueType == 'ARENA' then
|
||||
s:Height(100)
|
||||
end
|
||||
|
||||
s.background:Hide()
|
||||
end)
|
||||
end
|
||||
|
||||
S:AddCallback('PVPReadyDialog')
|
||||
S:AddCallbackForAddon('Blizzard_PVPUI')
|
||||
62
Modules/Skins/Blizzard/PVPMatch.lua
Normal file
62
Modules/Skins/Blizzard/PVPMatch.lua
Normal file
@@ -0,0 +1,62 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local pairs = pairs
|
||||
|
||||
function S:Blizzard_PVPMatch()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.bgscore) then return end
|
||||
|
||||
-- Macro to show the PVPMatchScoreboard: /run PVPMatchScoreboard:Show()
|
||||
local PVPMatchScoreboard = _G.PVPMatchScoreboard
|
||||
PVPMatchScoreboard:StripTextures()
|
||||
PVPMatchScoreboard:DisableDrawLayer('BORDER')
|
||||
PVPMatchScoreboard:CreateBackdrop('Transparent')
|
||||
|
||||
PVPMatchScoreboard.Content:StripTextures()
|
||||
PVPMatchScoreboard.Content.TabContainer.InsetBorderTop:Hide()
|
||||
|
||||
S:HandleScrollBar(PVPMatchScoreboard.Content.ScrollFrame.ScrollBar)
|
||||
S:HandleCloseButton(PVPMatchScoreboard.CloseButton)
|
||||
|
||||
--Also have a look at the tabs
|
||||
local tabs = {
|
||||
PVPMatchScoreboard.Content.TabContainer.TabGroup.Tab1,
|
||||
PVPMatchScoreboard.Content.TabContainer.TabGroup.Tab2,
|
||||
PVPMatchScoreboard.Content.TabContainer.TabGroup.Tab3,
|
||||
}
|
||||
|
||||
for _, tab in pairs(tabs) do
|
||||
S:HandleTab(tab)
|
||||
end
|
||||
|
||||
PVPMatchScoreboard.Content.TabContainer.MatchmakingText:FontTemplate()
|
||||
|
||||
-- Macro to show the PVPMatchResults: /run PVPMatchResults:Show()
|
||||
local PVPMatchResults = _G.PVPMatchResults
|
||||
PVPMatchResults:StripTextures()
|
||||
PVPMatchResults:DisableDrawLayer('BORDER')
|
||||
PVPMatchResults:CreateBackdrop('Transparent')
|
||||
|
||||
PVPMatchResults.content:StripTextures()
|
||||
PVPMatchResults.content.tabContainer:StripTextures()
|
||||
|
||||
S:HandleScrollBar(PVPMatchResults.content.scrollFrame.scrollBar)
|
||||
S:HandleCloseButton(PVPMatchResults.CloseButton)
|
||||
S:HandleButton(PVPMatchResults.buttonContainer.leaveButton)
|
||||
S:HandleButton(PVPMatchResults.buttonContainer.requeueButton)
|
||||
|
||||
local tabz = {
|
||||
PVPMatchResults.content.tabContainer.tabGroup.tab1,
|
||||
PVPMatchResults.content.tabContainer.tabGroup.tab2,
|
||||
PVPMatchResults.content.tabContainer.tabGroup.tab3,
|
||||
}
|
||||
|
||||
for _, tab in pairs(tabz) do
|
||||
S:HandleTab(tab)
|
||||
end
|
||||
|
||||
PVPMatchResults.content.tabContainer.matchmakingText:FontTemplate()
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_PVPMatch')
|
||||
416
Modules/Skins/Blizzard/PetBattle.lua
Normal file
416
Modules/Skins/Blizzard/PetBattle.lua
Normal file
@@ -0,0 +1,416 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local pairs, unpack = pairs, unpack
|
||||
|
||||
local _G = _G
|
||||
local C_PetBattles_GetPetType = C_PetBattles.GetPetType
|
||||
local C_PetBattles_GetNumAuras = C_PetBattles.GetNumAuras
|
||||
local C_PetBattles_GetAuraInfo = C_PetBattles.GetAuraInfo
|
||||
|
||||
local CreateFrame = CreateFrame
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
local ITEM_QUALITY_COLORS = ITEM_QUALITY_COLORS
|
||||
|
||||
local function SkinPetButton(self, bf)
|
||||
if not self.backdrop then
|
||||
self:CreateBackdrop()
|
||||
end
|
||||
|
||||
self:SetNormalTexture('')
|
||||
self.Icon:SetTexCoord(unpack(E.TexCoords))
|
||||
self.Icon:SetParent(self.backdrop)
|
||||
self.Icon:SetDrawLayer('BORDER')
|
||||
self:StyleButton(nil, nil, true)
|
||||
self.SelectedHighlight:SetAlpha(0)
|
||||
self.pushed:SetInside(self.backdrop)
|
||||
self.hover:SetInside(self.backdrop)
|
||||
self:SetFrameStrata('LOW')
|
||||
self.backdrop:SetFrameStrata('LOW')
|
||||
|
||||
if self == bf.SwitchPetButton then
|
||||
local spbc = self:GetCheckedTexture()
|
||||
spbc:SetColorTexture(1, 1, 1, 0.3)
|
||||
spbc:SetInside(self.backdrop)
|
||||
end
|
||||
end
|
||||
|
||||
local function SkinPetTooltip(tt)
|
||||
tt.Background:SetTexture()
|
||||
tt.BorderTop:SetTexture()
|
||||
tt.BorderTopLeft:SetTexture()
|
||||
tt.BorderTopRight:SetTexture()
|
||||
tt.BorderLeft:SetTexture()
|
||||
tt.BorderRight:SetTexture()
|
||||
tt.BorderBottom:SetTexture()
|
||||
tt.BorderBottomRight:SetTexture()
|
||||
tt.BorderBottomLeft:SetTexture()
|
||||
|
||||
if tt.Delimiter1 then
|
||||
tt.Delimiter1:SetTexture()
|
||||
end
|
||||
if tt.Delimiter2 then
|
||||
tt.Delimiter2:SetTexture()
|
||||
end
|
||||
|
||||
tt:CreateBackdrop('Transparent')
|
||||
end
|
||||
|
||||
function S:PetBattleFrame()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.petbattleui) then return end
|
||||
|
||||
local f = _G.PetBattleFrame
|
||||
local bf = f.BottomFrame
|
||||
local infoBars = {
|
||||
f.ActiveAlly,
|
||||
f.ActiveEnemy
|
||||
}
|
||||
|
||||
S:HandleCloseButton(_G.FloatingBattlePetTooltip.CloseButton)
|
||||
|
||||
-- TOP FRAMES
|
||||
f:StripTextures()
|
||||
|
||||
for index, infoBar in pairs(infoBars) do
|
||||
infoBar.Border:SetAlpha(0)
|
||||
infoBar.Border2:SetAlpha(0)
|
||||
infoBar.healthBarWidth = 300
|
||||
|
||||
infoBar.IconBackdrop = CreateFrame('Frame', nil, infoBar, 'BackdropTemplate')
|
||||
infoBar.IconBackdrop:SetFrameLevel(infoBar:GetFrameLevel() - 1)
|
||||
infoBar.IconBackdrop:SetOutside(infoBar.Icon)
|
||||
infoBar.IconBackdrop:SetTemplate()
|
||||
infoBar.BorderFlash:Kill()
|
||||
infoBar.HealthBarBG:Kill()
|
||||
infoBar.HealthBarFrame:Kill()
|
||||
infoBar.HealthBarBackdrop = CreateFrame('Frame', nil, infoBar, 'BackdropTemplate')
|
||||
infoBar.HealthBarBackdrop:SetFrameLevel(infoBar:GetFrameLevel() - 1)
|
||||
infoBar.HealthBarBackdrop:SetTemplate('Transparent')
|
||||
infoBar.HealthBarBackdrop:Width(infoBar.healthBarWidth + (E.Border * 2))
|
||||
infoBar.ActualHealthBar:SetTexture(E.media.normTex)
|
||||
E:RegisterStatusBar(infoBar.ActualHealthBar)
|
||||
infoBar.PetTypeFrame = CreateFrame('Frame', nil, infoBar)
|
||||
infoBar.PetTypeFrame:Size(100, 23)
|
||||
infoBar.PetTypeFrame.text = infoBar.PetTypeFrame:CreateFontString(nil, 'OVERLAY')
|
||||
infoBar.PetTypeFrame.text:FontTemplate()
|
||||
infoBar.PetTypeFrame.text:SetText('')
|
||||
|
||||
infoBar.ActualHealthBar:ClearAllPoints()
|
||||
infoBar.Name:ClearAllPoints()
|
||||
|
||||
infoBar.FirstAttack = infoBar:CreateTexture(nil, 'ARTWORK')
|
||||
infoBar.FirstAttack:Size(30)
|
||||
infoBar.FirstAttack:SetTexture([[Interface\PetBattles\PetBattle-StatIcons]])
|
||||
if index == 1 then
|
||||
infoBar.HealthBarBackdrop:Point('TOPLEFT', infoBar.ActualHealthBar, 'TOPLEFT', -E.Border, E.Border)
|
||||
infoBar.HealthBarBackdrop:Point('BOTTOMLEFT', infoBar.ActualHealthBar, 'BOTTOMLEFT', -E.Border, -E.Border)
|
||||
infoBar.ActualHealthBar:SetVertexColor(171/255, 214/255, 116/255)
|
||||
f.Ally2.iconPoint = infoBar.IconBackdrop
|
||||
f.Ally3.iconPoint = infoBar.IconBackdrop
|
||||
|
||||
infoBar.ActualHealthBar:Point('BOTTOMLEFT', infoBar.Icon, 'BOTTOMRIGHT', 10, 0)
|
||||
infoBar.Name:Point('BOTTOMLEFT', infoBar.ActualHealthBar, 'TOPLEFT', 0, 10)
|
||||
infoBar.PetTypeFrame:Point('BOTTOMRIGHT',infoBar.HealthBarBackdrop, 'TOPRIGHT', 0, 4)
|
||||
infoBar.PetTypeFrame.text:Point('RIGHT')
|
||||
|
||||
infoBar.FirstAttack:Point('LEFT', infoBar.HealthBarBackdrop, 'RIGHT', 5, 0)
|
||||
infoBar.FirstAttack:SetTexCoord(infoBar.SpeedIcon:GetTexCoord())
|
||||
infoBar.FirstAttack:SetVertexColor(.1,.1,.1,1)
|
||||
|
||||
else
|
||||
infoBar.HealthBarBackdrop:Point('TOPRIGHT', infoBar.ActualHealthBar, 'TOPRIGHT', E.Border, E.Border)
|
||||
infoBar.HealthBarBackdrop:Point('BOTTOMRIGHT', infoBar.ActualHealthBar, 'BOTTOMRIGHT', E.Border, -E.Border)
|
||||
infoBar.ActualHealthBar:SetVertexColor(196/255, 30/255, 60/255)
|
||||
f.Enemy2.iconPoint = infoBar.IconBackdrop
|
||||
f.Enemy3.iconPoint = infoBar.IconBackdrop
|
||||
|
||||
infoBar.ActualHealthBar:Point('BOTTOMRIGHT', infoBar.Icon, 'BOTTOMLEFT', -10, 0)
|
||||
infoBar.Name:Point('BOTTOMRIGHT', infoBar.ActualHealthBar, 'TOPRIGHT', 0, 10)
|
||||
|
||||
infoBar.PetTypeFrame:Point('BOTTOMLEFT',infoBar.HealthBarBackdrop, 'TOPLEFT', 2, 4)
|
||||
infoBar.PetTypeFrame.text:Point('LEFT')
|
||||
|
||||
infoBar.FirstAttack:Point('RIGHT', infoBar.HealthBarBackdrop, 'LEFT', -5, 0)
|
||||
infoBar.FirstAttack:SetTexCoord(.5, 0, .5, 1)
|
||||
infoBar.FirstAttack:SetVertexColor(.1,.1,.1,1)
|
||||
end
|
||||
|
||||
infoBar.HealthText:ClearAllPoints()
|
||||
infoBar.HealthText:Point('CENTER', infoBar.HealthBarBackdrop, 'CENTER')
|
||||
|
||||
infoBar.PetType:ClearAllPoints()
|
||||
infoBar.PetType:SetAllPoints(infoBar.PetTypeFrame)
|
||||
infoBar.PetType:SetFrameLevel(infoBar.PetTypeFrame:GetFrameLevel() + 2)
|
||||
infoBar.PetType:SetAlpha(0)
|
||||
|
||||
infoBar.LevelUnderlay:SetAlpha(0)
|
||||
infoBar.Level:SetFontObject(_G.NumberFont_Outline_Huge)
|
||||
infoBar.Level:ClearAllPoints()
|
||||
infoBar.Level:Point('BOTTOMLEFT', infoBar.Icon, 'BOTTOMLEFT', 2, 2)
|
||||
if infoBar.SpeedIcon then
|
||||
infoBar.SpeedIcon:ClearAllPoints()
|
||||
infoBar.SpeedIcon:Point('CENTER') -- to set
|
||||
infoBar.SpeedIcon:SetAlpha(0)
|
||||
infoBar.SpeedUnderlay:SetAlpha(0)
|
||||
end
|
||||
end
|
||||
|
||||
-- PETS SPEED INDICATOR UPDATE
|
||||
hooksecurefunc('PetBattleFrame_UpdateSpeedIndicators', function()
|
||||
if not f.ActiveAlly.SpeedIcon:IsShown() and not f.ActiveEnemy.SpeedIcon:IsShown() then
|
||||
f.ActiveAlly.FirstAttack:Hide()
|
||||
f.ActiveEnemy.FirstAttack:Hide()
|
||||
return
|
||||
end
|
||||
|
||||
for _, infoBar in pairs(infoBars) do
|
||||
infoBar.FirstAttack:Show()
|
||||
if infoBar.SpeedIcon:IsShown() then
|
||||
infoBar.FirstAttack:SetVertexColor(0,1,0,1)
|
||||
else
|
||||
infoBar.FirstAttack:SetVertexColor(.8,0,.3,1)
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
-- PETS UNITFRAMES PET TYPE UPDATE
|
||||
hooksecurefunc('PetBattleUnitFrame_UpdatePetType', function(s)
|
||||
if s.PetType then
|
||||
local petType = C_PetBattles_GetPetType(s.petOwner, s.petIndex)
|
||||
if s.PetTypeFrame and petType then
|
||||
s.PetTypeFrame.text:SetText(_G['BATTLE_PET_NAME_'..petType])
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
-- PETS UNITFRAMES AURA SKINS
|
||||
hooksecurefunc('PetBattleAuraHolder_Update', function(s)
|
||||
if not (s.petOwner and s.petIndex) then return end
|
||||
|
||||
local nextFrame = 1
|
||||
for i=1, C_PetBattles_GetNumAuras(s.petOwner, s.petIndex) do
|
||||
local _, _, turnsRemaining, isBuff = C_PetBattles_GetAuraInfo(s.petOwner, s.petIndex, i)
|
||||
if (isBuff and s.displayBuffs) or (not isBuff and s.displayDebuffs) then
|
||||
local frame = s.frames[nextFrame]
|
||||
|
||||
-- always hide the border
|
||||
frame.DebuffBorder:Hide()
|
||||
|
||||
if not frame.isSkinned then
|
||||
frame:CreateBackdrop()
|
||||
frame.backdrop:SetOutside(frame.Icon)
|
||||
frame.Icon:SetTexCoord(unpack(E.TexCoords))
|
||||
frame.Icon:SetParent(frame.backdrop)
|
||||
end
|
||||
|
||||
if isBuff then
|
||||
frame.backdrop:SetBackdropBorderColor(0, 1, 0)
|
||||
else
|
||||
frame.backdrop:SetBackdropBorderColor(1, 0, 0)
|
||||
end
|
||||
|
||||
-- move duration and change font
|
||||
frame.Duration:FontTemplate(nil, 12, 'OUTLINE')
|
||||
frame.Duration:ClearAllPoints()
|
||||
frame.Duration:Point('TOP', frame.Icon, 'BOTTOM', 1, -4)
|
||||
if turnsRemaining > 0 then
|
||||
frame.Duration:SetText(turnsRemaining)
|
||||
end
|
||||
nextFrame = nextFrame + 1
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
-- WEATHER
|
||||
hooksecurefunc('PetBattleWeatherFrame_Update', function(s)
|
||||
local weather = C_PetBattles_GetAuraInfo(_G.LE_BATTLE_PET_WEATHER, _G.PET_BATTLE_PAD_INDEX, 1)
|
||||
if weather then
|
||||
s.Icon:Hide()
|
||||
s.BackgroundArt:ClearAllPoints()
|
||||
s.BackgroundArt:Point('TOP', s, 'TOP', 0, 14)
|
||||
s.BackgroundArt:Size(200, 100)
|
||||
s.Name:Hide()
|
||||
s.DurationShadow:Hide()
|
||||
s.Label:Hide()
|
||||
s.Duration:ClearAllPoints()
|
||||
s.Duration:Point('TOP', s, 'TOP', 0, 10)
|
||||
s:ClearAllPoints()
|
||||
s:Point('TOP', E.UIParent, 0, -15)
|
||||
end
|
||||
end)
|
||||
|
||||
hooksecurefunc('PetBattleUnitFrame_UpdateDisplay', function(s)
|
||||
s.Icon:SetTexCoord(unpack(E.TexCoords))
|
||||
end)
|
||||
|
||||
f.TopVersusText:ClearAllPoints()
|
||||
f.TopVersusText:Point('TOP', f, 'TOP', 0, -35)
|
||||
|
||||
-- TOOLTIPS SKINNING
|
||||
if E.private.skins.blizzard.tooltip then
|
||||
SkinPetTooltip(_G.BattlePetTooltip)
|
||||
SkinPetTooltip(_G.PetBattlePrimaryAbilityTooltip)
|
||||
SkinPetTooltip(_G.PetBattlePrimaryUnitTooltip)
|
||||
SkinPetTooltip(_G.FloatingBattlePetTooltip)
|
||||
SkinPetTooltip(_G.FloatingPetBattleAbilityTooltip)
|
||||
|
||||
-- BATTLEPET RARITY COLOR
|
||||
hooksecurefunc('BattlePetToolTip_Show', function(_, _, rarity)
|
||||
if not _G.BattlePetTooltip.backdrop then return end
|
||||
local quality = rarity and ITEM_QUALITY_COLORS[rarity]
|
||||
if quality and rarity > 1 then
|
||||
_G.BattlePetTooltip.backdrop:SetBackdropBorderColor(quality.r, quality.g, quality.b)
|
||||
else
|
||||
_G.BattlePetTooltip.backdrop:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
||||
end
|
||||
end)
|
||||
|
||||
-- TOOLTIP DEFAULT POSITION
|
||||
hooksecurefunc('PetBattleAbilityTooltip_Show', function()
|
||||
local t = _G.PetBattlePrimaryAbilityTooltip
|
||||
local point, x, y = 'TOPRIGHT', -4, -4
|
||||
--Position it at the bottom right on low resolution setups
|
||||
--Otherwise the tooltip might overlap enemy team unit info
|
||||
if E.lowversion then
|
||||
point, x, y = 'BOTTOMRIGHT', -4, 4
|
||||
end
|
||||
t:ClearAllPoints()
|
||||
t:Point(point, E.UIParent, point, x, y)
|
||||
end)
|
||||
end
|
||||
|
||||
local extraInfoBars = {
|
||||
f.Ally2,
|
||||
f.Ally3,
|
||||
f.Enemy2,
|
||||
f.Enemy3
|
||||
}
|
||||
|
||||
for _, infoBar in pairs(extraInfoBars) do
|
||||
infoBar.BorderAlive:SetAlpha(0)
|
||||
infoBar.HealthBarBG:SetAlpha(0)
|
||||
infoBar.HealthDivider:SetAlpha(0)
|
||||
infoBar:Size(40)
|
||||
infoBar:CreateBackdrop()
|
||||
infoBar:ClearAllPoints()
|
||||
|
||||
infoBar.healthBarWidth = 40
|
||||
infoBar.ActualHealthBar:ClearAllPoints()
|
||||
infoBar.ActualHealthBar:Point('TOPLEFT', infoBar.backdrop, 'BOTTOMLEFT', E.Border, -3)
|
||||
|
||||
infoBar.HealthBarBackdrop = CreateFrame('Frame', nil, infoBar, 'BackdropTemplate')
|
||||
infoBar.HealthBarBackdrop:SetFrameLevel(infoBar:GetFrameLevel() - 1)
|
||||
infoBar.HealthBarBackdrop:SetTemplate()
|
||||
infoBar.HealthBarBackdrop:Width(infoBar.healthBarWidth + (E.Border*2))
|
||||
infoBar.HealthBarBackdrop:Point('TOPLEFT', infoBar.ActualHealthBar, 'TOPLEFT', -E.Border, E.Border)
|
||||
infoBar.HealthBarBackdrop:Point('BOTTOMLEFT', infoBar.ActualHealthBar, 'BOTTOMLEFT', -E.Border, -E.Spacing)
|
||||
end
|
||||
|
||||
f.Ally2:Point('TOPRIGHT', f.Ally2.iconPoint, 'TOPLEFT', -6, -2)
|
||||
f.Ally3:Point('TOPRIGHT', f.Ally2, 'TOPLEFT', -8, 0)
|
||||
f.Enemy2:Point('TOPLEFT', f.Enemy2.iconPoint, 'TOPRIGHT', 6, -2)
|
||||
f.Enemy3:Point('TOPLEFT', f.Enemy2, 'TOPRIGHT', 8, 0)
|
||||
|
||||
---------------------------------
|
||||
-- PET BATTLE ACTION BAR SETUP --
|
||||
---------------------------------
|
||||
|
||||
local bar = CreateFrame('Frame', 'ElvUIPetBattleActionBar', f, 'BackdropTemplate')
|
||||
bar:Size (52*6 + 7*10, 52 * 1 + 10*2)
|
||||
bar:EnableMouse(true)
|
||||
bar:SetTemplate()
|
||||
bar:Point('BOTTOM', E.UIParent, 'BOTTOM', 0, 4)
|
||||
bar:SetFrameLevel(2)
|
||||
bar:SetFrameStrata('BACKGROUND')
|
||||
|
||||
bf:StripTextures()
|
||||
bf.TurnTimer:StripTextures()
|
||||
bf.TurnTimer.SkipButton:SetParent(bar)
|
||||
S:HandleButton(bf.TurnTimer.SkipButton)
|
||||
|
||||
bf.TurnTimer.SkipButton:Width(bar:GetWidth())
|
||||
bf.TurnTimer.SkipButton:ClearAllPoints()
|
||||
bf.TurnTimer.SkipButton:Point('BOTTOM', bar, 'TOP', 0, E.PixelMode and -1 or 1)
|
||||
hooksecurefunc(bf.TurnTimer.SkipButton, 'SetPoint', function(btn, _, _, _, _, _, forced)
|
||||
if forced ~= true then
|
||||
btn:ClearAllPoints()
|
||||
btn:Point('BOTTOM', bar, 'TOP', 0, E.PixelMode and -1 or 1, true)
|
||||
end
|
||||
end)
|
||||
|
||||
bf.TurnTimer:Size(bf.TurnTimer.SkipButton:GetWidth(), bf.TurnTimer.SkipButton:GetHeight())
|
||||
bf.TurnTimer:ClearAllPoints()
|
||||
bf.TurnTimer:Point('TOP', E.UIParent, 'TOP', 0, -140)
|
||||
bf.TurnTimer.TimerText:Point('CENTER')
|
||||
|
||||
bf.FlowFrame:StripTextures()
|
||||
bf.MicroButtonFrame:Kill()
|
||||
bf.Delimiter:StripTextures()
|
||||
bf.xpBar:SetParent(bar)
|
||||
bf.xpBar:Width(bar:GetWidth() - (E.Border * 2))
|
||||
bf.xpBar:CreateBackdrop()
|
||||
bf.xpBar:ClearAllPoints()
|
||||
bf.xpBar:Point('BOTTOM', bf.TurnTimer.SkipButton, 'TOP', 0, E.PixelMode and 0 or 3)
|
||||
bf.xpBar:SetScript('OnShow', function(s) s:StripTextures() s:SetStatusBarTexture(E.media.normTex) end)
|
||||
E:RegisterStatusBar(bf.xpBar)
|
||||
-- PETS SELECTION SKIN
|
||||
for i = 1, 3 do
|
||||
local pet = bf.PetSelectionFrame['Pet'..i]
|
||||
|
||||
pet.HealthBarBG:SetAlpha(0)
|
||||
pet.HealthDivider:SetAlpha(0)
|
||||
pet.ActualHealthBar:SetAlpha(0)
|
||||
pet.SelectedTexture:SetAlpha(0)
|
||||
pet.MouseoverHighlight:SetAlpha(0)
|
||||
pet.Framing:SetAlpha(0)
|
||||
pet.Icon:SetAlpha(0)
|
||||
pet.Name:SetAlpha(0)
|
||||
pet.DeadOverlay:SetAlpha(0)
|
||||
pet.Level:SetAlpha(0)
|
||||
pet.HealthText:SetAlpha(0)
|
||||
end
|
||||
|
||||
-- MOVE DEFAULT POSITION OF PETS SELECTION
|
||||
hooksecurefunc('PetBattlePetSelectionFrame_Show', function()
|
||||
bf.PetSelectionFrame:ClearAllPoints()
|
||||
bf.PetSelectionFrame:Point('BOTTOM', bf.xpBar, 'TOP', 0, 8)
|
||||
end)
|
||||
|
||||
hooksecurefunc('PetBattleFrame_UpdateActionBarLayout', function()
|
||||
for i=1, _G.NUM_BATTLE_PET_ABILITIES do
|
||||
local b = bf.abilityButtons[i]
|
||||
SkinPetButton(b, bf)
|
||||
b:SetParent(bar)
|
||||
b:ClearAllPoints()
|
||||
|
||||
if i == 1 then
|
||||
b:Point('BOTTOMLEFT', 10, 10)
|
||||
else
|
||||
local previous = bf.abilityButtons[i-1]
|
||||
b:Point('LEFT', previous, 'RIGHT', 10, 0)
|
||||
end
|
||||
end
|
||||
|
||||
bf.SwitchPetButton:ClearAllPoints()
|
||||
bf.SwitchPetButton:Point('LEFT', bf.abilityButtons[3], 'RIGHT', 10, 0)
|
||||
SkinPetButton(bf.SwitchPetButton, bf)
|
||||
bf.CatchButton:SetParent(bar)
|
||||
bf.CatchButton:ClearAllPoints()
|
||||
bf.CatchButton:Point('LEFT', bf.SwitchPetButton, 'RIGHT', 10, 0)
|
||||
SkinPetButton(bf.CatchButton, bf)
|
||||
bf.ForfeitButton:SetParent(bar)
|
||||
bf.ForfeitButton:ClearAllPoints()
|
||||
bf.ForfeitButton:Point('LEFT', bf.CatchButton, 'RIGHT', 10, 0)
|
||||
SkinPetButton(bf.ForfeitButton, bf)
|
||||
end)
|
||||
|
||||
local PetBattleQueueReadyFrame = _G.PetBattleQueueReadyFrame
|
||||
PetBattleQueueReadyFrame:StripTextures()
|
||||
PetBattleQueueReadyFrame:CreateBackdrop('Transparent')
|
||||
S:HandleButton(PetBattleQueueReadyFrame.AcceptButton)
|
||||
S:HandleButton(PetBattleQueueReadyFrame.DeclineButton)
|
||||
PetBattleQueueReadyFrame.Art:SetTexture([[Interface\PetBattles\PetBattlesQueue]])
|
||||
--StaticPopupSpecial_Show(PetBattleQueueReadyFrame);
|
||||
end
|
||||
|
||||
S:AddCallback('PetBattleFrame')
|
||||
36
Modules/Skins/Blizzard/Petition.lua
Normal file
36
Modules/Skins/Blizzard/Petition.lua
Normal file
@@ -0,0 +1,36 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
|
||||
function S:PetitionFrame()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.petition) then return end
|
||||
|
||||
local PetitionFrame = _G.PetitionFrame
|
||||
PetitionFrame:StripTextures(true)
|
||||
PetitionFrame:CreateBackdrop('Transparent')
|
||||
_G.PetitionFrameInset:Kill()
|
||||
|
||||
S:HandleButton(_G.PetitionFrameSignButton)
|
||||
S:HandleButton(_G.PetitionFrameRequestButton)
|
||||
S:HandleButton(_G.PetitionFrameRenameButton)
|
||||
S:HandleButton(_G.PetitionFrameCancelButton)
|
||||
S:HandleCloseButton(_G.PetitionFrameCloseButton)
|
||||
|
||||
_G.PetitionFrameCharterTitle:SetTextColor(1, 1, 0)
|
||||
_G.PetitionFrameCharterName:SetTextColor(1, 1, 1)
|
||||
_G.PetitionFrameMasterTitle:SetTextColor(1, 1, 0)
|
||||
_G.PetitionFrameMasterName:SetTextColor(1, 1, 1)
|
||||
_G.PetitionFrameMemberTitle:SetTextColor(1, 1, 0)
|
||||
|
||||
for i = 1, 9 do
|
||||
_G['PetitionFrameMemberName'..i]:SetTextColor(1, 1, 1)
|
||||
end
|
||||
|
||||
_G.PetitionFrameInstructions:SetTextColor(1, 1, 1)
|
||||
|
||||
_G.PetitionFrameRenameButton:Point('LEFT', _G.PetitionFrameRequestButton, 'RIGHT', 3, 0)
|
||||
_G.PetitionFrameRenameButton:Point('RIGHT', _G.PetitionFrameCancelButton, 'LEFT', -3, 0)
|
||||
end
|
||||
|
||||
S:AddCallback('PetitionFrame')
|
||||
135
Modules/Skins/Blizzard/PlayerChoice.lua
Normal file
135
Modules/Skins/Blizzard/PlayerChoice.lua
Normal file
@@ -0,0 +1,135 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local select = select
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
local IsInJailersTower = IsInJailersTower
|
||||
|
||||
local function StyleText(text)
|
||||
if text.IsSkinned then return end
|
||||
text:SetTextColor(1, 1, 1)
|
||||
text.SetTextColor = E.noop
|
||||
text.IsSkinned = true
|
||||
end
|
||||
|
||||
local function HandleFirstOptionButton(button)
|
||||
if not button then return end
|
||||
|
||||
button:StripTextures(true)
|
||||
S:HandleButton(button)
|
||||
end
|
||||
|
||||
local function HandleSecondOptionButton(button)
|
||||
if not button then return end
|
||||
|
||||
S:HandleButton(button, nil, nil, nil, nil, nil, nil, true)
|
||||
end
|
||||
|
||||
local function HandleJailerOptionButton(button)
|
||||
if not button or button.IsSkinned then return end
|
||||
|
||||
button:StripTextures(true)
|
||||
button:CreateBackdrop()
|
||||
button.backdrop:SetAllPoints()
|
||||
|
||||
button:HookScript('OnEnter', S.SetModifiedBackdrop)
|
||||
button:HookScript('OnLeave', S.SetOriginalBackdrop)
|
||||
|
||||
button.IsSkinned = true
|
||||
end
|
||||
|
||||
function S:Blizzard_PlayerChoiceUI()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.playerChoice) then return end
|
||||
|
||||
local frame = _G.PlayerChoiceFrame
|
||||
hooksecurefunc(frame, 'Update', function()
|
||||
if not frame.IsSkinned then
|
||||
frame.BlackBackground:SetAlpha(0)
|
||||
frame.Background:SetAlpha(0)
|
||||
frame.NineSlice:SetAlpha(0)
|
||||
frame.BorderFrame.Header:SetAlpha(0)
|
||||
|
||||
frame:CreateBackdrop('Transparent')
|
||||
|
||||
frame.Title:DisableDrawLayer('BACKGROUND')
|
||||
frame.Title.Text:SetTextColor(1, .8, 0)
|
||||
|
||||
S:HandleCloseButton(frame.CloseButton)
|
||||
frame.CloseButton.Border:SetAlpha(0)
|
||||
|
||||
frame.IsSkinned = true
|
||||
end
|
||||
|
||||
frame.backdrop:SetShown(not IsInJailersTower())
|
||||
|
||||
for i = 1, frame:GetNumOptions() do
|
||||
local option = frame.Options[i]
|
||||
if E.private.skins.parchmentRemoverEnable then
|
||||
option.Header.Text:SetTextColor(1, .8, 0)
|
||||
option.OptionText:SetTextColor(1, 1, 1)
|
||||
|
||||
option.Background:SetAlpha(0)
|
||||
option.Header.Ribbon:SetAlpha(0)
|
||||
end
|
||||
|
||||
-- for some reason the buttons are different. W T F
|
||||
if IsInJailersTower() then
|
||||
if option.OptionButtonsContainer.button1 then
|
||||
HandleJailerOptionButton(option.OptionButtonsContainer.button1)
|
||||
end
|
||||
if option.OptionButtonsContainer.button2 then
|
||||
HandleJailerOptionButton(option.OptionButtonsContainer.button2)
|
||||
end
|
||||
else
|
||||
if option.OptionButtonsContainer.button1 then
|
||||
HandleFirstOptionButton(option.OptionButtonsContainer.button1)
|
||||
end
|
||||
if option.OptionButtonsContainer.button2 then
|
||||
HandleSecondOptionButton(option.OptionButtonsContainer.button2)
|
||||
end
|
||||
end
|
||||
|
||||
for i = 1, option.WidgetContainer:GetNumChildren() do
|
||||
local child = select(i, option.WidgetContainer:GetChildren())
|
||||
if child then
|
||||
if child.Text then
|
||||
if E.private.skins.parchmentRemoverEnable then
|
||||
child.Text:SetTextColor(1, 1, 1)
|
||||
end
|
||||
end
|
||||
|
||||
if child.Spell then
|
||||
if not child.Spell.isSkinned then
|
||||
child.Spell.Border:SetTexture('')
|
||||
child.Spell.IconMask:Hide()
|
||||
|
||||
S:HandleIcon(child.Spell.Icon)
|
||||
|
||||
child.Spell.isSkinned = true
|
||||
end
|
||||
|
||||
if E.private.skins.parchmentRemoverEnable then
|
||||
child.Spell.Text:SetTextColor(1, 1, 1)
|
||||
end
|
||||
end
|
||||
|
||||
for j = 1, child:GetNumChildren() do
|
||||
local child2 = select(j, child:GetChildren())
|
||||
if child2 then
|
||||
if child2.Text then StyleText(child2.Text) end
|
||||
if child2.LeadingText then StyleText(child2.LeadingText) end
|
||||
if child2.Icon and not child2.Icon.isSkinned then
|
||||
S:HandleIcon(child2.Icon)
|
||||
|
||||
child2.Icon.isSkinned = true
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_PlayerChoiceUI')
|
||||
500
Modules/Skins/Blizzard/Quest.lua
Normal file
500
Modules/Skins/Blizzard/Quest.lua
Normal file
@@ -0,0 +1,500 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local gsub, pairs, ipairs, select, unpack, strmatch, strfind = gsub, pairs, ipairs, select, unpack, strmatch, strfind
|
||||
|
||||
local C_QuestLog_GetNextWaypointText = C_QuestLog.GetNextWaypointText
|
||||
local C_QuestLog_GetSelectedQuest = C_QuestLog.GetSelectedQuest
|
||||
local GetMoney = GetMoney
|
||||
local CreateFrame = CreateFrame
|
||||
local GetQuestID = GetQuestID
|
||||
local GetQuestBackgroundMaterial = GetQuestBackgroundMaterial
|
||||
local GetQuestLogRequiredMoney = GetQuestLogRequiredMoney
|
||||
local GetQuestLogLeaderBoard = GetQuestLogLeaderBoard
|
||||
local GetNumQuestLeaderBoards = GetNumQuestLeaderBoards
|
||||
local GetNumQuestLogRewardSpells = GetNumQuestLogRewardSpells
|
||||
local GetNumRewardSpells = GetNumRewardSpells
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
local sealFrameTextColor = {
|
||||
['480404'] = 'c20606',
|
||||
['042c54'] = '1c86ee',
|
||||
}
|
||||
|
||||
function S:QuestInfoSealFrameText(text)
|
||||
if text and text ~= '' then
|
||||
local colorStr, rawText = strmatch(text, '|c[fF][fF](%x%x%x%x%x%x)(.-)|r')
|
||||
if colorStr and rawText then
|
||||
colorStr = sealFrameTextColor[colorStr] or '99ccff'
|
||||
self:SetFormattedText('|cff%s%s|r', colorStr, rawText)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function HandleReward(frame)
|
||||
if not frame then return end
|
||||
|
||||
if frame.Icon then
|
||||
frame.Icon:SetDrawLayer('ARTWORK')
|
||||
S:HandleIcon(frame.Icon, true)
|
||||
end
|
||||
|
||||
if frame.IconBorder then
|
||||
frame.IconBorder:Kill()
|
||||
end
|
||||
|
||||
if frame.Count then
|
||||
frame.Count:SetDrawLayer('OVERLAY')
|
||||
frame.Count:ClearAllPoints()
|
||||
frame.Count:Point('BOTTOMRIGHT', frame.Icon, 'BOTTOMRIGHT', 0, 0)
|
||||
end
|
||||
|
||||
if frame.NameFrame then
|
||||
frame.NameFrame:SetAlpha(0)
|
||||
frame.NameFrame:Hide()
|
||||
end
|
||||
|
||||
if frame.IconOverlay then
|
||||
frame.IconOverlay:SetAlpha(0)
|
||||
end
|
||||
|
||||
if frame.Name then
|
||||
frame.Name:FontTemplate()
|
||||
end
|
||||
|
||||
if frame.CircleBackground then
|
||||
frame.CircleBackground:SetAlpha(0)
|
||||
frame.CircleBackgroundGlow:SetAlpha(0)
|
||||
end
|
||||
|
||||
for i = 1, frame:GetNumRegions() do
|
||||
local Region = select(i, frame:GetRegions())
|
||||
if Region and Region:IsObjectType('Texture') and Region:GetTexture() == [[Interface\Spellbook\Spellbook-Parts]] then
|
||||
Region:SetTexture('')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function NewSealStyle()
|
||||
local theme = _G.QuestInfoSealFrame.theme
|
||||
return theme and theme.background
|
||||
end
|
||||
|
||||
function S:QuestInfo_StyleScrollFrame(scrollFrame, widthOverride, heightOverride, inset)
|
||||
if not scrollFrame.backdrop then
|
||||
scrollFrame:CreateBackdrop()
|
||||
end
|
||||
|
||||
if not scrollFrame.spellTex then
|
||||
scrollFrame.spellTex = scrollFrame:CreateTexture(nil, 'BACKGROUND', 1)
|
||||
end
|
||||
|
||||
if NewSealStyle() or GetQuestBackgroundMaterial() then
|
||||
scrollFrame.spellTex:Hide()
|
||||
scrollFrame.backdrop:Hide()
|
||||
else
|
||||
scrollFrame.backdrop:Show()
|
||||
scrollFrame.spellTex:Show()
|
||||
scrollFrame.spellTex:SetTexture([[Interface\QuestFrame\QuestBG]])
|
||||
scrollFrame.spellTex:Point('TOPLEFT', inset and 1 or 0, inset and -1 or 0)
|
||||
scrollFrame.spellTex:Size(widthOverride or 506, heightOverride or 615)
|
||||
scrollFrame.spellTex:SetTexCoord(0, 1, 0.02, 1)
|
||||
end
|
||||
end
|
||||
|
||||
S.QuestInfo_StyleScrollFrames = {
|
||||
[_G.QuestDetailScrollChildFrame] = { frame = _G.QuestDetailScrollFrame, width = 506, height = 615, inset = true },
|
||||
[_G.QuestRewardScrollChildFrame] = { frame = _G.QuestRewardScrollFrame, width = 506, height = 615, inset = true },
|
||||
[_G.QuestLogPopupDetailFrame.ScrollFrame.ScrollChild] = {
|
||||
frame = _G.QuestLogPopupDetailFrameScrollFrame,
|
||||
width = 509, height = 630, inset = false,
|
||||
custom = function(self)
|
||||
self:Height(self:GetHeight() - 2)
|
||||
|
||||
if not E.private.skins.parchmentRemoverEnable then
|
||||
self.spellTex:Height(self:GetHeight() + 217)
|
||||
end
|
||||
end
|
||||
}
|
||||
}
|
||||
|
||||
-- Quest objective text color
|
||||
local function Quest_GetQuestID()
|
||||
if _G.QuestInfoFrame.questLog then
|
||||
return C_QuestLog_GetSelectedQuest()
|
||||
else
|
||||
return GetQuestID()
|
||||
end
|
||||
end
|
||||
|
||||
function S:QuestInfo_ShowObjectives()
|
||||
local objectives = _G.QuestInfoObjectivesFrame.Objectives
|
||||
local index = 0
|
||||
|
||||
local questID = Quest_GetQuestID()
|
||||
local waypointText = C_QuestLog_GetNextWaypointText(questID)
|
||||
if waypointText then
|
||||
index = index + 1
|
||||
objectives[index]:SetTextColor(.4, 1, 1)
|
||||
end
|
||||
|
||||
for i = 1, GetNumQuestLeaderBoards() do
|
||||
local _, objectiveType, isCompleted = GetQuestLogLeaderBoard(i)
|
||||
if objectiveType ~= 'spell' and objectiveType ~= 'log' and index < _G.MAX_OBJECTIVES then
|
||||
index = index + 1
|
||||
|
||||
local objective = objectives[index]
|
||||
if objective then
|
||||
if isCompleted then
|
||||
objective:SetTextColor(.2, 1, .2)
|
||||
else
|
||||
objective:SetTextColor(1, 1, 1)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function S:QuestInfoItem_OnClick() -- self is not S
|
||||
_G.QuestInfoItemHighlight:ClearAllPoints()
|
||||
_G.QuestInfoItemHighlight:SetOutside(self.Icon)
|
||||
|
||||
for _, Button in ipairs(_G.QuestInfoRewardsFrame.RewardButtons) do
|
||||
Button.Name:SetTextColor(1, 1, 1)
|
||||
end
|
||||
|
||||
self.Name:SetTextColor(1, .8, .1)
|
||||
end
|
||||
|
||||
function S:QuestLogQuests_Update() -- self is not S
|
||||
for i = 1, _G.QuestMapFrame.QuestsFrame.Contents:GetNumChildren() do
|
||||
local child = select(i, _G.QuestMapFrame.QuestsFrame.Contents:GetChildren())
|
||||
if child and child.ButtonText and not child.questID then
|
||||
child:Size(16, 16)
|
||||
|
||||
for x = 1, child:GetNumRegions() do
|
||||
local tex = select(x, child:GetRegions())
|
||||
if tex and tex.GetAtlas then
|
||||
local atlas = tex:GetAtlas()
|
||||
if atlas == 'Campaign_HeaderIcon_Closed' or atlas == 'Campaign_HeaderIcon_ClosedPressed' then
|
||||
tex:SetTexture(E.Media.Textures.PlusButton)
|
||||
elseif atlas == 'Campaign_HeaderIcon_Open' or atlas == 'Campaign_HeaderIcon_OpenPressed' then
|
||||
tex:SetTexture(E.Media.Textures.MinusButton)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function S:QuestInfo_Display(parentFrame) -- self is template, not S
|
||||
local rewardsFrame = _G.QuestInfoFrame.rewardsFrame
|
||||
local isQuestLog = _G.QuestInfoFrame.questLog ~= nil
|
||||
|
||||
for i, questItem in ipairs(rewardsFrame.RewardButtons) do
|
||||
local point, relativeTo, relativePoint, _, y = questItem:GetPoint()
|
||||
if point and relativeTo and relativePoint then
|
||||
if i == 1 then
|
||||
questItem:Point(point, relativeTo, relativePoint, 0, y)
|
||||
elseif relativePoint == 'BOTTOMLEFT' then
|
||||
questItem:Point(point, relativeTo, relativePoint, 0, -4)
|
||||
else
|
||||
questItem:Point(point, relativeTo, relativePoint, 4, 0)
|
||||
end
|
||||
end
|
||||
|
||||
HandleReward(questItem)
|
||||
|
||||
S:HandleIconBorder(questItem.IconBorder, questItem.Icon.backdrop)
|
||||
|
||||
questItem.NameFrame:Hide()
|
||||
questItem.Name:SetTextColor(1, 1, 1)
|
||||
end
|
||||
|
||||
local numSpellRewards = isQuestLog and GetNumQuestLogRewardSpells() or GetNumRewardSpells()
|
||||
if numSpellRewards > 0 then
|
||||
if E.private.skins.parchmentRemoverEnable then
|
||||
for spellHeader in rewardsFrame.spellHeaderPool:EnumerateActive() do
|
||||
spellHeader:SetVertexColor(1, 1, 1)
|
||||
end
|
||||
for spellIcon in rewardsFrame.spellRewardPool:EnumerateActive() do
|
||||
HandleReward(spellIcon)
|
||||
end
|
||||
end
|
||||
|
||||
for followerReward in rewardsFrame.followerRewardPool:EnumerateActive() do
|
||||
if not followerReward.isSkinned then
|
||||
followerReward:CreateBackdrop()
|
||||
followerReward.backdrop:SetAllPoints(followerReward.BG)
|
||||
followerReward.backdrop:Point('TOPLEFT', 40, -5)
|
||||
followerReward.backdrop:Point('BOTTOMRIGHT', 2, 5)
|
||||
followerReward.BG:Hide()
|
||||
|
||||
followerReward.PortraitFrame:ClearAllPoints()
|
||||
followerReward.PortraitFrame:Point('RIGHT', followerReward.backdrop, 'LEFT', -2, 0)
|
||||
|
||||
followerReward.PortraitFrame.PortraitRing:Hide()
|
||||
followerReward.PortraitFrame.PortraitRingQuality:SetTexture()
|
||||
followerReward.PortraitFrame.LevelBorder:SetAlpha(0)
|
||||
followerReward.PortraitFrame.Portrait:SetTexCoord(0.2, 0.85, 0.2, 0.85)
|
||||
|
||||
local level = followerReward.PortraitFrame.Level
|
||||
level:ClearAllPoints()
|
||||
level:Point('BOTTOM', followerReward.PortraitFrame, 0, 3)
|
||||
|
||||
local squareBG = CreateFrame('Frame', nil, followerReward.PortraitFrame, 'BackdropTemplate')
|
||||
squareBG:SetFrameLevel(followerReward.PortraitFrame:GetFrameLevel()-1)
|
||||
squareBG:Point('TOPLEFT', 2, -2)
|
||||
squareBG:Point('BOTTOMRIGHT', -2, 2)
|
||||
squareBG:SetTemplate()
|
||||
followerReward.PortraitFrame.squareBG = squareBG
|
||||
|
||||
followerReward.isSkinned = true
|
||||
end
|
||||
|
||||
local r, g, b = followerReward.PortraitFrame.PortraitRingQuality:GetVertexColor()
|
||||
followerReward.PortraitFrame.squareBG:SetBackdropBorderColor(r, g, b)
|
||||
end
|
||||
end
|
||||
|
||||
if E.private.skins.parchmentRemoverEnable then
|
||||
_G.QuestInfoTitleHeader:SetTextColor(1, .8, .1)
|
||||
_G.QuestInfoDescriptionHeader:SetTextColor(1, .8, .1)
|
||||
_G.QuestInfoObjectivesHeader:SetTextColor(1, .8, .1)
|
||||
_G.QuestInfoRewardsFrame.Header:SetTextColor(1, .8, .1)
|
||||
_G.QuestInfoDescriptionText:SetTextColor(1, 1, 1)
|
||||
_G.QuestInfoObjectivesText:SetTextColor(1, 1, 1)
|
||||
_G.QuestInfoGroupSize:SetTextColor(1, 1, 1)
|
||||
_G.QuestInfoRewardText:SetTextColor(1, 1, 1)
|
||||
_G.QuestInfoQuestType:SetTextColor(1, 1, 1)
|
||||
_G.QuestInfoRewardsFrame.ItemChooseText:SetTextColor(1, 1, 1)
|
||||
_G.QuestInfoRewardsFrame.ItemReceiveText:SetTextColor(1, 1, 1)
|
||||
|
||||
if _G.QuestInfoRewardsFrame.SpellLearnText then
|
||||
_G.QuestInfoRewardsFrame.SpellLearnText:SetTextColor(1, 1, 1)
|
||||
end
|
||||
|
||||
_G.QuestInfoRewardsFrame.PlayerTitleText:SetTextColor(1, 1, 1)
|
||||
_G.QuestInfoRewardsFrame.XPFrame.ReceiveText:SetTextColor(1, 1, 1)
|
||||
|
||||
S:QuestInfo_ShowObjectives()
|
||||
else
|
||||
_G.QuestInfoTitleHeader:SetShadowColor(0, 0, 0, 0)
|
||||
_G.QuestInfoDescriptionHeader:SetShadowColor(0, 0, 0, 0)
|
||||
_G.QuestInfoObjectivesHeader:SetShadowColor(0, 0, 0, 0)
|
||||
_G.QuestInfoRewardsFrame.Header:SetShadowColor(0, 0, 0, 0)
|
||||
_G.QuestInfoDescriptionText:SetShadowColor(0, 0, 0, 0)
|
||||
_G.QuestInfoObjectivesText:SetShadowColor(0, 0, 0, 0)
|
||||
_G.QuestInfoGroupSize:SetShadowColor(0, 0, 0, 0)
|
||||
_G.QuestInfoRewardText:SetShadowColor(0, 0, 0, 0)
|
||||
_G.QuestInfoQuestType:SetShadowColor(0, 0, 0, 0)
|
||||
_G.QuestInfoRewardsFrame.ItemChooseText:SetShadowColor(0, 0, 0, 0)
|
||||
_G.QuestInfoRewardsFrame.ItemReceiveText:SetShadowColor(0, 0, 0, 0)
|
||||
|
||||
local style = S.QuestInfo_StyleScrollFrames[parentFrame]
|
||||
if style then
|
||||
S:QuestInfo_StyleScrollFrame(style.frame, style.width, style.height, style.inset)
|
||||
|
||||
if style.custom then
|
||||
style.custom(style.frame)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function S:CampaignCollapseButton_UpdateState(isCollapsed) -- self is button, not S
|
||||
if isCollapsed then
|
||||
self:SetNormalTexture(E.Media.Textures.PlusButton)
|
||||
self:SetPushedTexture(E.Media.Textures.PlusButton)
|
||||
else
|
||||
self:SetNormalTexture(E.Media.Textures.MinusButton)
|
||||
self:SetPushedTexture(E.Media.Textures.MinusButton)
|
||||
end
|
||||
|
||||
self:Size(16, 16)
|
||||
end
|
||||
|
||||
function S:QuestFrameProgressItems_Update() -- self is not S
|
||||
_G.QuestProgressRequiredItemsText:SetTextColor(1, .8, .1)
|
||||
_G.QuestProgressRequiredMoneyText:SetTextColor(1, 1, 1)
|
||||
end
|
||||
|
||||
function S:QuestFrame_SetTitleTextColor() -- self is fontString
|
||||
self:SetTextColor(1, .8, .1)
|
||||
end
|
||||
|
||||
function S:QuestFrame_SetTextColor() -- self is fontString
|
||||
self:SetTextColor(1, 1, 1)
|
||||
end
|
||||
|
||||
function S:QuestInfo_ShowRequiredMoney() -- self is not S
|
||||
local requiredMoney = GetQuestLogRequiredMoney()
|
||||
if requiredMoney > 0 then
|
||||
if requiredMoney > GetMoney() then
|
||||
_G.QuestInfoRequiredMoneyText:SetTextColor(.63, .09, .09)
|
||||
else
|
||||
_G.QuestInfoRequiredMoneyText:SetTextColor(1, .8, .1)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function S:BlizzardQuestFrames()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.quest) then return end
|
||||
|
||||
S:HandleScrollBar(_G.QuestProgressScrollFrameScrollBar)
|
||||
S:HandleScrollBar(_G.QuestRewardScrollFrameScrollBar)
|
||||
S:HandleScrollBar(_G.QuestDetailScrollFrameScrollBar)
|
||||
S:HandleScrollBar(_G.QuestGreetingScrollFrameScrollBar)
|
||||
|
||||
local QuestInfoSkillPointFrame = _G.QuestInfoSkillPointFrame
|
||||
QuestInfoSkillPointFrame:StripTextures()
|
||||
QuestInfoSkillPointFrame:StyleButton()
|
||||
QuestInfoSkillPointFrame:Width(QuestInfoSkillPointFrame:GetWidth() - 4)
|
||||
QuestInfoSkillPointFrame:SetFrameLevel(QuestInfoSkillPointFrame:GetFrameLevel() + 2)
|
||||
|
||||
local QuestInfoSkillPointFrameIconTexture = _G.QuestInfoSkillPointFrameIconTexture
|
||||
QuestInfoSkillPointFrameIconTexture:SetTexCoord(unpack(E.TexCoords))
|
||||
QuestInfoSkillPointFrameIconTexture:SetDrawLayer('OVERLAY')
|
||||
QuestInfoSkillPointFrameIconTexture:Point('TOPLEFT', 2, -2)
|
||||
QuestInfoSkillPointFrameIconTexture:Size(QuestInfoSkillPointFrameIconTexture:GetWidth() - 2, QuestInfoSkillPointFrameIconTexture:GetHeight() - 2)
|
||||
QuestInfoSkillPointFrame:CreateBackdrop()
|
||||
_G.QuestInfoSkillPointFrameCount:SetDrawLayer('OVERLAY')
|
||||
|
||||
local QuestInfoItemHighlight = _G.QuestInfoItemHighlight
|
||||
QuestInfoItemHighlight:StripTextures()
|
||||
QuestInfoItemHighlight:CreateBackdrop()
|
||||
QuestInfoItemHighlight.backdrop:SetAllPoints()
|
||||
QuestInfoItemHighlight.backdrop:SetBackdropBorderColor(1, 1, 0)
|
||||
QuestInfoItemHighlight.backdrop:SetBackdropColor(0, 0, 0, 0)
|
||||
QuestInfoItemHighlight:Size(142, 40)
|
||||
|
||||
|
||||
_G.QuestRewardScrollFrame:CreateBackdrop()
|
||||
_G.QuestRewardScrollFrame:Height(_G.QuestRewardScrollFrame:GetHeight() - 2)
|
||||
|
||||
hooksecurefunc('QuestInfo_Display', S.QuestInfo_Display)
|
||||
hooksecurefunc('QuestInfoItem_OnClick', S.QuestInfoItem_OnClick)
|
||||
hooksecurefunc('QuestLogQuests_Update', S.QuestLogQuests_Update) -- Skin the Plus Minus buttons in the QuestLog
|
||||
hooksecurefunc(_G.CampaignCollapseButtonMixin, 'UpdateState', S.CampaignCollapseButton_UpdateState) -- Plus Minus buttons for the CampaignHeaders in the QuestLog
|
||||
|
||||
for _, frame in pairs({'HonorFrame', 'XPFrame', 'SpellFrame', 'SkillPointFrame', 'ArtifactXPFrame', 'TitleFrame', 'WarModeBonusFrame'}) do
|
||||
HandleReward(_G.MapQuestInfoRewardsFrame[frame])
|
||||
HandleReward(_G.QuestInfoRewardsFrame[frame])
|
||||
end
|
||||
HandleReward(_G.MapQuestInfoRewardsFrame.MoneyFrame)
|
||||
|
||||
--Reward: Title
|
||||
local QuestInfoPlayerTitleFrame = _G.QuestInfoPlayerTitleFrame
|
||||
QuestInfoPlayerTitleFrame.FrameLeft:SetTexture()
|
||||
QuestInfoPlayerTitleFrame.FrameCenter:SetTexture()
|
||||
QuestInfoPlayerTitleFrame.FrameRight:SetTexture()
|
||||
QuestInfoPlayerTitleFrame.Icon:SetTexCoord(unpack(E.TexCoords))
|
||||
QuestInfoPlayerTitleFrame:CreateBackdrop()
|
||||
QuestInfoPlayerTitleFrame.backdrop:SetOutside(QuestInfoPlayerTitleFrame.Icon)
|
||||
|
||||
--Quest Frame
|
||||
local QuestFrame = _G.QuestFrame
|
||||
S:HandlePortraitFrame(QuestFrame)
|
||||
_G.QuestFrameDetailPanel:StripTextures(nil, E.private.skins.parchmentRemoverEnable)
|
||||
_G.QuestDetailScrollFrame:StripTextures(nil, E.private.skins.parchmentRemoverEnable)
|
||||
_G.QuestProgressScrollFrame:StripTextures(nil, E.private.skins.parchmentRemoverEnable)
|
||||
_G.QuestGreetingScrollFrame:StripTextures(nil, E.private.skins.parchmentRemoverEnable)
|
||||
_G.QuestDetailScrollFrame:CreateBackdrop()
|
||||
_G.QuestProgressScrollFrame:CreateBackdrop()
|
||||
_G.QuestGreetingScrollFrame:CreateBackdrop()
|
||||
|
||||
_G.QuestFrameGreetingPanel:HookScript('OnShow', function(frame)
|
||||
for button in frame.titleButtonPool:EnumerateActive() do
|
||||
button.Icon:SetDrawLayer('ARTWORK')
|
||||
|
||||
if E.private.skins.parchmentRemoverEnable then
|
||||
local text = button:GetFontString():GetText()
|
||||
if text and strfind(text, '|cff000000') then
|
||||
button:GetFontString():SetText(gsub(text, '|cff000000', '|cffffe519'))
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
if E.private.skins.parchmentRemoverEnable then
|
||||
hooksecurefunc('QuestFrameProgressItems_Update', S.QuestFrameProgressItems_Update)
|
||||
hooksecurefunc('QuestFrame_SetTitleTextColor', S.QuestFrame_SetTitleTextColor)
|
||||
hooksecurefunc('QuestFrame_SetTextColor', S.QuestFrame_SetTextColor)
|
||||
hooksecurefunc('QuestInfo_ShowRequiredMoney', S.QuestInfo_ShowRequiredMoney)
|
||||
hooksecurefunc(_G.QuestInfoSealFrame.Text, 'SetText', S.QuestInfoSealFrameText)
|
||||
|
||||
_G.QuestFrameDetailPanel.SealMaterialBG:SetAlpha(0)
|
||||
_G.QuestFrameRewardPanel.SealMaterialBG:SetAlpha(0)
|
||||
_G.QuestFrameProgressPanel.SealMaterialBG:SetAlpha(0)
|
||||
_G.QuestFrameGreetingPanel.SealMaterialBG:SetAlpha(0)
|
||||
else
|
||||
S:QuestInfo_StyleScrollFrame(_G.QuestProgressScrollFrame, 506, 615, true)
|
||||
S:QuestInfo_StyleScrollFrame(_G.QuestGreetingScrollFrame, 506, 615, true)
|
||||
end
|
||||
|
||||
_G.QuestFrameGreetingPanel:StripTextures(true)
|
||||
S:HandleButton(_G.QuestFrameGreetingGoodbyeButton)
|
||||
_G.QuestGreetingFrameHorizontalBreak:Kill()
|
||||
|
||||
_G.QuestDetailScrollChildFrame:StripTextures(true)
|
||||
_G.QuestRewardScrollFrame:StripTextures(true)
|
||||
_G.QuestRewardScrollChildFrame:StripTextures(true)
|
||||
_G.QuestFrameProgressPanel:StripTextures(true)
|
||||
_G.QuestFrameRewardPanel:StripTextures(true)
|
||||
S:HandleButton(_G.QuestFrameAcceptButton)
|
||||
S:HandleButton(_G.QuestFrameDeclineButton)
|
||||
S:HandleButton(_G.QuestFrameCompleteButton)
|
||||
S:HandleButton(_G.QuestFrameGoodbyeButton)
|
||||
S:HandleButton(_G.QuestFrameCompleteQuestButton)
|
||||
|
||||
for i = 1, 6 do
|
||||
local button = _G['QuestProgressItem'..i]
|
||||
local icon = _G['QuestProgressItem'..i..'IconTexture']
|
||||
icon:SetTexCoord(unpack(E.TexCoords))
|
||||
icon:Point('TOPLEFT', 2, -2)
|
||||
icon:Size(icon:GetWidth() -3, icon:GetHeight() -3)
|
||||
button:Width(button:GetWidth() -4)
|
||||
button:StripTextures()
|
||||
button:SetFrameLevel(button:GetFrameLevel() +1)
|
||||
|
||||
local frame = CreateFrame('Frame', nil, button, 'BackdropTemplate')
|
||||
frame:SetFrameLevel(button:GetFrameLevel() -1)
|
||||
frame:SetTemplate('Transparent', nil, true)
|
||||
frame:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
||||
frame:SetBackdropColor(0, 0, 0, 0)
|
||||
frame:SetOutside(icon)
|
||||
button.backdrop = frame
|
||||
|
||||
local hover = button:CreateTexture()
|
||||
hover:SetColorTexture(1, 1, 1, 0.3)
|
||||
hover:SetAllPoints(icon)
|
||||
button:SetHighlightTexture(hover)
|
||||
button.hover = hover
|
||||
end
|
||||
|
||||
_G.QuestModelScene:StripTextures()
|
||||
_G.QuestModelScene:CreateBackdrop('Transparent')
|
||||
_G.QuestModelScene:Point('TOPLEFT', _G.QuestLogDetailFrame, 'TOPRIGHT', 4, -34)
|
||||
_G.QuestNPCModelTextFrame:StripTextures()
|
||||
_G.QuestNPCModelTextFrame:CreateBackdrop('Transparent')
|
||||
S:HandleScrollBar(_G.QuestNPCModelTextScrollFrame.ScrollBar)
|
||||
|
||||
local QuestLogPopupDetailFrame = _G.QuestLogPopupDetailFrame
|
||||
S:HandlePortraitFrame(QuestLogPopupDetailFrame)
|
||||
|
||||
S:HandleButton(_G.QuestLogPopupDetailFrameAbandonButton)
|
||||
S:HandleButton(_G.QuestLogPopupDetailFrameShareButton)
|
||||
S:HandleButton(_G.QuestLogPopupDetailFrameTrackButton)
|
||||
_G.QuestLogPopupDetailFrameScrollFrame:StripTextures()
|
||||
S:HandleScrollBar(_G.QuestLogPopupDetailFrameScrollFrameScrollBar)
|
||||
QuestLogPopupDetailFrame:CreateBackdrop('Transparent')
|
||||
|
||||
QuestLogPopupDetailFrame.ShowMapButton:StripTextures()
|
||||
S:HandleButton(QuestLogPopupDetailFrame.ShowMapButton)
|
||||
QuestLogPopupDetailFrame.ShowMapButton.Text:ClearAllPoints()
|
||||
QuestLogPopupDetailFrame.ShowMapButton.Text:Point('CENTER')
|
||||
QuestLogPopupDetailFrame.ShowMapButton:Size(QuestLogPopupDetailFrame.ShowMapButton:GetWidth() - 30, QuestLogPopupDetailFrame.ShowMapButton:GetHeight(), - 40)
|
||||
end
|
||||
|
||||
S:AddCallback('BlizzardQuestFrames')
|
||||
37
Modules/Skins/Blizzard/QuestChoice.lua
Normal file
37
Modules/Skins/Blizzard/QuestChoice.lua
Normal file
@@ -0,0 +1,37 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
|
||||
function S:Blizzard_QuestChoice()
|
||||
if E.private.skins.blizzard.questChoice ~= true then return end
|
||||
|
||||
local QuestChoiceFrame = _G.QuestChoiceFrame
|
||||
for i = 1, 4 do
|
||||
local option = QuestChoiceFrame['Option'..i]
|
||||
local rewards = option.Rewards
|
||||
local item = rewards.Item
|
||||
local icon = item.Icon
|
||||
local currencies = rewards.Currencies
|
||||
|
||||
item.IconBorder:Kill()
|
||||
S:HandleIcon(icon)
|
||||
icon:SetDrawLayer('ARTWORK')
|
||||
|
||||
for j = 1, 3 do
|
||||
local cu = currencies['Currency'..j]
|
||||
S:HandleIcon(cu.Icon)
|
||||
end
|
||||
end
|
||||
|
||||
QuestChoiceFrame:CreateBackdrop('Transparent')
|
||||
S:HandleButton(_G.QuestChoiceFrameOption1.OptionButtonsContainer.OptionButton1)
|
||||
S:HandleButton(_G.QuestChoiceFrameOption2.OptionButtonsContainer.OptionButton1)
|
||||
S:HandleButton(_G.QuestChoiceFrameOption3.OptionButtonsContainer.OptionButton1)
|
||||
S:HandleButton(_G.QuestChoiceFrameOption4.OptionButtonsContainer.OptionButton1)
|
||||
|
||||
S:HandleCloseButton(QuestChoiceFrame.CloseButton)
|
||||
QuestChoiceFrame.CloseButton:SetFrameLevel(10)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_QuestChoice')
|
||||
42
Modules/Skins/Blizzard/Raid.lua
Normal file
42
Modules/Skins/Blizzard/Raid.lua
Normal file
@@ -0,0 +1,42 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local pairs = pairs
|
||||
|
||||
local StripAllTextures = {
|
||||
'RaidGroup1',
|
||||
'RaidGroup2',
|
||||
'RaidGroup3',
|
||||
'RaidGroup4',
|
||||
'RaidGroup5',
|
||||
'RaidGroup6',
|
||||
'RaidGroup7',
|
||||
'RaidGroup8',
|
||||
}
|
||||
|
||||
function S:Blizzard_RaidUI()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.raid) then return end
|
||||
|
||||
for _, object in pairs(StripAllTextures) do
|
||||
local obj = _G[object]
|
||||
if obj then
|
||||
obj:StripTextures()
|
||||
|
||||
for j=1,5 do
|
||||
local slot = _G[object..'Slot'..j]
|
||||
if slot then
|
||||
slot:StripTextures()
|
||||
slot:CreateBackdrop('Transparent')
|
||||
slot.backdrop:SetAllPoints()
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
for i=1, _G.MAX_RAID_GROUPS*5 do
|
||||
S:HandleButton(_G['RaidGroupButton'..i], true)
|
||||
end
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_RaidUI')
|
||||
38
Modules/Skins/Blizzard/Runeforge.lua
Normal file
38
Modules/Skins/Blizzard/Runeforge.lua
Normal file
@@ -0,0 +1,38 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
function S:Blizzard_RuneforgeUI()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.runeforge) then return end
|
||||
|
||||
local frame = _G.RuneforgeFrame
|
||||
frame.Title:FontTemplate(nil, 22)
|
||||
S:HandleCloseButton(frame.CloseButton)
|
||||
|
||||
S:HandleButton(frame.CreateFrame.CraftItemButton)
|
||||
|
||||
local powerFrame = frame.CraftingFrame.PowerFrame
|
||||
|
||||
local pageControl = powerFrame.PageControl
|
||||
S:HandleNextPrevButton(pageControl.BackwardButton)
|
||||
S:HandleNextPrevButton(pageControl.ForwardButton)
|
||||
|
||||
hooksecurefunc(powerFrame.PowerList, 'RefreshListDisplay', function(list)
|
||||
if not list.elements then return end
|
||||
|
||||
for i = 1, list:GetNumElementFrames() do
|
||||
local button = list.elements[i]
|
||||
if button and not button.IsSkinned then
|
||||
button.Border:SetAlpha(0)
|
||||
button.CircleMask:Hide()
|
||||
S:HandleIcon(button.Icon, true)
|
||||
|
||||
button.IsSkinned = true
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_RuneforgeUI')
|
||||
32
Modules/Skins/Blizzard/ScrappingMachine.lua
Normal file
32
Modules/Skins/Blizzard/ScrappingMachine.lua
Normal file
@@ -0,0 +1,32 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local pairs = pairs
|
||||
local unpack = unpack
|
||||
|
||||
function S:Blizzard_ScrappingMachineUI()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.scrapping) then return end
|
||||
|
||||
local MachineFrame = _G.ScrappingMachineFrame
|
||||
S:HandlePortraitFrame(MachineFrame)
|
||||
S:HandleButton(MachineFrame.ScrapButton)
|
||||
|
||||
local ItemSlots = MachineFrame.ItemSlots
|
||||
ItemSlots:StripTextures()
|
||||
|
||||
for button in pairs(ItemSlots.scrapButtons.activeObjects) do
|
||||
button:StripTextures()
|
||||
S:HandleIcon(button.Icon, true)
|
||||
S:HandleIconBorder(button.IconBorder, button.Icon.backdrop)
|
||||
button.Icon.backdrop:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
||||
end
|
||||
|
||||
-- Temp mover
|
||||
MachineFrame:SetMovable(true)
|
||||
MachineFrame:RegisterForDrag('LeftButton')
|
||||
MachineFrame:SetScript('OnDragStart', function(s) s:StartMoving() end)
|
||||
MachineFrame:SetScript('OnDragStop', function(s) s:StopMovingOrSizing() end)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_ScrappingMachineUI')
|
||||
49
Modules/Skins/Blizzard/Socket.lua
Normal file
49
Modules/Skins/Blizzard/Socket.lua
Normal file
@@ -0,0 +1,49 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local ipairs, unpack = ipairs, unpack
|
||||
local GetSocketTypes = GetSocketTypes
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
function S:Blizzard_ItemSocketingUI()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.socket) then return end
|
||||
|
||||
local ItemSocketingFrame = _G.ItemSocketingFrame
|
||||
S:HandlePortraitFrame(ItemSocketingFrame)
|
||||
|
||||
_G.ItemSocketingDescription:DisableDrawLayer('BORDER')
|
||||
_G.ItemSocketingDescription:DisableDrawLayer('BACKGROUND')
|
||||
_G.ItemSocketingScrollFrame:StripTextures()
|
||||
_G.ItemSocketingScrollFrame:CreateBackdrop('Transparent')
|
||||
S:HandleScrollBar(_G.ItemSocketingScrollFrameScrollBar, 2)
|
||||
|
||||
for i = 1, _G.MAX_NUM_SOCKETS do
|
||||
local button = _G[('ItemSocketingSocket%d'):format(i)]
|
||||
local button_bracket = _G[('ItemSocketingSocket%dBracketFrame'):format(i)]
|
||||
local button_bg = _G[('ItemSocketingSocket%dBackground'):format(i)]
|
||||
local button_icon = _G[('ItemSocketingSocket%dIconTexture'):format(i)]
|
||||
button:StripTextures()
|
||||
button:StyleButton(false)
|
||||
button:CreateBackdrop(nil, true)
|
||||
button_bracket:Kill()
|
||||
button_bg:Kill()
|
||||
button_icon:SetTexCoord(unpack(E.TexCoords))
|
||||
button_icon:SetInside()
|
||||
end
|
||||
|
||||
hooksecurefunc('ItemSocketingFrame_Update', function()
|
||||
for i, socket in ipairs(_G.ItemSocketingFrame.Sockets) do
|
||||
local gemColor = GetSocketTypes(i)
|
||||
local color = E.GemTypeInfo[gemColor]
|
||||
socket.backdrop:SetBackdropBorderColor(color.r, color.g, color.b)
|
||||
end
|
||||
end)
|
||||
|
||||
_G.ItemSocketingFramePortrait:Kill()
|
||||
_G.ItemSocketingSocketButton:ClearAllPoints()
|
||||
_G.ItemSocketingSocketButton:Point('BOTTOMRIGHT', ItemSocketingFrame, 'BOTTOMRIGHT', -5, 5)
|
||||
S:HandleButton(_G.ItemSocketingSocketButton)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_ItemSocketingUI')
|
||||
73
Modules/Skins/Blizzard/Soulbinds.lua
Normal file
73
Modules/Skins/Blizzard/Soulbinds.lua
Normal file
@@ -0,0 +1,73 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local ipairs, select = ipairs, select
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
-- Credits: siweia - Aurora Classic
|
||||
|
||||
local function SkinConduitList(frame)
|
||||
local header = frame.CategoryButton.Container
|
||||
if not header.styled then
|
||||
header:DisableDrawLayer('BACKGROUND')
|
||||
header:CreateBackdrop('Transparent')
|
||||
header.backdrop:Point('TOPLEFT', 2, 0)
|
||||
header.backdrop:Point('BOTTOMRIGHT', 15, 0)
|
||||
header.backdrop:SetBackdropColor(1, 0, 0, .35)
|
||||
|
||||
header.styled = true
|
||||
end
|
||||
|
||||
for button in frame.pool:EnumerateActive() do
|
||||
if not button.styled then
|
||||
for _, element in ipairs(button.Hovers) do
|
||||
element:SetColorTexture(1, 1, 1, .25)
|
||||
end
|
||||
button.PendingBackground:SetColorTexture(1, .8, 0, .25)
|
||||
button.Spec.IconOverlay:Hide()
|
||||
S:HandleIcon(button.Spec.Icon)
|
||||
|
||||
button.styled = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- SHADOWLANDS
|
||||
function S:Blizzard_Soulbinds()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.soulbinds) then return end
|
||||
|
||||
local frame = _G.SoulbindViewer
|
||||
frame:StripTextures()
|
||||
frame:CreateBackdrop('Transparent')
|
||||
|
||||
S:HandleCloseButton(frame.CloseButton)
|
||||
S:HandleButton(frame.CommitConduitsButton)
|
||||
frame.CommitConduitsButton:SetFrameLevel(10)
|
||||
S:HandleButton(frame.ActivateSoulbindButton)
|
||||
frame.ActivateSoulbindButton:SetFrameLevel(10)
|
||||
|
||||
local scrollBox = frame.ConduitList.ScrollBox
|
||||
select(2, scrollBox:GetChildren()):Hide() -- Weird shadow on the ScrollBox
|
||||
|
||||
for i = 1, 3 do
|
||||
hooksecurefunc(scrollBox.ScrollTarget.Lists[i], 'UpdateLayout', SkinConduitList)
|
||||
end
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_Soulbinds')
|
||||
|
||||
-- ToDo: Find a way to skin me :thinking:
|
||||
function S:Blizzard_LandingSoulbinds()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.soulbinds) then return end
|
||||
|
||||
hooksecurefunc(_G.LandingPageSoulbindButtonMixin, 'SetSoulbind', function(button, soulbindData)
|
||||
if not button.IsSkinned then
|
||||
button:StyleButton()
|
||||
|
||||
button.IsSkinned = true
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
--S:AddCallbackForAddon('Blizzard_LandingSoulbinds')
|
||||
188
Modules/Skins/Blizzard/SpellBook.lua
Normal file
188
Modules/Skins/Blizzard/SpellBook.lua
Normal file
@@ -0,0 +1,188 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local pairs, select = pairs, select
|
||||
local CreateFrame = CreateFrame
|
||||
local GetProfessionInfo = GetProfessionInfo
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
function S:SpellBookFrame()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.spellbook) then return end
|
||||
|
||||
local SpellBookFrame = _G.SpellBookFrame
|
||||
S:HandlePortraitFrame(SpellBookFrame)
|
||||
|
||||
for _, object in pairs({ 'SpellBookSpellIconsFrame', 'SpellBookSideTabsFrame', 'SpellBookPageNavigationFrame' }) do
|
||||
_G[object]:StripTextures()
|
||||
end
|
||||
|
||||
if E.global.general.disableTutorialButtons then
|
||||
_G.SpellBookFrameTutorialButton:Kill()
|
||||
end
|
||||
|
||||
if E.private.skins.parchmentRemoverEnable then
|
||||
_G.SpellBookPage1:SetAlpha(0)
|
||||
_G.SpellBookPage2:SetAlpha(0)
|
||||
_G.SpellBookPageText:SetTextColor(0.6, 0.6, 0.6)
|
||||
else
|
||||
local pagebackdrop = CreateFrame('Frame', nil, SpellBookFrame, 'BackdropTemplate')
|
||||
pagebackdrop:SetTemplate()
|
||||
pagebackdrop:Point('TOPLEFT', _G.SpellBookPage1, 'TOPLEFT', -2, 2)
|
||||
pagebackdrop:Point('BOTTOMRIGHT', SpellBookFrame, 'BOTTOMRIGHT', -8, 4)
|
||||
SpellBookFrame.pagebackdrop = pagebackdrop
|
||||
for i = 1, 2 do
|
||||
_G['SpellBookPage'..i]:SetParent(pagebackdrop)
|
||||
_G['SpellBookPage'..i]:SetDrawLayer('BACKGROUND', 3)
|
||||
end
|
||||
end
|
||||
|
||||
S:HandleNextPrevButton(_G.SpellBookPrevPageButton, nil, nil, true)
|
||||
S:HandleNextPrevButton(_G.SpellBookNextPageButton, nil, nil, true)
|
||||
|
||||
_G.SpellBookPageText:ClearAllPoints()
|
||||
_G.SpellBookPageText:Point('RIGHT', _G.SpellBookPrevPageButton, 'LEFT', -5, 0)
|
||||
|
||||
for i = 1, _G.SPELLS_PER_PAGE do
|
||||
local button = _G['SpellButton'..i]
|
||||
local icon = _G['SpellButton'..i..'IconTexture']
|
||||
local highlight =_G['SpellButton'..i..'Highlight']
|
||||
|
||||
for j = 1, button:GetNumRegions() do
|
||||
local region = select(j, button:GetRegions())
|
||||
if region:IsObjectType('Texture') then
|
||||
if region ~= button.FlyoutArrow and region ~= button.GlyphIcon and region ~= button.GlyphActivate
|
||||
and region ~= button.AbilityHighlight and region ~= button.SpellHighlightTexture then
|
||||
region:SetTexture()
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
S:HandleIcon(icon)
|
||||
E:RegisterCooldown(_G['SpellButton'..i..'Cooldown'])
|
||||
button:CreateBackdrop(nil, true)
|
||||
icon:SetInside(button.backdrop)
|
||||
|
||||
if button.shine then
|
||||
button.shine:ClearAllPoints()
|
||||
button.shine:Point('TOPLEFT', button, 'TOPLEFT', -3, 3)
|
||||
button.shine:Point('BOTTOMRIGHT', button, 'BOTTOMRIGHT', 3, -3)
|
||||
end
|
||||
|
||||
highlight:SetAllPoints(icon)
|
||||
hooksecurefunc(highlight, 'SetTexture', function(s, texture)
|
||||
if texture == [[Interface\Buttons\ButtonHilight-Square]] then
|
||||
s:SetColorTexture(1, 1, 1, 0.3)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
hooksecurefunc('SpellButton_UpdateButton', function()
|
||||
for i = 1, _G.SPELLS_PER_PAGE do
|
||||
local button = _G['SpellButton'..i]
|
||||
if button.SpellHighlightTexture then
|
||||
button.SpellHighlightTexture:SetColorTexture(0.8, 0.8, 0, 0.6)
|
||||
button.SpellHighlightTexture:SetInside(button.backdrop)
|
||||
E:Flash(button.SpellHighlightTexture, 1, true)
|
||||
end
|
||||
|
||||
button.backdrop:SetShown(button.SpellName:IsShown())
|
||||
|
||||
if E.private.skins.parchmentRemoverEnable then
|
||||
button:SetHighlightTexture('')
|
||||
local r = button.SpellName:GetTextColor()
|
||||
if r < 0.8 then
|
||||
button.SpellName:SetTextColor(0.6, 0.6, 0.6)
|
||||
else
|
||||
button.SpellName:SetTextColor(1, 1, 1)
|
||||
end
|
||||
button.SpellSubName:SetTextColor(0.6, 0.6, 0.6)
|
||||
button.RequiredLevelString:SetTextColor(0.6, 0.6, 0.6)
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
_G.SpellBookSkillLineTab1:Point('TOPLEFT', '$parent', 'TOPRIGHT', E.PixelMode and 0 or E.Border + E.Spacing, -36)
|
||||
|
||||
for i = 1, 8 do
|
||||
local Tab = _G['SpellBookSkillLineTab'..i]
|
||||
Tab:StripTextures()
|
||||
Tab:CreateBackdrop()
|
||||
Tab.backdrop:SetAllPoints()
|
||||
Tab:StyleButton(nil, true)
|
||||
end
|
||||
|
||||
hooksecurefunc('SpellBookFrame_UpdateSkillLineTabs', function()
|
||||
for i = 1, 8 do
|
||||
local Tab = _G['SpellBookSkillLineTab'..i]
|
||||
if Tab:GetNormalTexture() then
|
||||
S:HandleIcon(Tab:GetNormalTexture())
|
||||
Tab:GetNormalTexture():SetInside()
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
--Profession Tab
|
||||
for _, Frame in pairs({ _G.SpellBookProfessionFrame:GetChildren() }) do
|
||||
Frame.missingHeader:SetTextColor(1, 1, 0)
|
||||
|
||||
if E.private.skins.parchmentRemoverEnable then
|
||||
Frame.missingText:SetTextColor(1, 1, 1)
|
||||
else
|
||||
Frame.missingText:SetTextColor(0, 0, 0)
|
||||
end
|
||||
|
||||
S:HandleStatusBar(Frame.statusBar, {0, .86, 0})
|
||||
Frame.statusBar.rankText:Point('CENTER')
|
||||
|
||||
local a, b, c, _, e = Frame.statusBar:GetPoint()
|
||||
Frame.statusBar:Point(a, b, c, 0, e)
|
||||
|
||||
if a == 'BOTTOMLEFT' then
|
||||
Frame.rank:Point('BOTTOMLEFT', Frame.statusBar, 'TOPLEFT', 0, 4)
|
||||
end
|
||||
|
||||
if Frame.icon then
|
||||
Frame.professionName:Point('TOPLEFT', 100, -4)
|
||||
Frame:StripTextures()
|
||||
S:HandleIcon(Frame.icon, true)
|
||||
Frame.icon:SetAlpha(1)
|
||||
Frame.icon:SetDesaturated(false)
|
||||
end
|
||||
|
||||
for i = 1, 2 do
|
||||
S:HandleButton(Frame['button'..i], true)
|
||||
--Frame['button'..i]:StyleButton()
|
||||
|
||||
if Frame['button'..i].iconTexture then
|
||||
S:HandleIcon(Frame['button'..i].iconTexture)
|
||||
Frame['button'..i].iconTexture:SetInside()
|
||||
end
|
||||
|
||||
Frame['button'..i].highlightTexture:SetInside()
|
||||
hooksecurefunc(Frame['button'..i].highlightTexture, 'SetTexture', function(s, texture)
|
||||
if texture == [[Interface\Buttons\ButtonHilight-Square]] then
|
||||
s:SetColorTexture(1, 1, 1, 0.3)
|
||||
end
|
||||
end)
|
||||
end
|
||||
end
|
||||
|
||||
--Bottom Tabs
|
||||
for i = 1, 5 do
|
||||
S:HandleTab(_G['SpellBookFrameTabButton'..i])
|
||||
end
|
||||
|
||||
_G.SpellBookFrameTabButton1:ClearAllPoints()
|
||||
_G.SpellBookFrameTabButton1:Point('TOPLEFT', SpellBookFrame, 'BOTTOMLEFT', 0, 2)
|
||||
|
||||
-- Some Texture Magic
|
||||
hooksecurefunc('FormatProfession', function(frame, id)
|
||||
if not (id and frame and frame.icon) then return end
|
||||
|
||||
local texture = select(2, GetProfessionInfo(id))
|
||||
if texture then frame.icon:SetTexture(texture) end
|
||||
end)
|
||||
end
|
||||
|
||||
S:AddCallback('SpellBookFrame')
|
||||
74
Modules/Skins/Blizzard/Stable.lua
Normal file
74
Modules/Skins/Blizzard/Stable.lua
Normal file
@@ -0,0 +1,74 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local unpack = unpack
|
||||
local CreateFrame = CreateFrame
|
||||
|
||||
local function PetButtons(btn, p)
|
||||
local button = _G[btn]
|
||||
local icon = _G[btn..'IconTexture']
|
||||
local highlight = button:GetHighlightTexture()
|
||||
button:StripTextures()
|
||||
|
||||
if button.Checked then
|
||||
button.Checked:SetColorTexture(unpack(E.media.rgbvaluecolor))
|
||||
button.Checked:SetAllPoints(icon)
|
||||
button.Checked:SetAlpha(0.3)
|
||||
end
|
||||
|
||||
if highlight then
|
||||
highlight:SetColorTexture(1, 1, 1, 0.3)
|
||||
highlight:SetAllPoints(icon)
|
||||
end
|
||||
|
||||
if icon then
|
||||
icon:SetTexCoord(unpack(E.TexCoords))
|
||||
icon:ClearAllPoints()
|
||||
icon:Point('TOPLEFT', p, -p)
|
||||
icon:Point('BOTTOMRIGHT', -p, p)
|
||||
|
||||
button:SetFrameLevel(button:GetFrameLevel() + 2)
|
||||
if not button.backdrop then
|
||||
button:CreateBackdrop(nil, true)
|
||||
button.backdrop:SetAllPoints()
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function S:PetStableFrame()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.stable) then return end
|
||||
|
||||
local PetStableFrame = _G.PetStableFrame
|
||||
S:HandlePortraitFrame(PetStableFrame)
|
||||
|
||||
_G.PetStableLeftInset:StripTextures()
|
||||
_G.PetStableBottomInset:StripTextures()
|
||||
_G.PetStableFrameInset:CreateBackdrop('Transparent')
|
||||
|
||||
S:HandleButton(_G.PetStablePrevPageButton) -- Required to remove graphical glitch from Prev page button
|
||||
S:HandleButton(_G.PetStableNextPageButton) -- Required to remove graphical glitch from Next page button
|
||||
S:HandleRotateButton(_G.PetStableModelRotateRightButton)
|
||||
S:HandleRotateButton(_G.PetStableModelRotateLeftButton)
|
||||
|
||||
local p = E.PixelMode and 1 or 2
|
||||
local PetStableSelectedPetIcon = _G.PetStableSelectedPetIcon
|
||||
if PetStableSelectedPetIcon then
|
||||
PetStableSelectedPetIcon:SetTexCoord(unpack(E.TexCoords))
|
||||
local b = CreateFrame('Frame', nil, PetStableSelectedPetIcon:GetParent(), 'BackdropTemplate')
|
||||
b:Point('TOPLEFT', PetStableSelectedPetIcon, -p, p)
|
||||
b:Point('BOTTOMRIGHT', PetStableSelectedPetIcon, p, -p)
|
||||
PetStableSelectedPetIcon:Size(37,37)
|
||||
PetStableSelectedPetIcon:SetParent(b)
|
||||
b:SetTemplate()
|
||||
end
|
||||
|
||||
for i = 1, _G.NUM_PET_ACTIVE_SLOTS do
|
||||
PetButtons('PetStableActivePet' .. i, p)
|
||||
end
|
||||
for i = 1, _G.NUM_PET_STABLE_SLOTS do
|
||||
PetButtons('PetStableStabledPet' .. i, p)
|
||||
end
|
||||
end
|
||||
|
||||
S:AddCallback('PetStableFrame')
|
||||
21
Modules/Skins/Blizzard/SubscriptionInterstitial.lua
Normal file
21
Modules/Skins/Blizzard/SubscriptionInterstitial.lua
Normal file
@@ -0,0 +1,21 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
|
||||
-- /run SubscriptionInterstitial_LoadUI(); _G.SubscriptionInterstitialFrame:Show()
|
||||
|
||||
function S:Blizzard_SubscriptionInterstitialUI()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.subscriptionInterstitial) then return end
|
||||
|
||||
local SubscriptionInterstitial = _G.SubscriptionInterstitialFrame
|
||||
|
||||
SubscriptionInterstitial:StripTextures()
|
||||
SubscriptionInterstitial:CreateBackdrop('Transparent')
|
||||
SubscriptionInterstitial.ShadowOverlay:Hide()
|
||||
|
||||
S:HandleCloseButton(SubscriptionInterstitial.CloseButton)
|
||||
S:HandleButton(SubscriptionInterstitial.ClosePanelButton)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_SubscriptionInterstitialUI')
|
||||
68
Modules/Skins/Blizzard/Tabard.lua
Normal file
68
Modules/Skins/Blizzard/Tabard.lua
Normal file
@@ -0,0 +1,68 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local pairs = pairs
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
function S:TabardFrame()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.tabard) then return end
|
||||
|
||||
local TabardFrame = _G.TabardFrame
|
||||
S:HandlePortraitFrame(TabardFrame)
|
||||
|
||||
S:HandleButton(_G.TabardFrameCancelButton)
|
||||
S:HandleButton(_G.TabardFrameAcceptButton)
|
||||
S:HandleRotateButton(_G.TabardCharacterModelRotateLeftButton)
|
||||
S:HandleRotateButton(_G.TabardCharacterModelRotateRightButton)
|
||||
|
||||
_G.TabardModel:CreateBackdrop()
|
||||
_G.TabardFrameCostFrame:StripTextures()
|
||||
_G.TabardFrameCustomizationFrame:StripTextures()
|
||||
_G.TabardFrameMoneyInset:Kill()
|
||||
_G.TabardFrameMoneyBg:StripTextures()
|
||||
|
||||
--Add Tabard Emblem back
|
||||
local emblemFrames = {
|
||||
_G.TabardFrameEmblemTopRight,
|
||||
_G.TabardFrameEmblemBottomRight,
|
||||
_G.TabardFrameEmblemTopLeft,
|
||||
_G.TabardFrameEmblemBottomLeft,
|
||||
}
|
||||
for _, frame in pairs(emblemFrames) do
|
||||
frame:SetParent(TabardFrame)
|
||||
frame.Show = nil
|
||||
frame:Show()
|
||||
end
|
||||
|
||||
for i=1, 5 do
|
||||
local custom = 'TabardFrameCustomization'..i
|
||||
_G[custom]:StripTextures()
|
||||
S:HandleNextPrevButton(_G[custom..'LeftButton'])
|
||||
S:HandleNextPrevButton(_G[custom..'RightButton'])
|
||||
|
||||
if i > 1 then
|
||||
_G[custom]:ClearAllPoints()
|
||||
_G[custom]:Point('TOP', _G['TabardFrameCustomization'..i-1], 'BOTTOM', 0, -6)
|
||||
else
|
||||
local point, anchor, point2, x, y = _G[custom]:GetPoint()
|
||||
_G[custom]:Point(point, anchor, point2, x, y+4)
|
||||
end
|
||||
end
|
||||
|
||||
_G.TabardCharacterModelRotateLeftButton:Point('BOTTOMLEFT', _G.TabardModel, 'BOTTOMLEFT', 4, 4)
|
||||
_G.TabardCharacterModelRotateRightButton:Point('TOPLEFT', _G.TabardCharacterModelRotateLeftButton, 'TOPRIGHT', 4, 0)
|
||||
hooksecurefunc(_G.TabardCharacterModelRotateLeftButton, 'SetPoint', function(s, _, _, _, _, _, forced)
|
||||
if forced ~= true then
|
||||
s:Point('BOTTOMLEFT', _G.TabardModel, 'BOTTOMLEFT', 4, 4, true)
|
||||
end
|
||||
end)
|
||||
|
||||
hooksecurefunc(_G.TabardCharacterModelRotateRightButton, 'SetPoint', function(s, _, _, _, _, _, forced)
|
||||
if forced ~= true then
|
||||
s:Point('TOPLEFT', _G.TabardCharacterModelRotateLeftButton, 'TOPRIGHT', 4, 0, true)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
S:AddCallback('TabardFrame')
|
||||
355
Modules/Skins/Blizzard/Talent.lua
Normal file
355
Modules/Skins/Blizzard/Talent.lua
Normal file
@@ -0,0 +1,355 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local pairs, select, unpack = pairs, select, unpack
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
local CreateFrame = CreateFrame
|
||||
|
||||
local UnitSex = UnitSex
|
||||
local GetNumSpecializations = GetNumSpecializations
|
||||
local GetSpecialization = GetSpecialization
|
||||
local GetSpecializationInfo = GetSpecializationInfo
|
||||
local GetSpecializationSpells = GetSpecializationSpells
|
||||
local GetSpellTexture = GetSpellTexture
|
||||
local C_SpecializationInfo_GetPvpTalentSlotInfo = C_SpecializationInfo.GetPvpTalentSlotInfo
|
||||
local C_SpecializationInfo_GetSpellsDisplay = C_SpecializationInfo.GetSpellsDisplay
|
||||
|
||||
local function clearBackdrop(self)
|
||||
self:SetBackdropColor(0, 0, 0, 0)
|
||||
end
|
||||
|
||||
function S:Blizzard_TalentUI()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.talent) then return end
|
||||
|
||||
local PlayerTalentFrame = _G.PlayerTalentFrame
|
||||
S:HandlePortraitFrame(PlayerTalentFrame)
|
||||
|
||||
_G.PlayerTalentFrameTalents:StripTextures()
|
||||
|
||||
if E.global.general.disableTutorialButtons then
|
||||
_G.PlayerTalentFrameTalentsTutorialButton:Kill()
|
||||
_G.PlayerTalentFrameSpecializationTutorialButton:Kill()
|
||||
end
|
||||
|
||||
local buttons = {
|
||||
_G.PlayerTalentFrameSpecializationLearnButton,
|
||||
_G.PlayerTalentFrameTalentsLearnButton,
|
||||
_G.PlayerTalentFramePetSpecializationLearnButton
|
||||
}
|
||||
|
||||
S:HandleButton(_G.PlayerTalentFrameActivateButton)
|
||||
|
||||
for _, button in pairs(buttons) do
|
||||
S:HandleButton(button)
|
||||
end
|
||||
|
||||
for i = 1, 3 do
|
||||
S:HandleTab(_G['PlayerTalentFrameTab'..i])
|
||||
end
|
||||
|
||||
for _, Frame in pairs({ _G.PlayerTalentFrameSpecialization, _G.PlayerTalentFramePetSpecialization }) do
|
||||
Frame:StripTextures()
|
||||
|
||||
for _, Child in pairs({Frame:GetChildren()}) do
|
||||
if Child:IsObjectType('Frame') and not Child:GetName() then
|
||||
Child:StripTextures()
|
||||
end
|
||||
end
|
||||
|
||||
for i = 1, 4 do
|
||||
local Button = Frame['specButton'..i]
|
||||
local _, _, _, icon = GetSpecializationInfo(i, false, Frame.isPet)
|
||||
|
||||
_G['PlayerTalentFrameSpecializationSpecButton'..i..'Glow']:Kill()
|
||||
|
||||
Button:CreateBackdrop()
|
||||
Button.backdrop:Point('TOPLEFT', 8, 2)
|
||||
Button.backdrop:Point('BOTTOMRIGHT', 10, -2)
|
||||
Button.specIcon:Size(50, 50)
|
||||
Button.specIcon:Point('LEFT', Button, 'LEFT', 15, 0)
|
||||
Button.specIcon:SetDrawLayer('ARTWORK', 2)
|
||||
Button.roleIcon:SetDrawLayer('ARTWORK', 2)
|
||||
|
||||
Button.bg:SetAlpha(0)
|
||||
Button.ring:SetAlpha(0)
|
||||
Button.learnedTex:SetAlpha(0)
|
||||
Button.selectedTex:SetAlpha(0)
|
||||
Button.specIcon:SetTexture(icon)
|
||||
S:HandleIcon(Button.specIcon, true)
|
||||
Button.specIcon.backdrop:SetFrameLevel(Button:GetFrameLevel()+1)
|
||||
Button.specIcon.backdrop:SetBackdropColor(0, 0, 0, 0)
|
||||
Button.specIcon.backdrop.callbackBackdropColor = clearBackdrop
|
||||
Button:SetHighlightTexture(nil)
|
||||
|
||||
Button.SelectedTexture = Button:CreateTexture(nil, 'ARTWORK')
|
||||
Button.SelectedTexture:SetColorTexture(0, 1, 0, 0.2)
|
||||
end
|
||||
|
||||
Frame.spellsScroll.child.gradient:Kill()
|
||||
Frame.spellsScroll.child.scrollwork_topleft:SetAlpha(0)
|
||||
Frame.spellsScroll.child.scrollwork_topright:SetAlpha(0)
|
||||
Frame.spellsScroll.child.scrollwork_bottomleft:SetAlpha(0)
|
||||
Frame.spellsScroll.child.scrollwork_bottomright:SetAlpha(0)
|
||||
Frame.spellsScroll.child.ring:SetAlpha(0)
|
||||
Frame.spellsScroll.child.Seperator:SetAlpha(0)
|
||||
|
||||
S:HandleIcon(Frame.spellsScroll.child.specIcon, true)
|
||||
end
|
||||
|
||||
do
|
||||
local onFinished = function(s)
|
||||
local r, g, b = s:GetChange()
|
||||
local defaultR, defaultG, defaultB = unpack(E.media.bordercolor)
|
||||
defaultR = E:Round(defaultR, 2)
|
||||
defaultG = E:Round(defaultG, 2)
|
||||
defaultB = E:Round(defaultB, 2)
|
||||
|
||||
if r == defaultR and g == defaultG and b == defaultB then
|
||||
s:SetChange(unpack(E.media.rgbvaluecolor))
|
||||
else
|
||||
s:SetChange(defaultR, defaultG, defaultB)
|
||||
end
|
||||
end
|
||||
|
||||
local onShow = function(s)
|
||||
local parent = s:GetParent()
|
||||
if not parent.transition:IsPlaying() then
|
||||
for _, child in pairs(parent.transition.color.children) do
|
||||
child:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
||||
end
|
||||
|
||||
parent.transition:Play()
|
||||
end
|
||||
end
|
||||
|
||||
local onHide = function(s)
|
||||
local parent = s:GetParent()
|
||||
if parent.transition:IsPlaying() then
|
||||
parent.transition:Stop()
|
||||
|
||||
for _, child in pairs(parent.transition.color.children) do
|
||||
child:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
for i = 1, _G.MAX_TALENT_TIERS do
|
||||
local row = _G.PlayerTalentFrameTalents['tier'..i]
|
||||
row:StripTextures()
|
||||
|
||||
row.TopLine:Point('TOP', 0, 4)
|
||||
row.BottomLine:Point('BOTTOM', 0, -4)
|
||||
|
||||
row.transition = _G.CreateAnimationGroup(row)
|
||||
row.transition:SetLooping(true)
|
||||
|
||||
row.transition.color = row.transition:CreateAnimation('Color')
|
||||
row.transition.color:SetDuration(0.7)
|
||||
row.transition.color:SetColorType('border')
|
||||
row.transition.color:SetChange(unpack(E.media.rgbvaluecolor))
|
||||
row.transition.color:SetScript('OnFinished', onFinished)
|
||||
|
||||
row.GlowFrame:StripTextures()
|
||||
row.GlowFrame:HookScript('OnShow', onShow)
|
||||
row.GlowFrame:HookScript('OnHide', onHide)
|
||||
|
||||
for j = 1, _G.NUM_TALENT_COLUMNS do
|
||||
local bu = row['talent'..j]
|
||||
|
||||
bu:StripTextures()
|
||||
bu:SetFrameLevel(bu:GetFrameLevel() + 5)
|
||||
bu.knownSelection:SetAlpha(0)
|
||||
bu.icon:SetDrawLayer('OVERLAY', 1)
|
||||
S:HandleIcon(bu.icon, true)
|
||||
|
||||
bu.bg = CreateFrame('Frame', nil, bu)
|
||||
bu.bg:CreateBackdrop('Overlay')
|
||||
bu.bg:SetFrameLevel(bu:GetFrameLevel() - 4)
|
||||
bu.bg:Point('TOPLEFT', 15, -1)
|
||||
bu.bg:Point('BOTTOMRIGHT', -10, 1)
|
||||
row.transition.color:AddChild(bu.bg.backdrop)
|
||||
|
||||
bu.GlowFrame:Kill()
|
||||
|
||||
bu.bg.SelectedTexture = bu.bg:CreateTexture(nil, 'ARTWORK')
|
||||
bu.bg.SelectedTexture:Point('TOPLEFT', bu, 'TOPLEFT', 15, -1)
|
||||
bu.bg.SelectedTexture:Point('BOTTOMRIGHT', bu, 'BOTTOMRIGHT', -10, 1)
|
||||
bu.bg.SelectedTexture:SetColorTexture(0, 1, 0, 0.2)
|
||||
|
||||
bu.ShadowedTexture = bu:CreateTexture(nil, 'OVERLAY', nil, 2)
|
||||
bu.ShadowedTexture:SetColorTexture(0, 0, 0, 0.6)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
hooksecurefunc('TalentFrame_Update', function(s)
|
||||
for i = 1, _G.MAX_TALENT_TIERS do
|
||||
for j = 1, _G.NUM_TALENT_COLUMNS do
|
||||
local bu = s['tier'..i]['talent'..j]
|
||||
if bu.bg and bu.knownSelection then
|
||||
if bu.knownSelection:IsShown() then
|
||||
bu.bg.SelectedTexture:Show()
|
||||
bu.ShadowedTexture:Hide()
|
||||
else
|
||||
bu.ShadowedTexture:SetAllPoints(bu.bg.SelectedTexture)
|
||||
bu.bg.SelectedTexture:Hide()
|
||||
bu.ShadowedTexture:Show()
|
||||
bu.icon:SetDesaturated(false)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
hooksecurefunc('PlayerTalentFrame_UpdateSpecFrame', function(s, spec)
|
||||
local playerTalentSpec = GetSpecialization(nil, s.isPet, _G.PlayerSpecTab2:GetChecked() and 2 or 1)
|
||||
local shownSpec = spec or playerTalentSpec or 1
|
||||
local numSpecs = GetNumSpecializations(nil, s.isPet)
|
||||
local sex = s.isPet and UnitSex('pet') or UnitSex('player')
|
||||
local id, _, _, icon = GetSpecializationInfo(shownSpec, nil, s.isPet, nil, sex)
|
||||
if not id then return end
|
||||
|
||||
local scrollBar = s.spellsScroll.ScrollBar
|
||||
if scrollBar and not scrollBar.backdrop then
|
||||
S:HandleScrollBar(scrollBar)
|
||||
end
|
||||
|
||||
local scrollChild = s.spellsScroll.child
|
||||
scrollChild.specIcon:SetTexture(icon)
|
||||
scrollChild:SetScale(0.99) -- the scrollbar showed on simpy's when it shouldn't, this fixes it by reducing the scale by .01 lol
|
||||
|
||||
local index = 1
|
||||
local bonuses
|
||||
local bonusesIncrement = 1
|
||||
if s.isPet then
|
||||
bonuses = {GetSpecializationSpells(shownSpec, nil, s.isPet, true)}
|
||||
bonusesIncrement = 2
|
||||
else
|
||||
bonuses = C_SpecializationInfo_GetSpellsDisplay(id)
|
||||
end
|
||||
|
||||
for i = 1, numSpecs do
|
||||
local bu = s['specButton'..i]
|
||||
bu.SelectedTexture:SetInside(bu.backdrop)
|
||||
if bu.selected then
|
||||
bu.SelectedTexture:Show()
|
||||
else
|
||||
bu.SelectedTexture:Hide()
|
||||
end
|
||||
end
|
||||
|
||||
if bonuses then
|
||||
for i = 1, #bonuses, bonusesIncrement do
|
||||
local frame = scrollChild['abilityButton'..index]
|
||||
if frame then
|
||||
local _, spellTex = GetSpellTexture(bonuses[i])
|
||||
if spellTex then
|
||||
frame.icon:SetTexture(spellTex)
|
||||
end
|
||||
|
||||
if not frame.reskinned then
|
||||
frame.reskinned = true
|
||||
frame.ring:Hide()
|
||||
frame.icon:SetTexCoord(unpack(E.TexCoords))
|
||||
frame.icon:Size(40, 40)
|
||||
frame:CreateBackdrop()
|
||||
frame.backdrop:SetOutside(frame.icon)
|
||||
end
|
||||
end
|
||||
index = index + 1
|
||||
end
|
||||
end
|
||||
|
||||
-- Hide the default flash anim
|
||||
s.learnButton.Flash:Hide()
|
||||
s.learnButton.FlashAnim:Stop()
|
||||
end)
|
||||
|
||||
local PvpTalentFrame = _G.PlayerTalentFrameTalents.PvpTalentFrame
|
||||
PvpTalentFrame:StripTextures()
|
||||
|
||||
for _, button in pairs(PvpTalentFrame.Slots) do
|
||||
button:CreateBackdrop()
|
||||
button.backdrop:SetOutside(button.Texture)
|
||||
|
||||
button.Arrow:SetAlpha(0)
|
||||
button.Border:Hide()
|
||||
|
||||
hooksecurefunc(button, 'Update', function(s)
|
||||
local slotInfo = C_SpecializationInfo_GetPvpTalentSlotInfo(s.slotIndex);
|
||||
if not slotInfo then return end
|
||||
|
||||
if slotInfo.enabled then
|
||||
S:HandleIcon(s.Texture)
|
||||
if not slotInfo.selectedTalentID then
|
||||
s.Texture:SetTexture([[Interface\Icons\INV_Misc_QuestionMark]])
|
||||
s.backdrop:SetBackdropBorderColor(0, 1, 0, 1)
|
||||
else
|
||||
s.backdrop:SetBackdropBorderColor(unpack(E.media.bordercolor))
|
||||
end
|
||||
else
|
||||
s.Texture:SetTexture([[Interface\PetBattles\PetBattle-LockIcon]])
|
||||
s.Texture:SetTexCoord(0, 1, 0, 1)
|
||||
s.Texture:SetDesaturated(true)
|
||||
s.Texture:Show()
|
||||
s.backdrop:SetBackdropBorderColor(1, 0, 0, 1)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
PvpTalentFrame.TalentList:StripTextures()
|
||||
PvpTalentFrame.TalentList:CreateBackdrop('Transparent')
|
||||
|
||||
PvpTalentFrame.TalentList:Point('BOTTOMLEFT', PlayerTalentFrame, 'BOTTOMRIGHT', 5, 26)
|
||||
S:SkinTalentListButtons(PvpTalentFrame.TalentList)
|
||||
|
||||
local TalentList_CloseButton = select(4, _G.PlayerTalentFrameTalents.PvpTalentFrame.TalentList:GetChildren())
|
||||
if TalentList_CloseButton and TalentList_CloseButton:HasScript('OnClick') then
|
||||
S:HandleButton(TalentList_CloseButton, true)
|
||||
end
|
||||
|
||||
PvpTalentFrame.TalentList.ScrollFrame:Point('TOPLEFT', 5, -5)
|
||||
PvpTalentFrame.TalentList.ScrollFrame:Point('BOTTOMRIGHT', -21, 32)
|
||||
PvpTalentFrame.OrbModelScene:SetAlpha(0)
|
||||
|
||||
PvpTalentFrame:Size(131, 379)
|
||||
PvpTalentFrame:Point('LEFT', _G.PlayerTalentFrameTalents, 'RIGHT', -135, 0)
|
||||
PvpTalentFrame.Swords:Point('BOTTOM', 0, 30)
|
||||
PvpTalentFrame.Label:Point('BOTTOM', 0, 104)
|
||||
PvpTalentFrame.InvisibleWarmodeButton:SetAllPoints(PvpTalentFrame.Swords)
|
||||
|
||||
PvpTalentFrame.Swords:Size(72, 67)
|
||||
PvpTalentFrame.Orb:Hide()
|
||||
PvpTalentFrame.Ring:Hide()
|
||||
|
||||
for _, Button in pairs(PvpTalentFrame.TalentList.ScrollFrame.buttons) do
|
||||
Button:DisableDrawLayer('BACKGROUND')
|
||||
S:HandleIcon(Button.Icon)
|
||||
Button:StyleButton()
|
||||
Button:CreateBackdrop()
|
||||
Button.Selected:SetTexture()
|
||||
Button.backdrop:SetAllPoints()
|
||||
|
||||
Button.selectedTexture = Button:CreateTexture(nil, 'ARTWORK')
|
||||
Button.selectedTexture:SetInside(Button)
|
||||
Button.selectedTexture:SetColorTexture(0, 1, 0, 0.2)
|
||||
Button.selectedTexture:SetShown(Button.Selected:IsShown())
|
||||
end
|
||||
|
||||
hooksecurefunc(PvpTalentFrame.TalentList, 'Update', function()
|
||||
for _, Button in pairs(PvpTalentFrame.TalentList.ScrollFrame.buttons) do
|
||||
if not Button.selectedTexture then return end
|
||||
if Button.Selected:IsShown() then
|
||||
Button.selectedTexture:SetShown(true)
|
||||
else
|
||||
Button.selectedTexture:Hide()
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
S:HandleButton(_G.PlayerTalentFrameTalents.PvpTalentButton)
|
||||
S:HandleScrollBar(_G.PlayerTalentFrameTalents.PvpTalentFrame.TalentList.ScrollFrame.ScrollBar)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_TalentUI')
|
||||
153
Modules/Skins/Blizzard/TalkingHead.lua
Normal file
153
Modules/Skins/Blizzard/TalkingHead.lua
Normal file
@@ -0,0 +1,153 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
|
||||
--Just some test code
|
||||
--[[
|
||||
local talkingHeadTextureKitRegionFormatStrings = {
|
||||
TextBackground = '%s-TextBackground',
|
||||
Portrait = '%s-PortraitFrame',
|
||||
}
|
||||
local talkingHeadDefaultAtlases = {
|
||||
TextBackground = 'TalkingHeads-TextBackground',
|
||||
Portrait = 'TalkingHeads-Alliance-PortraitFrame',
|
||||
}
|
||||
local talkingHeadFontColor = {
|
||||
['TalkingHeads-Horde'] = {Name = CreateColor(0.28, 0.02, 0.02), Text = CreateColor(0.0, 0.0, 0.0), Shadow = CreateColor(0.0, 0.0, 0.0, 0.0)},
|
||||
['TalkingHeads-Alliance'] = {Name = CreateColor(0.02, 0.17, 0.33), Text = CreateColor(0.0, 0.0, 0.0), Shadow = CreateColor(0.0, 0.0, 0.0, 0.0)},
|
||||
['TalkingHeads-Neutral'] = {Name = CreateColor(0.33, 0.16, 0.02), Text = CreateColor(0.0, 0.0, 0.0), Shadow = CreateColor(0.0, 0.0, 0.0, 0.0)},
|
||||
['Normal'] = {Name = CreateColor(1, 0.82, 0.02), Text = CreateColor(1, 1, 1), Shadow = CreateColor(0.0, 0.0, 0.0, 1.0)},
|
||||
}
|
||||
|
||||
--test
|
||||
function TestTalkingHead()
|
||||
local frame = TalkingHeadFrame;
|
||||
local model = frame.MainFrame.Model;
|
||||
|
||||
if frame.finishTimer then
|
||||
frame.finishTimer:Cancel();
|
||||
frame.finishTimer = nil;
|
||||
end
|
||||
if frame.voHandle then
|
||||
StopSound(frame.voHandle);
|
||||
frame.voHandle = nil;
|
||||
end
|
||||
|
||||
local currentDisplayInfo = model:GetDisplayInfo();
|
||||
local displayInfo, cameraID, vo, duration, lineNumber, numLines, name, text, isNewTalkingHead, textureKitID
|
||||
|
||||
displayInfo = 76291
|
||||
cameraID = 1240
|
||||
vo = 103175
|
||||
duration = 20.220001220703
|
||||
lineNumber = 0
|
||||
numLines = 4
|
||||
name = 'Some Ugly Woman'
|
||||
text = 'Testing this sheet out Testing this sheet out Testing this sheet out Testing this sheet out Testing this sheet out Testing this sheet out Testing this sheet out '
|
||||
isNewTalkingHead = true
|
||||
textureKitID = 0
|
||||
|
||||
local textFormatted = format(text);
|
||||
if displayInfo and displayInfo ~= 0 then
|
||||
local textureKit;
|
||||
if textureKitID ~= 0 then
|
||||
SetupTextureKits(textureKitID, frame.BackgroundFrame, talkingHeadTextureKitRegionFormatStrings, false, true);
|
||||
SetupTextureKits(textureKitID, frame.PortraitFrame, talkingHeadTextureKitRegionFormatStrings, false, true);
|
||||
textureKit = GetUITextureKitInfo(textureKitID);
|
||||
else
|
||||
SetupAtlasesOnRegions(frame.BackgroundFrame, talkingHeadDefaultAtlases, true);
|
||||
SetupAtlasesOnRegions(frame.PortraitFrame, talkingHeadDefaultAtlases, true);
|
||||
textureKit = 'Normal';
|
||||
end
|
||||
local nameColor = talkingHeadFontColor[textureKit].Name;
|
||||
local textColor = talkingHeadFontColor[textureKit].Text;
|
||||
local shadowColor = talkingHeadFontColor[textureKit].Shadow;
|
||||
frame.NameFrame.Name:SetTextColor(nameColor:GetRGB());
|
||||
frame.NameFrame.Name:SetShadowColor(shadowColor:GetRGBA());
|
||||
frame.TextFrame.Text:SetTextColor(textColor:GetRGB());
|
||||
frame.TextFrame.Text:SetShadowColor(shadowColor:GetRGBA());
|
||||
frame:Show();
|
||||
if currentDisplayInfo ~= displayInfo then
|
||||
model.uiCameraID = cameraID;
|
||||
model:SetDisplayInfo(displayInfo);
|
||||
else
|
||||
if model.uiCameraID ~= cameraID then
|
||||
model.uiCameraID = cameraID;
|
||||
Model_ApplyUICamera(model, model.uiCameraID);
|
||||
end
|
||||
TalkingHeadFrame_SetupAnimations(model);
|
||||
end
|
||||
|
||||
if isNewTalkingHead then
|
||||
TalkingHeadFrame_Reset(frame, textFormatted, name);
|
||||
TalkingHeadFrame_FadeinFrames();
|
||||
else
|
||||
if name ~= frame.NameFrame.Name:GetText() then
|
||||
-- Fade out the old name and fade in the new name
|
||||
frame.NameFrame.Fadeout:Play();
|
||||
E:Delay(0.25, frame.NameFrame.Name.SetText, frame.NameFrame.Name, name);
|
||||
E:Delay(0.5, frame.NameFrame.Fadein.Play, frame.NameFrame.Fadein);
|
||||
|
||||
frame.MainFrame.TalkingHeadsInAnim:Play();
|
||||
end
|
||||
|
||||
if textFormatted ~= frame.TextFrame.Text:GetText() then
|
||||
-- Fade out the old text and fade in the new text
|
||||
frame.TextFrame.Fadeout:Play();
|
||||
E:Delay(0.25, frame.TextFrame.Text.SetText, frame.TextFrame.Text, textFormatted);
|
||||
E:Delay(0.5, frame.TextFrame.Fadein.Play, frame.TextFrame.Fadein);
|
||||
end
|
||||
end
|
||||
|
||||
local success, voHandle = PlaySound(vo, 'Talking Head', true, true);
|
||||
if success then
|
||||
frame.voHandle = voHandle;
|
||||
end
|
||||
end
|
||||
end]]
|
||||
|
||||
function S:Blizzard_TalkingHeadUI()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.talkinghead) then return end
|
||||
|
||||
local TalkingHeadFrame = _G.TalkingHeadFrame
|
||||
|
||||
TalkingHeadFrame.BackgroundFrame.TextBackground:SetAtlas(nil)
|
||||
TalkingHeadFrame.PortraitFrame.Portrait:SetAtlas(nil)
|
||||
TalkingHeadFrame.MainFrame.Model.PortraitBg:SetAtlas(nil)
|
||||
TalkingHeadFrame.PortraitFrame:StripTextures()
|
||||
|
||||
if E.db.general.talkingHeadFrameBackdrop then
|
||||
TalkingHeadFrame:StripTextures()
|
||||
TalkingHeadFrame.MainFrame:StripTextures()
|
||||
TalkingHeadFrame:CreateBackdrop('Transparent')
|
||||
|
||||
local button = TalkingHeadFrame.MainFrame.CloseButton
|
||||
S:HandleCloseButton(button)
|
||||
button:ClearAllPoints()
|
||||
button:Point('TOPRIGHT', TalkingHeadFrame.BackgroundFrame, 'TOPRIGHT', 0, -2)
|
||||
else
|
||||
TalkingHeadFrame.MainFrame.Model:CreateBackdrop('Transparent')
|
||||
TalkingHeadFrame.MainFrame.Model.backdrop:ClearAllPoints()
|
||||
TalkingHeadFrame.MainFrame.Model.backdrop:Point('CENTER')
|
||||
TalkingHeadFrame.MainFrame.Model.backdrop:Size(120, 119)
|
||||
|
||||
TalkingHeadFrame.MainFrame.CloseButton:Kill()
|
||||
end
|
||||
|
||||
TalkingHeadFrame.BackgroundFrame.TextBackground.SetAtlas = E.noop
|
||||
TalkingHeadFrame.PortraitFrame.Portrait.SetAtlas = E.noop
|
||||
TalkingHeadFrame.MainFrame.Model.PortraitBg.SetAtlas = E.noop
|
||||
|
||||
TalkingHeadFrame.NameFrame.Name:SetTextColor(1, 0.82, 0.02)
|
||||
TalkingHeadFrame.NameFrame.Name.SetTextColor = E.noop
|
||||
TalkingHeadFrame.NameFrame.Name:SetShadowColor(0, 0, 0, 1)
|
||||
TalkingHeadFrame.NameFrame.Name:SetShadowOffset(2, -2)
|
||||
|
||||
TalkingHeadFrame.TextFrame.Text:SetTextColor(1, 1, 1)
|
||||
TalkingHeadFrame.TextFrame.Text.SetTextColor = E.noop
|
||||
TalkingHeadFrame.TextFrame.Text:SetShadowColor(0, 0, 0, 1)
|
||||
TalkingHeadFrame.TextFrame.Text:SetShadowOffset(2, -2)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_TalkingHeadUI')
|
||||
17
Modules/Skins/Blizzard/Taxi.lua
Normal file
17
Modules/Skins/Blizzard/Taxi.lua
Normal file
@@ -0,0 +1,17 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
|
||||
function S:TaxiFrame()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.taxi) then return end
|
||||
|
||||
local TaxiFrame = _G.TaxiFrame
|
||||
TaxiFrame:StripTextures()
|
||||
TaxiFrame:CreateBackdrop('Transparent')
|
||||
_G.TaxiRouteMap:CreateBackdrop()
|
||||
|
||||
S:HandleCloseButton(TaxiFrame.CloseButton)
|
||||
end
|
||||
|
||||
S:AddCallback('TaxiFrame')
|
||||
72
Modules/Skins/Blizzard/TimeManager.lua
Normal file
72
Modules/Skins/Blizzard/TimeManager.lua
Normal file
@@ -0,0 +1,72 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local unpack = unpack
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
local function SetPlayTexture()
|
||||
_G.StopwatchPlayPauseButton:SetNormalTexture(E.Media.Textures.Play)
|
||||
end
|
||||
local function SetPauseTexture()
|
||||
_G.StopwatchPlayPauseButton:SetNormalTexture(E.Media.Textures.Pause)
|
||||
end
|
||||
|
||||
function S:Blizzard_TimeManager()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.timemanager) then return end
|
||||
|
||||
local TimeManagerFrame = _G.TimeManagerFrame
|
||||
S:HandlePortraitFrame(TimeManagerFrame)
|
||||
|
||||
S:HandleDropDownBox(_G.TimeManagerAlarmHourDropDown, 80)
|
||||
S:HandleDropDownBox(_G.TimeManagerAlarmMinuteDropDown, 80)
|
||||
S:HandleDropDownBox(_G.TimeManagerAlarmAMPMDropDown, 80)
|
||||
|
||||
S:HandleEditBox(_G.TimeManagerAlarmMessageEditBox)
|
||||
S:HandleCheckBox(_G.TimeManagerAlarmEnabledButton)
|
||||
S:HandleCheckBox(_G.TimeManagerMilitaryTimeCheck)
|
||||
S:HandleCheckBox(_G.TimeManagerLocalTimeCheck)
|
||||
|
||||
local TimeManagerStopwatchCheck = _G.TimeManagerStopwatchCheck
|
||||
_G.TimeManagerStopwatchFrame:StripTextures()
|
||||
TimeManagerStopwatchCheck:CreateBackdrop()
|
||||
TimeManagerStopwatchCheck:GetNormalTexture():SetTexCoord(unpack(E.TexCoords))
|
||||
TimeManagerStopwatchCheck:GetNormalTexture():SetInside()
|
||||
|
||||
local hover = TimeManagerStopwatchCheck:CreateTexture() -- hover
|
||||
hover:SetColorTexture(1,1,1,0.3)
|
||||
hover:Point('TOPLEFT',TimeManagerStopwatchCheck,2,-2)
|
||||
hover:Point('BOTTOMRIGHT',TimeManagerStopwatchCheck,-2,2)
|
||||
TimeManagerStopwatchCheck:SetHighlightTexture(hover)
|
||||
|
||||
local StopwatchFrame = _G.StopwatchFrame
|
||||
StopwatchFrame:StripTextures()
|
||||
StopwatchFrame:CreateBackdrop('Transparent')
|
||||
StopwatchFrame.backdrop:Point('TOPLEFT', 0, -17)
|
||||
StopwatchFrame.backdrop:Point('BOTTOMRIGHT', 0, 2)
|
||||
|
||||
_G.StopwatchTabFrame:StripTextures()
|
||||
S:HandleCloseButton(_G.StopwatchCloseButton)
|
||||
|
||||
--Play/Pause and Reset buttons
|
||||
local StopwatchPlayPauseButton = _G.StopwatchPlayPauseButton
|
||||
local StopwatchResetButton = _G.StopwatchResetButton
|
||||
StopwatchPlayPauseButton:CreateBackdrop(nil, true)
|
||||
StopwatchPlayPauseButton:Size(12, 12)
|
||||
StopwatchPlayPauseButton:SetNormalTexture(E.Media.Textures.Play)
|
||||
StopwatchPlayPauseButton:SetHighlightTexture('')
|
||||
StopwatchPlayPauseButton.backdrop:SetOutside(StopwatchPlayPauseButton, 2, 2)
|
||||
StopwatchPlayPauseButton:HookScript('OnEnter', S.SetModifiedBackdrop)
|
||||
StopwatchPlayPauseButton:HookScript('OnLeave', S.SetOriginalBackdrop)
|
||||
StopwatchPlayPauseButton:Point('RIGHT', StopwatchResetButton, 'LEFT', -4, 0)
|
||||
S:HandleButton(StopwatchResetButton)
|
||||
StopwatchResetButton:Size(16,16)
|
||||
StopwatchResetButton:SetNormalTexture(E.Media.Textures.Reset)
|
||||
StopwatchResetButton:Point('BOTTOMRIGHT', StopwatchFrame, 'BOTTOMRIGHT', -4, 6)
|
||||
|
||||
hooksecurefunc('Stopwatch_Play', SetPauseTexture)
|
||||
hooksecurefunc('Stopwatch_Pause', SetPlayTexture)
|
||||
hooksecurefunc('Stopwatch_Clear', SetPlayTexture)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_TimeManager')
|
||||
96
Modules/Skins/Blizzard/Tooltip.lua
Normal file
96
Modules/Skins/Blizzard/Tooltip.lua
Normal file
@@ -0,0 +1,96 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
local TT = E:GetModule('Tooltip')
|
||||
|
||||
local _G = _G
|
||||
local pairs = pairs
|
||||
local unpack = unpack
|
||||
|
||||
local function IslandTooltipStyle(self)
|
||||
self:SetBackdrop()
|
||||
self:SetTemplate('Transparent', nil, true)
|
||||
end
|
||||
|
||||
function S:StyleTooltips()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.tooltip) then return end
|
||||
|
||||
for _, tt in pairs({
|
||||
_G.ItemRefTooltip,
|
||||
_G.ItemRefShoppingTooltip1,
|
||||
_G.ItemRefShoppingTooltip2,
|
||||
_G.FriendsTooltip,
|
||||
_G.WarCampaignTooltip,
|
||||
_G.EmbeddedItemTooltip,
|
||||
_G.ReputationParagonTooltip,
|
||||
_G.GameTooltip,
|
||||
_G.ShoppingTooltip1,
|
||||
_G.ShoppingTooltip2,
|
||||
_G.QuickKeybindTooltip,
|
||||
_G.QuestScrollFrame.StoryTooltip,
|
||||
_G.QuestScrollFrame.CampaignTooltip,
|
||||
-- ours
|
||||
_G.ElvUIConfigTooltip,
|
||||
_G.ElvUISpellBookTooltip
|
||||
}) do
|
||||
TT:SetStyle(tt)
|
||||
end
|
||||
end
|
||||
|
||||
function S:TooltipFrames()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.tooltip) then return end
|
||||
|
||||
S:StyleTooltips()
|
||||
S:HandleCloseButton(_G.ItemRefTooltip.CloseButton)
|
||||
|
||||
-- Skin Blizzard Tooltips
|
||||
local ItemTooltip = _G.GameTooltip.ItemTooltip
|
||||
ItemTooltip:CreateBackdrop('Default')
|
||||
ItemTooltip.backdrop:SetOutside(ItemTooltip.Icon)
|
||||
ItemTooltip.Count:ClearAllPoints()
|
||||
ItemTooltip.Count:Point('BOTTOMRIGHT', ItemTooltip.Icon, 'BOTTOMRIGHT', 1, 0)
|
||||
ItemTooltip.Icon:SetTexCoord(unpack(E.TexCoords))
|
||||
S:HandleIconBorder(ItemTooltip.IconBorder)
|
||||
|
||||
-- StoryTooltip
|
||||
local StoryTooltip = _G.QuestScrollFrame.StoryTooltip
|
||||
StoryTooltip:SetFrameLevel(4)
|
||||
|
||||
-- EmbeddedItemTooltip (also Paragon Reputation)
|
||||
local embedded = _G.EmbeddedItemTooltip
|
||||
embedded:SetTemplate('Transparent')
|
||||
|
||||
if embedded.ItemTooltip.Icon then
|
||||
S:HandleIcon(embedded.ItemTooltip.Icon, true)
|
||||
end
|
||||
|
||||
embedded:HookScript('OnShow', function(tt)
|
||||
tt:SetTemplate('Transparent')
|
||||
end)
|
||||
|
||||
-- Skin GameTooltip Status Bar
|
||||
_G.GameTooltipStatusBar:SetStatusBarTexture(E.media.normTex)
|
||||
_G.GameTooltipStatusBar:CreateBackdrop('Transparent')
|
||||
_G.GameTooltipStatusBar:ClearAllPoints()
|
||||
_G.GameTooltipStatusBar:Point('TOPLEFT', _G.GameTooltip, 'BOTTOMLEFT', E.Border, -(E.Spacing * 3))
|
||||
_G.GameTooltipStatusBar:Point('TOPRIGHT', _G.GameTooltip, 'BOTTOMRIGHT', -E.Border, -(E.Spacing * 3))
|
||||
E:RegisterStatusBar(_G.GameTooltipStatusBar)
|
||||
|
||||
-- Tooltip Styling
|
||||
TT:SecureHook('GameTooltip_ShowStatusBar') -- Skin Status Bars
|
||||
TT:SecureHook('GameTooltip_ShowProgressBar') -- Skin Progress Bars
|
||||
TT:SecureHook('GameTooltip_AddQuestRewardsToTooltip') -- Color Progress Bars
|
||||
TT:SecureHook('SharedTooltip_SetBackdropStyle', 'SetStyle') -- This also deals with other tooltip borders like AzeriteEssence Tooltip
|
||||
|
||||
-- Used for Island Skin
|
||||
TT:RegisterEvent('ADDON_LOADED', function(event, addon)
|
||||
if addon == 'Blizzard_IslandsQueueUI' then
|
||||
local tt = _G.IslandsQueueFrameTooltip:GetParent()
|
||||
tt:GetParent():HookScript('OnShow', IslandTooltipStyle)
|
||||
tt.IconBorder:Kill()
|
||||
tt.Icon:SetTexCoord(unpack(E.TexCoords))
|
||||
TT:UnregisterEvent(event)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
S:AddCallback('TooltipFrames')
|
||||
18
Modules/Skins/Blizzard/TorghastLevelPicker.lua
Normal file
18
Modules/Skins/Blizzard/TorghastLevelPicker.lua
Normal file
@@ -0,0 +1,18 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
|
||||
function S:Blizzard_TorghastLevelPicker()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.torghastLevelPicker) then return end
|
||||
|
||||
local frame = _G.TorghastLevelPickerFrame
|
||||
frame.Title:FontTemplate(nil, 24)
|
||||
|
||||
S:HandleCloseButton(frame.CloseButton)
|
||||
S:HandleNextPrevButton(frame.Pager.PreviousPage)
|
||||
S:HandleNextPrevButton(frame.Pager.NextPage)
|
||||
S:HandleButton(frame.OpenPortalButton)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_TorghastLevelPicker')
|
||||
96
Modules/Skins/Blizzard/Trade.lua
Normal file
96
Modules/Skins/Blizzard/Trade.lua
Normal file
@@ -0,0 +1,96 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local unpack = unpack
|
||||
local CreateFrame = CreateFrame
|
||||
|
||||
function S:TradeFrame()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.trade) then return end
|
||||
|
||||
local TradeFrame = _G.TradeFrame
|
||||
S:HandlePortraitFrame(TradeFrame)
|
||||
|
||||
TradeFrame.RecipientOverlay.portrait:SetAlpha(0)
|
||||
TradeFrame.RecipientOverlay.portraitFrame:SetAlpha(0)
|
||||
|
||||
S:HandleButton(_G.TradeFrameTradeButton, true)
|
||||
S:HandleButton(_G.TradeFrameCancelButton, true)
|
||||
|
||||
S:HandleEditBox(_G.TradePlayerInputMoneyFrameGold)
|
||||
S:HandleEditBox(_G.TradePlayerInputMoneyFrameSilver)
|
||||
S:HandleEditBox(_G.TradePlayerInputMoneyFrameCopper)
|
||||
_G.TradeRecipientItemsInset:Kill()
|
||||
_G.TradePlayerItemsInset:Kill()
|
||||
_G.TradePlayerInputMoneyInset:Kill()
|
||||
_G.TradePlayerEnchantInset:Kill()
|
||||
_G.TradeRecipientEnchantInset:Kill()
|
||||
_G.TradeRecipientMoneyInset:Kill()
|
||||
_G.TradeRecipientMoneyBg:Kill()
|
||||
|
||||
for i = 1, _G.MAX_TRADE_ITEMS do
|
||||
local player = _G['TradePlayerItem'..i]
|
||||
local recipient = _G['TradeRecipientItem'..i]
|
||||
local player_button = _G['TradePlayerItem'..i..'ItemButton']
|
||||
local recipient_button = _G['TradeRecipientItem'..i..'ItemButton']
|
||||
local player_button_icon = _G['TradePlayerItem'..i..'ItemButtonIconTexture']
|
||||
local recipient_button_icon = _G['TradeRecipientItem'..i..'ItemButtonIconTexture']
|
||||
|
||||
if player_button and recipient_button then
|
||||
player:StripTextures()
|
||||
recipient:StripTextures()
|
||||
player_button:StripTextures()
|
||||
recipient_button:StripTextures()
|
||||
|
||||
player_button_icon:SetInside(player_button)
|
||||
player_button_icon:SetTexCoord(unpack(E.TexCoords))
|
||||
player_button:CreateBackdrop(nil, true)
|
||||
player_button:StyleButton()
|
||||
player_button.IconBorder:Kill()
|
||||
player_button.bg = CreateFrame('Frame', nil, player_button, 'BackdropTemplate')
|
||||
player_button.bg:SetTemplate()
|
||||
player_button.bg:Point('TOPLEFT', player_button, 'TOPRIGHT', 4, 0)
|
||||
player_button.bg:Point('BOTTOMRIGHT', _G['TradePlayerItem'..i..'NameFrame'], 'BOTTOMRIGHT', 0, 14)
|
||||
player_button.bg:SetFrameLevel(player_button:GetFrameLevel() - 3)
|
||||
player_button.backdrop:SetFrameLevel(player_button:GetFrameLevel() - 1)
|
||||
player_button:SetFrameLevel(player_button:GetFrameLevel() - 1)
|
||||
|
||||
recipient_button_icon:SetInside(recipient_button)
|
||||
recipient_button_icon:SetTexCoord(unpack(E.TexCoords))
|
||||
recipient_button:CreateBackdrop(nil, true)
|
||||
recipient_button:StyleButton()
|
||||
recipient_button.IconBorder:Kill()
|
||||
recipient_button.bg = CreateFrame('Frame', nil, recipient_button, 'BackdropTemplate')
|
||||
recipient_button.bg:SetTemplate()
|
||||
recipient_button.bg:Point('TOPLEFT', recipient_button, 'TOPRIGHT', 4, 0)
|
||||
recipient_button.bg:Point('BOTTOMRIGHT', _G['TradeRecipientItem'..i..'NameFrame'], 'BOTTOMRIGHT', 0, 14)
|
||||
recipient_button.bg:SetFrameLevel(recipient_button:GetFrameLevel() - 3)
|
||||
recipient_button:SetFrameLevel(recipient_button:GetFrameLevel() - 1)
|
||||
|
||||
S:HandleIconBorder(player_button.IconBorder)
|
||||
S:HandleIconBorder(recipient_button.IconBorder)
|
||||
end
|
||||
end
|
||||
|
||||
_G.TradeHighlightPlayerTop:SetColorTexture(0, 1, 0, 0.2)
|
||||
_G.TradeHighlightPlayerBottom:SetColorTexture(0, 1, 0, 0.2)
|
||||
_G.TradeHighlightPlayerMiddle:SetColorTexture(0, 1, 0, 0.2)
|
||||
_G.TradeHighlightPlayer:SetFrameStrata('HIGH')
|
||||
|
||||
_G.TradeHighlightPlayerEnchantTop:SetColorTexture(0, 1, 0, 0.2)
|
||||
_G.TradeHighlightPlayerEnchantBottom:SetColorTexture(0, 1, 0, 0.2)
|
||||
_G.TradeHighlightPlayerEnchantMiddle:SetColorTexture(0, 1, 0, 0.2)
|
||||
_G.TradeHighlightPlayerEnchant:SetFrameStrata('HIGH')
|
||||
|
||||
_G.TradeHighlightRecipientTop:SetColorTexture(0, 1, 0, 0.2)
|
||||
_G.TradeHighlightRecipientBottom:SetColorTexture(0, 1, 0, 0.2)
|
||||
_G.TradeHighlightRecipientMiddle:SetColorTexture(0, 1, 0, 0.2)
|
||||
_G.TradeHighlightRecipient:SetFrameStrata('HIGH')
|
||||
|
||||
_G.TradeHighlightRecipientEnchantTop:SetColorTexture(0, 1, 0, 0.2)
|
||||
_G.TradeHighlightRecipientEnchantBottom:SetColorTexture(0, 1, 0, 0.2)
|
||||
_G.TradeHighlightRecipientEnchantMiddle:SetColorTexture(0, 1, 0, 0.2)
|
||||
_G.TradeHighlightRecipientEnchant:SetFrameStrata('HIGH')
|
||||
end
|
||||
|
||||
S:AddCallback('TradeFrame')
|
||||
199
Modules/Skins/Blizzard/TradeSkill.lua
Normal file
199
Modules/Skins/Blizzard/TradeSkill.lua
Normal file
@@ -0,0 +1,199 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local ipairs, unpack = ipairs, unpack
|
||||
local CreateFrame = CreateFrame
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
local function SkinRecipeList(self, _, tradeSkillInfo)
|
||||
-- +/- Buttons
|
||||
if tradeSkillInfo.collapsed then
|
||||
self:SetNormalTexture(E.Media.Textures.PlusButton)
|
||||
else
|
||||
self:SetNormalTexture(E.Media.Textures.MinusButton)
|
||||
end
|
||||
|
||||
-- Skillbar
|
||||
if tradeSkillInfo.hasProgressBar then
|
||||
self.SubSkillRankBar.BorderMid:Hide()
|
||||
self.SubSkillRankBar.BorderLeft:Hide()
|
||||
self.SubSkillRankBar.BorderRight:Hide()
|
||||
|
||||
if not self.SubSkillRankBar.backdrop then
|
||||
self.SubSkillRankBar:CreateBackdrop()
|
||||
self.SubSkillRankBar.backdrop:SetAllPoints()
|
||||
self.SubSkillRankBar:SetStatusBarTexture(E.media.normTex)
|
||||
E:RegisterStatusBar(self.SubSkillRankBar)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function S:Blizzard_TradeSkillUI()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.tradeskill) then return end
|
||||
|
||||
-- MainFrame
|
||||
local TradeSkillFrame = _G.TradeSkillFrame
|
||||
S:HandlePortraitFrame(TradeSkillFrame)
|
||||
|
||||
TradeSkillFrame:Height(TradeSkillFrame:GetHeight() + 12)
|
||||
TradeSkillFrame.RankFrame:StripTextures()
|
||||
TradeSkillFrame.RankFrame:CreateBackdrop()
|
||||
TradeSkillFrame.RankFrame:SetStatusBarTexture(E.media.normTex)
|
||||
TradeSkillFrame.RankFrame.RankText:FontTemplate()
|
||||
E:RegisterStatusBar(TradeSkillFrame.RankFrame)
|
||||
S:HandleButton(TradeSkillFrame.FilterButton)
|
||||
TradeSkillFrame.LinkToButton:GetNormalTexture():SetTexCoord(0.25, 0.7, 0.37, 0.75)
|
||||
TradeSkillFrame.LinkToButton:GetPushedTexture():SetTexCoord(0.25, 0.7, 0.45, 0.8)
|
||||
TradeSkillFrame.LinkToButton:GetHighlightTexture():Kill()
|
||||
TradeSkillFrame.LinkToButton:CreateBackdrop()
|
||||
TradeSkillFrame.LinkToButton:Size(17, 14)
|
||||
TradeSkillFrame.LinkToButton:Point('BOTTOMRIGHT', TradeSkillFrame.FilterButton, 'TOPRIGHT', -2, 4)
|
||||
TradeSkillFrame.bg1 = CreateFrame('Frame', nil, TradeSkillFrame, 'BackdropTemplate')
|
||||
TradeSkillFrame.bg1:SetTemplate('Transparent')
|
||||
TradeSkillFrame.bg1:Point('TOPLEFT', 4, -81)
|
||||
TradeSkillFrame.bg1:Point('BOTTOMRIGHT', -340, 4)
|
||||
TradeSkillFrame.bg1:SetFrameLevel(TradeSkillFrame.bg1:GetFrameLevel() - 1)
|
||||
TradeSkillFrame.bg2 = CreateFrame('Frame', nil, TradeSkillFrame, 'BackdropTemplate')
|
||||
TradeSkillFrame.bg2:SetTemplate('Transparent')
|
||||
TradeSkillFrame.bg2:Point('TOPLEFT', TradeSkillFrame.bg1, 'TOPRIGHT', 1, 0)
|
||||
TradeSkillFrame.bg2:Point('BOTTOMRIGHT', TradeSkillFrame, 'BOTTOMRIGHT', -4, 4)
|
||||
TradeSkillFrame.bg2:SetFrameLevel(TradeSkillFrame.bg2:GetFrameLevel() - 1)
|
||||
|
||||
S:HandleEditBox(TradeSkillFrame.SearchBox)
|
||||
|
||||
-- RecipeList
|
||||
TradeSkillFrame.RecipeInset:StripTextures()
|
||||
TradeSkillFrame.RecipeList.LearnedTab:StripTextures()
|
||||
TradeSkillFrame.RecipeList.UnlearnedTab:StripTextures()
|
||||
S:HandleScrollBar(TradeSkillFrame.RecipeList.scrollBar)
|
||||
|
||||
-- DetailsFrame
|
||||
TradeSkillFrame.DetailsFrame:StripTextures()
|
||||
TradeSkillFrame.DetailsInset:StripTextures()
|
||||
TradeSkillFrame.DetailsFrame.Background:Hide()
|
||||
S:HandleEditBox(TradeSkillFrame.DetailsFrame.CreateMultipleInputBox)
|
||||
TradeSkillFrame.DetailsFrame.CreateMultipleInputBox:DisableDrawLayer('BACKGROUND')
|
||||
|
||||
S:HandleButton(TradeSkillFrame.DetailsFrame.CreateAllButton)
|
||||
S:HandleButton(TradeSkillFrame.DetailsFrame.CreateButton)
|
||||
S:HandleButton(TradeSkillFrame.DetailsFrame.ExitButton)
|
||||
|
||||
S:HandleScrollBar(TradeSkillFrame.DetailsFrame.ScrollBar)
|
||||
|
||||
S:HandleNextPrevButton(TradeSkillFrame.DetailsFrame.CreateMultipleInputBox.DecrementButton)
|
||||
S:HandleNextPrevButton(TradeSkillFrame.DetailsFrame.CreateMultipleInputBox.IncrementButton)
|
||||
TradeSkillFrame.DetailsFrame.CreateMultipleInputBox.IncrementButton:Point('LEFT', TradeSkillFrame.DetailsFrame.CreateMultipleInputBox, 'RIGHT', 4, 0)
|
||||
|
||||
hooksecurefunc(TradeSkillFrame.DetailsFrame, 'RefreshDisplay', function()
|
||||
local ResultIcon = TradeSkillFrame.DetailsFrame.Contents.ResultIcon
|
||||
ResultIcon:StyleButton()
|
||||
if ResultIcon:GetNormalTexture() then
|
||||
ResultIcon:GetNormalTexture():SetTexCoord(unpack(E.TexCoords))
|
||||
ResultIcon:GetNormalTexture():SetInside()
|
||||
end
|
||||
ResultIcon:CreateBackdrop()
|
||||
ResultIcon.IconBorder:SetTexture()
|
||||
ResultIcon.ResultBorder:SetTexture()
|
||||
|
||||
for i = 1, #TradeSkillFrame.DetailsFrame.Contents.Reagents do
|
||||
local Button = TradeSkillFrame.DetailsFrame.Contents.Reagents[i]
|
||||
local Icon = Button.Icon
|
||||
local Count = Button.Count
|
||||
|
||||
Icon:SetTexCoord(unpack(E.TexCoords))
|
||||
Icon:SetDrawLayer('OVERLAY')
|
||||
if not Icon.backdrop then
|
||||
Icon.backdrop = CreateFrame('Frame', nil, Button, 'BackdropTemplate')
|
||||
Icon.backdrop:SetFrameLevel(Button:GetFrameLevel() - 1)
|
||||
Icon.backdrop:SetTemplate()
|
||||
Icon.backdrop:SetOutside(Icon)
|
||||
end
|
||||
|
||||
Icon:SetParent(Icon.backdrop)
|
||||
Count:SetParent(Icon.backdrop)
|
||||
Count:SetDrawLayer('OVERLAY')
|
||||
|
||||
Button.NameFrame:Kill()
|
||||
end
|
||||
|
||||
-- 9.0 Shadowlands
|
||||
for i = 1, #TradeSkillFrame.DetailsFrame.Contents.OptionalReagents do
|
||||
local Button = TradeSkillFrame.DetailsFrame.Contents.OptionalReagents[i]
|
||||
local Icon = Button.Icon
|
||||
|
||||
Icon:SetTexCoord(unpack(E.TexCoords))
|
||||
Icon:SetDrawLayer('OVERLAY')
|
||||
if not Icon.backdrop then
|
||||
Icon.backdrop = CreateFrame('Frame', nil, Button, 'BackdropTemplate')
|
||||
Icon.backdrop:SetFrameLevel(Button:GetFrameLevel() - 1)
|
||||
Icon.backdrop:SetTemplate()
|
||||
Icon.backdrop:SetOutside(Icon)
|
||||
end
|
||||
|
||||
Button.SocketGlow:SetAtlas(nil)
|
||||
Button.SocketGlow:SetColorTexture(0, 1, 0)
|
||||
Button.SocketGlow:SetInside(Icon.backdrop)
|
||||
|
||||
Button.SelectedTexture:SetAtlas(nil)
|
||||
Button.SelectedTexture:SetColorTexture(0.9, 0.8, 0.1)
|
||||
Button.SelectedTexture:SetOutside(Icon.backdrop)
|
||||
|
||||
Button.NameFrame:Kill()
|
||||
end
|
||||
end)
|
||||
|
||||
hooksecurefunc(TradeSkillFrame.RecipeList, 'Refresh', function()
|
||||
for _, tradeSkillButton in ipairs(TradeSkillFrame.RecipeList.buttons) do
|
||||
if not tradeSkillButton.headerIsHooked then
|
||||
hooksecurefunc(tradeSkillButton, 'SetUpHeader', SkinRecipeList)
|
||||
tradeSkillButton.headerIsHooked = true
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
--Guild Crafters
|
||||
S:HandleCloseButton(TradeSkillFrame.DetailsFrame.GuildFrame.CloseButton)
|
||||
S:HandleButton(TradeSkillFrame.DetailsFrame.ViewGuildCraftersButton)
|
||||
TradeSkillFrame.DetailsFrame.GuildFrame:StripTextures()
|
||||
TradeSkillFrame.DetailsFrame.GuildFrame:CreateBackdrop('Transparent')
|
||||
TradeSkillFrame.DetailsFrame.GuildFrame.Container:StripTextures()
|
||||
TradeSkillFrame.DetailsFrame.GuildFrame.Container:CreateBackdrop('Transparent')
|
||||
--S:HandleScrollBar(TradeSkillFrame.DetailsFrame.GuildFrame.Container.ScrollFrame.scrollBar) --This cannot be skinned due to issues on Blizzards end.
|
||||
S:HandleScrollBar(TradeSkillFrame.RecipeList.scrollBar)
|
||||
|
||||
-- 9.0 Shadowlands
|
||||
local OptionalReagents = TradeSkillFrame.OptionalReagentList
|
||||
OptionalReagents:StripTextures()
|
||||
OptionalReagents:CreateBackdrop('Transparent')
|
||||
|
||||
OptionalReagents.ScrollList:StripTextures()
|
||||
OptionalReagents.ScrollList:CreateBackdrop('Transparent')
|
||||
|
||||
S:HandleCheckBox(OptionalReagents.HideUnownedButton)
|
||||
S:HandleScrollBar(OptionalReagents.ScrollList.ScrollFrame.scrollBar)
|
||||
S:HandleButton(OptionalReagents.CloseButton)
|
||||
|
||||
-- Needs probably updates - or/also a different way
|
||||
hooksecurefunc(_G.OptionalReagentListLineMixin, 'UpdateDisplay', function(frame)
|
||||
frame.NameFrame:Kill()
|
||||
frame:DisableDrawLayer('ARTWORK')
|
||||
|
||||
S:HandleIcon(frame.Icon, true)
|
||||
frame.Icon:Size(32, 32)
|
||||
frame.Icon:ClearAllPoints()
|
||||
frame.Icon:Point('TOPLEFT', frame, 'TOPLEFT', 3, -3)
|
||||
|
||||
if frame.Icon.backdrop then
|
||||
frame.Icon.backdrop:SetAllPoints(frame.Icon)
|
||||
S:HandleIconBorder(frame.IconBorder, frame.Icon.backdrop)
|
||||
end
|
||||
|
||||
if not frame.backdrop then
|
||||
frame:CreateBackdrop()
|
||||
frame.backdrop:SetAllPoints()
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_TradeSkillUI')
|
||||
82
Modules/Skins/Blizzard/Trainer.lua
Normal file
82
Modules/Skins/Blizzard/Trainer.lua
Normal file
@@ -0,0 +1,82 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local pairs, unpack = pairs, unpack
|
||||
|
||||
function S:Blizzard_TrainerUI()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.trainer) then return end
|
||||
|
||||
--Class Trainer Frame
|
||||
local StripAllTextures = {
|
||||
_G.ClassTrainerScrollFrameScrollChild,
|
||||
_G.ClassTrainerFrameSkillStepButton,
|
||||
_G.ClassTrainerFrameBottomInset,
|
||||
}
|
||||
|
||||
local buttons = {
|
||||
_G.ClassTrainerTrainButton,
|
||||
}
|
||||
|
||||
local KillTextures = {
|
||||
_G.ClassTrainerFramePortrait,
|
||||
_G.ClassTrainerScrollFrameScrollBarBG,
|
||||
_G.ClassTrainerScrollFrameScrollBarTop,
|
||||
_G.ClassTrainerScrollFrameScrollBarBottom,
|
||||
_G.ClassTrainerScrollFrameScrollBarMiddle,
|
||||
}
|
||||
|
||||
for _, object in pairs(StripAllTextures) do
|
||||
object:StripTextures()
|
||||
end
|
||||
|
||||
for _, texture in pairs(KillTextures) do
|
||||
texture:Kill()
|
||||
end
|
||||
|
||||
for i = 1, #buttons do
|
||||
buttons[i]:StripTextures()
|
||||
S:HandleButton(buttons[i])
|
||||
end
|
||||
|
||||
local ClassTrainerFrame = _G.ClassTrainerFrame
|
||||
S:HandlePortraitFrame(ClassTrainerFrame)
|
||||
|
||||
for i= 1, #ClassTrainerFrame.scrollFrame.buttons do
|
||||
local button = _G['ClassTrainerScrollFrameButton'..i]
|
||||
button:StripTextures()
|
||||
button:StyleButton()
|
||||
button.icon:SetTexCoord(unpack(E.TexCoords))
|
||||
button:CreateBackdrop()
|
||||
button.backdrop:SetOutside(button.icon)
|
||||
button.icon:SetParent(button.backdrop)
|
||||
button.selectedTex:SetColorTexture(1, 1, 1, 0.3)
|
||||
button.selectedTex:SetInside()
|
||||
end
|
||||
|
||||
S:HandleScrollBar(_G.ClassTrainerScrollFrameScrollBar, 5)
|
||||
S:HandleDropDownBox(_G.ClassTrainerFrameFilterDropDown, 155)
|
||||
|
||||
ClassTrainerFrame:Height(ClassTrainerFrame:GetHeight() + 5)
|
||||
ClassTrainerFrame:CreateBackdrop('Transparent')
|
||||
ClassTrainerFrame.backdrop:Point('TOPLEFT', ClassTrainerFrame, 'TOPLEFT')
|
||||
ClassTrainerFrame.backdrop:Point('BOTTOMRIGHT', ClassTrainerFrame, 'BOTTOMRIGHT')
|
||||
|
||||
local ClassTrainerFrameSkillStepButton = _G.ClassTrainerFrameSkillStepButton
|
||||
ClassTrainerFrameSkillStepButton.icon:SetTexCoord(unpack(E.TexCoords))
|
||||
ClassTrainerFrameSkillStepButton:CreateBackdrop()
|
||||
ClassTrainerFrameSkillStepButton.backdrop:SetOutside(ClassTrainerFrameSkillStepButton.icon)
|
||||
ClassTrainerFrameSkillStepButton.icon:SetParent(ClassTrainerFrameSkillStepButton.backdrop)
|
||||
_G.ClassTrainerFrameSkillStepButtonHighlight:SetColorTexture(1,1,1,0.3)
|
||||
ClassTrainerFrameSkillStepButton.selectedTex:SetColorTexture(1,1,1,0.3)
|
||||
|
||||
local ClassTrainerStatusBar = _G.ClassTrainerStatusBar
|
||||
ClassTrainerStatusBar:StripTextures()
|
||||
ClassTrainerStatusBar:SetStatusBarTexture(E.media.normTex)
|
||||
ClassTrainerStatusBar:CreateBackdrop()
|
||||
ClassTrainerStatusBar.rankText:ClearAllPoints()
|
||||
ClassTrainerStatusBar.rankText:Point('CENTER', ClassTrainerStatusBar, 'CENTER')
|
||||
E:RegisterStatusBar(ClassTrainerStatusBar)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_TrainerUI')
|
||||
21
Modules/Skins/Blizzard/TutorialFrame.lua
Normal file
21
Modules/Skins/Blizzard/TutorialFrame.lua
Normal file
@@ -0,0 +1,21 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
|
||||
function S:TutorialFrame()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.tutorials) then return end
|
||||
|
||||
-- Dont use :StripTextures() here
|
||||
_G.TutorialFrame:CreateBackdrop('Transparent')
|
||||
_G.TutorialFrameBackground:Hide()
|
||||
_G.TutorialFrameBackground.Show = E.noop
|
||||
_G.TutorialFrame:DisableDrawLayer('BORDER')
|
||||
|
||||
S:HandleCloseButton(_G.TutorialFrameCloseButton)
|
||||
S:HandleButton(_G.TutorialFrameOkayButton)
|
||||
S:HandleNextPrevButton(_G.TutorialFramePrevButton, 'left')
|
||||
S:HandleNextPrevButton(_G.TutorialFrameNextButton, 'right')
|
||||
end
|
||||
|
||||
S:AddCallback('TutorialFrame')
|
||||
62
Modules/Skins/Blizzard/VoidStorage.lua
Normal file
62
Modules/Skins/Blizzard/VoidStorage.lua
Normal file
@@ -0,0 +1,62 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local pairs = pairs
|
||||
|
||||
function S:Blizzard_VoidStorageUI()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.voidstorage) then return end
|
||||
|
||||
local StripAllTextures = {
|
||||
'VoidStorageBorderFrame',
|
||||
'VoidStorageDepositFrame',
|
||||
'VoidStorageWithdrawFrame',
|
||||
'VoidStorageCostFrame',
|
||||
'VoidStorageStorageFrame',
|
||||
'VoidStoragePurchaseFrame',
|
||||
'VoidItemSearchBox',
|
||||
}
|
||||
|
||||
for _, object in pairs(StripAllTextures) do
|
||||
_G[object]:StripTextures()
|
||||
end
|
||||
|
||||
local VoidStorageFrame = _G.VoidStorageFrame
|
||||
for i = 1, 2 do
|
||||
local tab = VoidStorageFrame['Page'..i]
|
||||
S:HandleButton(tab)
|
||||
tab:StripTextures()
|
||||
tab:StyleButton(nil, true)
|
||||
S:HandleIcon(tab:GetNormalTexture())
|
||||
tab:GetNormalTexture():SetInside()
|
||||
end
|
||||
|
||||
VoidStorageFrame:StripTextures()
|
||||
VoidStorageFrame:CreateBackdrop('Transparent')
|
||||
VoidStorageFrame.Page1:SetNormalTexture([[Interface\Icons\INV_Enchant_EssenceCosmicGreater]])
|
||||
VoidStorageFrame.Page1:Point('LEFT', '$parent', 'TOPRIGHT', 1, -60)
|
||||
VoidStorageFrame.Page2:SetNormalTexture([[Interface\Icons\INV_Enchant_EssenceArcaneLarge]])
|
||||
|
||||
_G.VoidStoragePurchaseFrame:SetFrameStrata('DIALOG')
|
||||
_G.VoidStoragePurchaseFrame:CreateBackdrop()
|
||||
|
||||
S:HandleCloseButton(_G.VoidStorageBorderFrame.CloseButton)
|
||||
S:HandleButton(_G.VoidStoragePurchaseButton)
|
||||
S:HandleButton(_G.VoidStorageTransferButton)
|
||||
S:HandleEditBox(_G.VoidItemSearchBox)
|
||||
|
||||
for StorageType, NumSlots in pairs({ Deposit = 9, Withdraw = 9, Storage = 80 }) do
|
||||
for i = 1, NumSlots do
|
||||
local Button = _G['VoidStorage'..StorageType..'Button'..i]
|
||||
Button:StripTextures()
|
||||
Button:CreateBackdrop()
|
||||
Button.backdrop:SetAllPoints()
|
||||
Button:StyleButton()
|
||||
S:HandleIcon(Button.icon)
|
||||
Button.icon:SetInside()
|
||||
S:HandleIconBorder(Button.IconBorder)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_VoidStorageUI')
|
||||
45
Modules/Skins/Blizzard/Warboard.lua
Normal file
45
Modules/Skins/Blizzard/Warboard.lua
Normal file
@@ -0,0 +1,45 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
|
||||
function S:Blizzard_WarboardUI()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.warboard) then return end
|
||||
|
||||
local WarboardQuestChoiceFrame = _G.WarboardQuestChoiceFrame
|
||||
WarboardQuestChoiceFrame:StripTextures()
|
||||
WarboardQuestChoiceFrame.NineSlice:Hide()
|
||||
WarboardQuestChoiceFrame:CreateBackdrop('Transparent')
|
||||
|
||||
WarboardQuestChoiceFrame.Background:Hide()
|
||||
WarboardQuestChoiceFrame.Title:DisableDrawLayer('BACKGROUND')
|
||||
|
||||
for i = 1, 4 do
|
||||
local option = WarboardQuestChoiceFrame['Option'..i]
|
||||
for x = 1, #option.OptionButtonsContainer.Buttons do
|
||||
S:HandleButton(option.OptionButtonsContainer.Buttons[x])
|
||||
end
|
||||
option.ArtworkBorder:SetAlpha(0)
|
||||
end
|
||||
|
||||
local WarboardQuestChoiceDelayed = function(s)
|
||||
if not s then return end
|
||||
|
||||
local frame
|
||||
for i = 1, 4 do
|
||||
frame = s['Option'..i]
|
||||
if frame and frame.WidgetContainer then
|
||||
S:SkinWidgetContainer(frame.WidgetContainer)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
WarboardQuestChoiceFrame:HookScript('OnShow', function(s)
|
||||
if s.CloseButton.Border then s.CloseButton.Border:SetAlpha(0) end
|
||||
E:Delay(0.5, WarboardQuestChoiceDelayed, s)
|
||||
end)
|
||||
|
||||
S:HandleCloseButton(WarboardQuestChoiceFrame.CloseButton)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_WarboardUI')
|
||||
30
Modules/Skins/Blizzard/WarfrontPartyPose.lua
Normal file
30
Modules/Skins/Blizzard/WarfrontPartyPose.lua
Normal file
@@ -0,0 +1,30 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local unpack = unpack
|
||||
|
||||
function S:Blizzard_WarfrontsPartyPoseUI()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.IslandsPartyPose) then return end
|
||||
|
||||
local WarfrontsPartyPoseFrame = _G.WarfrontsPartyPoseFrame
|
||||
WarfrontsPartyPoseFrame:StripTextures()
|
||||
WarfrontsPartyPoseFrame:CreateBackdrop('Transparent')
|
||||
|
||||
local modelScene = WarfrontsPartyPoseFrame.ModelScene
|
||||
modelScene:StripTextures()
|
||||
modelScene:CreateBackdrop('Transparent')
|
||||
|
||||
S:HandleButton(WarfrontsPartyPoseFrame.LeaveButton)
|
||||
|
||||
local rewardFrame = WarfrontsPartyPoseFrame.RewardAnimations.RewardFrame
|
||||
rewardFrame:CreateBackdrop('Transparent')
|
||||
rewardFrame.backdrop:Point('TOPLEFT', -5, 5)
|
||||
rewardFrame.backdrop:Point('BOTTOMRIGHT', rewardFrame.NameFrame, 0, -5)
|
||||
|
||||
rewardFrame.NameFrame:SetAlpha(0)
|
||||
rewardFrame.IconBorder:Kill()
|
||||
rewardFrame.Icon:SetTexCoord(unpack(E.TexCoords))
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_WarfrontsPartyPoseUI')
|
||||
96
Modules/Skins/Blizzard/WeeklyRewards.lua
Normal file
96
Modules/Skins/Blizzard/WeeklyRewards.lua
Normal file
@@ -0,0 +1,96 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local pairs, unpack = pairs, unpack
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
-- Credits Siweia | AuroraClassic
|
||||
|
||||
local function UpdateSelection(frame)
|
||||
if not frame.backdrop then return end
|
||||
|
||||
if frame.SelectedTexture:IsShown() then
|
||||
frame.backdrop:SetBackdropBorderColor(1, .8, 0)
|
||||
else
|
||||
frame.backdrop:SetBackdropBorderColor(0, 0, 0)
|
||||
end
|
||||
end
|
||||
|
||||
local IconColor = E.QualityColors[Enum.ItemQuality.Epic or 4] -- epic color only
|
||||
local function SkinRewardIcon(itemFrame)
|
||||
if not itemFrame.IsSkinned then
|
||||
itemFrame:CreateBackdrop('Transparent')
|
||||
itemFrame:DisableDrawLayer('BORDER')
|
||||
itemFrame.Icon:SetPoint('LEFT', 6, 0)
|
||||
S:HandleIcon(itemFrame.Icon, true)
|
||||
itemFrame.backdrop:SetBackdropBorderColor(IconColor.r, IconColor.g, IconColor.b)
|
||||
itemFrame.IsSkinned = true
|
||||
end
|
||||
end
|
||||
|
||||
local function SkinActivityFrame(frame, isObject)
|
||||
if frame.Border then
|
||||
if isObject then
|
||||
frame.Border:SetAlpha(0)
|
||||
frame.SelectedTexture:SetAlpha(0)
|
||||
frame.LockIcon:SetVertexColor(unpack(E.media.rgbvaluecolor))
|
||||
hooksecurefunc(frame, "SetSelectionState", UpdateSelection)
|
||||
hooksecurefunc(frame.ItemFrame, 'SetDisplayedItem', SkinRewardIcon)
|
||||
else
|
||||
frame.Border:SetTexCoord(.926, 1, 0, 1)
|
||||
frame.Border:Size(25, 137)
|
||||
frame.Border:Point('LEFT', frame, 'RIGHT', 3, 0)
|
||||
end
|
||||
end
|
||||
|
||||
if frame.Background then
|
||||
frame.Background:CreateBackdrop()
|
||||
end
|
||||
end
|
||||
|
||||
function S:Blizzard_WeeklyRewards()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.weeklyRewards) then return end
|
||||
|
||||
-- /run UIParent_OnEvent({}, 'WEEKLY_REWARDS_SHOW')
|
||||
local frame = _G.WeeklyRewardsFrame
|
||||
local header = frame.HeaderFrame
|
||||
|
||||
if E.private.skins.parchmentRemoverEnable then
|
||||
frame:StripTextures()
|
||||
header:StripTextures()
|
||||
end
|
||||
|
||||
frame:CreateBackdrop('Transparent')
|
||||
header:CreateBackdrop('Transparent')
|
||||
header:Point('TOP', 1, -42)
|
||||
|
||||
S:HandleCloseButton(frame.CloseButton)
|
||||
S:HandleButton(frame.SelectRewardButton)
|
||||
|
||||
SkinActivityFrame(frame.RaidFrame)
|
||||
SkinActivityFrame(frame.MythicFrame)
|
||||
SkinActivityFrame(frame.PVPFrame)
|
||||
|
||||
for _, activity in pairs(frame.Activities) do
|
||||
SkinActivityFrame(activity, true)
|
||||
end
|
||||
|
||||
hooksecurefunc(frame, 'SelectReward', function(self)
|
||||
local confirmSelectionFrame = self.confirmSelectionFrame
|
||||
if confirmSelectionFrame and not confirmSelectionFrame.IsSkinned then
|
||||
local itemFrame = confirmSelectionFrame.ItemFrame
|
||||
S:HandleIcon(itemFrame.Icon, true)
|
||||
S:HandleIconBorder(itemFrame.IconBorder, itemFrame.IconBorder.backdrop) --Monitor this
|
||||
|
||||
local nameframe = _G[confirmSelectionFrame:GetName()..'NameFrame']
|
||||
if nameframe then
|
||||
nameframe:Hide()
|
||||
end
|
||||
|
||||
confirmSelectionFrame.IsSkinned = true
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
S:AddCallbackForAddon('Blizzard_WeeklyRewards')
|
||||
183
Modules/Skins/Blizzard/WorldMap.lua
Normal file
183
Modules/Skins/Blizzard/WorldMap.lua
Normal file
@@ -0,0 +1,183 @@
|
||||
local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local S = E:GetModule('Skins')
|
||||
|
||||
local _G = _G
|
||||
local hooksecurefunc = hooksecurefunc
|
||||
|
||||
local function SkinHeaders(header)
|
||||
if not header.IsSkinned then
|
||||
if header.TopFiligree then header.TopFiligree:Hide() end
|
||||
|
||||
header:SetAlpha(.8)
|
||||
|
||||
header.HighlightTexture:SetAllPoints(header.Background)
|
||||
header.HighlightTexture:SetAlpha(0)
|
||||
|
||||
header.IsSkinned = true
|
||||
end
|
||||
end
|
||||
|
||||
function S:WorldMapFrame()
|
||||
if not (E.private.skins.blizzard.enable and E.private.skins.blizzard.worldmap) then return end
|
||||
|
||||
local WorldMapFrame = _G.WorldMapFrame
|
||||
WorldMapFrame:StripTextures()
|
||||
WorldMapFrame.BorderFrame:StripTextures()
|
||||
WorldMapFrame.BorderFrame:SetFrameStrata(WorldMapFrame:GetFrameStrata())
|
||||
WorldMapFrame.BorderFrame.NineSlice:Hide()
|
||||
WorldMapFrame.NavBar:StripTextures()
|
||||
WorldMapFrame.NavBar.overlay:StripTextures()
|
||||
WorldMapFrame.NavBar:Point('TOPLEFT', 1, -40)
|
||||
|
||||
WorldMapFrame.ScrollContainer:CreateBackdrop()
|
||||
WorldMapFrame:CreateBackdrop('Transparent')
|
||||
WorldMapFrame.backdrop:Point('TOPLEFT', WorldMapFrame, 'TOPLEFT', -8, 0)
|
||||
WorldMapFrame.backdrop:Point('BOTTOMRIGHT', WorldMapFrame, 'BOTTOMRIGHT', 0, -9)
|
||||
|
||||
S:HandleButton(WorldMapFrame.NavBar.homeButton)
|
||||
WorldMapFrame.NavBar.homeButton.xoffset = 1
|
||||
WorldMapFrame.NavBar.homeButton.text:FontTemplate()
|
||||
|
||||
-- Quest Frames
|
||||
local QuestMapFrame = _G.QuestMapFrame
|
||||
QuestMapFrame.VerticalSeparator:Hide()
|
||||
QuestMapFrame:SetScript('OnHide', nil) -- This script would taint the Quest Objective Tracker Button, so unsetting it ~Simpy
|
||||
|
||||
if E.private.skins.parchmentRemoverEnable then
|
||||
QuestMapFrame.DetailsFrame:StripTextures(true)
|
||||
QuestMapFrame.DetailsFrame:CreateBackdrop()
|
||||
QuestMapFrame.DetailsFrame.backdrop:Point('TOPLEFT', 0, 0)
|
||||
QuestMapFrame.DetailsFrame.backdrop:Point('BOTTOMRIGHT', QuestMapFrame.DetailsFrame.RewardsFrame, 'TOPRIGHT', 0, 1)
|
||||
QuestMapFrame.DetailsFrame.RewardsFrame:StripTextures()
|
||||
QuestMapFrame.DetailsFrame.RewardsFrame:CreateBackdrop()
|
||||
|
||||
if QuestMapFrame.Background then
|
||||
QuestMapFrame.Background:SetAlpha(0)
|
||||
end
|
||||
|
||||
if QuestMapFrame.DetailsFrame.SealMaterialBG then
|
||||
QuestMapFrame.DetailsFrame.SealMaterialBG:SetAlpha(0)
|
||||
end
|
||||
end
|
||||
|
||||
local QuestScrollFrame = _G.QuestScrollFrame
|
||||
QuestScrollFrame.DetailFrame:StripTextures()
|
||||
QuestScrollFrame.DetailFrame.BottomDetail:Hide()
|
||||
QuestScrollFrame.Contents.Separator.Divider:Hide()
|
||||
|
||||
local QuestScrollFrameScrollBar = _G.QuestScrollFrame.ScrollBar
|
||||
QuestScrollFrame.DetailFrame:CreateBackdrop()
|
||||
QuestScrollFrame.DetailFrame.backdrop:SetFrameLevel(1)
|
||||
QuestScrollFrame.DetailFrame.backdrop:Point('TOPLEFT', QuestScrollFrame.DetailFrame, 'TOPLEFT', 3, 1)
|
||||
QuestScrollFrame.DetailFrame.backdrop:Point('BOTTOMRIGHT', QuestScrollFrame.DetailFrame, 'BOTTOMRIGHT', -2, -7)
|
||||
|
||||
SkinHeaders(QuestScrollFrame.Contents.StoryHeader)
|
||||
S:HandleScrollBar(QuestScrollFrameScrollBar, 3, 3)
|
||||
QuestScrollFrameScrollBar:Point('TOPLEFT', QuestScrollFrame.DetailFrame, 'TOPRIGHT', 1, -15)
|
||||
QuestScrollFrameScrollBar:Point('BOTTOMLEFT', QuestScrollFrame.DetailFrame, 'BOTTOMRIGHT', 6, 10)
|
||||
|
||||
S:HandleButton(QuestMapFrame.DetailsFrame.BackButton, true)
|
||||
QuestMapFrame.DetailsFrame.BackButton:SetFrameLevel(5)
|
||||
S:HandleButton(QuestMapFrame.DetailsFrame.AbandonButton, true)
|
||||
QuestMapFrame.DetailsFrame.AbandonButton:SetFrameLevel(5)
|
||||
S:HandleButton(QuestMapFrame.DetailsFrame.ShareButton, true)
|
||||
QuestMapFrame.DetailsFrame.ShareButton:SetFrameLevel(5)
|
||||
S:HandleButton(QuestMapFrame.DetailsFrame.TrackButton, true)
|
||||
QuestMapFrame.DetailsFrame.TrackButton:SetFrameLevel(5)
|
||||
QuestMapFrame.DetailsFrame.TrackButton:Width(95)
|
||||
S:HandleButton(QuestMapFrame.DetailsFrame.CompleteQuestFrame.CompleteButton, true)
|
||||
|
||||
local CampaignOverview = QuestMapFrame.CampaignOverview
|
||||
SkinHeaders(CampaignOverview.Header)
|
||||
CampaignOverview.ScrollFrame:StripTextures()
|
||||
S:HandleScrollBar(_G.QuestMapFrameScrollBar)
|
||||
|
||||
if E.private.skins.blizzard.tooltip then
|
||||
QuestMapFrame.QuestsFrame.StoryTooltip:SetTemplate('Transparent')
|
||||
--QuestScrollFrame.WarCampaignTooltip:SetTemplate('Transparent')
|
||||
end
|
||||
|
||||
S:HandleScrollBar(_G.QuestMapDetailsScrollFrame.ScrollBar)
|
||||
|
||||
QuestMapFrame.DetailsFrame.CompleteQuestFrame:StripTextures()
|
||||
|
||||
S:HandleNextPrevButton(WorldMapFrame.SidePanelToggle.CloseButton, 'left')
|
||||
S:HandleNextPrevButton(WorldMapFrame.SidePanelToggle.OpenButton, 'right')
|
||||
WorldMapFrame.SidePanelToggle.CloseButton.backdrop:SetFrameLevel(WorldMapFrame.SidePanelToggle.CloseButton:GetFrameLevel())
|
||||
WorldMapFrame.SidePanelToggle.OpenButton.backdrop:SetFrameLevel(WorldMapFrame.SidePanelToggle.OpenButton:GetFrameLevel())
|
||||
|
||||
S:HandleCloseButton(WorldMapFrame.BorderFrame.CloseButton)
|
||||
S:HandleMaxMinFrame(WorldMapFrame.BorderFrame.MaximizeMinimizeFrame)
|
||||
WorldMapFrame.BorderFrame.MaximizeMinimizeFrame:ClearAllPoints()
|
||||
WorldMapFrame.BorderFrame.MaximizeMinimizeFrame:Point('RIGHT', WorldMapFrame.BorderFrame.CloseButton, 'LEFT', 12, 0)
|
||||
|
||||
if E.global.general.disableTutorialButtons then
|
||||
WorldMapFrame.BorderFrame.Tutorial:Kill()
|
||||
end
|
||||
|
||||
-- Add a hook to adjust the OverlayFrames
|
||||
hooksecurefunc(WorldMapFrame, 'AddOverlayFrame', S.WorldMapMixin_AddOverlayFrame)
|
||||
|
||||
-- Elements
|
||||
S:HandleDropDownBox(WorldMapFrame.overlayFrames[1]) -- NavBar handled in ElvUI/modules/skins/misc
|
||||
|
||||
WorldMapFrame.overlayFrames[2]:StripTextures()
|
||||
WorldMapFrame.overlayFrames[2].Icon:SetTexture([[Interface\Minimap\Tracking\None]])
|
||||
WorldMapFrame.overlayFrames[2]:SetHighlightTexture([[Interface\Minimap\Tracking\None]], 'ADD')
|
||||
WorldMapFrame.overlayFrames[2]:GetHighlightTexture():SetAllPoints(WorldMapFrame.overlayFrames[2].Icon)
|
||||
|
||||
-- 8.2.5 Party Sync | Credits Aurora/Shestak
|
||||
QuestMapFrame.QuestSessionManagement:StripTextures()
|
||||
|
||||
local ExecuteSessionCommand = QuestMapFrame.QuestSessionManagement.ExecuteSessionCommand
|
||||
ExecuteSessionCommand:CreateBackdrop()
|
||||
ExecuteSessionCommand:StyleButton()
|
||||
|
||||
local icon = ExecuteSessionCommand:CreateTexture(nil, 'ARTWORK')
|
||||
icon:Point('TOPLEFT', 0, 0)
|
||||
icon:Point('BOTTOMRIGHT', 0, 0)
|
||||
ExecuteSessionCommand.normalIcon = icon
|
||||
|
||||
local sessionCommandToButtonAtlas = {
|
||||
[_G.Enum.QuestSessionCommand.Start] = 'QuestSharing-DialogIcon',
|
||||
[_G.Enum.QuestSessionCommand.Stop] = 'QuestSharing-Stop-DialogIcon'
|
||||
}
|
||||
|
||||
hooksecurefunc(QuestMapFrame.QuestSessionManagement, 'UpdateExecuteCommandAtlases', function(s, command)
|
||||
s.ExecuteSessionCommand:SetNormalTexture('')
|
||||
s.ExecuteSessionCommand:SetPushedTexture('')
|
||||
s.ExecuteSessionCommand:SetDisabledTexture('')
|
||||
|
||||
local atlas = sessionCommandToButtonAtlas[command]
|
||||
if atlas then
|
||||
s.ExecuteSessionCommand.normalIcon:SetAtlas(atlas)
|
||||
end
|
||||
end)
|
||||
|
||||
hooksecurefunc(_G.QuestSessionManager, 'NotifyDialogShow', function(_, dialog)
|
||||
if not dialog.isSkinned then
|
||||
dialog:StripTextures()
|
||||
dialog:CreateBackdrop('Transparent')
|
||||
S:HandleButton(dialog.ButtonContainer.Confirm)
|
||||
S:HandleButton(dialog.ButtonContainer.Decline)
|
||||
if dialog.MinimizeButton then
|
||||
dialog.MinimizeButton:StripTextures()
|
||||
dialog.MinimizeButton:Size(16, 16)
|
||||
|
||||
dialog.MinimizeButton.tex = dialog.MinimizeButton:CreateTexture(nil, 'OVERLAY')
|
||||
dialog.MinimizeButton.tex:SetTexture(E.Media.Textures.MinusButton)
|
||||
dialog.MinimizeButton.tex:SetInside()
|
||||
dialog.MinimizeButton:SetHighlightTexture([[Interface\Buttons\UI-PlusButton-Hilight]], 'ADD')
|
||||
end
|
||||
dialog.isSkinned = true
|
||||
end
|
||||
end)
|
||||
|
||||
hooksecurefunc('QuestLogQuests_Update', function()
|
||||
for header in QuestScrollFrame.campaignHeaderFramePool:EnumerateActive() do
|
||||
SkinHeaders(header)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
S:AddCallback('WorldMapFrame')
|
||||
Reference in New Issue
Block a user