update Friends skin

This commit is contained in:
Crum
2017-12-15 21:52:35 -06:00
parent f1a66d8761
commit 3826e8d6a2
2 changed files with 176 additions and 23 deletions
Binary file not shown.
@@ -3,15 +3,17 @@ local S = E:GetModule("Skins");
--Cache global variables
--Lua functions
local _G = getfenv()
local _G = _G
local unpack = unpack
local upper = string.upper
--WoW API / Variables
local hooksecurefunc = hooksecurefunc
local GetWhoInfo = GetWhoInfo
local GetGuildRosterInfo = GetGuildRosterInfo
local GUILDMEMBERS_TO_DISPLAY = GUILDMEMBERS_TO_DISPLAY
local RAID_CLASS_COLORS = RAID_CLASS_COLORS
local CUSTOM_CLASS_COLORS = CUSTOM_CLASS_COLORS
local HookScript = HookScript
local hooksecurefunc = hooksecurefunc
function LoadSkin()
-- if E.private.skins.blizzard.enable ~= true or E.private.skins.blizzard.friends ~= true then return end
@@ -47,7 +49,6 @@ function LoadSkin()
local width, height = (f:GetWidth() * (scale or 0.5)), f:GetHeight()
local leftGrad = f:CreateTexture(nil, "HIGHLIGHT")
-- leftGrad:Size(width, height)
leftGrad:SetWidth(width)
leftGrad:SetHeight(height)
leftGrad:SetPoint("LEFT", f, "CENTER")
@@ -55,7 +56,6 @@ function LoadSkin()
leftGrad:SetGradientAlpha("Horizontal", r, g, b, 0.35, r, g, b, 0)
local rightGrad = f:CreateTexture(nil, "HIGHLIGHT")
-- rightGrad:Size(width, height)
rightGrad:SetWidth(width)
rightGrad:SetHeight(height)
rightGrad:SetPoint("RIGHT", f, "CENTER")
@@ -102,6 +102,20 @@ function LoadSkin()
end
-- Who Frame
WhoFrameColumnHeader3:ClearAllPoints()
WhoFrameColumnHeader3:SetPoint("TOPLEFT", 20, -70)
WhoFrameColumnHeader4:ClearAllPoints()
WhoFrameColumnHeader4:SetPoint("LEFT", WhoFrameColumnHeader3, "RIGHT", -2, -0)
WhoFrameColumnHeader4:SetWidth(48)
WhoFrameColumnHeader1:ClearAllPoints()
WhoFrameColumnHeader1:SetPoint("LEFT", WhoFrameColumnHeader4, "RIGHT", -2, -0)
WhoFrameColumnHeader1:SetWidth(105)
WhoFrameColumnHeader2:ClearAllPoints()
WhoFrameColumnHeader2:SetPoint("LEFT", WhoFrameColumnHeader1, "RIGHT", -2, -0)
for i = 1, 4 do
E:StripTextures(_G["WhoFrameColumnHeader"..i])
E:StyleButton(_G["WhoFrameColumnHeader"..i], nil, true)
@@ -109,12 +123,38 @@ function LoadSkin()
S:HandleDropDownBox(WhoFrameDropDown)
for i = 1, 17 do
local button = _G["WhoFrameButton" .. i]
local level = _G["WhoFrameButton" .. i .. "Level"]
local name = _G["WhoFrameButton" .. i .. "Name"]
button.icon = button:CreateTexture("$parentIcon", "ARTWORK")
button.icon:SetPoint("LEFT", 45, 0)
button.icon:SetWidth(15)
button.icon:SetHeight(15)
button.icon:SetTexture("Interface\\AddOns\\ElvUI\\Media\\Textures\\Icons-Classes")
E:CreateBackdrop(button, "Default", true)
button.backdrop:SetAllPoints(button.icon)
StyleButton(button)
level:ClearAllPoints()
level:SetPoint("TOPLEFT", 12, -2)
name:SetWidth(100)
name:SetHeight(14)
name:ClearAllPoints()
name:SetPoint("LEFT", 85, 0)
_G["WhoFrameButton" .. i .. "Class"]:Hide()
end
E:StripTextures(WhoListScrollFrame)
S:HandleScrollBar(WhoListScrollFrameScrollBar)
S:HandleEditBox(WhoFrameEditBox)
WhoFrameEditBox:SetPoint("BOTTOMLEFT", 17, 108)
WhoFrameEditBox:SetWidth(326)
WhoFrameEditBox:SetWidth(338)
WhoFrameEditBox:SetHeight(18)
S:HandleButton(WhoFrameWhoButton)
@@ -127,11 +167,139 @@ function LoadSkin()
S:HandleButton(WhoFrameGroupInviteButton)
hooksecurefunc("WhoList_Update", function()
local whoOffset = FauxScrollFrame_GetOffset(WhoListScrollFrame)
local playerZone = GetRealZoneText()
local playerGuild = GetGuildInfo("player")
local playerRace = UnitRace("player")
for i = 1, WHOS_TO_DISPLAY, 1 do
local index = whoOffset + i
local button = _G["WhoFrameButton"..i]
local nameText = _G["WhoFrameButton"..i.."Name"]
local levelText = _G["WhoFrameButton"..i.."Level"]
local classText = _G["WhoFrameButton"..i.."Class"]
local variableText = _G["WhoFrameButton"..i.."Variable"]
_, guild, level, race, class, zone = GetWhoInfo(index)
if class then
class = strupper(class)
end
local classTextColor = CUSTOM_CLASS_COLORS and CUSTOM_CLASS_COLORS[class] or RAID_CLASS_COLORS[class]
local levelTextColor = GetQuestDifficultyColor(level)
if class then
button.icon:Show()
button.icon:SetTexCoord(unpack(CLASS_ICON_TCOORDS[class]))
nameText:SetTextColor(classTextColor.r, classTextColor.g, classTextColor.b)
levelText:SetTextColor(levelTextColor.r, levelTextColor.g, levelTextColor.b)
if zone == playerZone then
zone = "|cff00ff00"..zone
end
if guild == playerGuild then
guild = "|cff00ff00"..guild
end
if race == playerRace then
race = "|cff00ff00"..race
end
local columnTable = {zone, guild, race}
variableText:SetText(columnTable[UIDropDownMenu_GetSelectedID(WhoFrameDropDown)])
else
button.icon:Hide()
end
end
end)
-- Guild Frame
GuildFrameColumnHeader3:ClearAllPoints()
GuildFrameColumnHeader3:SetPoint("TOPLEFT", 20, -70)
GuildFrameColumnHeader4:ClearAllPoints()
GuildFrameColumnHeader4:SetPoint("LEFT", GuildFrameColumnHeader3, "RIGHT", -2, -0)
GuildFrameColumnHeader4:SetWidth(48)
GuildFrameColumnHeader1:ClearAllPoints()
GuildFrameColumnHeader1:SetPoint("LEFT", GuildFrameColumnHeader4, "RIGHT", -2, -0)
GuildFrameColumnHeader1:SetWidth(105)
GuildFrameColumnHeader2:ClearAllPoints()
GuildFrameColumnHeader2:SetPoint("LEFT", GuildFrameColumnHeader1, "RIGHT", -2, -0)
GuildFrameColumnHeader2:SetWidth(127)
for i = 1, GUILDMEMBERS_TO_DISPLAY do
local button = _G["GuildFrameButton"..i]
StyleButton(button)
StyleButton(_G["GuildFrameGuildStatusButton"..i])
button.icon = button:CreateTexture("$parentIcon", "ARTWORK")
button.icon:SetPoint("LEFT", 48, -3)
button.icon:SetWidth(15)
button.icon:SetHeight(15)
button.icon:SetTexture("Interface\\AddOns\\ElvUI\\Media\\Textures\\Icons-Classes")
E:CreateBackdrop(button, "Default", true)
button.backdrop:SetAllPoints(button.icon)
_G["GuildFrameButton" .. i .. "Level"]:ClearAllPoints()
_G["GuildFrameButton" .. i .. "Level"]:SetPoint("TOPLEFT", 10, -3)
_G["GuildFrameButton" .. i .. "Name"]:SetWidth(100)
_G["GuildFrameButton" .. i .. "Name"]:SetHeight(14)
_G["GuildFrameButton" .. i .. "Name"]:ClearAllPoints()
_G["GuildFrameButton" .. i .. "Name"]:SetPoint("LEFT", 85, -3)
_G["GuildFrameButton" .. i .. "Class"]:Hide()
end
hooksecurefunc("GuildStatus_Update", function()
local _, level, online, classFileName
local button, buttonText, classTextColor, levelTextColor
if FriendsFrame.playerStatusFrame then
for i = 1, GUILDMEMBERS_TO_DISPLAY, 1 do
button = _G["GuildFrameButton" .. i]
_, _, _, level, class, _, _, _, online = GetGuildRosterInfo(button.guildIndex)
if class then
class = upper(class)
end
if class then
if online then
classTextColor = CUSTOM_CLASS_COLORS and CUSTOM_CLASS_COLORS[class] or RAID_CLASS_COLORS[class]
levelTextColor = GetQuestDifficultyColor(level)
buttonText = _G["GuildFrameButton" .. i .. "Name"]
buttonText:SetTextColor(classTextColor.r, classTextColor.g, classTextColor.b)
buttonText = _G["GuildFrameButton" .. i .. "Level"]
buttonText:SetTextColor(levelTextColor.r, levelTextColor.g, levelTextColor.b)
end
button.icon:SetTexCoord(unpack(CLASS_ICON_TCOORDS[class]))
end
end
else
local classFileName
for i = 1, GUILDMEMBERS_TO_DISPLAY, 1 do
button = _G["GuildFrameGuildStatusButton" .. i]
_, _, _, _, class, _, _, _, online = GetGuildRosterInfo(button.guildIndex)
if class then
class = upper(class)
end
if class then
if online then
classTextColor = CUSTOM_CLASS_COLORS and CUSTOM_CLASS_COLORS[class] or RAID_CLASS_COLORS[class]
_G["GuildFrameGuildStatusButton" .. i .. "Name"]:SetTextColor(classTextColor.r, classTextColor.g, classTextColor.b)
_G["GuildFrameGuildStatusButton" .. i .. "Online"]:SetTextColor(1.0, 1.0, 1.0)
end
end
end
end
end)
E:StripTextures(GuildFrameLFGFrame)
E:SetTemplate(GuildFrameLFGFrame, "Transparent")
@@ -159,8 +327,10 @@ function LoadSkin()
GuildMemberDetailFrame:SetPoint("TOPLEFT", GuildFrame, "TOPRIGHT", -31, -13)
S:HandleCloseButton(GuildMemberDetailCloseButton)
GuildMemberDetailCloseButton:SetPoint("TOPRIGHT", 2, 2)
S:HandleButton(GuildFrameControlButton)
S:HandleButton(GuildMemberRemoveButton)
GuildMemberRemoveButton:SetPoint("BOTTOMLEFT", 8, 7)
S:HandleButton(GuildMemberGroupInviteButton)
GuildMemberGroupInviteButton:SetPoint("LEFT", GuildMemberRemoveButton, "RIGHT", 3, 0)
@@ -184,25 +354,9 @@ function LoadSkin()
S:HandleCloseButton(GuildInfoCloseButton)
S:HandleButton(GuildInfoSaveButton)
GuildInfoSaveButton:SetPoint("BOTTOMLEFT", 104, 11)
GuildInfoSaveButton:SetPoint("BOTTOMLEFT", 8, 11)
S:HandleButton(GuildInfoCancelButton)
GuildInfoCancelButton:SetPoint("LEFT", GuildInfoSaveButton, "RIGHT", 3, 0)
-- S:HandleButton(GuildInfoGuildEventButton)
-- GuildInfoGuildEventButton:SetPoint("RIGHT", GuildInfoSaveButton, "LEFT", -28, 0)
-- GuildEventLog Frame
-- E:StripTextures(GuildEventLogFrame)
-- E:CreateBackdrop(GuildEventLogFrame, "Transparent")
-- GuildEventLogFrame.backdrop:SetPoint("TOPLEFT", 3, -6)
-- GuildEventLogFrame.backdrop:SetPoint("BOTTOMRIGHT", -2, 5)
-- E:SetTemplate(GuildEventFrame, "Default")
-- S:HandleScrollBar(GuildEventLogScrollFrameScrollBar)
-- S:HandleCloseButton(GuildEventLogCloseButton)
-- GuildEventLogCancelButton:SetPoint("BOTTOMRIGHT", -9, 9)
-- S:HandleButton(GuildEventLogCancelButton)
-- Control Frame
E:StripTextures(GuildControlPopupFrame)
@@ -211,7 +365,6 @@ function LoadSkin()
GuildControlPopupFrame.backdrop:SetPoint("BOTTOMRIGHT", -27, 27)
S:HandleDropDownBox(GuildControlPopupFrameDropDown, 185)
-- GuildControlPopupFrameDropDownButton:Size(16)
GuildControlPopupFrameDropDownButton:SetWidth(16)
GuildControlPopupFrameDropDownButton:SetHeight(16)