303 lines
9.8 KiB
Lua
303 lines
9.8 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 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')
|