781 lines
30 KiB
Lua
781 lines
30 KiB
Lua
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')
|