ElvUI/Modules/Skins/Blizzard/Guild.lua

275 lines
9.1 KiB
Lua
Raw Permalink Normal View History

2020-11-13 14:27:50 -05:00
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')