You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

317 lines
11 KiB

4 years ago
local E, L, V, P, G = unpack(ElvUI)
local S = E:GetModule('Skins')
local _G = _G
local next, unpack = next, unpack
local ipairs, select = ipairs, select
4 years ago
local C_CreatureInfo_GetClassInfo = C_CreatureInfo.GetClassInfo
local FRIENDS_BNET_BACKGROUND_COLOR = FRIENDS_BNET_BACKGROUND_COLOR
local FRIENDS_WOW_BACKGROUND_COLOR = FRIENDS_WOW_BACKGROUND_COLOR
local BATTLENET_FONT_COLOR = BATTLENET_FONT_COLOR
local GREEN_FONT_COLOR = GREEN_FONT_COLOR
local hooksecurefunc = hooksecurefunc
local CreateFrame = CreateFrame
local ClubTypeGuild = Enum.ClubType.Guild
local ClubTypeBattleNet = Enum.ClubType.BattleNet
3 years ago
local function UpdateNames(button)
if not button.expanded then return end
4 years ago
3 years ago
local memberInfo = button:GetMemberInfo()
4 years ago
if memberInfo and memberInfo.classID then
local classInfo = C_CreatureInfo_GetClassInfo(memberInfo.classID)
if classInfo then
local tcoords = _G.CLASS_ICON_TCOORDS[classInfo.classFile]
3 years ago
button.Class:SetTexCoord(tcoords[1] + .022, tcoords[2] - .025, tcoords[3] + .022, tcoords[4] - .025)
4 years ago
end
end
end
3 years ago
local function HandleCommunitiesButtons(button, color)
button.Background:Hide()
button.CircleMask:Hide()
button:SetFrameLevel(button:GetFrameLevel() + 5)
4 years ago
3 years ago
S:HandleIcon(button.Icon)
button.Icon:Point('TOPLEFT', 8, -20)
button.IconRing:Hide()
4 years ago
3 years ago
if not button.bg then
button.bg = CreateFrame('Frame', nil, button)
button.bg:CreateBackdrop('Transparent')
button.bg:SetPoint('TOPLEFT', 7, -16)
button.bg:SetPoint('BOTTOMRIGHT', -10, 12)
4 years ago
end
if color then
3 years ago
button.Selection:ClearAllPoints()
button.Selection:SetAllPoints(button.bg)
4 years ago
if color == 1 then
3 years ago
button.Selection:SetColorTexture(GREEN_FONT_COLOR.r, GREEN_FONT_COLOR.g, GREEN_FONT_COLOR.b, 0.2)
4 years ago
else
3 years ago
button.Selection:SetColorTexture(BATTLENET_FONT_COLOR.r, BATTLENET_FONT_COLOR.g, BATTLENET_FONT_COLOR.b, 0.2)
4 years ago
end
end
3 years ago
local highlight = button:GetHighlightTexture()
4 years ago
highlight:SetColorTexture(1, 1, 1, 0.3)
3 years ago
highlight:SetInside(button.bg)
4 years ago
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()
_G.CommunitiesFrameInset.Bg:Hide()
CommunitiesFrame.CommunitiesList.InsetFrame:StripTextures()
S:HandleFrame(CommunitiesFrame, true, nil, -5, 0, -1, 0)
_G.CommunitiesFrameCloseButton:Point('TOPRIGHT', 0, 2)
local CommunitiesFrameCommunitiesList = _G.CommunitiesFrameCommunitiesList
CommunitiesFrameCommunitiesList.FilligreeOverlay:Hide()
CommunitiesFrameCommunitiesList.Bg:Hide()
CommunitiesFrameCommunitiesList.TopFiligree:Hide()
CommunitiesFrameCommunitiesList.BottomFiligree:Hide()
_G.CommunitiesFrameCommunitiesListListScrollFrame:StripTextures()
for i = 1, 5 do
S:HandleTab(_G['CommunitiesFrameTab'..i])
end
-- Reposition Tabs
_G.CommunitiesFrameTab1:ClearAllPoints()
_G.CommunitiesFrameTab1:Point('TOPLEFT', _G.CommunitiesFrame, 'BOTTOMLEFT', -15, 0)
_G.CommunitiesFrameTab2:Point('TOPLEFT', _G.CommunitiesFrameTab1, 'TOPRIGHT', -19, 0)
_G.CommunitiesFrameTab3:Point('TOPLEFT', _G.CommunitiesFrameTab2, 'TOPRIGHT', -19, 0)
_G.CommunitiesFrameTab4:Point('TOPLEFT', _G.CommunitiesFrameTab3, 'TOPRIGHT', -19, 0)
_G.CommunitiesFrameTab5:Point('TOPLEFT', _G.CommunitiesFrameTab4, 'TOPRIGHT', -19, 0)
3 years ago
hooksecurefunc(_G.CommunitiesListEntryMixin, 'SetClubInfo', function(list, clubInfo, isInvitation, isTicket)
4 years ago
if clubInfo then
3 years ago
list.Background:Hide()
list.CircleMask:Hide()
list.Icon:ClearAllPoints()
list.Icon:Point('TOPLEFT', 8, -17)
S:HandleIcon(list.Icon)
list.IconRing:Hide()
if not list.IconBorder then
list.IconBorder = list:CreateTexture(nil, 'BORDER')
list.IconBorder:SetOutside(list.Icon)
list.IconBorder:Hide()
4 years ago
end
3 years ago
if not list.bg then
list.bg = CreateFrame('Frame', nil, list)
list.bg:CreateBackdrop('Transparent')
list.bg:Point('TOPLEFT', 7, -16)
list.bg:Point('BOTTOMRIGHT', -10, 12)
4 years ago
end
3 years ago
list.Selection:ClearAllPoints()
list.Selection:SetAllPoints(list.bg)
4 years ago
local isGuild = clubInfo.clubType == ClubTypeGuild
if isGuild then
3 years ago
list.Selection:SetColorTexture(0, 1, 0, 0.2)
4 years ago
else
3 years ago
list.Selection:SetColorTexture(FRIENDS_BNET_BACKGROUND_COLOR.r, FRIENDS_BNET_BACKGROUND_COLOR.g, FRIENDS_BNET_BACKGROUND_COLOR.b, 0.2)
4 years ago
end
if not isInvitation and not isGuild and not isTicket then
if clubInfo.clubType == ClubTypeBattleNet then
3 years ago
list.IconBorder:SetColorTexture(FRIENDS_BNET_BACKGROUND_COLOR.r, FRIENDS_BNET_BACKGROUND_COLOR.g, FRIENDS_BNET_BACKGROUND_COLOR.b)
4 years ago
else
3 years ago
list.IconBorder:SetColorTexture(FRIENDS_WOW_BACKGROUND_COLOR.r, FRIENDS_WOW_BACKGROUND_COLOR.g, FRIENDS_WOW_BACKGROUND_COLOR.b)
4 years ago
end
3 years ago
list.IconBorder:Show()
4 years ago
else
3 years ago
list.IconBorder:Hide()
4 years ago
end
3 years ago
local highlight = list:GetHighlightTexture()
4 years ago
highlight:SetColorTexture(1, 1, 1, 0.3)
3 years ago
highlight:SetAllPoints(list.bg)
4 years ago
end
end)
-- Add Community Button
3 years ago
hooksecurefunc(_G.CommunitiesListEntryMixin, 'SetAddCommunity', function(list) HandleCommunitiesButtons(list, 1) end)
--hooksecurefunc(_G.CommunitiesListEntryMixin, 'SetFindCommunity', function(list) HandleCommunitiesButtons(list, 2) end) -- Not on classic.. huh!?
4 years ago
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:HandleInsetFrame(CommunitiesFrame.CommunitiesList)
S:HandleMaxMinFrame(CommunitiesFrame.MaximizeMinimizeFrame)
S:HandleButton(CommunitiesFrame.InviteButton)
CommunitiesFrame.AddToChatButton:ClearAllPoints()
CommunitiesFrame.AddToChatButton:Point('BOTTOM', CommunitiesFrame.ChatEditBox, 'BOTTOMRIGHT', -5, -30) -- needs probably adjustment
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, nil, true) -- use an override here to adjust the damn text position >.>
3 years ago
hooksecurefunc(_G.CommunitiesNotificationSettingsStreamEntryMixin, 'SetFilter', function(entry)
entry.ShowNotificationsButton:SetSize(20, 20)
entry.HideNotificationsButton:SetSize(20, 20)
S:HandleCheckBox(entry.ShowNotificationsButton)
S:HandleCheckBox(entry.HideNotificationsButton)
4 years ago
end)
-- [[ CHAT TAB ]]
CommunitiesFrame.MemberList:StripTextures()
CommunitiesFrame.MemberList.InsetFrame:Hide()
CommunitiesFrame.Chat:StripTextures()
CommunitiesFrame.Chat.InsetFrame:SetTemplate('Transparent')
S:HandleEditBox(CommunitiesFrame.ChatEditBox)
CommunitiesFrame.ChatEditBox:Size(120, 20)
-- Member Details
CommunitiesFrame.InvitationFrame:StripTextures()
CommunitiesFrame.InvitationFrame:CreateBackdrop('Transparent')
-- [[ 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:HandleButton(CommunitiesFrame.CommunitiesControlFrame.CommunitiesSettingsButton)
S:HandleCheckBox(CommunitiesFrame.MemberList.ShowOfflineButton)
CommunitiesFrame.MemberList.ShowOfflineButton:Size(25)
4 years ago
3 years ago
hooksecurefunc(CommunitiesFrame.MemberList, 'RefreshListDisplay', function(members)
for _, child in next, { members.ColumnDisplay:GetChildren() } do
4 years ago
if not child.IsSkinned then
child:StripTextures()
child:SetTemplate('Transparent')
child.IsSkinned = true
end
end
3 years ago
for _, button in ipairs(members.ListScrollFrame.buttons or {}) do
4 years ago
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:SetTemplate('Transparent')
end
button.hooked = true
end
if button and button.bg then
button.bg:SetShown(button.Class:IsShown())
end
end
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:StripTextures()
Settings:CreateBackdrop('Transparent')
Settings.backdrop:SetAllPoints()
Settings.IconPreview:SetTexCoord(unpack(E.TexCoords))
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)
end
S:AddCallbackForAddon('Blizzard_Communities')