This commit is contained in:
Andrew6810
2022-10-21 07:09:01 -07:00
parent cbdabfbcca
commit 60ef8a38af
614 changed files with 138573 additions and 2 deletions
+491
View File
@@ -0,0 +1,491 @@
local E, _, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
local select = select
--WoW API / Variables
local hooksecurefunc = hooksecurefunc
-- functions that were overwritten, we need these to
-- finish the function call when our code executes!
local oldRegisterAsWidget, oldRegisterAsContainer
-- these do *not* need to match the current lib minor version
-- these numbers are used to not attempt skinning way older
-- versions of AceGUI and AceConfigDialog.
local minorGUI, minorConfigDialog = 1, 76
function S:Ace3_SkinDropdownPullout()
if self and self.obj then
local pullout = self.obj.pullout
local dropdown = self.obj.dropdown
if pullout and pullout.frame then
if pullout.frame.template and pullout.slider.template then return end
if not pullout.frame.template then
pullout.frame:SetTemplate("Default", true)
end
if not pullout.slider.template then
pullout.slider:SetTemplate("Default")
pullout.slider:Point("TOPRIGHT", pullout.frame, "TOPRIGHT", -10, -10)
pullout.slider:Point("BOTTOMRIGHT", pullout.frame, "BOTTOMRIGHT", -10, 10)
if pullout.slider:GetThumbTexture() then
pullout.slider:SetThumbTexture(E.Media.Textures.Melli)
pullout.slider:GetThumbTexture():SetVertexColor(1, 0.82, 0, 0.8)
pullout.slider:GetThumbTexture():Size(10, 14)
end
end
elseif dropdown then
dropdown:SetTemplate("Default", true)
if dropdown.slider then
dropdown.slider:SetTemplate("Default")
dropdown.slider:Point("TOPRIGHT", dropdown, "TOPRIGHT", -10, -10)
dropdown.slider:Point("BOTTOMRIGHT", dropdown, "BOTTOMRIGHT", -10, 10)
if dropdown.slider:GetThumbTexture() then
dropdown.slider:SetThumbTexture(E.Media.Textures.Melli)
dropdown.slider:GetThumbTexture():SetVertexColor(1, 0.82, 0, 0.8)
dropdown.slider:GetThumbTexture():Size(10, 14)
end
end
if TYPE == "LSM30_Sound" then
local frame = self.obj.frame
local width = frame:GetWidth()
dropdown:Point("TOPLEFT", frame, "BOTTOMLEFT")
dropdown:Point("TOPRIGHT", frame, "BOTTOMRIGHT", width < 160 and (160 - width) or 30, 0)
end
end
end
end
function S:Ace3_CheckBoxIsEnableSwitch(widget)
local text = widget.text and widget.text:GetText()
if text then
local enabled, disabled = text == S.Ace3_L.GREEN_ENABLE, text == S.Ace3_L.RED_ENABLE
local isSwitch = (text == S.Ace3_L.Enable) or enabled or disabled
return isSwitch
end
end
function S:Ace3_RegisterAsWidget(widget)
if not E.private.skins.ace3.enable then
return oldRegisterAsWidget(self, widget)
end
local TYPE = widget.type
if TYPE == "MultiLineEditBox" then
local frame = widget.frame
local scrollBG = widget.scrollBG or select(2, frame:GetChildren()) or frame:GetChildren()
local scrollBar = widget.scrollBar or _G[widget.scrollframe:GetName().."ScrollBar"]
if not scrollBG.template then
scrollBG:SetTemplate()
end
S:HandleButton(widget.button)
S:HandleScrollBar(scrollBar)
scrollBG:Point("TOPRIGHT", scrollBar, "TOPLEFT", -3, 19)
widget.scrollFrame:Point("BOTTOMRIGHT", scrollBG, "BOTTOMRIGHT", -4, 8)
elseif TYPE == "CheckBox" then
local check = widget.check
local checkbg = widget.checkbg
local highlight = widget.highlight
checkbg:CreateBackdrop()
checkbg.backdrop:SetInside(widget.checkbg, 4, 4)
checkbg.backdrop:SetFrameLevel(widget.checkbg.backdrop:GetFrameLevel() + 1)
checkbg:SetTexture()
checkbg.SetTexture = E.noop
check:SetParent(checkbg.backdrop)
highlight:SetTexture()
highlight.SetTexture = E.noop
hooksecurefunc(widget, "SetDisabled", function(w, value)
local isSwitch = S:Ace3_CheckBoxIsEnableSwitch(w)
if value then
if isSwitch then
w:SetLabel(S.Ace3_L.RED_ENABLE)
end
end
end)
hooksecurefunc(widget, "SetValue", function(w, value)
local isSwitch = S:Ace3_CheckBoxIsEnableSwitch(w)
if isSwitch then
w:SetLabel(value and S.Ace3_L.GREEN_ENABLE or S.Ace3_L.RED_ENABLE)
end
end)
if E.private.skins.checkBoxSkin then
checkbg.backdrop:SetInside(widget.checkbg, 5, 5)
check:SetTexture(E.Media.Textures.Melli)
check.SetTexture = E.noop
check:SetInside(widget.checkbg.backdrop)
hooksecurefunc(check, "SetDesaturated", function(chk, value)
if value == true then
chk:SetDesaturated(false)
end
end)
hooksecurefunc(widget, "SetDisabled", function(w, value)
local isSwitch = S:Ace3_CheckBoxIsEnableSwitch(w)
if value then
if isSwitch then
check:SetVertexColor(1.0, 0.2, 0.2, 1.0)
else
check:SetVertexColor(0.6, 0.6, 0.6, 0.8)
end
end
end)
hooksecurefunc(widget, "SetValue", function(w, value)
local isSwitch = S:Ace3_CheckBoxIsEnableSwitch(w)
if value then
if isSwitch then
check:SetVertexColor(0.2, 1.0, 0.2, 1.0)
else
check:SetVertexColor(1, 0.82, 0, 0.8)
end
else
if w.tristate and value == nil then
check:SetVertexColor(0.6, 0.6, 0.6, 0.8)
end
end
end)
else
check:SetOutside(widget.checkbg.backdrop, 3, 3)
end
elseif TYPE == "Dropdown" then
local frame = widget.dropdown
local button = widget.button
local button_cover = widget.button_cover
local text = widget.text
frame:StripTextures()
S:HandleNextPrevButton(button, nil, {1, 0.8, 0})
if not frame.backdrop then
frame:CreateBackdrop()
end
frame.backdrop:Point("TOPLEFT", 15, -2)
frame.backdrop:Point("BOTTOMRIGHT", -21, 0)
widget.label:ClearAllPoints()
widget.label:Point("BOTTOMLEFT", frame.backdrop, "TOPLEFT", 2, 0)
button:ClearAllPoints()
button:Point("TOPLEFT", frame.backdrop, "TOPRIGHT", -22, -2)
button:Point("BOTTOMRIGHT", frame.backdrop, "BOTTOMRIGHT", -2, 2)
button:SetParent(frame.backdrop)
text:ClearAllPoints()
text:SetJustifyH("RIGHT")
text:Point("RIGHT", button, "LEFT", -3, 0)
text:Point("LEFT", frame.backdrop, "LEFT", 2, 0)
text:SetParent(frame.backdrop)
button:HookScript("OnClick", S.Ace3_SkinDropdownPullout)
if button_cover then
button_cover:HookScript("OnClick", S.Ace3_SkinDropdownPullout)
end
elseif TYPE == "LSM30_Font" or TYPE == "LSM30_Sound" or TYPE == "LSM30_Border" or TYPE == "LSM30_Background" or TYPE == "LSM30_Statusbar" then
local frame = widget.frame
local button = frame.dropButton
local text = frame.text
frame:StripTextures()
S:HandleNextPrevButton(button, nil, {1, 0.8, 0})
if not frame.backdrop then
frame:CreateBackdrop()
end
frame.label:ClearAllPoints()
frame.label:Point("BOTTOMLEFT", frame.backdrop, "TOPLEFT", 2, 0)
text:ClearAllPoints()
text:Point("RIGHT", button, "LEFT", -2, 0)
text:Point("LEFT", frame.backdrop, "LEFT", 2, 0)
button:ClearAllPoints()
button:Point("TOPLEFT", frame.backdrop, "TOPRIGHT", -22, -2)
button:Point("BOTTOMRIGHT", frame.backdrop, "BOTTOMRIGHT", -2, 2)
frame.backdrop:Point("TOPLEFT", 0, -21)
frame.backdrop:Point("BOTTOMRIGHT", -4, -1)
if TYPE == "LSM30_Sound" then
widget.soundbutton:SetParent(frame.backdrop)
widget.soundbutton:ClearAllPoints()
widget.soundbutton:Point("LEFT", frame.backdrop, "LEFT", 2, 0)
elseif TYPE == "LSM30_Statusbar" then
widget.bar:SetParent(frame.backdrop)
widget.bar:ClearAllPoints()
widget.bar:Point("TOPLEFT", frame.backdrop, "TOPLEFT", 2, -2)
widget.bar:Point("BOTTOMRIGHT", button, "BOTTOMLEFT", -1, 0)
end
button:SetParent(frame.backdrop)
text:SetParent(frame.backdrop)
button:HookScript("OnClick", S.Ace3_SkinDropdownPullout)
elseif TYPE == "EditBox" then
local frame = widget.editbox
local button = widget.button
S:HandleEditBox(frame)
S:HandleButton(button)
hooksecurefunc(frame, "SetTextInsets", function(fr, l, r, t, b)
if l == 0 then
fr:SetTextInsets(3, r, t, b)
end
end)
button:Point("RIGHT", frame.backdrop, "RIGHT", -2, 0)
hooksecurefunc(frame, "SetPoint", function(fr, a, b, c, d, e)
if d == 7 then
fr:Point(a, b, c, 0, e)
end
end)
frame.backdrop:Point("TOPLEFT", 0, -2)
frame.backdrop:Point("BOTTOMRIGHT", -1, 0)
frame.backdrop:SetParent(widget.frame)
frame:SetParent(frame.backdrop)
elseif TYPE == "Button" or TYPE == "Button-ElvUI" then
local frame = widget.frame
S:HandleButton(frame, true, nil, true)
frame.backdrop:SetInside()
widget.text:SetParent(frame.backdrop)
elseif TYPE == "Slider" or TYPE == "Slider-ElvUI" then
local frame = widget.slider
local editbox = widget.editbox
local lowtext = widget.lowtext
local hightext = widget.hightext
S:HandleSliderFrame(frame)
editbox:SetTemplate()
editbox:Height(15)
editbox:Point("TOP", frame, "BOTTOM", 0, -1)
lowtext:Point("TOPLEFT", frame, "BOTTOMLEFT", 2, -2)
hightext:Point("TOPRIGHT", frame, "BOTTOMRIGHT", -2, -2)
hooksecurefunc(widget, "SetDisabled", function(w, disabled)
local thumbTex = w.slider:GetThumbTexture()
if disabled then
thumbTex:SetVertexColor(0.6, 0.6, 0.6, 0.8)
else
thumbTex:SetVertexColor(1, 0.82, 0, 0.8)
end
end)
elseif TYPE == "Keybinding" then
local button = widget.button
local msgframe = widget.msgframe
local msg = widget.msgframe.msg
S:HandleButton(button)
msgframe:StripTextures()
msgframe:CreateBackdrop("Default", true)
msgframe.backdrop:SetInside()
msgframe:SetToplevel(true)
msg:ClearAllPoints()
msg:Point("LEFT", 10, 0)
msg:Point("RIGHT", -10, 0)
msg:SetJustifyV("MIDDLE")
msg:Width(msg:GetWidth() + 10)
elseif (TYPE == "ColorPicker" or TYPE == "ColorPicker-ElvUI") then
local frame = widget.frame
local colorSwatch = widget.colorSwatch
if not frame.backdrop then
frame:CreateBackdrop()
end
frame.backdrop:Size(24, 16)
frame.backdrop:ClearAllPoints()
frame.backdrop:Point("LEFT", frame, "LEFT", 4, 0)
frame.backdrop:SetBackdropColor(0, 0, 0, 0)
frame.backdrop.SetBackdropColor = E.noop
colorSwatch:SetTexture(E.media.blankTex)
colorSwatch:ClearAllPoints()
colorSwatch:SetParent(frame.backdrop)
colorSwatch:SetInside(frame.backdrop)
if colorSwatch.background then
colorSwatch.background:SetTexture(0, 0, 0, 0)
end
if colorSwatch.checkers then
colorSwatch.checkers:ClearAllPoints()
colorSwatch.checkers:SetDrawLayer("ARTWORK")
colorSwatch.checkers:SetParent(frame.backdrop)
colorSwatch.checkers:SetInside(frame.backdrop)
end
elseif TYPE == "Icon" then
widget.frame:StripTextures()
end
return oldRegisterAsWidget(self, widget)
end
function S:Ace3_RegisterAsContainer(widget)
if not E.private.skins.ace3.enable then
return oldRegisterAsContainer(self, widget)
end
local TYPE = widget.type
if TYPE == "ScrollFrame" then
S:HandleScrollBar(widget.scrollbar)
widget.scrollbar:Point("TOPLEFT", widget.scrollframe, "TOPRIGHT", 8, -16)
widget.scrollbar:Point("BOTTOMLEFT", widget.scrollframe, "BOTTOMRIGHT", 8, 16)
elseif TYPE == "InlineGroup" or TYPE == "TreeGroup" or TYPE == "TabGroup" or TYPE == "Frame" or TYPE == "DropdownGroup" or TYPE == "Window" then
local frame = widget.content:GetParent()
if TYPE == "Frame" then
frame:StripTextures()
for i = 1, frame:GetNumChildren() do
local child = select(i, frame:GetChildren())
if child:IsObjectType("Button") and child:GetText() then
S:HandleButton(child)
else
child:StripTextures()
end
end
elseif TYPE == "Window" then
frame:StripTextures()
S:HandleCloseButton(frame.obj.closebutton)
end
if TYPE == "InlineGroup" then
frame:SetTemplate("Transparent")
frame.ignoreBackdropColors = true
frame:SetBackdropColor(0, 0, 0, 0.25)
else
frame:SetTemplate("Transparent")
end
if widget.treeframe then
widget.treeframe:SetTemplate("Transparent")
frame:Point("TOPLEFT", widget.treeframe, "TOPRIGHT", 1, 0)
local oldRefreshTree = widget.RefreshTree
widget.RefreshTree = function(wdg, scrollToSelection)
oldRefreshTree(wdg, scrollToSelection)
if not wdg.tree then return end
local status = wdg.status or wdg.localstatus
local groupstatus = status.groups
local lines = wdg.lines
local buttons = wdg.buttons
local offset = status.scrollvalue
for i = offset + 1, #lines do
local button = buttons[i - offset]
if button then
button.highlight:SetTexture(E.Media.Textures.Highlight)
button.highlight:SetVertexColor(1, 0.82, 0, 0.35)
button.highlight:Point("TOPLEFT", 0, 0)
button.highlight:Point("BOTTOMRIGHT", 0, 1)
button.toggle:SetHighlightTexture("")
if groupstatus[lines[i].uniquevalue] then
button.toggle:SetNormalTexture(E.Media.Textures.Minus)
button.toggle:SetPushedTexture(E.Media.Textures.Minus)
else
button.toggle:SetNormalTexture(E.Media.Textures.Plus)
button.toggle:SetPushedTexture(E.Media.Textures.Plus)
end
end
end
end
end
if TYPE == "TabGroup" then
local oldCreateTab = widget.CreateTab
widget.CreateTab = function(wdg, id)
local tab = oldCreateTab(wdg, id)
tab:StripTextures()
tab:CreateBackdrop("Transparent")
tab.backdrop:Point("TOPLEFT", 10, -3)
tab.backdrop:Point("BOTTOMRIGHT", -10, 0)
tab:SetHitRectInsets(10, 10, 3, 0)
return tab
end
end
if widget.scrollbar then
S:HandleScrollBar(widget.scrollbar)
widget.scrollbar:Point("TOPRIGHT", -4, -23)
widget.scrollbar:Point("BOTTOMRIGHT", -4, 23)
end
elseif TYPE == "SimpleGroup" then
local frame = widget.content:GetParent()
frame:SetTemplate("Transparent", nil, true)
frame.ignoreBackdropColors = true
frame:SetBackdropColor(0, 0, 0, 0.25)
end
return oldRegisterAsContainer(self, widget)
end
function S:Ace3_StyleTooltip()
if not self then return end
self:SetTemplate("Transparent", nil, true)
end
function S:Ace3_SkinTooltip(lib, minor) -- lib: AceConfigDialog or AceGUI
-- we only check `minor` here when checking an instance of AceConfigDialog
-- we can safely ignore it when checking AceGUI because we minor check that
-- inside of its own function.
if not lib or (minor and minor < minorConfigDialog) then return end
if lib.tooltip and not S:IsHooked(lib.tooltip, "OnShow") then
S:SecureHookScript(lib.tooltip, "OnShow", S.Ace3_StyleTooltip)
end
if lib.popup and not lib.popup.template then -- StaticPopup
lib.popup:SetTemplate("Transparent")
lib.popup:GetChildren():StripTextures()
S:HandleButton(lib.popup.accept, true)
S:HandleButton(lib.popup.cancel, true)
end
end
function S:HookAce3(lib, minor) -- lib: AceGUI
if not lib or (not minor or minor < minorGUI) then return end
if not S.Ace3_L then
S.Ace3_L = E.Libs.ACL:GetLocale("ElvUI", E.global.general.locale or "enUS")
end
if lib.RegisterAsWidget ~= S.Ace3_RegisterAsWidget then
oldRegisterAsWidget = lib.RegisterAsWidget
lib.RegisterAsWidget = S.Ace3_RegisterAsWidget
end
if lib.RegisterAsContainer ~= S.Ace3_RegisterAsContainer then
oldRegisterAsContainer = lib.RegisterAsContainer
lib.RegisterAsContainer = S.Ace3_RegisterAsContainer
end
S:Ace3_SkinTooltip(lib)
end
@@ -0,0 +1,3 @@
<Ui xmlns="http://www.blizzard.com/wow/ui/">
<Script file="Ace3.lua"/>
</Ui>
@@ -0,0 +1,540 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
local _G = _G
local ipairs = ipairs
local unpack = unpack
--WoW API / Variables
local hooksecurefunc = hooksecurefunc
local GetAchievementNumCriteria = GetAchievementNumCriteria
local GetAchievementCriteriaInfo = GetAchievementCriteriaInfo
local CRITERIA_TYPE_ACHIEVEMENT = CRITERIA_TYPE_ACHIEVEMENT
local function skinAchievement(achievement, biggerIcon)
if achievement.isSkinned then return end
_G[achievement:GetName().."Background"]:Kill()
achievement:StripTextures()
achievement:SetTemplate("Default", true)
achievement.icon:SetTemplate()
achievement.icon:SetSize(biggerIcon and 54 or 36, biggerIcon and 54 or 36)
achievement.icon:ClearAllPoints()
achievement.icon:Point("TOPLEFT", 8, -8)
achievement.icon.bling:Kill()
achievement.icon.frame:Kill()
achievement.icon.texture:SetTexCoord(unpack(E.TexCoords))
achievement.icon.texture:SetInside()
if achievement.highlight then
achievement.highlight:StripTextures()
achievement:HookScript("OnEnter", S.SetModifiedBackdrop)
achievement:HookScript("OnLeave", S.SetOriginalBackdrop)
end
if achievement.label then
achievement.label:SetTextColor(1, 1, 1)
end
if achievement.description then
achievement.description:SetTextColor(.6, .6, .6)
achievement.description.SetTextColor = E.noop
end
if achievement.hiddenDescription then
achievement.hiddenDescription:SetTextColor(1, 1, 1)
end
if achievement.tracked then
S:HandleCheckBox(achievement.tracked, true)
achievement.tracked:Size(14, 14)
achievement.tracked:ClearAllPoints()
achievement.tracked:Point("TOPLEFT", achievement.icon, "BOTTOMLEFT", 0, -2)
end
hooksecurefunc(achievement, "Saturate", function(self)
self:SetBackdropBorderColor(unpack(E.media.bordercolor))
end)
hooksecurefunc(achievement, "Desaturate", function(self)
self:SetBackdropBorderColor(unpack(E.media.bordercolor))
end)
achievement.isSkinned = true
end
S:AddCallback("Skin_AchievementUI_HybridScrollButton", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.achievement then return end
hooksecurefunc("HybridScrollFrame_CreateButtons", function(frame, template)
if template == "AchievementCategoryTemplate" then
for _, button in ipairs(frame.buttons) do
if not button.isSkinned then
button:StripTextures(true)
button:StyleButton()
button.isSkinned = true
end
end
elseif template == "AchievementTemplate" then
for _, achievement in ipairs(frame.buttons) do
skinAchievement(achievement, true)
end
elseif template == "ComparisonTemplate" then
for _, achievement in ipairs(frame.buttons) do
skinAchievement(achievement.player)
skinAchievement(achievement.friend)
end
elseif template == "StatTemplate" then
for _, stats in ipairs(frame.buttons) do
if not stats.isSkinned then
-- stats:StripTextures(true)
stats:StyleButton()
stats.isSkinned = true
end
end
end
end)
end)
S:AddCallbackForAddon("Blizzard_AchievementUI", "Skin_Blizzard_AchievementUI", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.achievement then return end
local frames = {
"AchievementFrame",
-- "AchievementFrameCategories",
"AchievementFrameSummary",
"AchievementFrameSummaryCategoriesHeader",
"AchievementFrameSummaryAchievementsHeader",
"AchievementFrameStatsBG",
"AchievementFrameAchievements",
"AchievementFrameComparison",
"AchievementFrameComparisonHeader",
"AchievementFrameComparisonSummaryPlayer",
"AchievementFrameComparisonSummaryFriend"
}
for _, frame in ipairs(frames) do
_G[frame]:StripTextures(true)
end
local nonameFrames = {
"AchievementFrameStats",
"AchievementFrameSummary",
"AchievementFrameAchievements",
"AchievementFrameComparison"
}
for _, frame in ipairs(nonameFrames) do
frame = _G[frame]
for i = 1, frame:GetNumChildren() do
local child = select(i, frame:GetChildren())
if child and not child:GetName() then
child:SetBackdrop(nil)
end
end
end
local function updatePanelInfo(self)
if self == AchievementFrameComparison then
if AchievementFrame.isComparison then
AchievementFrame:Width(863)
else
AchievementFrame:Width(737)
end
end
S:SetUIPanelWindowInfo(AchievementFrame, "xoffset", 11, nil, true)
S:SetUIPanelWindowInfo(AchievementFrame, "yoffset", -12, nil, true)
S:SetUIPanelWindowInfo(AchievementFrame, "width", nil, -11)
end
AchievementFrame:HookScript("OnShow", updatePanelInfo)
AchievementFrameComparison:HookScript("OnShow", updatePanelInfo)
AchievementFrameComparison:HookScript("OnHide", updatePanelInfo)
S:HandleCloseButton(AchievementFrameCloseButton, AchievementFrame.backdrop)
S:HandleDropDownBox(AchievementFrameFilterDropDown)
S:HandleScrollBar(AchievementFrameCategoriesContainerScrollBar)
S:HandleScrollBar(AchievementFrameAchievementsContainerScrollBar)
S:HandleScrollBar(AchievementFrameStatsContainerScrollBar)
S:HandleScrollBar(AchievementFrameComparisonContainerScrollBar)
S:HandleScrollBar(AchievementFrameComparisonStatsContainerScrollBar)
AchievementFrameHeaderTitle:SetParent(AchievementFrame)
AchievementFrameHeaderTitle:ClearAllPoints()
AchievementFrameHeaderTitle:Point("TOPLEFT", AchievementFrame, "TOPLEFT", -29, -9)
AchievementFrameHeaderPoints:SetParent(AchievementFrame)
AchievementFrameHeaderPoints:ClearAllPoints()
AchievementFrameHeaderPoints:Point("LEFT", AchievementFrameHeaderTitle, "RIGHT", 2, 0)
AchievementFrameHeaderShield:SetParent(AchievementFrame)
AchievementFrameHeader:Hide()
AchievementFrameHeader.Show = E.noop
AchievementFrame:Size(737, 485)
AchievementFrame:SetTemplate("Transparent")
AchievementFrameFilterDropDown:Point("TOPRIGHT", AchievementFrame, "TOPRIGHT", -21, -5)
AchievementFrameCategories:SetTemplate("Default")
AchievementFrameCategories:Point("TOPLEFT", 8, -35)
AchievementFrameCategories:Point("BOTTOMLEFT", 21, 8)
AchievementFrameCategoriesContainerScrollBar:Point("TOPLEFT", AchievementFrameCategoriesContainer, "TOPRIGHT", 3, -14)
AchievementFrameCategoriesContainerScrollBar:Point("BOTTOMLEFT", AchievementFrameCategoriesContainer, "BOTTOMRIGHT", 3, 14)
AchievementFrameSummaryAchievements:Point("TOPLEFT", 5, -10)
AchievementFrameSummaryAchievements:Point("TOPRIGHT", -5, -30)
AchievementFrameAchievements:SetTemplate("Transparent")
AchievementFrameAchievementsContainer:Point("TOPLEFT", 2, -2)
AchievementFrameAchievementsContainer:Point("BOTTOMRIGHT", -2, 4)
AchievementFrameAchievementsContainerScrollBar:Point("TOPLEFT", AchievementFrameAchievementsContainer, "TOPRIGHT", 5, -17)
AchievementFrameAchievementsContainerScrollBar:Point("BOTTOMLEFT", AchievementFrameAchievementsContainer, "BOTTOMRIGHT", 5, 15)
AchievementFrameStats:SetTemplate("Transparent")
AchievementFrameStatsContainerScrollBar:Point("TOPLEFT", AchievementFrameStatsContainer, "TOPRIGHT", 3, -16)
AchievementFrameStatsContainerScrollBar:Point("BOTTOMLEFT", AchievementFrameStatsContainer, "BOTTOMRIGHT", 3, 14)
AchievementFrameComparison:SetTemplate("Transparent")
AchievementFrameComparisonHeader:Point("BOTTOMRIGHT", AchievementFrameComparison, "TOPRIGHT", 50, -1)
AchievementFrameComparison:Point("TOPLEFT", AchievementFrameCategories, "TOPRIGHT", 3, 0)
AchievementFrameComparisonSummary:Height(30)
AchievementFrameComparisonSummary:Point("TOPLEFT", 4, -2)
AchievementFrameComparisonContainer:Point("TOPLEFT", AchievementFrameComparisonSummary, "BOTTOMLEFT", 0, -3)
AchievementFrameComparisonContainerScrollBar:Point("TOPLEFT", AchievementFrameComparisonSummary, "TOPRIGHT", 9, -17)
AchievementFrameComparisonContainerScrollBar:Point("BOTTOMLEFT", AchievementFrameComparisonContainer, "BOTTOMRIGHT", 9, 14)
AchievementFrameComparisonStatsContainer:Point("TOPLEFT", 5, -3)
AchievementFrameComparisonStatsContainerScrollBar:Point("TOPLEFT", AchievementFrameComparisonStatsContainer, "TOPRIGHT", 3, -16)
AchievementFrameComparisonStatsContainerScrollBar:Point("BOTTOMLEFT", AchievementFrameComparisonStatsContainer, "BOTTOMRIGHT", 3, 14)
AchievementFrameAchievementsContainerScrollBar.Show = function(self)
AchievementFrameAchievements:SetWidth(500)
for _, button in ipairs(AchievementFrameAchievements.buttons) do
button:SetWidth(496)
end
getmetatable(self).__index.Show(self)
end
AchievementFrameAchievementsContainerScrollBar.Hide = function(self)
AchievementFrameAchievements:SetWidth(521)
for _, button in ipairs(AchievementFrameAchievements.buttons) do
button:SetWidth(517)
end
getmetatable(self).__index.Hide(self)
end
AchievementFrameStatsContainerScrollBar.Show = function(self)
AchievementFrameStats:SetWidth(500)
for _, button in ipairs(AchievementFrameStats.buttons) do
button:SetWidth(494)
end
getmetatable(self).__index.Show(self)
end
AchievementFrameStatsContainerScrollBar.Hide = function(self)
AchievementFrameStats:SetWidth(521)
for _, button in ipairs(AchievementFrameStats.buttons) do
button:SetWidth(515)
end
getmetatable(self).__index.Hide(self)
end
--[[
AchievementFrameComparisonContainerScrollBar.Show = function(self)
AchievementFrameComparison:SetWidth(626)
AchievementFrameComparisonSummaryPlayer:SetWidth(498)
for _, button in ipairs(AchievementFrameComparisonContainer.buttons) do
button:SetWidth(616)
button.player:SetWidth(498)
end
getmetatable(self).__index.Show(self)
end
]]
AchievementFrameComparisonContainerScrollBar.Hide = function(self)
AchievementFrameComparison:SetWidth(647)
AchievementFrameComparisonSummaryPlayer:SetWidth(519)
for _, button in ipairs(AchievementFrameComparisonContainer.buttons) do
button:SetWidth(637)
button.player:SetWidth(519)
end
getmetatable(self).__index.Hide(self)
end
--[[
AchievementFrameComparisonStatsContainerScrollBar.Show = function(self)
AchievementFrameComparison:SetWidth(626)
for _, button in ipairs(AchievementFrameComparisonStatsContainer.buttons) do
button:SetWidth(616)
end
getmetatable(self).__index.Show(self)
end
]]
AchievementFrameComparisonStatsContainerScrollBar.Hide = function(self)
AchievementFrameComparison:SetWidth(647)
for _, button in ipairs(AchievementFrameComparisonStatsContainer.buttons) do
button:SetWidth(637)
end
getmetatable(self).__index.Hide(self)
end
local function categoriesContainerScripts()
AchievementFrameCategoriesContainerScrollBar.Show = function(self)
ACHIEVEMENTUI_CATEGORIESWIDTH = 176
AchievementFrameCategories:SetWidth(176)
AchievementFrameCategoriesContainer:GetScrollChild():SetWidth(176)
AchievementFrameAchievements:SetPoint("TOPLEFT", "$parentCategories", "TOPRIGHT", 24, 0)
AchievementFrameStats:SetPoint("TOPLEFT", "$parentCategories", "TOPRIGHT", 24, 0)
AchievementFrameComparison:SetPoint("TOPLEFT", "$parentCategories", "TOPRIGHT", 24, 0)
for _, button in ipairs(AchievementFrameCategoriesContainer.buttons) do
AchievementFrameCategories_DisplayButton(button, button.element)
end
getmetatable(self).__index.Show(self)
end
AchievementFrameCategoriesContainerScrollBar.Hide = function(self)
ACHIEVEMENTUI_CATEGORIESWIDTH = 197
AchievementFrameCategories:SetWidth(197)
AchievementFrameCategoriesContainer:GetScrollChild():SetWidth(197)
AchievementFrameAchievements:SetPoint("TOPLEFT", "$parentCategories", "TOPRIGHT", 3, 0)
AchievementFrameStats:SetPoint("TOPLEFT", "$parentCategories", "TOPRIGHT", 3, 0)
AchievementFrameComparison:SetPoint("TOPLEFT", "$parentCategories", "TOPRIGHT", 3, 0)
for _, button in ipairs(AchievementFrameCategoriesContainer.buttons) do
AchievementFrameCategories_DisplayButton(button, button.element)
end
getmetatable(self).__index.Hide(self)
end
end
if AchievementFrameCategoriesContainer.update then
categoriesContainerScripts()
else
AchievementFrameCategories:HookScript("OnEvent", categoriesContainerScripts)
end
for i = 1, 2 do
local tab = _G["AchievementFrameTab"..i]
S:HandleTab(tab)
tab.text:SetPoint("CENTER", 0, 2)
tab.text.SetPoint = E.noop
end
AchievementFrameTab1:Point("BOTTOMLEFT", AchievementFrame, "BOTTOMLEFT", 0, -30)
AchievementFrameTab2:Point("LEFT", AchievementFrameTab1, "RIGHT", -15, 0)
local sbcR, sbcG, sbcB = 4/255, 179/255, 30/255
local function skinStatusBar(bar)
bar:StripTextures()
bar:SetStatusBarTexture(E.media.normTex)
bar:SetStatusBarColor(sbcR, sbcG, sbcB)
bar:CreateBackdrop("Default")
E:RegisterStatusBar(bar)
local barName = bar:GetName()
local title = _G[barName.."Title"]
local label = _G[barName.."Label"]
local text = _G[barName.."Text"]
if title then
title:Point("LEFT", 4, 0)
end
if label then
label:Point("LEFT", 4, 0)
end
if text then
text:Point("RIGHT", -4, 0)
end
end
skinStatusBar(AchievementFrameSummaryCategoriesStatusBar)
skinStatusBar(AchievementFrameComparisonSummaryPlayerStatusBar)
skinStatusBar(AchievementFrameComparisonSummaryFriendStatusBar)
AchievementFrameComparisonSummaryFriendStatusBar.text:ClearAllPoints()
AchievementFrameComparisonSummaryFriendStatusBar.text:Point("CENTER")
for i = 1, 8 do
local frame = _G["AchievementFrameSummaryCategoriesCategory"..i]
local button = _G["AchievementFrameSummaryCategoriesCategory"..i.."Button"]
local highlight = _G["AchievementFrameSummaryCategoriesCategory"..i.."ButtonHighlight"]
local middle = _G["AchievementFrameSummaryCategoriesCategory"..i.."ButtonHighlightMiddle"]
skinStatusBar(frame)
button:StripTextures()
highlight:StripTextures()
middle:SetTexture(1, 1, 1, 0.3)
middle:SetAllPoints(frame)
end
for i = 1, 20 do
_G["AchievementFrameStatsContainerButton"..i]:StyleButton()
_G["AchievementFrameStatsContainerButton"..i.."BG"]:SetTexture(1, 1, 1, 0.2)
_G["AchievementFrameStatsContainerButton"..i.."HeaderLeft"]:Kill()
_G["AchievementFrameStatsContainerButton"..i.."HeaderRight"]:Kill()
_G["AchievementFrameStatsContainerButton"..i.."HeaderMiddle"]:Kill()
local frame = _G["AchievementFrameComparisonStatsContainerButton"..i]
frame:StripTextures()
frame:StyleButton()
_G["AchievementFrameComparisonStatsContainerButton"..i.."BG"]:SetTexture(1, 1, 1, 0.2)
_G["AchievementFrameComparisonStatsContainerButton"..i.."HeaderLeft"]:Kill()
_G["AchievementFrameComparisonStatsContainerButton"..i.."HeaderRight"]:Kill()
_G["AchievementFrameComparisonStatsContainerButton"..i.."HeaderMiddle"]:Kill()
end
hooksecurefunc("AchievementFrameSummary_UpdateAchievements", function()
local frame, prevFrame
for i = 1, ACHIEVEMENTUI_MAX_SUMMARY_ACHIEVEMENTS do
frame = _G["AchievementFrameSummaryAchievement"..i]
skinAchievement(frame)
if i ~= 1 then
prevFrame = _G["AchievementFrameSummaryAchievement"..(i-1)]
frame:ClearAllPoints()
frame:Point("TOPLEFT", prevFrame, "BOTTOMLEFT", 0, -1)
frame:Point("TOPRIGHT", prevFrame, "BOTTOMRIGHT", 0, 1)
end
frame:SetBackdropBorderColor(unpack(E.media.bordercolor))
end
end)
hooksecurefunc("AchievementButton_GetProgressBar", function(index)
local frame = _G["AchievementFrameProgressBar"..index]
if frame and not frame.skinned then
frame:StripTextures()
frame:SetStatusBarTexture(E.media.normTex)
E:RegisterStatusBar(frame)
frame:SetStatusBarColor(sbcR, sbcG, sbcB)
frame:GetStatusBarTexture():SetInside()
frame:Height(frame:GetHeight() + (E.Border + E.Spacing))
frame:SetTemplate("Default")
frame.text:ClearAllPoints()
frame.text:Point("CENTER", frame, "CENTER", 0, -1)
frame.text:SetJustifyH("CENTER")
if index > 1 then
frame:ClearAllPoints()
frame:Point("TOP", _G["AchievementFrameProgressBar"..index-1], "BOTTOM", 0, -5)
frame.SetPoint = E.noop
frame.ClearAllPoints = E.noop
end
frame.skinned = true
end
end)
hooksecurefunc("AchievementObjectives_DisplayCriteria", function(objectivesFrame, id)
local numCriteria = GetAchievementNumCriteria(id)
local textStrings, metas = 0, 0
for i = 1, numCriteria do
local _, criteriaType, completed, _, _, _, _, assetID = GetAchievementCriteriaInfo(id, i)
if criteriaType == CRITERIA_TYPE_ACHIEVEMENT and assetID then
metas = metas + 1
local metaCriteria = AchievementButton_GetMeta(metas)
metaCriteria:Height(21)
metaCriteria:StyleButton()
metaCriteria.border:Kill()
metaCriteria.icon:SetTexCoord(unpack(E.TexCoords))
metaCriteria.icon:Point("TOPLEFT", 2, -2)
metaCriteria.label:Point("LEFT", 26, 0)
if objectivesFrame.completed and completed then
metaCriteria.label:SetShadowOffset(0, 0)
metaCriteria.label:SetTextColor(1, 1, 1, 1)
elseif completed then
metaCriteria.label:SetShadowOffset(1, -1)
metaCriteria.label:SetTextColor(0, 1, 0, 1)
else
metaCriteria.label:SetShadowOffset(1, -1)
metaCriteria.label:SetTextColor(.6, .6, .6, 1)
end
elseif criteriaType ~= 1 then
textStrings = textStrings + 1
local criteria = AchievementButton_GetCriteria(textStrings)
if objectivesFrame.completed and completed then
criteria.name:SetTextColor(1, 1, 1, 1)
criteria.name:SetShadowOffset(0, 0)
elseif completed then
criteria.name:SetTextColor(0, 1, 0, 1)
criteria.name:SetShadowOffset(1, -1)
else
criteria.name:SetTextColor(.6, .6, .6, 1)
criteria.name:SetShadowOffset(1, -1)
end
end
end
end)
hooksecurefunc("AchievementObjectives_DisplayProgressiveAchievement", function(objectivesFrame, id)
local mini
for i = 1, 12 do
mini = _G["AchievementFrameMiniAchievement"..i]
if mini and not mini.isSkinned then
local icon = _G["AchievementFrameMiniAchievement"..i.."Icon"]
local points = _G["AchievementFrameMiniAchievement"..i.."Points"]
local border = _G["AchievementFrameMiniAchievement"..i.."Border"]
local shield = _G["AchievementFrameMiniAchievement"..i.."Shield"]
mini:SetTemplate()
mini:SetBackdropColor(0, 0, 0, 0)
mini:Size(32)
local prevFrame = _G["AchievementFrameMiniAchievement"..i - 1]
if i == 1 then
mini:Point("TOPLEFT", 6, -4)
elseif i == 7 then
mini:Point("TOPLEFT", AchievementFrameMiniAchievement1, "BOTTOMLEFT", 0, -20)
else
mini:Point("TOPLEFT", prevFrame, "TOPRIGHT", 10, 0)
end
mini.SetPoint = E.noop
icon:SetTexCoord(unpack(E.TexCoords))
icon:SetInside()
points:Point("BOTTOMRIGHT", -8, -15)
points:SetTextColor(1, 0.80, 0.10)
border:Kill()
shield:Kill()
mini.isSkinned = true
end
end
end)
end)
+73
View File
@@ -0,0 +1,73 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
local _G = _G
local unpack = unpack
local tonumber = tonumber
local match = string.match
--WoW API / Variables
S:AddCallback("Skin_Alerts", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.alertframes then return end
S:RawHook("AchievementAlertFrame_GetAlertFrame", function()
local frame = S.hooks.AchievementAlertFrame_GetAlertFrame()
if frame and not frame.isSkinned then
local name = frame:GetName()
frame:DisableDrawLayer("OVERLAY")
frame:CreateBackdrop("Transparent")
frame.backdrop:Point("TOPLEFT", frame, 0, -6)
frame.backdrop:Point("BOTTOMRIGHT", frame, 0, 6)
S:SetBackdropHitRect(frame)
_G[name.."Background"]:SetTexture(nil)
_G[name.."Unlocked"]:SetTextColor(1, 1, 1)
local icon = _G[name.."Icon"]
icon:DisableDrawLayer("BACKGROUND")
icon:DisableDrawLayer("OVERLAY")
icon.texture:ClearAllPoints()
icon.texture:Point("LEFT", frame, 13, 0)
icon.texture:SetTexCoord(unpack(E.TexCoords))
icon:CreateBackdrop("Default")
icon.backdrop:SetOutside(icon.texture)
frame.isSkinned = true
if tonumber(match(name, ".+(%d+)")) == MAX_ACHIEVEMENT_ALERTS then
S:Unhook("AchievementAlertFrame_GetAlertFrame")
end
end
return frame
end, true)
local frame = DungeonCompletionAlertFrame1
frame:DisableDrawLayer("BORDER")
frame:DisableDrawLayer("OVERLAY")
frame:CreateBackdrop("Transparent")
frame.backdrop:Point("TOPLEFT", frame, 0, -6)
frame.backdrop:Point("BOTTOMRIGHT", frame, 0, 6)
S:SetBackdropHitRect(frame)
frame.dungeonTexture:ClearAllPoints()
frame.dungeonTexture:Point("LEFT", frame, 13, 0)
frame.dungeonTexture:Size(42)
frame.dungeonTexture:SetTexCoord(unpack(E.TexCoords))
frame.dungeonTexture.backdrop = CreateFrame("Frame", "$parentDungeonTextureBackground", frame)
frame.dungeonTexture.backdrop:SetTemplate("Default")
frame.dungeonTexture.backdrop:SetOutside(frame.dungeonTexture)
frame.dungeonTexture.backdrop:SetFrameLevel(0)
frame.glowFrame:DisableDrawLayer("OVERLAY")
end)
+40
View File
@@ -0,0 +1,40 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
--WoW API / Variables
S:AddCallback("Skin_Arena", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.arena then return end
ArenaFrame:StripTextures()
ArenaFrame:CreateBackdrop("Transparent")
ArenaFrame.backdrop:Point("TOPLEFT", 11, -12)
ArenaFrame.backdrop:Point("BOTTOMRIGHT", -32, 76)
S:SetUIPanelWindowInfo(ArenaFrame, "width")
S:SetBackdropHitRect(ArenaFrame)
S:HandleCloseButton(ArenaFrameCloseButton, ArenaFrame.backdrop)
S:HandleButton(ArenaFrameGroupJoinButton)
S:HandleButton(ArenaFrameJoinButton)
S:HandleButton(ArenaFrameCancelButton)
for i = 1, MAX_ARENA_BATTLES do
S:HandleButtonHighlight(_G["ArenaZone"..i])
end
ArenaFrameZoneDescription:SetTextColor(1, 1, 1)
ArenaFrameNameHeader:Point("TOPLEFT", 28, -55)
ArenaZone1:Point("TOPLEFT", 24, -79)
ArenaFrameGroupJoinButton:Width(127)
ArenaFrameCancelButton:Point("CENTER", ArenaFrame, "TOPLEFT", 302, -417)
ArenaFrameJoinButton:Point("RIGHT", ArenaFrameCancelButton, "LEFT", -3, 0)
ArenaFrameGroupJoinButton:Point("RIGHT", ArenaFrameJoinButton, "LEFT", -3, 0)
end)
@@ -0,0 +1,87 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
local _G = _G
local select = select
--WoW API / Variables
S:AddCallback("Skin_ArenaRegistrar", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.arenaregistrar then return end
ArenaRegistrarFrame:StripTextures(true)
ArenaRegistrarFrame:CreateBackdrop("Transparent")
ArenaRegistrarFrame.backdrop:Point("TOPLEFT", 11, -12)
ArenaRegistrarFrame.backdrop:Point("BOTTOMRIGHT", -32, 76)
S:SetUIPanelWindowInfo(ArenaRegistrarFrame, "width")
S:SetBackdropHitRect(ArenaRegistrarFrame)
S:HandleCloseButton(ArenaRegistrarFrameCloseButton, ArenaRegistrarFrame.backdrop)
ArenaRegistrarGreetingFrame:StripTextures()
ArenaRegistrarGreetingFrame:GetRegions():SetTextColor(1, 1, 1)
RegistrationText:SetTextColor(1, 1, 1)
ArenaRegistrarPurchaseText:SetTextColor(1, 1, 1)
for i = 1, 6 do
local button = _G["ArenaRegistrarButton"..i]
S:HandleButtonHighlight(button)
select(3, button:GetRegions()):SetTextColor(1, 1, 1)
end
S:HandleButton(ArenaRegistrarFrameGoodbyeButton)
S:HandleButton(ArenaRegistrarFrameCancelButton)
S:HandleButton(ArenaRegistrarFramePurchaseButton)
select(6, ArenaRegistrarFrameEditBox:GetRegions()):Kill()
select(7, ArenaRegistrarFrameEditBox:GetRegions()):Kill()
S:HandleEditBox(ArenaRegistrarFrameEditBox)
ArenaRegistrarFrameEditBox:Height(18)
ArenaRegistrarFrameGoodbyeButton:Width(80)
ArenaRegistrarFrameGoodbyeButton:Point("BOTTOMRIGHT", -40, 84)
ArenaRegistrarFrameCancelButton:Point("BOTTOMRIGHT", -40, 84)
ArenaRegistrarFramePurchaseButton:Point("BOTTOMLEFT", 19, 84)
-- PVP Banner
PVPBannerFrame:StripTextures()
PVPBannerFrame:CreateBackdrop("Transparent")
PVPBannerFrame.backdrop:Point("TOPLEFT", 11, -12)
PVPBannerFrame.backdrop:Point("BOTTOMRIGHT", -32, 76)
S:SetUIPanelWindowInfo(PVPBannerFrame, "width")
S:SetBackdropHitRect(PVPBannerFrame)
S:HandleCloseButton(PVPBannerFrameCloseButton, PVPBannerFrame.backdrop)
PVPBannerFramePortrait:Kill()
PVPBannerFrameCustomizationFrame:StripTextures()
for i = 1, 2 do
_G["PVPBannerFrameCustomization"..i]:StripTextures()
S:HandleNextPrevButton(_G["PVPBannerFrameCustomization"..i.."LeftButton"])
S:HandleNextPrevButton(_G["PVPBannerFrameCustomization"..i.."RightButton"])
end
S:HandleButton(PVPColorPickerButton1)
S:HandleButton(PVPColorPickerButton2)
S:HandleButton(PVPColorPickerButton3)
S:HandleButton(PVPBannerFrameAcceptButton)
S:HandleButton(PVPBannerFrameCancelButton)
local PVPBannerFrameCancelButton2 = select(4, PVPBannerFrame:GetChildren())
S:HandleButton(PVPBannerFrameCancelButton2)
PVPBannerFrameCustomization1:Point("TOPLEFT", PVPBannerFrameCustomizationBorder, "TOPLEFT", 48, -50)
PVPColorPickerButton1:Point("TOP", PVPBannerFrameCustomization2, "BOTTOM", 1, -7)
PVPColorPickerButton2:Point("TOP", PVPBannerFrameCustomization2, "BOTTOM", 1, -33)
PVPColorPickerButton3:Point("TOP", PVPBannerFrameCustomization2, "BOTTOM", 1, -59)
PVPBannerFrameCancelButton2:Point("CENTER", PVPBannerFrame, "TOPLEFT", 304, -417)
PVPBannerFrameAcceptButton:Point("CENTER", PVPBannerFrame, "TOPLEFT", 221, -417)
end)
@@ -0,0 +1,381 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
local _G = _G
local ipairs, unpack = ipairs, unpack
--WoW API / Variables
local GetAuctionSellItemInfo = GetAuctionSellItemInfo
local GetItemQualityColor = GetItemQualityColor
local PlaySound = PlaySound
local hooksecurefunc = hooksecurefunc
S:AddCallbackForAddon("Blizzard_AuctionUI", "Skin_Blizzard_AuctionUI", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.auctionhouse then return end
AuctionFrame:StripTextures(true)
AuctionFrame:CreateBackdrop("Transparent")
AuctionFrame.backdrop:Point("TOPLEFT", 12, 0)
AuctionFrame.backdrop:Point("BOTTOMRIGHT", 0, 0)
S:HookScript(AuctionFrame, "OnShow", function(self)
S:SetUIPanelWindowInfo(self, "xoffset", -1, nil, true)
S:SetUIPanelWindowInfo(self, "yoffset", -12, nil, true)
S:SetUIPanelWindowInfo(self, "width", nil, 1)
S:SetBackdropHitRect(self)
S:Unhook(self, "OnShow")
end)
local buttons = {
BrowseSearchButton,
BrowseResetButton,
BrowseBidButton,
BrowseBuyoutButton,
BrowseCloseButton,
BidBidButton,
BidBuyoutButton,
BidCloseButton,
AuctionsCreateAuctionButton,
AuctionsCancelAuctionButton,
AuctionsStackSizeMaxButton,
AuctionsNumStacksMaxButton,
AuctionsCloseButton
}
local checkBoxes = {
IsUsableCheckButton,
ShowOnPlayerCheckButton
}
local editBoxes = {
BrowseName,
BrowseMinLevel,
BrowseMaxLevel,
BrowseBidPriceGold,
BrowseBidPriceSilver,
BrowseBidPriceCopper,
BidBidPriceGold,
BidBidPriceSilver,
BidBidPriceCopper,
AuctionsStackSizeEntry,
AuctionsNumStacksEntry,
StartPriceGold,
StartPriceSilver,
StartPriceCopper,
BuyoutPriceGold,
BuyoutPriceSilver,
BuyoutPriceCopper
}
local sortTabs = {
BrowseQualitySort,
BrowseLevelSort,
BrowseDurationSort,
BrowseHighBidderSort,
BrowseCurrentBidSort,
BidQualitySort,
BidLevelSort,
BidDurationSort,
BidBuyoutSort,
BidStatusSort,
BidBidSort,
AuctionsQualitySort,
AuctionsDurationSort,
AuctionsHighBidderSort,
AuctionsBidSort
}
for _, button in ipairs(buttons) do
S:HandleButton(button, true)
end
for _, checkBox in ipairs(checkBoxes) do
S:HandleCheckBox(checkBox)
end
for _, editBox in ipairs(editBoxes) do
S:HandleEditBox(editBox)
editBox:SetTextInsets(1, 1, -1, 1)
end
for _, tab in ipairs(sortTabs) do
tab:StripTextures()
tab:SetNormalTexture([[Interface\Buttons\UI-SortArrow]])
tab:StyleButton()
end
for i = 1, AuctionFrame.numTabs do
local tab = _G["AuctionFrameTab"..i]
S:HandleTab(tab)
if i == 1 then
tab:ClearAllPoints()
tab:Point("BOTTOMLEFT", AuctionFrame, "BOTTOMLEFT", 12, -30)
tab.SetPoint = E.noop
end
end
AuctionFrameTab2:Point("TOPLEFT", AuctionFrameTab1, "TOPRIGHT", -15, 0)
AuctionFrameTab3:Point("TOPLEFT", AuctionFrameTab2, "TOPRIGHT", -15, 0)
for i = 1, NUM_FILTERS_TO_DISPLAY do
local tab = _G["AuctionFilterButton"..i]
tab:StripTextures()
tab:SetHighlightTexture(E.Media.Textures.Highlight)
tab:GetHighlightTexture():SetInside()
tab:GetHighlightTexture():SetAlpha(0.35)
end
S:HandleCloseButton(AuctionFrameCloseButton, AuctionFrame.backdrop)
AuctionFrameMoneyFrame:Point("BOTTOMRIGHT", AuctionFrame, "BOTTOMLEFT", 181, 11)
-- Browse Frame
BrowseTitle:ClearAllPoints()
BrowseTitle:Point("TOP", AuctionFrame, "TOP", 0, -5)
BrowseScrollFrame:StripTextures()
BrowseFilterScrollFrame:StripTextures()
S:HandleScrollBar(BrowseFilterScrollFrameScrollBar)
BrowseFilterScrollFrameScrollBar:Point("TOPLEFT", BrowseFilterScrollFrame, "TOPRIGHT", 5, -19)
BrowseFilterScrollFrameScrollBar:Point("BOTTOMLEFT", BrowseFilterScrollFrame, "BOTTOMRIGHT", 5, 18)
S:HandleScrollBar(BrowseScrollFrameScrollBar)
BrowseScrollFrameScrollBar:ClearAllPoints()
BrowseScrollFrameScrollBar:Point("TOPRIGHT", BrowseScrollFrame, "TOPRIGHT", 25, -19)
BrowseScrollFrameScrollBar:Point("BOTTOMRIGHT", BrowseScrollFrame, "BOTTOMRIGHT", 0, 19)
S:HandleNextPrevButton(BrowsePrevPageButton, nil, nil, true)
BrowsePrevPageButton:Point("TOPLEFT", 640, -50)
BrowsePrevPageButton:Size(32)
BrowsePrevPageButton:SetHitRectInsets(6, 6, 6, 6)
S:HandleNextPrevButton(BrowseNextPageButton, nil, nil, true)
BrowseNextPageButton:Point("TOPRIGHT", 60, -50)
BrowseNextPageButton:Size(32)
BrowseNextPageButton:SetHitRectInsets(6, 6, 6, 6)
BrowseCloseButton:Point("BOTTOMRIGHT", 66, 6)
BrowseBuyoutButton:Point("RIGHT", BrowseCloseButton, "LEFT", -4, 0)
BrowseBidButton:Point("RIGHT", BrowseBuyoutButton, "LEFT", -4, 0)
BrowseResetButton:Point("TOPLEFT", 20, -74)
BrowseSearchButton:Point("TOPRIGHT", 10, -30)
BrowseNameText:Point("TOPLEFT", 18, -30)
BrowseName:Point("TOPLEFT", BrowseNameText, "BOTTOMLEFT", 3, -3)
BrowseName:Size(140, 18)
BrowseLevelText:Point("BOTTOMLEFT", AuctionFrameBrowse, "TOPLEFT", 200, -40)
BrowseMaxLevel:Point("LEFT", BrowseMinLevel, "RIGHT", 8, 0)
BrowseBidText:Point("RIGHT", BrowseBidPrice, "LEFT", -11, 0)
BrowseBidPrice:Point("BOTTOM", 25, 10)
-- Bid Frame
BidTitle:ClearAllPoints()
BidTitle:Point("TOP", AuctionFrame, "TOP", 0, -5)
BidScrollFrame:StripTextures()
BidBidText:ClearAllPoints()
BidBidText:Point("RIGHT", BidBidButton, "LEFT", -270, 2)
BidCloseButton:Point("BOTTOMRIGHT", 66, 6)
BidBuyoutButton:Point("RIGHT", BidCloseButton, "LEFT", -4, 0)
BidBidButton:Point("RIGHT", BidBuyoutButton, "LEFT", -4, 0)
BidBidPrice:Point("BOTTOM", 25, 10)
S:HandleScrollBar(BidScrollFrameScrollBar)
BidScrollFrameScrollBar:ClearAllPoints()
BidScrollFrameScrollBar:Point("TOPRIGHT", BidScrollFrame, "TOPRIGHT", 24, -19)
BidScrollFrameScrollBar:Point("BOTTOMRIGHT", BidScrollFrame, "BOTTOMRIGHT", 0, 17)
-- Auctions Frame
AuctionsTitle:ClearAllPoints()
AuctionsTitle:Point("TOP", AuctionFrame, "TOP", 0, -5)
AuctionsScrollFrame:StripTextures()
S:HandleScrollBar(AuctionsScrollFrameScrollBar)
AuctionsScrollFrameScrollBar:ClearAllPoints()
AuctionsScrollFrameScrollBar:Point("TOPRIGHT", AuctionsScrollFrame, "TOPRIGHT", 24, -21)
AuctionsScrollFrameScrollBar:Point("BOTTOMRIGHT", AuctionsScrollFrame, "BOTTOMRIGHT", 0, 19)
AuctionsCloseButton:Point("BOTTOMRIGHT", 66, 6)
AuctionsCancelAuctionButton:Point("RIGHT", AuctionsCloseButton, "LEFT", -4, 0)
AuctionsCreateAuctionButton:Width(181)
AuctionsCreateAuctionButton:Point("BOTTOMLEFT", AuctionFrameAuctions, "BOTTOMLEFT", 26, 39)
AuctionsStackSizeEntry.backdrop:SetAllPoints()
AuctionsNumStacksEntry.backdrop:SetAllPoints()
AuctionsItemButton:StripTextures()
AuctionsItemButton:SetTemplate("Default", true)
AuctionsItemButton:StyleButton()
AuctionsItemButton:HookScript("OnEvent", function(self, event)
local normalTexture = self:GetNormalTexture()
if event == "NEW_AUCTION_UPDATE" and normalTexture then
normalTexture:SetTexCoord(unpack(E.TexCoords))
normalTexture:SetInside()
local _, _, _, quality = GetAuctionSellItemInfo()
if quality then
self:SetBackdropBorderColor(GetItemQualityColor(quality))
else
self:SetBackdropBorderColor(unpack(E.media.bordercolor))
end
else
self:SetBackdropBorderColor(unpack(E.media.bordercolor))
end
end)
S:HandleDropDownBox(BrowseDropDown, 155)
BrowseDropDown:Point("TOPLEFT", BrowseLevelText, "BOTTOMRIGHT", -5, 0)
S:HandleDropDownBox(PriceDropDown)
S:HandleDropDownBox(DurationDropDown)
-- Progress Frame
AuctionProgressFrame:StripTextures()
AuctionProgressFrame:SetTemplate("Transparent")
S:HandleButton(AuctionProgressFrameCancelButton)
AuctionProgressFrameCancelButton:SetHitRectInsets(0, 0, 0, 0)
AuctionProgressFrameCancelButton:GetNormalTexture():SetTexture(E.Media.Textures.Close)
AuctionProgressFrameCancelButton:GetNormalTexture():SetInside()
AuctionProgressFrameCancelButton:Size(28)
AuctionProgressFrameCancelButton:Point("LEFT", AuctionProgressBar, "RIGHT", 8, 0)
AuctionProgressBarIcon.backdrop = CreateFrame("Frame", nil, AuctionProgressBarIcon:GetParent())
AuctionProgressBarIcon.backdrop:SetTemplate("Default")
AuctionProgressBarIcon.backdrop:SetOutside(AuctionProgressBarIcon)
AuctionProgressBarIcon:SetTexCoord(unpack(E.TexCoords))
AuctionProgressBarIcon:SetParent(AuctionProgressBarIcon.backdrop)
AuctionProgressBarText:ClearAllPoints()
AuctionProgressBarText:SetPoint("CENTER")
AuctionProgressBar:StripTextures()
AuctionProgressBar:CreateBackdrop("Default")
AuctionProgressBar:SetStatusBarTexture(E.media.normTex)
AuctionProgressBar:SetStatusBarColor(1, 1, 0)
local frames = {
["Browse"] = 8, -- NUM_BROWSE_TO_DISPLAY
["Auctions"] = 9, -- NUM_AUCTIONS_TO_DISPLAY
["Bid"] = 9 -- NUM_BIDS_TO_DISPLAY
}
for frameName, numButtons in pairs(frames) do
for i = 1, numButtons do
local button = _G[frameName.."Button"..i]
local itemButton = _G[frameName.."Button"..i.."Item"]
local name = _G[frameName.."Button"..i.."Name"]
if button then
button:StripTextures()
local highlight = _G[frameName.."Button"..i.."Highlight"]
highlight:SetTexture(E.Media.Textures.Highlight)
highlight:SetInside()
hooksecurefunc(name, "SetVertexColor", function(_, r, g, b)
highlight:SetVertexColor(r, g, b, 0.35)
end)
end
if itemButton then
itemButton:SetTemplate()
itemButton:StyleButton()
itemButton:GetNormalTexture():SetTexture("")
itemButton:Point("TOPLEFT", 0, -1)
itemButton:Size(34)
local texture = _G[frameName.."Button"..i.."ItemIconTexture"]
texture:SetTexCoord(unpack(E.TexCoords))
texture:SetInside()
hooksecurefunc(name, "SetVertexColor", function(_, r, g, b)
itemButton:SetBackdropBorderColor(r, g, b)
end)
hooksecurefunc(name, "Hide", function()
itemButton:SetBackdropBorderColor(unpack(E.media.bordercolor))
end)
end
end
end
-- Custom Backdrops
for _, frame in ipairs({AuctionFrameBrowse, AuctionFrameAuctions}) do
frame.LeftBackground = CreateFrame("Frame", nil, frame)
frame.LeftBackground:SetTemplate("Transparent")
frame.LeftBackground:SetFrameLevel(frame:GetFrameLevel() - 1)
frame.RightBackground = CreateFrame("Frame", nil, frame)
frame.RightBackground:SetTemplate("Transparent")
frame.RightBackground:SetFrameLevel(frame:GetFrameLevel() - 1)
end
AuctionFrameAuctions.LeftBackground:Point("TOPLEFT", 20, -72)
AuctionFrameAuctions.LeftBackground:Point("BOTTOMRIGHT", -545, 34)
AuctionFrameAuctions.RightBackground:Point("TOPLEFT", AuctionFrameAuctions.LeftBackground, "TOPRIGHT", 3, 0)
AuctionFrameAuctions.RightBackground:Point("BOTTOMRIGHT", AuctionFrame, -8, 34)
AuctionFrameBrowse.LeftBackground:Point("TOPLEFT", 20, -103)
AuctionFrameBrowse.LeftBackground:Point("BOTTOMRIGHT", -575, 34)
AuctionFrameBrowse.RightBackground:Point("TOPLEFT", AuctionFrameBrowse.LeftBackground, "TOPRIGHT", 4, 0)
AuctionFrameBrowse.RightBackground:Point("BOTTOMRIGHT", AuctionFrame, "BOTTOMRIGHT", -8, 34)
AuctionFrameBid.Background = CreateFrame("Frame", nil, AuctionFrameBid)
AuctionFrameBid.Background:SetTemplate("Transparent")
AuctionFrameBid.Background:Point("TOPLEFT", 20, -72)
AuctionFrameBid.Background:Point("BOTTOMRIGHT", 66, 34)
AuctionFrameBid.Background:SetFrameLevel(AuctionFrameBid:GetFrameLevel() - 1)
-- DressUpFrame
AuctionDressUpFrame:StripTextures()
S:HandleCloseButton(AuctionDressUpFrameCloseButton, AuctionDressUpFrame)
AuctionDressUpModel:CreateBackdrop()
AuctionDressUpModel.backdrop:SetOutside(AuctionDressUpModel)
SetAuctionDressUpBackground()
AuctionDressUpBackgroundTop:SetDesaturated(true)
AuctionDressUpBackgroundBot:SetDesaturated(true)
S:HandleRotateButton(AuctionDressUpModelRotateLeftButton)
S:HandleRotateButton(AuctionDressUpModelRotateRightButton)
S:HandleButton(AuctionDressUpFrameResetButton)
AuctionDressUpFrame:SetTemplate("Transparent")
AuctionDressUpFrame:Size(189, 401)
AuctionDressUpFrame:Point("TOPLEFT", AuctionFrame, "TOPRIGHT", -1, 0)
AuctionDressUpModel:Size(171, 365)
AuctionDressUpModel:Point("BOTTOM", AuctionDressUpFrame, "BOTTOM", 0, 9)
AuctionDressUpBackgroundTop:Point("TOPLEFT", AuctionDressUpFrame, "TOPLEFT", 9, -27)
AuctionDressUpModelRotateLeftButton:Point("TOPLEFT", AuctionDressUpFrame, "TOPLEFT", 12, -30)
AuctionDressUpModelRotateRightButton:Point("TOPLEFT", AuctionDressUpModelRotateLeftButton, "TOPRIGHT", 3, 0)
AuctionDressUpFrameResetButton:Point("BOTTOM", AuctionDressUpModel, "BOTTOM", 0, 7)
AuctionDressUpFrame:SetScript("OnShow", function()
S:SetUIPanelWindowInfo(AuctionFrame, "width", nil, 189)
PlaySound("igCharacterInfoOpen")
end)
AuctionDressUpFrame:SetScript("OnHide", function()
S:SetUIPanelWindowInfo(AuctionFrame, "width", nil, 1)
PlaySound("igCharacterInfoClose")
end)
end)
+75
View File
@@ -0,0 +1,75 @@
local E, L, V, P, G = unpack(ElvUI) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
--WoW API / Variables
S:AddCallbackForAddon("Blizzard_BattlefieldMinimap", "Skin_Blizzard_BattlefieldMinimap", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.bgmap then return end
BattlefieldMinimapCorner:Kill()
BattlefieldMinimapBackground:Kill()
BattlefieldMinimapTab:Kill()
BattlefieldMinimap:SetClampedToScreen(true)
BattlefieldMinimap:SetFrameStrata("LOW")
BattlefieldMinimap:CreateBackdrop("Default")
BattlefieldMinimap.backdrop:Point("BOTTOMRIGHT", E.Border - E:Scale(6), -(E.Border - E:Scale(4)))
S:SetBackdropHitRect(BattlefieldMinimap, nil, true)
S:HandleCloseButton(BattlefieldMinimapCloseButton, BattlefieldMinimap.backdrop)
BattlefieldMinimapCloseButton:SetFrameLevel(BattlefieldMinimap:GetFrameLevel() + 5)
BattlefieldMinimap:EnableMouse(true)
BattlefieldMinimap:SetMovable(true)
BattlefieldMinimap:SetScript("OnMouseUp", function(self, btn)
if btn == "LeftButton" then
if BattlefieldMinimapTab._moved then
BattlefieldMinimapTab:StopMovingOrSizing()
BattlefieldMinimapTab._moved = nil
end
elseif btn == "RightButton" then
ToggleDropDownMenu(1, nil, BattlefieldMinimapTabDropDown, self:GetName(), 0, -4)
end
end)
BattlefieldMinimap:SetScript("OnMouseDown", function(_, btn)
if btn == "LeftButton" then
if BattlefieldMinimapOptions and BattlefieldMinimapOptions.locked then return end
BattlefieldMinimapTab._moved = true
BattlefieldMinimapTab:StartMoving()
end
end)
hooksecurefunc("BattlefieldMinimap_UpdateOpacity", function()
BattlefieldMinimap.backdrop:SetAlpha(1.0 - BattlefieldMinimapOptions.opacity)
end)
local oldAlpha
BattlefieldMinimap:HookScript("OnEnter", function()
oldAlpha = BattlefieldMinimapOptions.opacity or 0
BattlefieldMinimap_UpdateOpacity(0)
end)
BattlefieldMinimap:HookScript("OnLeave", function()
if oldAlpha then
BattlefieldMinimap_UpdateOpacity(oldAlpha)
oldAlpha = nil
end
end)
BattlefieldMinimapCloseButton:HookScript("OnEnter", function()
oldAlpha = BattlefieldMinimapOptions.opacity or 0
BattlefieldMinimap_UpdateOpacity(0)
end)
BattlefieldMinimapCloseButton:HookScript("OnLeave", function()
if oldAlpha then
BattlefieldMinimap_UpdateOpacity(oldAlpha)
oldAlpha = nil
end
end)
end)
+101
View File
@@ -0,0 +1,101 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
local format, split = string.format, string.split
--WoW API / Variables
local FauxScrollFrame_GetOffset = FauxScrollFrame_GetOffset
local GetBattlefieldScore = GetBattlefieldScore
local IsActiveBattlefieldArena = IsActiveBattlefieldArena
S:AddCallback("Skin_WorldStateScore", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.bgscore then return end
WorldStateScoreFrame:StripTextures()
WorldStateScoreFrame:CreateBackdrop("Transparent")
WorldStateScoreFrame.backdrop:Point("TOPLEFT", 10, -15)
WorldStateScoreFrame.backdrop:Point("BOTTOMRIGHT", -113, 67)
WorldStateScoreFrame:EnableMouse(true)
S:SetBackdropHitRect(WorldStateScoreFrame)
S:HandleCloseButton(WorldStateScoreFrameCloseButton, WorldStateScoreFrame.backdrop)
WorldStateScoreScrollFrame:StripTextures()
S:HandleScrollBar(WorldStateScoreScrollFrameScrollBar)
WorldStateScoreFrameKB:StyleButton()
WorldStateScoreFrameDeaths:StyleButton()
WorldStateScoreFrameHK:StyleButton()
WorldStateScoreFrameDamageDone:StyleButton()
WorldStateScoreFrameHealingDone:StyleButton()
WorldStateScoreFrameHonorGained:StyleButton()
WorldStateScoreFrameName:StyleButton()
WorldStateScoreFrameClass:StyleButton()
WorldStateScoreFrameTeam:StyleButton()
-- WorldStateScoreFrameRatingChange:StyleButton()
S:HandleButton(WorldStateScoreFrameLeaveButton)
for i = 1, 3 do
S:HandleTab(_G["WorldStateScoreFrameTab"..i])
_G["WorldStateScoreFrameTab"..i.."Text"]:Point("CENTER", 0, 2)
end
WorldStateScoreFrameTab2:Point("LEFT", WorldStateScoreFrameTab1, "RIGHT", -15, 0)
WorldStateScoreFrameTab3:Point("LEFT", WorldStateScoreFrameTab2, "RIGHT", -15, 0)
WorldStateScoreScrollFrameScrollBar:Point("TOPLEFT", WorldStateScoreScrollFrame, "TOPRIGHT", 8, -21)
WorldStateScoreScrollFrameScrollBar:Point("BOTTOMLEFT", WorldStateScoreScrollFrame, "BOTTOMRIGHT", 8, 38)
for i = 1, 5 do
_G["WorldStateScoreColumn"..i]:StyleButton()
end
local myName = format("> %s <", E.myname)
hooksecurefunc("WorldStateScoreFrame_Update", function()
local inArena = IsActiveBattlefieldArena()
local offset = FauxScrollFrame_GetOffset(WorldStateScoreScrollFrame)
local _, name, faction, classToken, realm, classTextColor, nameText
for i = 1, MAX_WORLDSTATE_SCORE_BUTTONS do
name, _, _, _, _, faction, _, _, _, classToken = GetBattlefieldScore(offset + i)
if name then
name, realm = split("-", name, 2)
if name == E.myname then
name = myName
end
if realm then
local color
if inArena then
if faction == 1 then
color = "|cffffd100"
else
color = "|cff19ff19"
end
else
if faction == 1 then
color = "|cff00adf0"
else
color = "|cffff1919"
end
end
name = format("%s|cffffffff - |r%s%s|r", name, color, realm)
end
classTextColor = E.media.herocolor
nameText = _G["WorldStateScoreButton"..i.."NameText"]
nameText:SetText(name)
nameText:SetTextColor(classTextColor.r, classTextColor.g, classTextColor.b)
end
end
end)
end)
+295
View File
@@ -0,0 +1,295 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
local _G = _G
local select = select
local unpack = unpack
--WoW API / Variables
local ContainerIDToInventoryID = ContainerIDToInventoryID
local GetContainerItemLink = GetContainerItemLink
local GetContainerItemQuestInfo = GetContainerItemQuestInfo
local GetContainerNumFreeSlots = GetContainerNumFreeSlots
local GetInventoryItemLink = GetInventoryItemLink
local GetItemInfo = GetItemInfo
local GetItemQualityColor = GetItemQualityColor
local GetInventoryItemID = GetInventoryItemID
local BANK_CONTAINER = BANK_CONTAINER
S:AddCallback("Skin_Bags", function()
if E.private.bags.enable then return end
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.bags then return end
local professionColors = {
[0x0001] = {E.db.bags.colors.profession.quiver.r, E.db.bags.colors.profession.quiver.g, E.db.bags.colors.profession.quiver.b},
[0x0002] = {E.db.bags.colors.profession.ammoPouch.r, E.db.bags.colors.profession.ammoPouch.g, E.db.bags.colors.profession.ammoPouch.b},
[0x0004] = {E.db.bags.colors.profession.soulBag.r, E.db.bags.colors.profession.soulBag.g, E.db.bags.colors.profession.soulBag.b},
[0x0008] = {E.db.bags.colors.profession.leatherworking.r, E.db.bags.colors.profession.leatherworking.g, E.db.bags.colors.profession.leatherworking.b},
[0x0010] = {E.db.bags.colors.profession.inscription.r, E.db.bags.colors.profession.inscription.g, E.db.bags.colors.profession.inscription.b},
[0x0020] = {E.db.bags.colors.profession.herbs.r, E.db.bags.colors.profession.herbs.g, E.db.bags.colors.profession.herbs.b},
[0x0040] = {E.db.bags.colors.profession.enchanting.r, E.db.bags.colors.profession.enchanting.g, E.db.bags.colors.profession.enchanting.b},
[0x0080] = {E.db.bags.colors.profession.engineering.r, E.db.bags.colors.profession.engineering.g, E.db.bags.colors.profession.engineering.b},
[0x0200] = {E.db.bags.colors.profession.gems.r, E.db.bags.colors.profession.gems.g, E.db.bags.colors.profession.gems.b},
[0x0400] = {E.db.bags.colors.profession.mining.r, E.db.bags.colors.profession.mining.g, E.db.bags.colors.profession.mining.b},
}
local questColors = {
["questStarter"] = {E.db.bags.colors.items.questStarter.r, E.db.bags.colors.items.questStarter.g, E.db.bags.colors.items.questStarter.b},
["questItem"] = {E.db.bags.colors.items.questItem.r, E.db.bags.colors.items.questItem.g, E.db.bags.colors.items.questItem.b}
}
-- ContainerFrame
for i = 1, NUM_CONTAINER_FRAMES do
local frame = _G["ContainerFrame"..i]
local closeButton = _G["ContainerFrame"..i.."CloseButton"]
frame:StripTextures(true)
frame:CreateBackdrop("Transparent")
frame.backdrop:Point("TOPLEFT", 9, -4)
frame.backdrop:Point("BOTTOMRIGHT", -4, 1)
S:HookScript(frame, "OnShow", function(self)
S:SetBackdropHitRect(self)
S:Unhook(self, "OnShow")
end)
S:HandleCloseButton(closeButton, frame.backdrop)
for j = 1, MAX_CONTAINER_ITEMS do
local item = _G["ContainerFrame"..i.."Item"..j]
local icon = _G["ContainerFrame"..i.."Item"..j.."IconTexture"]
local questIcon = _G["ContainerFrame"..i.."Item"..j.."IconQuestTexture"]
local cooldown = _G["ContainerFrame"..i.."Item"..j.."Cooldown"]
item:SetNormalTexture(nil)
item:SetTemplate("Default", true)
item:StyleButton()
icon:SetInside()
icon:SetTexCoord(unpack(E.TexCoords))
questIcon:SetTexture(E.Media.Textures.BagQuestIcon)
questIcon.SetTexture = E.noop
questIcon:SetTexCoord(0, 1, 0, 1)
questIcon:SetInside()
cooldown.CooldownOverride = "bags"
E:RegisterCooldown(cooldown)
end
end
BackpackTokenFrame:StripTextures()
for i = 1, MAX_WATCHED_TOKENS do
local token = _G["BackpackTokenFrameToken"..i]
token:CreateBackdrop("Default")
token.backdrop:SetOutside(token.icon)
token.icon:SetTexCoord(unpack(E.TexCoords))
token.icon:Point("LEFT", token.count, "RIGHT", 2, 0)
token.icon:Size(16)
end
local function setBagIcon(frame, texture)
if not frame.BagIcon then
local portraitButton = _G[frame:GetName().."PortraitButton"]
portraitButton:CreateBackdrop()
portraitButton:Size(32)
portraitButton:Point("TOPLEFT", 12, -7)
portraitButton:StyleButton(nil, true)
portraitButton.hover:SetAllPoints()
frame.BagIcon = portraitButton:CreateTexture()
frame.BagIcon:SetTexCoord(unpack(E.TexCoords))
frame.BagIcon:SetAllPoints()
end
frame.BagIcon:SetTexture(texture)
end
local bagIconCache = {
[-2] = "Interface\\ContainerFrame\\KeyRing-Bag-Icon",
[0] = "Interface\\Buttons\\Button-Backpack-Up"
}
hooksecurefunc("ContainerFrame_GenerateFrame", function(frame)
local id = frame:GetID()
if id > 0 then
local itemID = GetInventoryItemID("player", ContainerIDToInventoryID(id))
if not bagIconCache[itemID] then
bagIconCache[itemID] = select(10, GetItemInfo(itemID))
end
setBagIcon(frame, bagIconCache[itemID])
else
setBagIcon(frame, bagIconCache[id])
end
end)
hooksecurefunc("ContainerFrame_Update", function(frame)
local frameName = frame:GetName()
local id = frame:GetID()
local _, bagType = GetContainerNumFreeSlots(id)
local item, questIcon, link
for i = 1, frame.size do
item = _G[frameName.."Item"..i]
questIcon = _G[frameName.."Item"..i.."IconQuestTexture"]
link = GetContainerItemLink(id, item:GetID())
questIcon:Hide()
if professionColors[bagType] then
item:SetBackdropBorderColor(unpack(professionColors[bagType]))
item.ignoreBorderColors = true
elseif link then
local isQuestItem, questId, isActive = GetContainerItemQuestInfo(id, item:GetID())
local _, _, quality = GetItemInfo(link)
if questId and not isActive then
item:SetBackdropBorderColor(unpack(questColors.questStarter))
item.ignoreBorderColors = true
questIcon:Show()
elseif questId or isQuestItem then
item:SetBackdropBorderColor(unpack(questColors.questItem))
item.ignoreBorderColors = true
elseif quality then
item:SetBackdropBorderColor(GetItemQualityColor(quality))
item.ignoreBorderColors = true
else
item:SetBackdropBorderColor(unpack(E.media.bordercolor))
item.ignoreBorderColors = nil
end
else
item:SetBackdropBorderColor(unpack(E.media.bordercolor))
item.ignoreBorderColors = nil
end
end
end)
-- BankFrame
BankFrame:StripTextures(true)
BankFrame:CreateBackdrop("Transparent")
BankFrame.backdrop:Point("TOPLEFT", 11, -12)
BankFrame.backdrop:Point("BOTTOMRIGHT", -26, 76)
S:SetBackdropHitRect(BankFrame)
S:HandleCloseButton(BankCloseButton)
BankFrameItem1:Point("TOPLEFT", 39, -73)
for i = 1, NUM_BANKGENERIC_SLOTS do
local button = _G["BankFrameItem"..i]
local icon = _G["BankFrameItem"..i.."IconTexture"]
local quest = _G["BankFrameItem"..i.."IconQuestTexture"]
local cooldown = _G["BankFrameItem"..i.."Cooldown"]
button:SetNormalTexture(nil)
button:SetTemplate("Default", true)
button:StyleButton()
icon:SetInside()
icon:SetTexCoord(unpack(E.TexCoords))
quest:SetTexture(E.Media.Textures.BagQuestIcon)
quest.SetTexture = E.noop
quest:SetTexCoord(0, 1, 0, 1)
quest:SetInside()
cooldown.CooldownOverride = "bags"
E:RegisterCooldown(cooldown)
end
BankFrame.itemBackdrop = CreateFrame("Frame", "BankFrameItemBackdrop", BankFrame)
BankFrame.itemBackdrop:SetTemplate("Default")
BankFrame.itemBackdrop:SetOutside(BankFrameItem1, 6, 6, BankFrameItem28)
BankFrame.itemBackdrop:SetFrameLevel(BankFrame:GetFrameLevel())
for i = 1, NUM_BANKBAGSLOTS do
local button = _G["BankFrameBag"..i]
local icon = _G["BankFrameBag"..i.."IconTexture"]
local highlight = _G["BankFrameBag"..i.."HighlightFrameTexture"]
button:SetNormalTexture(nil)
button:SetTemplate("Default", true)
button:StyleButton()
icon:SetInside()
icon:SetTexCoord(unpack(E.TexCoords))
highlight:SetInside()
highlight:SetTexture(unpack(E.media.rgbvaluecolor), 0.3)
end
BankFrame.bagBackdrop = CreateFrame("Frame", "BankFrameBagBackdrop", BankFrame)
BankFrame.bagBackdrop:SetTemplate("Default")
BankFrame.bagBackdrop:SetOutside(BankFrameBag1, 6, 6, BankFrameBag7)
BankFrame.bagBackdrop:SetFrameLevel(BankFrame:GetFrameLevel())
S:HandleButton(BankFramePurchaseButton)
hooksecurefunc("BankFrameItemButton_Update", function(button)
local id = button:GetID()
if button.isBag then
local link = GetInventoryItemLink("player", ContainerIDToInventoryID(id))
if link then
local quality = select(3, GetItemInfo(link))
if quality then
button:SetBackdropBorderColor(GetItemQualityColor(quality))
button.ignoreBorderColors = true
else
button:SetBackdropBorderColor(unpack(E.media.bordercolor))
button.ignoreBorderColors = nil
end
else
button:SetBackdropBorderColor(unpack(E.media.bordercolor))
button.ignoreBorderColors = nil
end
else
local link = GetContainerItemLink(BANK_CONTAINER, id)
local questTexture = _G[button:GetName().."IconQuestTexture"]
if questTexture then
questTexture:Hide()
end
if link then
local isQuestItem, questId, isActive = GetContainerItemQuestInfo(BANK_CONTAINER, id)
if questId and not isActive then
button:SetBackdropBorderColor(unpack(questColors.questStarter))
button.ignoreBorderColors = true
if questTexture then
questTexture:Show()
end
elseif questId or isQuestItem then
button:SetBackdropBorderColor(unpack(questColors.questItem))
button.ignoreBorderColors = true
else
local quality = select(3, GetItemInfo(link))
if quality then
button:SetBackdropBorderColor(GetItemQualityColor(quality))
button.ignoreBorderColors = true
else
button:SetBackdropBorderColor(unpack(E.media.bordercolor))
button.ignoreBorderColors = nil
end
end
else
button:SetBackdropBorderColor(unpack(E.media.bordercolor))
button.ignoreBorderColors = nil
end
end
end)
end)
+29
View File
@@ -0,0 +1,29 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
--WoW API / Variables
S:AddCallbackForAddon("Blizzard_BarbershopUI", "Skin_Blizzard_BarbershopUI", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.barber then return end
BarberShopFrame:CreateBackdrop("Transparent")
BarberShopFrame.backdrop:Point("TOPLEFT", 44, -70)
BarberShopFrame.backdrop:Point("BOTTOMRIGHT", -38, 42)
S:SetBackdropHitRect(BarberShopFrame)
BarberShopFrameBackground:Kill()
for i = 1, 4 do
S:HandleNextPrevButton(_G["BarberShopFrameSelector"..i.."Prev"])
S:HandleNextPrevButton(_G["BarberShopFrameSelector"..i.."Next"])
end
BarberShopFrameMoneyFrame:StripTextures()
BarberShopFrameMoneyFrame:CreateBackdrop()
S:HandleButton(BarberShopFrameOkayButton)
S:HandleButton(BarberShopFrameCancelButton)
S:HandleButton(BarberShopFrameResetButton)
end)
+41
View File
@@ -0,0 +1,41 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
--WoW API / Variables
S:AddCallbackForAddon("Blizzard_BindingUI", "Skin_Blizzard_BindingUI", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.binding then return end
KeyBindingFrame:StripTextures()
KeyBindingFrame:CreateBackdrop("Transparent")
KeyBindingFrame.backdrop:Point("TOPLEFT", 2, 0)
KeyBindingFrame.backdrop:Point("BOTTOMRIGHT", -42, 13)
S:SetBackdropHitRect(KeyBindingFrame)
local bindingKey1, bindingKey2
for i = 1, KEY_BINDINGS_DISPLAYED do
bindingKey1 = _G["KeyBindingFrameBinding"..i.."Key1Button"]
bindingKey2 = _G["KeyBindingFrameBinding"..i.."Key2Button"]
S:HandleButton(bindingKey1)
S:HandleButton(bindingKey2)
bindingKey2:SetPoint("LEFT", bindingKey1, "RIGHT", 1, 0)
end
S:HandleScrollBar(KeyBindingFrameScrollFrameScrollBar)
S:HandleCheckBox(KeyBindingFrameCharacterButton)
S:HandleButton(KeyBindingFrameDefaultButton)
S:HandleButton(KeyBindingFrameCancelButton)
S:HandleButton(KeyBindingFrameOkayButton)
S:HandleButton(KeyBindingFrameUnbindButton)
KeyBindingFrameScrollFrameScrollBar:Point("TOPLEFT", KeyBindingFrameScrollFrame, "TOPRIGHT", 10, -21)
KeyBindingFrameScrollFrameScrollBar:Point("BOTTOMLEFT", KeyBindingFrameScrollFrame, "BOTTOMRIGHT", 10, 17)
KeyBindingFrameOkayButton:Point("RIGHT", KeyBindingFrameCancelButton, "LEFT", -3, 0)
KeyBindingFrameUnbindButton:Point("RIGHT", KeyBindingFrameOkayButton, "LEFT", -3, 0)
end)
@@ -0,0 +1,624 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
local _G = _G
local ipairs = ipairs
local find = string.find
--WoW API / Variables
local InCombatLockdown = InCombatLockdown
local hooksecurefunc = hooksecurefunc
S:AddCallback("Skin_BlizzardOptions", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.BlizzardOptions then return end
-- Game Menu Interface/Tabs
for i = 1, 2 do
local tab = _G["InterfaceOptionsFrameTab"..i]
tab:StripTextures()
S:HandleTab(tab)
tab.backdrop:SetTemplate("Transparent")
tab.backdrop:Point("TOPLEFT", 10, E.PixelMode and -4 or -6)
tab.backdrop:Point("BOTTOMRIGHT", -10, 1)
S:SetBackdropHitRect(tab)
if i == 1 then
tab:Point("BOTTOMLEFT", InterfaceOptionsFrameCategories, "TOPLEFT", -11, -2)
end
end
-- Game Menu Plus / Minus Buttons
for _, button in ipairs(InterfaceOptionsFrameAddOns.buttons) do
button.toggle:SetNormalTexture("")
button.toggle.SetNormalTexture = E.noop
button.toggle:SetPushedTexture("")
button.toggle.SetPushedTexture = E.noop
button.toggle:SetHighlightTexture(nil)
local text = button.toggle:CreateFontString(nil, "OVERLAY")
text:FontTemplate(nil, 22)
text:SetPoint("CENTER")
text:SetText("+")
button.toggle.text = text
hooksecurefunc(button.toggle, "SetNormalTexture", function(self, texture)
if find(texture, "MinusButton") then
self.text:SetText("-")
else
self.text:SetText("+")
end
end)
end
-- Interface Options Frame
local frames = {
InterfaceOptionsFrame,
AudioOptionsFrame,
VideoOptionsFrame
}
for _, frame in ipairs(frames) do
frame:SetTemplate("Transparent")
frame:SetClampedToScreen(true)
frame:SetMovable(true)
frame:EnableMouse(true)
frame:RegisterForDrag("LeftButton", "RightButton")
frame:SetScript("OnDragStart", function(self)
if InCombatLockdown() then return end
self:StartMoving()
end)
frame:SetScript("OnDragStop", function(self)
self:StopMovingOrSizing()
end)
end
local optionHeaders = {
InterfaceOptionsFrameHeader,
AudioOptionsFrameHeader,
VideoOptionsFrameHeader,
}
for _, header in ipairs(optionHeaders) do
header:SetTexture("")
header:SetPoint("TOP", 0, 0)
end
local optionFrames = {
"InterfaceOptionsFrameCategories",
"InterfaceOptionsFrameAddOns",
"InterfaceOptionsFramePanelContainer",
"AudioOptionsFrameCategoryFrame",
"AudioOptionsFramePanelContainer",
"AudioOptionsSoundPanelPlayback",
"AudioOptionsSoundPanelHardware",
"AudioOptionsSoundPanelVolume",
"VideoOptionsFrameCategoryFrame",
"VideoOptionsFramePanelContainer",
"VideoOptionsResolutionPanelBrightness",
"VideoOptionsEffectsPanelQuality",
"VideoOptionsEffectsPanelShaders",
}
for _, frame in ipairs(optionFrames) do
frame = _G[frame]
if frame then
frame:StripTextures()
frame:CreateBackdrop("Transparent")
if frame == VideoOptionsFramePanelContainer or frame == InterfaceOptionsFramePanelContainer then
frame.backdrop:Point("TOPLEFT", 0, 0)
frame.backdrop:Point("BOTTOMRIGHT", 0, 0)
else
frame.backdrop:Point("TOPLEFT", -1, 0)
frame.backdrop:Point("BOTTOMRIGHT", 0, 1)
end
end
end
local checkboxes = {
"InterfaceOptionsControlsPanelStickyTargeting",
"InterfaceOptionsControlsPanelAutoDismount",
"InterfaceOptionsControlsPanelAutoClearAFK",
"InterfaceOptionsControlsPanelBlockTrades",
"InterfaceOptionsControlsPanelLootAtMouse",
"InterfaceOptionsControlsPanelAutoLootCorpse",
"InterfaceOptionsCombatPanelAttackOnAssist",
"InterfaceOptionsCombatPanelAutoRange",
"InterfaceOptionsCombatPanelStopAutoAttack",
"InterfaceOptionsCombatPanelNameplateClassColors",
"InterfaceOptionsCombatPanelAutoSelfCast",
"InterfaceOptionsCombatPanelTargetOfTarget",
"InterfaceOptionsCombatPanelEnemyCastBarsOnPortrait",
"InterfaceOptionsCombatPanelEnemyCastBarsOnNameplates",
"InterfaceOptionsDisplayPanelShowCloak",
"InterfaceOptionsDisplayPanelShowHelm",
"InterfaceOptionsDisplayPanelShowAggroPercentage",
"InterfaceOptionsDisplayPanelPlayAggroSounds",
"InterfaceOptionsDisplayPanelDetailedLootInfo",
"InterfaceOptionsDisplayPanelShowFreeBagSpace",
"InterfaceOptionsDisplayPanelCinematicSubtitles",
"InterfaceOptionsDisplayPanelRotateMinimap",
"InterfaceOptionsDisplayPanelScreenEdgeFlash",
"InterfaceOptionsDisplayPanelShowClock",
"InterfaceOptionsDisplayPanelColorblindMode",
"InterfaceOptionsDisplayPanelShowItemLevel",
"InterfaceOptionsObjectivesPanelInstantQuestText",
"InterfaceOptionsObjectivesPanelAutoQuestTracking",
"InterfaceOptionsObjectivesPanelAutoQuestProgress",
"InterfaceOptionsObjectivesPanelMapQuestDifficulty",
"InterfaceOptionsObjectivesPanelAdvancedWorldMap",
"InterfaceOptionsObjectivesPanelWatchFrameWidth",
"InterfaceOptionsSocialPanelProfanityFilter",
"InterfaceOptionsSocialPanelSpamFilter",
"InterfaceOptionsSocialPanelChatBubbles",
"InterfaceOptionsSocialPanelPartyChat",
"InterfaceOptionsSocialPanelChatHoverDelay",
"InterfaceOptionsSocialPanelGuildMemberAlert",
"InterfaceOptionsSocialPanelGuildRecruitment",
"InterfaceOptionsSocialPanelChatMouseScroll",
"InterfaceOptionsSocialPanelWholeChatWindowClickable",
"InterfaceOptionsActionBarsPanelLockActionBars",
"InterfaceOptionsActionBarsPanelSecureAbilityToggle",
"InterfaceOptionsActionBarsPanelAlwaysShowActionBars",
"InterfaceOptionsActionBarsPanelBottomLeft",
"InterfaceOptionsActionBarsPanelBottomRight",
"InterfaceOptionsActionBarsPanelRight",
"InterfaceOptionsActionBarsPanelRightTwo",
"InterfaceOptionsNamesPanelMyName",
"InterfaceOptionsNamesPanelFriendlyPlayerNames",
"InterfaceOptionsNamesPanelFriendlyPets",
"InterfaceOptionsNamesPanelFriendlyGuardians",
"InterfaceOptionsNamesPanelFriendlyTotems",
"InterfaceOptionsNamesPanelUnitNameplatesFriends",
"InterfaceOptionsNamesPanelUnitNameplatesFriendlyGuardians",
"InterfaceOptionsNamesPanelUnitNameplatesFriendlyPets",
"InterfaceOptionsNamesPanelUnitNameplatesFriendlyTotems",
"InterfaceOptionsNamesPanelGuilds",
"InterfaceOptionsNamesPanelNPCNames",
"InterfaceOptionsNamesPanelUnitNameplatesAllowOverlap",
"InterfaceOptionsNamesPanelTitles",
"InterfaceOptionsNamesPanelNonCombatCreature",
"InterfaceOptionsNamesPanelEnemyPlayerNames",
"InterfaceOptionsNamesPanelEnemyPets",
"InterfaceOptionsNamesPanelEnemyGuardians",
"InterfaceOptionsNamesPanelEnemyTotems",
"InterfaceOptionsNamesPanelUnitNameplatesEnemyPets",
"InterfaceOptionsNamesPanelUnitNameplatesEnemies",
"InterfaceOptionsNamesPanelUnitNameplatesEnemyGuardians",
"InterfaceOptionsNamesPanelUnitNameplatesEnemyTotems",
"InterfaceOptionsCombatTextPanelTargetDamage",
"InterfaceOptionsCombatTextPanelPeriodicDamage",
"InterfaceOptionsCombatTextPanelPetDamage",
"InterfaceOptionsCombatTextPanelHealing",
"InterfaceOptionsCombatTextPanelTargetEffects",
"InterfaceOptionsCombatTextPanelOtherTargetEffects",
"InterfaceOptionsCombatTextPanelEnableFCT",
"InterfaceOptionsCombatTextPanelDodgeParryMiss",
"InterfaceOptionsCombatTextPanelDamageReduction",
"InterfaceOptionsCombatTextPanelRepChanges",
"InterfaceOptionsCombatTextPanelReactiveAbilities",
"InterfaceOptionsCombatTextPanelFriendlyHealerNames",
"InterfaceOptionsCombatTextPanelCombatState",
"InterfaceOptionsCombatTextPanelComboPoints",
"InterfaceOptionsCombatTextPanelLowManaHealth",
"InterfaceOptionsCombatTextPanelEnergyGains",
"InterfaceOptionsCombatTextPanelPeriodicEnergyGains",
"InterfaceOptionsCombatTextPanelHonorGains",
"InterfaceOptionsCombatTextPanelAuras",
"InterfaceOptionsBuffsPanelBuffDurations",
"InterfaceOptionsBuffsPanelDispellableDebuffs",
"InterfaceOptionsBuffsPanelCastableBuffs",
"InterfaceOptionsBuffsPanelConsolidateBuffs",
"InterfaceOptionsBuffsPanelShowCastableDebuffs",
"InterfaceOptionsCameraPanelFollowTerrain",
"InterfaceOptionsCameraPanelHeadBob",
"InterfaceOptionsCameraPanelWaterCollision",
"InterfaceOptionsCameraPanelSmartPivot",
"InterfaceOptionsMousePanelInvertMouse",
"InterfaceOptionsMousePanelClickToMove",
"InterfaceOptionsMousePanelWoWMouse",
"InterfaceOptionsHelpPanelShowTutorials",
"InterfaceOptionsHelpPanelLoadingScreenTips",
"InterfaceOptionsHelpPanelEnhancedTooltips",
"InterfaceOptionsHelpPanelBeginnerTooltips",
"InterfaceOptionsHelpPanelShowLuaErrors",
"InterfaceOptionsStatusTextPanelPlayer",
"InterfaceOptionsStatusTextPanelPet",
"InterfaceOptionsStatusTextPanelParty",
"InterfaceOptionsStatusTextPanelTarget",
"InterfaceOptionsStatusTextPanelPercentages",
"InterfaceOptionsStatusTextPanelXP",
"InterfaceOptionsUnitFramePanelPartyBackground",
"InterfaceOptionsUnitFramePanelPartyPets",
"InterfaceOptionsUnitFramePanelArenaEnemyFrames",
"InterfaceOptionsUnitFramePanelArenaEnemyCastBar",
"InterfaceOptionsUnitFramePanelArenaEnemyPets",
"InterfaceOptionsUnitFramePanelPartyInRaid",
"InterfaceOptionsUnitFramePanelRaidRange",
"InterfaceOptionsUnitFramePanelFullSizeFocusFrame",
"InterfaceOptionsFeaturesPanelPreviewTalentChanges",
"InterfaceOptionsFeaturesPanelEquipmentManager",
"AudioOptionsSoundPanelEnableSound",
"AudioOptionsSoundPanelSoundEffects",
"AudioOptionsSoundPanelErrorSpeech",
"AudioOptionsSoundPanelEmoteSounds",
"AudioOptionsSoundPanelPetSounds",
"AudioOptionsSoundPanelMusic",
"AudioOptionsSoundPanelLoopMusic",
"AudioOptionsSoundPanelAmbientSounds",
"AudioOptionsSoundPanelSoundInBG",
"AudioOptionsSoundPanelReverb",
"AudioOptionsSoundPanelHRTF",
"AudioOptionsSoundPanelEnableDSPs",
"AudioOptionsSoundPanelUseHardware",
"VideoOptionsResolutionPanelVSync",
"VideoOptionsResolutionPanelTripleBuffer",
"VideoOptionsResolutionPanelHardwareCursor",
"VideoOptionsResolutionPanelFixInputLag",
"VideoOptionsResolutionPanelUseUIScale",
"VideoOptionsResolutionPanelWindowed",
"VideoOptionsResolutionPanelMaximized",
"VideoOptionsResolutionPanelDisableResize",
"VideoOptionsResolutionPanelDesktopGamma",
"VideoOptionsEffectsPanelSpecularLighting",
"VideoOptionsEffectsPanelFullScreenGlow",
"VideoOptionsEffectsPanelDeathEffect",
"VideoOptionsEffectsPanelProjectedTextures",
}
for _, checkbox in ipairs(checkboxes) do
checkbox = _G[checkbox]
if checkbox then
S:HandleCheckBox(checkbox)
end
end
local sliders = {
"InterfaceOptionsCameraPanelMaxDistanceSlider",
"InterfaceOptionsCameraPanelFollowSpeedSlider",
"InterfaceOptionsMousePanelMouseLookSpeedSlider",
"InterfaceOptionsMousePanelMouseSensitivitySlider",
"AudioOptionsSoundPanelSoundQuality",
"AudioOptionsSoundPanelSoundChannels",
"AudioOptionsSoundPanelMasterVolume",
"AudioOptionsSoundPanelSoundVolume",
"AudioOptionsSoundPanelMusicVolume",
"AudioOptionsSoundPanelAmbienceVolume",
"VideoOptionsResolutionPanelUIScaleSlider",
"VideoOptionsEffectsPanelQualitySlider",
"VideoOptionsEffectsPanelViewDistance",
"VideoOptionsEffectsPanelEnvironmentDetail",
"VideoOptionsEffectsPanelTextureResolution",
"VideoOptionsEffectsPanelTerrainDetail",
"VideoOptionsEffectsPanelClutterDensity",
"VideoOptionsEffectsPanelTextureFiltering",
"VideoOptionsEffectsPanelParticleDensity",
"VideoOptionsEffectsPanelShadowQuality",
"VideoOptionsEffectsPanelClutterRadius",
"VideoOptionsEffectsPanelWeatherIntensity",
"VideoOptionsEffectsPanelPlayerTexture",
"VideoOptionsResolutionPanelGammaSlider",
}
for _, slider in ipairs(sliders) do
S:HandleSliderFrame(_G[slider])
end
local buttons = {
"InterfaceOptionsFrameDefaults",
"InterfaceOptionsFrameOkay",
"InterfaceOptionsFrameCancel",
--"InterfaceOptionsHelpPanelResetTutorials",
"AudioOptionsFrameDefaults",
"AudioOptionsFrameOkay",
"AudioOptionsFrameCancel",
"VideoOptionsFrameDefaults",
"VideoOptionsFrameOkay",
"VideoOptionsFrameCancel",
"VideoOptionsFrameApply",
}
for _, button in ipairs(buttons) do
S:HandleButton(_G[button])
end
local dropdowns = {
"InterfaceOptionsControlsPanelAutoLootKeyDropDown",
"InterfaceOptionsCombatPanelTOTDropDown",
"InterfaceOptionsCombatPanelFocusCastKeyDropDown",
"InterfaceOptionsCombatPanelSelfCastKeyDropDown",
"InterfaceOptionsDisplayPanelAggroWarningDisplay",
"InterfaceOptionsDisplayPanelWorldPVPObjectiveDisplay",
"InterfaceOptionsSocialPanelChatStyle",
"InterfaceOptionsSocialPanelTimestamps",
"InterfaceOptionsCombatTextPanelFCTDropDown",
"InterfaceOptionsCameraPanelStyleDropDown",
"InterfaceOptionsMousePanelClickMoveStyleDropDown",
"InterfaceOptionsLanguagesPanelLocaleDropDown",
"AudioOptionsSoundPanelHardwareDropDown",
"VideoOptionsResolutionPanelResolutionDropDown",
"VideoOptionsResolutionPanelRefreshDropDown",
}
for _, dropdown in ipairs(dropdowns) do
dropdown = _G[dropdown]
if dropdown then
S:HandleDropDownBox(dropdown)
end
end
InterfaceOptionsFrameCategoriesList:StripTextures()
InterfaceOptionsFrameAddOnsList:StripTextures()
S:HandleScrollBar(InterfaceOptionsFrameCategoriesListScrollBar)
S:HandleScrollBar(InterfaceOptionsFrameAddOnsListScrollBar)
InterfaceOptionsFrameCategoriesListScrollBar:Point("TOPRIGHT", 0, -20)
InterfaceOptionsFrameCategoriesListScrollBar:Point("BOTTOMLEFT", 6, 19)
InterfaceOptionsFrameAddOnsListScrollBar:Point("TOPRIGHT", 1, -18)
InterfaceOptionsFrameAddOnsListScrollBar:Point("BOTTOMLEFT", 7, 19)
S:HandleDropDownBox(VideoOptionsResolutionPanelMultiSampleDropDown, 195)
VideoOptionsFrameDefaults:Point("BOTTOMLEFT", 21, 16)
VideoOptionsFrameApply:Point("BOTTOMRIGHT", -22, 16)
VideoOptionsFrameCancel:Point("BOTTOMRIGHT", VideoOptionsFrameApply, "BOTTOMLEFT", -3, 0)
VideoOptionsFrameOkay:Point("BOTTOMRIGHT", VideoOptionsFrameCancel, "BOTTOMLEFT", -3, 0)
AudioOptionsFrameDefaults:Point("BOTTOMLEFT", 21, 16)
AudioOptionsFrameCancel:Point("BOTTOMRIGHT", -22, 16)
AudioOptionsFrameOkay:Point("BOTTOMRIGHT", AudioOptionsFrameCancel, "BOTTOMLEFT", -3, 0)
InterfaceOptionsFrameDefaults:Point("BOTTOMLEFT", 21, 16)
InterfaceOptionsFrameCancel:Point("BOTTOMRIGHT", -22, 16)
InterfaceOptionsFrameOkay:Point("BOTTOMRIGHT", InterfaceOptionsFrameCancel, "BOTTOMLEFT", -3, 0)
VideoOptionsResolutionPanelBrightnessGrayScale:SetTexture("Interface\\OptionsFrame\\21stepgrayscale")
-- Mac Menu
if IsMacClient() then
S:HandleButton(GameMenuButtonMacOptions)
-- Skin main frame and reposition the header
MacOptionsFrame:SetTemplate("Default", true)
MacOptionsFrameHeader:SetTexture("")
MacOptionsFrameHeader:SetPoint("TOP", 0, 0)
S:HandleDropDownBox(MacOptionsFrameResolutionDropDown)
S:HandleDropDownBox(MacOptionsFrameFramerateDropDown)
S:HandleDropDownBox(MacOptionsFrameCodecDropDown)
S:HandleSliderFrame(MacOptionsFrameQualitySlider)
for i = 1, 8 do
S:HandleCheckBox(_G["MacOptionsFrameCheckButton"..i])
end
-- Skin internal frames
MacOptionsFrameMovieRecording:SetTemplate("Default", true)
MacOptionsITunesRemote:SetTemplate("Default", true)
-- Skin buttons
S:HandleButton(MacOptionsFrameCancel)
S:HandleButton(MacOptionsFrameOkay)
S:HandleButton(MacOptionsButtonKeybindings)
S:HandleButton(MacOptionsFrameDefaults)
S:HandleButton(MacOptionsButtonCompress)
-- Reposition and resize buttons
MacOptionsButtonCompress:Width(136)
MacOptionsButtonCompress:Point("TOPLEFT", MacOptionsFrameCheckButton6, "BOTTOMLEFT", 4, -1)
MacOptionsFrameCancel:Size(96, 22)
MacOptionsFrameCancel:Point("BOTTOMRIGHT", -14, 16)
MacOptionsFrameOkay:ClearAllPoints()
MacOptionsFrameOkay:Size(96, 22)
MacOptionsFrameOkay:Point("LEFT", MacOptionsFrameCancel, -99, 0)
MacOptionsButtonKeybindings:ClearAllPoints()
MacOptionsButtonKeybindings:Size(96, 22)
MacOptionsButtonKeybindings:Point("LEFT", MacOptionsFrameOkay, -99, 0)
MacOptionsFrameDefaults:Size(96, 22)
MacOptionsCompressFrame:SetTemplate("Default", true)
MacOptionsCompressFrameHeader:SetTexture("")
MacOptionsCompressFrameHeader:SetPoint("TOP", 0, 0)
S:HandleButton(MacOptionsCompressFrameDelete)
S:HandleButton(MacOptionsCompressFrameSkip)
S:HandleButton(MacOptionsCompressFrameCompress)
MacOptionsCancelFrame:SetTemplate("Default", true)
MacOptionsCancelFrameHeader:SetTexture("")
MacOptionsCancelFrameHeader:SetPoint("TOP", 0, 0)
S:HandleButton(MacOptionsCancelFrameNo)
S:HandleButton(MacOptionsCancelFrameYes)
end
-- Chat Config
ChatConfigFrame:StripTextures()
ChatConfigFrame:SetTemplate("Transparent")
ChatConfigCategoryFrame:SetTemplate("Transparent")
ChatConfigBackgroundFrame:SetTemplate("Transparent")
ChatConfigChatSettingsClassColorLegend:SetTemplate("Transparent")
ChatConfigChannelSettingsClassColorLegend:SetTemplate("Transparent")
ChatConfigCombatSettingsFilters:SetTemplate("Transparent")
ChatConfigCombatSettingsFiltersScrollFrame:StripTextures()
S:HandleScrollBar(ChatConfigCombatSettingsFiltersScrollFrameScrollBar)
ChatConfigCombatSettingsFiltersScrollFrameScrollBarBorder:Kill()
S:HandleButton(ChatConfigCombatSettingsFiltersDeleteButton)
S:HandleButton(ChatConfigCombatSettingsFiltersAddFilterButton)
S:HandleButton(ChatConfigCombatSettingsFiltersCopyFilterButton)
ChatConfigCombatSettingsFiltersDeleteButton:Point("TOPRIGHT", ChatConfigCombatSettingsFilters, "BOTTOMRIGHT", 0, -1)
ChatConfigCombatSettingsFiltersAddFilterButton:Point("RIGHT", ChatConfigCombatSettingsFiltersDeleteButton, "LEFT", -1, 0)
ChatConfigCombatSettingsFiltersCopyFilterButton:Point("RIGHT", ChatConfigCombatSettingsFiltersAddFilterButton, "LEFT", -1, 0)
S:HandleNextPrevButton(ChatConfigMoveFilterUpButton)
ChatConfigMoveFilterUpButton:Size(26)
ChatConfigMoveFilterUpButton:Point("TOPLEFT", ChatConfigCombatSettingsFilters, "BOTTOMLEFT", 3, -1)
ChatConfigMoveFilterUpButton:SetHitRectInsets(0, 0, 0, 0)
S:HandleNextPrevButton(ChatConfigMoveFilterDownButton)
ChatConfigMoveFilterDownButton:Size(26)
ChatConfigMoveFilterDownButton:Point("LEFT", ChatConfigMoveFilterUpButton, "RIGHT", 1, 0)
ChatConfigMoveFilterDownButton:SetHitRectInsets(0, 0, 0, 0)
CombatConfigColorsHighlighting:StripTextures()
CombatConfigColorsColorizeUnitName:StripTextures()
CombatConfigColorsColorizeSpellNames:StripTextures()
CombatConfigColorsColorizeDamageNumber:StripTextures()
CombatConfigColorsColorizeDamageSchool:StripTextures()
CombatConfigColorsColorizeEntireLine:StripTextures()
S:HandleEditBox(CombatConfigSettingsNameEditBox)
S:HandleButton(CombatConfigSettingsSaveButton)
local combatCheckboxes = {
"CombatConfigColorsHighlightingLine",
"CombatConfigColorsHighlightingAbility",
"CombatConfigColorsHighlightingDamage",
"CombatConfigColorsHighlightingSchool",
"CombatConfigColorsColorizeUnitNameCheck",
"CombatConfigColorsColorizeSpellNamesCheck",
"CombatConfigColorsColorizeSpellNamesSchoolColoring",
"CombatConfigColorsColorizeDamageNumberCheck",
"CombatConfigColorsColorizeDamageNumberSchoolColoring",
"CombatConfigColorsColorizeDamageSchoolCheck",
"CombatConfigColorsColorizeEntireLineCheck",
"CombatConfigFormattingShowTimeStamp",
"CombatConfigFormattingShowBraces",
"CombatConfigFormattingUnitNames",
"CombatConfigFormattingSpellNames",
"CombatConfigFormattingItemNames",
"CombatConfigFormattingFullText",
"CombatConfigSettingsShowQuickButton",
"CombatConfigSettingsSolo",
"CombatConfigSettingsParty",
"CombatConfigSettingsRaid"
}
for i = 1, #combatCheckboxes do
S:HandleCheckBox(_G[combatCheckboxes[i]])
end
for i = 1, 5 do
local tab = _G["CombatConfigTab"..i]
tab:StripTextures()
tab:CreateBackdrop("Default", true)
tab.backdrop:Point("TOPLEFT", 1, -10)
tab.backdrop:Point("BOTTOMRIGHT", -1, 2)
tab:HookScript("OnEnter", S.SetModifiedBackdrop)
tab:HookScript("OnLeave", S.SetOriginalBackdrop)
end
S:HandleButton(ChatConfigFrameDefaultButton)
S:HandleButton(CombatLogDefaultButton)
S:HandleButton(ChatConfigFrameCancelButton)
S:HandleButton(ChatConfigFrameOkayButton)
ChatConfigFrameDefaultButton:Width(125)
ChatConfigFrameDefaultButton:Point("BOTTOMLEFT", 12, 8)
ChatConfigFrameCancelButton:Point("BOTTOMRIGHT", -1, 8)
S:HandleColorSwatch(CombatConfigColorsColorizeSpellNamesColorSwatch)
S:HandleColorSwatch(CombatConfigColorsColorizeDamageNumberColorSwatch)
hooksecurefunc("ChatConfig_CreateCheckboxes", function(frame, checkBoxTable, checkBoxTemplate)
frame:SetTemplate("Transparent")
local checkBoxNameString = frame:GetName().."CheckBox"
local checkBoxName, checkbox
for index in ipairs(checkBoxTable) do
checkBoxName = checkBoxNameString..index
checkbox = _G[checkBoxName]
if not checkbox.backdrop then
checkbox:StripTextures()
checkbox:CreateBackdrop()
checkbox.backdrop:Point("TOPLEFT", 3, -1)
checkbox.backdrop:Point("BOTTOMRIGHT", -3, 1)
checkbox.backdrop:SetFrameLevel(checkbox:GetParent():GetFrameLevel() + 1)
S:HandleCheckBox(_G[checkBoxName.."Check"])
if checkBoxTemplate == "ChatConfigCheckBoxWithSwatchTemplate" or checkBoxTemplate == "ChatConfigCheckBoxWithSwatchAndClassColorTemplate" then
if checkBoxTemplate == "ChatConfigCheckBoxWithSwatchAndClassColorTemplate" then
S:HandleCheckBox(_G[checkBoxName.."ColorClasses"])
end
S:HandleColorSwatch(_G[checkBoxName.."ColorSwatch"])
end
end
end
end)
hooksecurefunc("ChatConfig_CreateTieredCheckboxes", function(frame, checkBoxTable)
local checkBoxNameString = frame:GetName().."CheckBox"
local checkBoxName
for index, value in ipairs(checkBoxTable) do
checkBoxName = checkBoxNameString..index
if _G[checkBoxName] then
S:HandleCheckBox(_G[checkBoxName])
if value.subTypes then
local subCheckBox
for i in ipairs(value.subTypes) do
subCheckBox = _G[checkBoxName.."_"..i]
if subCheckBox then
S:HandleCheckBox(subCheckBox)
end
end
end
end
end
end)
hooksecurefunc("ChatConfig_CreateColorSwatches", function(frame, swatchTable)
frame:SetTemplate("Transparent")
local nameString = frame:GetName().."Swatch"
local swatch
for index in ipairs(swatchTable) do
swatch = _G[nameString..index]
if not swatch.backdrop then
swatch:StripTextures()
swatch:CreateBackdrop()
swatch.backdrop:Point("TOPLEFT", 3, -1)
swatch.backdrop:Point("BOTTOMRIGHT", -3, 1)
swatch.backdrop:SetFrameLevel(swatch:GetParent():GetFrameLevel() + 1)
S:HandleColorSwatch(_G[nameString..index.."ColorSwatch"])
end
end
end)
end)
+395
View File
@@ -0,0 +1,395 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
local _G = _G
local unpack = unpack
local fmod = math.fmod
--WoW API / Variables
local hooksecurefunc = hooksecurefunc
local CLASS_SORT_ORDER = CLASS_SORT_ORDER
S:AddCallbackForAddon("Blizzard_Calendar", "Skin_Blizzard_Calendar", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.calendar then return end
CalendarFrame:StripTextures()
CalendarFrame:CreateBackdrop("Transparent")
CalendarFrame.backdrop:Point("TOPLEFT", 3, -7)
CalendarFrame.backdrop:Point("BOTTOMRIGHT", -2, -4)
S:SecureHook("Calendar_Show", function()
S:SetUIPanelWindowInfo(CalendarFrame, "xoffset", 8, nil, true)
S:SetUIPanelWindowInfo(CalendarFrame, "yoffset", -5, nil, true)
S:SetUIPanelWindowInfo(CalendarFrame, "width", nil, -8)
S:SetBackdropHitRect(CalendarFrame)
S:Unhook("Calendar_Show")
end)
CalendarFrameModalOverlay:SetFrameStrata("DIALOG")
CalendarModalDummy:SetAllPoints(CalendarFrameModalOverlay)
CalendarFrameBlocker:SetAllPoints(CalendarFrameModalOverlay)
CalendarFrame:EnableMouseWheel(true)
CalendarFrame:SetScript("OnMouseWheel", function(_, value)
if value > 0 then
if CalendarPrevMonthButton:IsEnabled() == 1 then
CalendarPrevMonthButton_OnClick()
end
else
if CalendarNextMonthButton:IsEnabled() == 1 then
CalendarNextMonthButton_OnClick()
end
end
end)
S:HandleCloseButton(CalendarCloseButton, CalendarFrame.backdrop)
S:HandleNextPrevButton(CalendarPrevMonthButton)
S:HandleNextPrevButton(CalendarNextMonthButton)
CalendarPrevMonthButton:Point("RIGHT", CalendarMonthBackground, "LEFT", 0, -8)
CalendarNextMonthButton:Point("LEFT", CalendarMonthBackground, "RIGHT", 0, -8)
do
local frame = CalendarFilterFrame
local button = CalendarFilterButton
local text = CalendarFilterFrameText
frame:StripTextures()
frame:Width(155)
frame:Point("TOPRIGHT", -32, -24)
text:Point("RIGHT", -34, 3)
button:Point("RIGHT", frame, "RIGHT", -10, 3)
button.SetPoint = E.noop
S:HandleNextPrevButton(button)
frame:CreateBackdrop("Default")
frame.backdrop:Point("TOPLEFT", 20, 4)
frame.backdrop:Point("BOTTOMRIGHT", button, "BOTTOMRIGHT", 2, -2)
end
local bg = CreateFrame("Frame", "CalendarFrameBackdrop", CalendarFrame)
bg:SetTemplate("Default")
bg:SetOutside(CalendarDayButton1, 3, 3, CalendarDayButton42)
CalendarContextMenu:SetTemplate("Transparent")
CalendarContextMenu.SetBackdropColor = E.noop
CalendarContextMenu.SetBackdropBorderColor = E.noop
CalendarInviteStatusContextMenu:SetTemplate("Transparent")
CalendarInviteStatusContextMenu.SetBackdropColor = E.noop
CalendarInviteStatusContextMenu.SetBackdropBorderColor = E.noop
for i = 1, 7 do
_G["CalendarContextMenuButton"..i]:StyleButton()
end
for i = 1, 42 do
local button = _G["CalendarDayButton"..i]
local eventTexture = _G["CalendarDayButton"..i.."EventTexture"]
local overlayFrame = _G["CalendarDayButton"..i.."OverlayFrame"]
button:SetFrameLevel(button:GetFrameLevel() + 1)
button:Size(91 - E.Border)
button:SetTemplate("Default", nil, true)
button:SetBackdropColor(0, 0, 0, 0)
button:GetNormalTexture():SetInside()
button:GetNormalTexture():SetDrawLayer("BACKGROUND")
button:GetHighlightTexture():SetInside()
button:GetHighlightTexture():SetTexture(1, 1, 1, 0.3)
eventTexture:SetInside()
overlayFrame:SetInside()
hooksecurefunc(eventTexture, "SetTexCoord", function(self, left, right, top, bottom)
if left == 0 and right == 1 and top == 0 and bottom == 1 then
if self._blocked then return end
self._blocked = true
self:SetTexCoord(unpack(E.TexCoords))
self._blocked = nil
end
end)
for j = 1, 4 do
local EventButton = _G["CalendarDayButton"..i.."EventButton"..j]
EventButton:StripTextures()
EventButton:StyleButton()
end
button:ClearAllPoints()
if i == 1 then
button:SetPoint("TOPLEFT", CalendarWeekday1Background, "BOTTOMLEFT", 0, 0)
elseif fmod(i, 7) == 1 then
button:SetPoint("TOPLEFT", _G["CalendarDayButton"..(i - 7)], "BOTTOMLEFT", 0, -E.Border)
else
button:SetPoint("TOPLEFT", _G["CalendarDayButton"..(i - 1)], "TOPRIGHT", E.Border, 0)
end
end
CalendarTodayFrame:StripTextures()
CalendarTodayFrame:SetTemplate("Default")
CalendarTodayFrame:Size(CalendarDayButton1:GetWidth(), CalendarDayButton1:GetHeight())
CalendarTodayFrame:SetBackdropBorderColor(unpack(E.media.rgbvaluecolor))
local value = E.db.general.valuecolor
CalendarTodayFrame:SetBackdropColor(value.r, value.g, value.b, 0.5)
CalendarTodayFrame:HookScript("OnUpdate", function(self) self:SetAlpha(CalendarTodayTextureGlow:GetAlpha()) end)
CalendarTodayFrame:CreateShadow()
CalendarTodayFrame.shadow:SetBackdropBorderColor(unpack(E.media.rgbvaluecolor))
CalendarCreateEventFrame:StripTextures()
CalendarCreateEventFrame:SetTemplate("Transparent")
CalendarCreateEventFrame:Point("TOPLEFT", CalendarFrame, "TOPRIGHT", -3, -7)
CalendarCreateEventTitleFrame:StripTextures()
CalendarCreateEventFrameModalOverlay:SetAllPoints(CalendarCreateEventFrame)
CalendarCreateEventFrameModalOverlay:SetFrameStrata("DIALOG")
CalendarEventFrameBlocker:SetAllPoints(CalendarCreateEventFrameModalOverlay)
S:HandleButton(CalendarCreateEventCreateButton, true)
S:HandleButton(CalendarCreateEventMassInviteButton, true)
S:HandleButton(CalendarCreateEventInviteButton, true)
CalendarCreateEventInviteButton:Point("TOPLEFT", CalendarCreateEventInviteEdit, "TOPRIGHT", 4, 1)
CalendarCreateEventInviteEdit:Width(CalendarCreateEventInviteEdit:GetWidth() - 2)
CalendarCreateEventInviteList:StripTextures()
CalendarCreateEventInviteList:SetTemplate("Default")
S:HandleEditBox(CalendarCreateEventInviteEdit)
S:HandleEditBox(CalendarCreateEventTitleEdit)
S:HandleDropDownBox(CalendarCreateEventTypeDropDown, 157)
CalendarCreateEventDescriptionContainer:StripTextures()
CalendarCreateEventDescriptionContainer:SetTemplate("Default")
S:HandleCloseButton(CalendarCreateEventCloseButton, CalendarCreateEventFrame)
S:HandleCheckBox(CalendarCreateEventLockEventCheck)
S:HandleDropDownBox(CalendarCreateEventHourDropDown, 68)
S:HandleDropDownBox(CalendarCreateEventMinuteDropDown, 68)
S:HandleDropDownBox(CalendarCreateEventAMPMDropDown, 68)
S:HandleDropDownBox(CalendarCreateEventRepeatOptionDropDown, 157)
CalendarCreateEventIcon:CreateBackdrop()
CalendarCreateEventIcon:Point("TOPLEFT", 14, -26)
CalendarCreateEventIcon:SetTexCoord(unpack(E.TexCoords))
CalendarCreateEventIcon.SetTexCoord = E.noop
CalendarCreateEventTitleEdit:Size(160, 18)
CalendarCreateEventTitleEdit:Point("TOPLEFT", 14, -85)
CalendarCreateEventTypeDropDown:Point("TOPLEFT", 158, -81)
CalendarCreateEventHourDropDown:Point("TOPLEFT", -7, -108)
CalendarCreateEventMinuteDropDown:Point("LEFT", CalendarCreateEventHourDropDown, "RIGHT", -23, 0)
CalendarCreateEventAMPMDropDown:Point("LEFT", CalendarCreateEventMinuteDropDown, "RIGHT", -23, 0)
CalendarCreateEventRepeatOptionDropDown:Point("TOPLEFT", 158, -108)
CalendarCreateEventDescriptionContainer:Size(294, 68)
CalendarCreateEventDescriptionContainer:Point("TOPLEFT", 13, -138)
CalendarCreateEventLockEventCheck:Point("TOPRIGHT", -122, 1)
CalendarCreateEventInviteList:Point("TOP", 0, -43)
CalendarCreateEventInviteEdit:Point("TOPLEFT", CalendarCreateEventInviteList, "BOTTOMLEFT", 1, -8)
CalendarCreateEventMassInviteButton:Point("BOTTOMLEFT", 13, 13)
CalendarCreateEventCreateButton:Point("BOTTOMRIGHT", -13, 13)
CalendarCreateEventInviteListSection:StripTextures()
CalendarClassButtonContainer:HookScript("OnShow", function()
for i, class in ipairs(CLASS_SORT_ORDER) do
local button = _G["CalendarClassButton"..i]
button:StripTextures()
button:CreateBackdrop("Default")
button:Size(23)
local coords = CLASS_ICON_TCOORDS[class]
local buttonIcon = button:GetNormalTexture()
buttonIcon:SetTexture("Interface\\Glues\\CharacterCreate\\UI-CharacterCreate-Classes")
buttonIcon:SetTexCoord(coords[1] + 0.02, coords[2] - 0.02, coords[3] + 0.02, coords[4] - 0.02)
end
CalendarClassButton1:Point("TOPLEFT", 2, 0)
CalendarClassTotalsButton:StripTextures()
CalendarClassTotalsButton:CreateBackdrop("Default")
CalendarClassTotalsButton:Size(23)
end)
-- Texture Picker Frame
CalendarTexturePickerFrame:StripTextures()
CalendarTexturePickerTitleFrame:StripTextures()
CalendarTexturePickerFrame:SetTemplate("Transparent")
CalendarTexturePickerFrame:Width(280)
CalendarTexturePickerFrame:ClearAllPoints()
CalendarTexturePickerFrame:Point("TOPLEFT", CalendarEventFrameBlocker, "TOPRIGHT", 31, 0)
S:HandleScrollBar(CalendarTexturePickerScrollBar)
S:HandleButton(CalendarTexturePickerAcceptButton, true)
S:HandleButton(CalendarTexturePickerCancelButton, true)
S:HandleButton(CalendarCreateEventInviteButton, true)
S:HandleButton(CalendarCreateEventRaidInviteButton, true)
for i = 1, 16 do
_G["CalendarTexturePickerScrollFrameButton"..i]:StyleButton()
end
CalendarTexturePickerScrollFrame:CreateBackdrop("Transparent")
CalendarTexturePickerScrollFrame.backdrop:Point("TOPLEFT", -2, 2)
CalendarTexturePickerScrollFrame.backdrop:Point("BOTTOMRIGHT", 2, -4)
CalendarTexturePickerScrollFrame:Point("TOPLEFT", 10, -20)
CalendarTexturePickerScrollBar:Point("TOPLEFT", CalendarTexturePickerScrollFrame, "TOPRIGHT", 5, -17)
CalendarTexturePickerScrollBar:Point("BOTTOMLEFT", CalendarTexturePickerScrollFrame, "BOTTOMRIGHT", 5, 15)
CalendarTexturePickerCancelButton:Point("BOTTOMRIGHT", -8, 8)
-- Mass Invite Frame
CalendarMassInviteFrame:StripTextures()
CalendarMassInviteFrame:SetTemplate("Transparent")
S:HandleCloseButton(CalendarMassInviteCloseButton, CalendarMassInviteFrame)
CalendarMassInviteTitleFrame:StripTextures()
S:HandleDropDownBox(CalendarMassInviteGuildRankMenu, 140)
S:HandleEditBox(CalendarMassInviteGuildMinLevelEdit)
S:HandleEditBox(CalendarMassInviteGuildMaxLevelEdit)
S:HandleButton(CalendarMassInviteGuildAcceptButton)
S:HandleButton(CalendarMassInviteArenaButton2)
S:HandleButton(CalendarMassInviteArenaButton3)
S:HandleButton(CalendarMassInviteArenaButton5)
CalendarMassInviteFrame:Size(307, 179)
CalendarMassInviteFrame:ClearAllPoints()
CalendarMassInviteFrame:Point("TOPLEFT", CalendarCreateEventFrame, "TOPRIGHT", 31, 0)
CalendarMassInviteGuildLevelText:Point("TOPLEFT", 40, -53)
CalendarMassInviteFrameLevelDivider:Point("TOPLEFT", 51, -74)
CalendarMassInviteGuildMinLevelEdit:Height(18)
CalendarMassInviteGuildMinLevelEdit:Point("TOPLEFT", 20, -72)
CalendarMassInviteGuildMaxLevelEdit:Height(18)
CalendarMassInviteGuildMaxLevelEdit:Point("TOPLEFT", 65, -72)
CalendarMassInviteGuildRankText:Point("TOPLEFT", 188, -53)
CalendarMassInviteGuildRankMenu:Point("TOPLEFT", 167, -68)
CalendarMassInviteGuildAcceptButton:Point("TOPRIGHT", -8, -100)
CalendarMassInviteArenaButton2:Point("TOPLEFT", 8, -149)
CalendarMassInviteArenaButton3:Point("TOP", 0, -149)
CalendarMassInviteArenaButton5:Point("TOPRIGHT", -8, -149)
select(6, CalendarMassInviteFrame:GetRegions()):Point("TOP", 0, -130)
-- Raid View
CalendarViewRaidFrame:StripTextures()
CalendarViewRaidFrame:SetTemplate("Transparent")
CalendarViewRaidFrame:Point("TOPLEFT", CalendarFrame, "TOPRIGHT", -3, -7)
S:HandleCloseButton(CalendarViewRaidCloseButton, CalendarViewRaidFrame)
CalendarViewRaidTitleFrame:StripTextures()
-- Holiday View
CalendarViewHolidayFrame:StripTextures(true)
CalendarViewHolidayFrame:SetTemplate("Transparent")
CalendarViewHolidayFrame:Point("TOPLEFT", CalendarFrame, "TOPRIGHT", -3, -7)
CalendarViewHolidayTitleFrame:StripTextures()
S:HandleCloseButton(CalendarViewHolidayCloseButton, CalendarViewHolidayFrame)
-- Event View
CalendarViewEventFrame:StripTextures()
CalendarViewEventFrame:SetTemplate("Transparent")
CalendarViewEventFrame:Point("TOPLEFT", CalendarFrame, "TOPRIGHT", -3, -7)
S:HandleCloseButton(CalendarViewEventCloseButton, CalendarViewEventFrame)
CalendarViewEventTitleFrame:StripTextures()
CalendarViewEventDescriptionContainer:StripTextures()
CalendarViewEventDescriptionContainer:SetTemplate("Transparent")
CalendarViewEventInviteList:StripTextures()
CalendarViewEventInviteList:SetTemplate("Transparent")
CalendarViewEventInviteListSection:StripTextures()
S:HandleScrollBar(CalendarViewEventDescriptionScrollFrameScrollBar)
S:HandleScrollBar(CalendarViewEventInviteListScrollFrameScrollBar)
CalendarViewEventFrameModalOverlay:SetAllPoints(CalendarViewEventFrame)
CalendarViewEventFrameModalOverlay:SetFrameStrata("DIALOG")
S:HandleButton(CalendarViewEventAcceptButton)
S:HandleButton(CalendarViewEventTentativeButton)
S:HandleButton(CalendarViewEventRemoveButton)
S:HandleButton(CalendarViewEventDeclineButton)
CalendarViewEventIcon:CreateBackdrop()
CalendarViewEventIcon:SetTexCoord(unpack(E.TexCoords))
CalendarViewEventIcon.SetTexCoord = E.noop
CalendarViewEventDescriptionContainer:Size(294, 68)
CalendarViewEventDescriptionContainer:Point("TOPLEFT", 13, -94)
CalendarViewEventDescriptionScrollFrameScrollBar:Point("TOPLEFT", CalendarViewEventDescriptionScrollFrame, "TOPRIGHT", 4, -15)
CalendarViewEventDescriptionScrollFrameScrollBar:Point("BOTTOMLEFT", CalendarViewEventDescriptionScrollFrame, "BOTTOMRIGHT", 4, 15)
CalendarViewEventInviteListScrollFrameScrollBar:Point("TOPLEFT", CalendarViewEventInviteListScrollFrame, "TOPRIGHT", 7, -16)
CalendarViewEventInviteListScrollFrameScrollBar:Point("BOTTOMLEFT", CalendarViewEventInviteListScrollFrame, "BOTTOMRIGHT", 7, 16)
CalendarViewEventIcon:Point("TOPLEFT", 14, -26)
CalendarViewEventInviteListSection:Point("TOPLEFT", 0, -177)
-- Event Picker Frame
CalendarEventPickerFrame:StripTextures()
CalendarEventPickerTitleFrame:StripTextures()
CalendarEventPickerFrame:SetTemplate("Transparent")
CalendarEventPickerFrame:SetFrameLevel(CalendarFrameModalOverlay:GetFrameLevel() + 10)
S:HandleScrollBar(CalendarEventPickerScrollBar)
S:HandleButton(CalendarEventPickerCloseButton, true)
CalendarEventPickerScrollFrame:Width(253)
CalendarEventPickerScrollFrame:Point("TOPLEFT", 8, -22)
CalendarEventPickerScrollBar:Point("TOPLEFT", CalendarEventPickerScrollFrame, "TOPRIGHT", 3, -19)
CalendarEventPickerScrollBar:Point("BOTTOMLEFT", CalendarEventPickerScrollFrame, "BOTTOMRIGHT", 3, 17)
CalendarEventPickerCloseButton:Point("BOTTOMRIGHT", -8, 8)
-- Create Event
S:HandleScrollBar(CalendarCreateEventDescriptionScrollFrameScrollBar)
S:HandleScrollBar(CalendarCreateEventInviteListScrollFrameScrollBar)
CalendarCreateEventDescriptionScrollFrameScrollBar:Point("TOPLEFT", CalendarCreateEventDescriptionScrollFrame, "TOPRIGHT", 4, -15)
CalendarCreateEventDescriptionScrollFrameScrollBar:Point("BOTTOMLEFT", CalendarCreateEventDescriptionScrollFrame, "BOTTOMRIGHT", 4, 15)
CalendarCreateEventInviteListScrollFrameScrollBar:Point("TOPLEFT", CalendarCreateEventInviteListScrollFrame, "TOPRIGHT", 7, -16)
CalendarCreateEventInviteListScrollFrameScrollBar:Point("BOTTOMLEFT", CalendarCreateEventInviteListScrollFrame, "BOTTOMRIGHT", 7, 16)
if CalendarCreateEventInviteListScrollFrame.buttons then
for _, button in ipairs(CalendarCreateEventInviteListScrollFrame.buttons) do
S:HandleButtonHighlight(button)
end
else
CalendarCreateEventInviteList:HookScript("OnEvent", function(self, event)
if event == "ADDON_LOADED" then
for _, button in ipairs(self.scrollFrame.buttons) do
S:HandleButtonHighlight(button)
end
end
end)
end
end)
+810
View File
@@ -0,0 +1,810 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
local _G = _G
local getmetatable = getmetatable
local ipairs = ipairs
local select = select
local unpack = unpack
local find = string.find
--WoW API / Variables
local GetCurrencyListInfo = GetCurrencyListInfo
local GetInventoryItemQuality = GetInventoryItemQuality
local GetInventoryItemTexture = GetInventoryItemTexture
local GetItemInfo = GetItemInfo
local GetItemQualityColor = GetItemQualityColor
local GetNumFactions = GetNumFactions
local GetPetHappiness = GetPetHappiness
local HasPetUI = HasPetUI
local UnitFactionGroup = UnitFactionGroup
local hooksecurefunc = hooksecurefunc
local NUM_COMPANIONS_PER_PAGE = NUM_COMPANIONS_PER_PAGE
local NUM_FACTIONS_DISPLAYED = NUM_FACTIONS_DISPLAYED
local NUM_GEARSET_ICONS_PER_ROW = NUM_GEARSET_ICONS_PER_ROW
S:AddCallback("Skin_Character", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.character then return end
-- CharacterFrame
CharacterFrame:StripTextures(true)
CharacterFrame:CreateBackdrop("Transparent")
CharacterFrame.backdrop:Point("TOPLEFT", 11, -12)
CharacterFrame.backdrop:Point("BOTTOMRIGHT", -32, 76)
S:SetUIPanelWindowInfo(CharacterFrame, "width")
S:SetBackdropHitRect(PaperDollFrame, CharacterFrame.backdrop)
S:SetBackdropHitRect(PetPaperDollFrame, CharacterFrame.backdrop)
S:SetBackdropHitRect(PetPaperDollFrameCompanionFrame, CharacterFrame.backdrop)
S:SetBackdropHitRect(PetPaperDollFramePetFrame, CharacterFrame.backdrop)
S:SetBackdropHitRect(ReputationFrame, CharacterFrame.backdrop)
S:SetBackdropHitRect(SkillFrame, CharacterFrame.backdrop)
S:SetBackdropHitRect(TokenFrame, CharacterFrame.backdrop)
S:HandleCloseButton(CharacterFrameCloseButton, CharacterFrame.backdrop)
PaperDollFrame:StripTextures(true)
for i = 1, #CHARACTERFRAME_SUBFRAMES do
S:HandleTab(_G["CharacterFrameTab"..i])
end
hooksecurefunc("PetPaperDollFrame_UpdateIsAvailable", function()
if not PetPaperDollFrame.hidden then
CharacterFrameTab3:Point("LEFT", "CharacterFrameTab2", "RIGHT", -15, 0)
end
end)
-- PaperDollFrame
PlayerTitleFrame:StripTextures()
PlayerTitleFrame:CreateBackdrop("Default")
PlayerTitleFrame.backdrop:Point("TOPLEFT", 20, 3)
PlayerTitleFrame.backdrop:Point("BOTTOMRIGHT", -16, 15)
PlayerTitleFrame.backdrop:SetFrameLevel(PlayerTitleFrame:GetFrameLevel())
S:HandleNextPrevButton(PlayerTitleFrameButton)
PlayerTitleFrameButton:Size(16)
PlayerTitleFrameButton:Point("TOPRIGHT", PlayerTitleFrameRight, "TOPRIGHT", -18, -16)
PlayerTitlePickerFrame:StripTextures()
PlayerTitlePickerFrame:CreateBackdrop("Transparent")
PlayerTitlePickerFrame.backdrop:Point("TOPLEFT", 6, -10)
PlayerTitlePickerFrame.backdrop:Point("BOTTOMRIGHT", -13, 6)
PlayerTitlePickerFrame.backdrop:SetFrameLevel(PlayerTitlePickerFrame:GetFrameLevel())
S:HandleScrollBar(PlayerTitlePickerScrollFrameScrollBar)
PlayerTitlePickerScrollFrameScrollBar:Point("TOPLEFT", PlayerTitlePickerScrollFrame, "TOPRIGHT", 1, -14)
PlayerTitlePickerScrollFrameScrollBar:Point("BOTTOMLEFT", PlayerTitlePickerScrollFrame, "BOTTOMRIGHT", 1, 15)
for _, button in ipairs(PlayerTitlePickerScrollFrame.buttons) do
button.text:FontTemplate()
S:HandleButtonHighlight(button)
end
S:HandleRotateButton(CharacterModelFrameRotateLeftButton)
S:HandleRotateButton(CharacterModelFrameRotateRightButton)
PlayerStatFrameLeftDropDown:Point("BOTTOMLEFT", PlayerStatLeftTop, "TOPLEFT", -19, -8)
S:HandleDropDownBox(PlayerStatFrameLeftDropDown, 140, "down")
S:HandleDropDownBox(PlayerStatFrameRightDropDown, 140, "down")
CharacterAttributesFrame:StripTextures()
PaperDollFrameItemFlyoutButtons:EnableMouse(false)
PaperDollFrameItemFlyoutHighlight:Kill()
GearManagerToggleButton:Size(25, 29)
GearManagerToggleButton:Point("TOPRIGHT", -46, -40)
GearManagerToggleButton:CreateBackdrop("Default")
-- texWidth, texHeight, cropWidth, cropHeight, offsetX, offsetY = 64, 64, 40, 46, 13, 10
GearManagerToggleButton:GetNormalTexture():SetTexCoord(0.203125, 0.828125, 0.15625, 0.875)
-- texWidth, texHeight, cropWidth, cropHeight, offsetX, offsetY = 64, 64, 40, 46, 12, 12
GearManagerToggleButton:GetPushedTexture():SetTexCoord(0.1875, 0.8125, 0.1875, 0.90625)
GearManagerToggleButton:GetHighlightTexture():SetTexture(1, 1, 1, 0.3)
GearManagerToggleButton:GetHighlightTexture():SetAllPoints()
PlayerTitleFrame:Point("TOP", CharacterLevelText, "BOTTOM", -7, -7)
PlayerTitlePickerFrame:Point("TOPLEFT", PlayerTitleFrame, "BOTTOMLEFT", 14, 26)
CharacterModelFrame:Size(237, 217)
CharacterModelFrame:Point("TOPLEFT", 63, -76)
CharacterModelFrameRotateLeftButton:Point("TOPLEFT", 4, -4)
CharacterModelFrameRotateRightButton:Point("TOPLEFT", CharacterModelFrameRotateLeftButton, "TOPRIGHT", 3, 0)
CharacterResistanceFrame:Point("TOPRIGHT", PaperDollFrame, "TOPLEFT", 300, -81)
CharacterHeadSlot:Point("TOPLEFT", 19, -76)
CharacterHandsSlot:Point("TOPLEFT", 307, -76)
CharacterMainHandSlot:Point("TOPLEFT", PaperDollFrame, "BOTTOMLEFT", 110, 131)
CharacterAttributesFrame:Point("TOPLEFT", 66, -292)
local popoutButtonOnEnter = function(self) self.icon:SetVertexColor(unpack(E.media.rgbvaluecolor)) end
local popoutButtonOnLeave = function(self) self.icon:SetVertexColor(1, 1, 1) end
local slots = {
[1] = CharacterHeadSlot,
[2] = CharacterNeckSlot,
[3] = CharacterShoulderSlot,
[4] = CharacterShirtSlot,
[5] = CharacterChestSlot,
[6] = CharacterWaistSlot,
[7] = CharacterLegsSlot,
[8] = CharacterFeetSlot,
[9] = CharacterWristSlot,
[10] = CharacterHandsSlot,
[11] = CharacterFinger0Slot,
[12] = CharacterFinger1Slot,
[13] = CharacterTrinket0Slot,
[14] = CharacterTrinket1Slot,
[15] = CharacterBackSlot,
[16] = CharacterMainHandSlot,
[17] = CharacterSecondaryHandSlot,
[18] = CharacterRangedSlot,
[19] = CharacterTabardSlot,
[20] = CharacterAmmoSlot, -- 0
}
for i, slotFrame in ipairs(slots) do
local slotFrameName = slotFrame:GetName()
local icon = _G[slotFrameName.."IconTexture"]
slotFrame:StripTextures()
slotFrame:StyleButton(false)
slotFrame:SetTemplate("Default", true, true)
icon:SetInside()
icon:SetTexCoord(unpack(E.TexCoords))
slotFrame:SetFrameLevel(PaperDollFrame:GetFrameLevel() + 2)
if i ~= 20 then
local cooldown = _G[slotFrameName.."Cooldown"]
local popout = _G[slotFrameName.."PopoutButton"]
E:RegisterCooldown(cooldown)
popout:StripTextures()
popout:HookScript("OnEnter", popoutButtonOnEnter)
popout:HookScript("OnLeave", popoutButtonOnLeave)
popout.icon = popout:CreateTexture(nil, "ARTWORK")
popout.icon:Size(24)
popout.icon:Point("CENTER")
popout.icon:SetTexture(E.Media.Textures.ArrowUp)
if slotFrame.verticalFlyout then
popout.icon:SetRotation(S.ArrowRotation.down)
else
popout.icon:SetRotation(S.ArrowRotation.right)
end
end
end
local function updateSlotFrame(self, event, slotID, exist)
if event then
self = slots[slotID]
end
if exist then
local quality = GetInventoryItemQuality("player", slotID)
if quality then
self:SetBackdropBorderColor(GetItemQualityColor(quality))
else
self:SetBackdropBorderColor(unpack(E.media.bordercolor))
end
else
self:SetBackdropBorderColor(unpack(E.media.bordercolor))
end
end
local function colorItemBorder()
for _, slotFrame in ipairs(slots) do
local slotID = slotFrame:GetID()
updateSlotFrame(slotFrame, nil, slotID, GetInventoryItemTexture("player", slotID) ~= nil)
end
end
hooksecurefunc(CharacterAmmoSlotIconTexture, "SetTexture", function(self, texture)
updateSlotFrame(self:GetParent(), nil, 0, texture ~= "Interface\\PaperDoll\\UI-PaperDoll-Slot-Ranged")
end)
local f = CreateFrame("Frame")
f:RegisterEvent("PLAYER_EQUIPMENT_CHANGED")
f:SetScript("OnEvent", updateSlotFrame)
CharacterFrame:HookScript("OnShow", colorItemBorder)
colorItemBorder()
local nStripped = 0
hooksecurefunc("PaperDollFrameItemFlyout_Show", function()
if nStripped < PaperDollFrameItemFlyoutButtons.numBGs then
nStripped = PaperDollFrameItemFlyoutButtons.numBGs
PaperDollFrameItemFlyoutButtons:StripTextures()
end
end)
hooksecurefunc("PaperDollFrameItemPopoutButton_SetReversed", function(self, isReversed)
if self:GetParent().verticalFlyout then
if isReversed then
self.icon:SetRotation(S.ArrowRotation.up)
else
self.icon:SetRotation(S.ArrowRotation.down)
end
else
if isReversed then
self.icon:SetRotation(S.ArrowRotation.left)
else
self.icon:SetRotation(S.ArrowRotation.right)
end
end
end)
hooksecurefunc("PaperDollFrameItemFlyout_DisplayButton", function(button)
if not button.isSkinned then
button.icon = _G[button:GetName().."IconTexture"]
button:GetNormalTexture():SetTexture(nil)
button:SetTemplate("Default")
button:StyleButton()
button.icon:SetInside()
button.icon:SetTexCoord(unpack(E.TexCoords))
E:RegisterCooldown(button.cooldown)
end
if not button.location or button.location >= PDFITEMFLYOUT_FIRST_SPECIAL_LOCATION then return end
local id = EquipmentManager_GetItemInfoByLocation(button.location)
local _, _, quality = GetItemInfo(id)
button:SetBackdropBorderColor(GetItemQualityColor(quality))
end)
local function handleResistanceFrame(frameName)
for i = 1, 5 do
local frame = _G[frameName..i]
frame:Size(24)
frame:SetTemplate("Default")
if i ~= 1 then
frame:ClearAllPoints()
frame:Point("TOP", _G[frameName..i-1], "BOTTOM", 0, -(E.Border + E.Spacing))
end
local texture, text = frame:GetRegions()
texture:SetInside()
texture:SetDrawLayer("ARTWORK")
text:SetDrawLayer("OVERLAY")
text:Point("CENTER", -1, 0)
if i == 1 then -- Arcane
-- texWidth, texHeight, cropWidth, cropHeight, offsetX, offsetY = 32, 256, 18, 18, 8, 64
texture:SetTexCoord(0.25, 0.8125, 0.25, 0.3203125)
elseif i == 2 then -- Fire
-- texWidth, texHeight, cropWidth, cropHeight, offsetX, offsetY = 32, 256, 18, 18, 8, 6
texture:SetTexCoord(0.25, 0.8125, 0.0234375, 0.09375)
elseif i == 3 then -- Nature
-- texWidth, texHeight, cropWidth, cropHeight, offsetX, offsetY = 32, 256, 18, 18, 8, 35
texture:SetTexCoord(0.25, 0.8125, 0.13671875, 0.20703125)
elseif i == 4 then -- Frost
-- texWidth, texHeight, cropWidth, cropHeight, offsetX, offsetY = 32, 256, 18, 18, 8, 94
texture:SetTexCoord(0.25, 0.8125, 0.3671875, 0.4375)
elseif i == 5 then -- Shadow
-- texWidth, texHeight, cropWidth, cropHeight, offsetX, offsetY = 32, 256, 18, 18, 8, 122
texture:SetTexCoord(0.25, 0.8125, 0.4765625, 0.546875)
end
end
end
handleResistanceFrame("MagicResFrame")
-- GearManager Dialog
GearManagerDialog:StripTextures()
GearManagerDialog:CreateBackdrop("Transparent")
GearManagerDialog.backdrop:Point("TOPLEFT", 5, -2)
GearManagerDialog.backdrop:Point("BOTTOMRIGHT", -3, 4)
S:SetBackdropHitRect(GearManagerDialog)
S:HandleCloseButton(GearManagerDialogClose, GearManagerDialog.backdrop)
for i, button in ipairs(GearManagerDialog.buttons) do
button:StripTextures()
button:CreateBackdrop("Default")
button.backdrop:SetAllPoints()
button:StyleButton(nil, true)
button.icon:SetInside()
button.icon:SetTexCoord(unpack(E.TexCoords))
end
S:HandleButton(GearManagerDialogDeleteSet)
S:HandleButton(GearManagerDialogEquipSet)
S:HandleButton(GearManagerDialogSaveSet)
GearSetButton1:Point("TOPLEFT", 15, -29)
GearSetButton6:Point("TOP", GearSetButton1, "BOTTOM", 0, -13)
GearManagerDialogDeleteSet:Point("BOTTOMLEFT", 11, 12)
GearManagerDialogEquipSet:Point("BOTTOMLEFT", 92, 12)
GearManagerDialogSaveSet:Point("BOTTOMRIGHT", -10, 12)
-- GearManager DialogPopup
GearManagerDialogPopup:EnableMouse(true)
GearManagerDialogPopup:StripTextures()
GearManagerDialogPopup:CreateBackdrop("Transparent")
GearManagerDialogPopup.backdrop:Point("TOPLEFT", 5, -10)
GearManagerDialogPopup.backdrop:Point("BOTTOMRIGHT", -39, 8)
S:SetBackdropHitRect(GearManagerDialogPopup)
GearManagerDialogPopupScrollFrame:StripTextures()
S:HandleScrollBar(GearManagerDialogPopupScrollFrameScrollBar)
S:HandleEditBox(GearManagerDialogPopupEditBox)
for i, button in ipairs(GearManagerDialogPopup.buttons) do
button:StripTextures()
button:SetFrameLevel(button:GetFrameLevel() + 2)
button:CreateBackdrop("Default")
button.backdrop:SetAllPoints()
button:StyleButton(true, true)
button.icon:SetInside()
button.icon:SetTexCoord(unpack(E.TexCoords))
if i > 1 then
local lastPos = (i - 1) / NUM_GEARSET_ICONS_PER_ROW
if lastPos == math.floor(lastPos) then
button:SetPoint("TOPLEFT", GearManagerDialogPopup.buttons[i-NUM_GEARSET_ICONS_PER_ROW], "BOTTOMLEFT", 0, -7)
else
button:SetPoint("TOPLEFT", GearManagerDialogPopup.buttons[i-1], "TOPRIGHT", 7, 0)
end
end
end
S:HandleButton(GearManagerDialogPopupOkay)
S:HandleButton(GearManagerDialogPopupCancel)
local text1, text2 = select(5, GearManagerDialogPopup:GetRegions())
text1:Point("TOPLEFT", 24, -19)
text2:Point("TOPLEFT", 24, -63)
if GetLocale() == "ruRU" then
text1:SetText(string.utf8sub(GEARSETS_POPUP_TEXT, 0, -7) .. "):")
end
GearManagerDialogPopupEditBox:Point("TOPLEFT", 24, -36)
GearManagerDialogPopupButton1:Point("TOPLEFT", 17, -83)
GearManagerDialogPopupScrollFrame:SetTemplate("Transparent")
GearManagerDialogPopupScrollFrame:Size(216, 130)
GearManagerDialogPopupScrollFrame:Point("TOPRIGHT", -68, -79)
GearManagerDialogPopupScrollFrameScrollBar:Point("TOPLEFT", GearManagerDialogPopupScrollFrame, "TOPRIGHT", 3, -19)
GearManagerDialogPopupScrollFrameScrollBar:Point("BOTTOMLEFT", GearManagerDialogPopupScrollFrame, "BOTTOMRIGHT", 3, 19)
GearManagerDialogPopupOkay:Point("BOTTOMRIGHT", GearManagerDialogPopupCancel, "BOTTOMLEFT", -3, 0)
GearManagerDialogPopupCancel:Point("BOTTOMRIGHT", -47, 16)
-- PetPaperDollFrame
PetPaperDollFrame:StripTextures(true)
for i = 1, 3 do
local tab = _G["PetPaperDollFrameTab"..i]
tab:StripTextures()
tab:CreateBackdrop("Default", true)
tab.backdrop:Point("TOPLEFT", 2, -7)
tab.backdrop:Point("BOTTOMRIGHT", -1, -1)
S:SetBackdropHitRect(tab)
tab:HookScript("OnEnter", S.SetModifiedBackdrop)
tab:HookScript("OnLeave", S.SetOriginalBackdrop)
end
-- PetPaperDollFrame PetFrame
S:HandleRotateButton(PetModelFrameRotateLeftButton)
S:HandleRotateButton(PetModelFrameRotateRightButton)
handleResistanceFrame("PetMagicResFrame")
PetAttributesFrame:StripTextures()
PetPaperDollFrameExpBar:StripTextures()
PetPaperDollFrameExpBar:CreateBackdrop("Default")
PetPaperDollFrameExpBar:SetStatusBarTexture(E.media.normTex)
E:RegisterStatusBar(PetPaperDollFrameExpBar)
S:HandleButton(PetPaperDollCloseButton)
local function updateHappiness(self)
local _, isHunterPet = HasPetUI()
local happiness = GetPetHappiness()
if not isHunterPet or not happiness then return end
if happiness == 1 then
-- texWidth, texHeight, cropWidth, cropHeight, offsetX, offsetY = 128, 64, 16, 16, 52, 4
self:GetRegions():SetTexCoord(0.40625, 0.53125, 0.0625, 0.3125)
elseif happiness == 2 then
-- texWidth, texHeight, cropWidth, cropHeight, offsetX, offsetY = 128, 64, 16, 16, 28, 4
self:GetRegions():SetTexCoord(0.21875, 0.34375, 0.0625, 0.3125)
elseif happiness == 3 then
-- texWidth, texHeight, cropWidth, cropHeight, offsetX, offsetY = 128, 64, 16, 16, 52, 4
self:GetRegions():SetTexCoord(0.03125, 0.15625, 0.0625, 0.3125)
end
end
PetModelFrame:Width(325)
PetModelFrame:Point("TOPLEFT", 19, -71)
PetModelFrameRotateLeftButton:Point("TOPLEFT", PetPaperDollFrame, "TOPLEFT", 23, -75)
PetModelFrameRotateRightButton:Point("TOPLEFT", PetModelFrameRotateLeftButton, "TOPRIGHT", 3, 0)
PetResistanceFrame:Point("TOPRIGHT", PetPaperDollFrame, "TOPLEFT", 344, -75)
PetPaperDollPetInfo:SetFrameLevel(PetModelFrame:GetFrameLevel() + 2)
PetPaperDollPetInfo:CreateBackdrop("Default")
PetPaperDollPetInfo:Size(25)
PetPaperDollPetInfo:Point("TOPLEFT", PetModelFrameRotateLeftButton, "BOTTOMLEFT", 10, -4)
-- texWidth, texHeight, cropWidth, cropHeight, offsetX, offsetY = 128, 64, 16, 16, 52, 4
PetPaperDollPetInfo:GetRegions():SetTexCoord(0.03125, 0.15625, 0.0625, 0.3125)
PetPaperDollPetInfo:RegisterEvent("UNIT_HAPPINESS")
PetPaperDollPetInfo:SetScript("OnEvent", updateHappiness)
PetPaperDollPetInfo:SetScript("OnShow", updateHappiness)
updateHappiness(PetPaperDollPetInfo)
PetLevelText:Point("CENTER", 0, -50)
PetAttributesFrame:Point("TOPLEFT", 67, -310)
PetPaperDollFrameExpBar:Width(323)
PetPaperDollFrameExpBar:Point("BOTTOMLEFT", 20, 112)
PetPaperDollCloseButton:Point("CENTER", PetPaperDollFramePetFrame, "TOPLEFT", 304, -417)
-- PetPaperDollFrame CompanionFrame
PetPaperDollFrameCompanionFrame:StripTextures()
S:HandleRotateButton(CompanionModelFrameRotateLeftButton)
S:HandleRotateButton(CompanionModelFrameRotateRightButton)
S:HandleButton(CompanionSummonButton)
S:HandleNextPrevButton(CompanionPrevPageButton)
S:HandleNextPrevButton(CompanionNextPageButton)
hooksecurefunc("PetPaperDollFrame_UpdateCompanions", function()
for i = 1, NUM_COMPANIONS_PER_PAGE do
local button = _G["CompanionButton"..i]
if button.creatureID then
local iconNormal = button:GetNormalTexture()
iconNormal:SetTexCoord(unpack(E.TexCoords))
iconNormal:SetInside()
end
end
end)
for i = 1, NUM_COMPANIONS_PER_PAGE do
local button = _G["CompanionButton"..i]
local iconDisabled = button:GetDisabledTexture()
local activeTexture = _G["CompanionButton"..i.."ActiveTexture"]
button:StyleButton(nil, true)
button:SetTemplate("Default", true)
iconDisabled:SetAlpha(0)
activeTexture:SetInside(button)
activeTexture:SetTexture(1, 1, 1, .15)
if i == 7 then
button:Point("TOP", CompanionButton1, "BOTTOM", 0, -5)
elseif i ~= 1 then
button:Point("LEFT", _G["CompanionButton"..i-1], "RIGHT", 5, 0)
end
end
CompanionModelFrame:Size(325, 174)
CompanionModelFrame:Point("TOPLEFT", 19, -71)
CompanionModelFrameRotateLeftButton:Point("TOPLEFT", PetPaperDollFrame, "TOPLEFT", 23, -75)
CompanionModelFrameRotateRightButton:Point("TOPLEFT", CompanionModelFrameRotateLeftButton, "TOPRIGHT", 3, 0)
CompanionButton1:Point("TOPLEFT", 58, -308)
CompanionSummonButton:Width(149)
CompanionSummonButton:Point("CENTER", -11, -24)
CompanionPrevPageButton:Point("BOTTOMLEFT", 122, 92)
CompanionNextPageButton:Point("LEFT", CompanionPrevPageButton, "RIGHT", 83, 0)
CompanionPageNumber:Point("CENTER", -10, -155)
-- Reputation Frame
ReputationFrame:StripTextures(true)
for i = 1, NUM_FACTIONS_DISPLAYED do
local factionRow = _G["ReputationBar"..i]
local factionBar = _G["ReputationBar"..i.."ReputationBar"]
local factionButton = _G["ReputationBar"..i.."ExpandOrCollapseButton"]
factionRow:StripTextures(true)
factionBar:StripTextures()
factionBar:SetStatusBarTexture(E.media.normTex)
E:RegisterStatusBar(factionBar)
factionBar:CreateBackdrop("Default")
factionButton:SetNormalTexture(E.Media.Textures.Minus)
factionButton.SetNormalTexture = E.noop
factionButton:GetNormalTexture():Size(15)
factionButton:SetHighlightTexture(nil)
end
hooksecurefunc("ReputationFrame_Update", function()
local factionOffset = FauxScrollFrame_GetOffset(ReputationListScrollFrame)
local numFactions = GetNumFactions()
local factionIndex, factionButton
for i = 1, NUM_FACTIONS_DISPLAYED do
factionIndex = factionOffset + i
if factionIndex <= numFactions then
factionButton = _G["ReputationBar"..i.."ExpandOrCollapseButton"]
if _G["ReputationBar"..i].isCollapsed then
factionButton:GetNormalTexture():SetTexture(E.Media.Textures.Plus)
else
factionButton:GetNormalTexture():SetTexture(E.Media.Textures.Minus)
end
end
end
end)
ReputationListScrollFrame:StripTextures()
S:HandleScrollBar(ReputationListScrollFrameScrollBar)
ReputationFrameFactionLabel:Point("TOPLEFT", 70, -60)
ReputationFrameStandingLabel:Point("TOPLEFT", 235, -60)
ReputationBar1:Point("TOPRIGHT", -51, -81)
ReputationListScrollFrame:Width(304)
ReputationListScrollFrame:Point("TOPRIGHT", -61, -74)
ReputationListScrollFrameScrollBar:Point("TOPLEFT", ReputationListScrollFrame, "TOPRIGHT", 3, -19)
ReputationListScrollFrameScrollBar:Point("BOTTOMLEFT", ReputationListScrollFrame, "BOTTOMRIGHT", 3, 19)
ReputationListScrollFrame:SetScript("OnShow", function()
ReputationBar1:Point("TOPRIGHT", -75, -81)
end)
ReputationListScrollFrame:SetScript("OnHide", function()
ReputationBar1:Point("TOPRIGHT", -51, -81)
end)
-- Reputation DetailFrame
ReputationDetailFrame:StripTextures()
ReputationDetailFrame:SetTemplate("Transparent")
ReputationDetailFrame:Point("TOPLEFT", ReputationFrame, "TOPRIGHT", -33, -12)
S:HandleCloseButton(ReputationDetailCloseButton, ReputationDetailFrame)
S:HandleCheckBox(ReputationDetailAtWarCheckBox)
ReputationDetailAtWarCheckBox:SetCheckedTexture("Interface\\Buttons\\UI-CheckBox-SwordCheck")
S:HandleCheckBox(ReputationDetailInactiveCheckBox)
S:HandleCheckBox(ReputationDetailMainScreenCheckBox)
-- Skill Frame
SkillFrame:StripTextures(true)
SkillFrameExpandButtonFrame:StripTextures()
SkillFrameCollapseAllButton:SetNormalTexture(E.Media.Textures.Plus)
SkillFrameCollapseAllButton.SetNormalTexture = E.noop
SkillFrameCollapseAllButton:GetNormalTexture():Size(16)
SkillFrameCollapseAllButton:SetHighlightTexture(nil)
hooksecurefunc(SkillFrameCollapseAllButton, "SetNormalTexture", function(self, texture)
if find(texture, "MinusButton") then
SkillFrameCollapseAllButton:GetNormalTexture():SetTexture(E.Media.Textures.Minus)
else
SkillFrameCollapseAllButton:GetNormalTexture():SetTexture(E.Media.Textures.Plus)
end
end)
for i = 1, SKILLS_TO_DISPLAY do
local statusBar = _G["SkillRankFrame"..i]
local statusBarBorder = _G["SkillRankFrame"..i.."Border"]
local statusBarBackground = _G["SkillRankFrame"..i.."Background"]
local skillTypeLabelText = _G["SkillTypeLabel"..i]
statusBar:Width(276)
statusBar:CreateBackdrop("Default")
statusBar:SetStatusBarTexture(E.media.normTex)
E:RegisterStatusBar(statusBar)
statusBarBorder:StripTextures()
statusBarBackground:SetTexture(nil)
skillTypeLabelText:SetNormalTexture(E.Media.Textures.Plus)
skillTypeLabelText.SetNormalTexture = E.noop
skillTypeLabelText:GetNormalTexture():Size(16)
skillTypeLabelText:SetHighlightTexture(nil)
hooksecurefunc(skillTypeLabelText, "SetNormalTexture", function(self, texture)
if find(texture, "MinusButton") then
self:GetNormalTexture():SetTexture(E.Media.Textures.Minus)
else
self:GetNormalTexture():SetTexture(E.Media.Textures.Plus)
end
end)
end
SkillDetailStatusBar:StripTextures()
SkillDetailStatusBar:SetParent(SkillDetailScrollFrame)
SkillDetailStatusBar:CreateBackdrop("Default")
SkillDetailStatusBar:SetStatusBarTexture(E.media.normTex)
E:RegisterStatusBar(SkillDetailStatusBar)
S:HandleCloseButton(SkillDetailStatusBarUnlearnButton)
SkillDetailStatusBarUnlearnButton:SetPoint("LEFT", SkillDetailStatusBarBorder, "RIGHT")
SkillDetailStatusBarUnlearnButton.Texture:Size(16)
SkillDetailStatusBarUnlearnButton.Texture:SetVertexColor(1, 0, 0)
SkillDetailStatusBarUnlearnButton:HookScript("OnEnter", function(btn) btn.Texture:SetVertexColor(1, 1, 1) end)
SkillDetailStatusBarUnlearnButton:HookScript("OnLeave", function(btn) btn.Texture:SetVertexColor(1, 0, 0) end)
SkillListScrollFrame:StripTextures()
S:HandleScrollBar(SkillListScrollFrameScrollBar)
SkillDetailScrollFrame:StripTextures()
S:HandleScrollBar(SkillDetailScrollFrameScrollBar)
S:HandleButton(SkillFrameCancelButton)
SkillFrameExpandButtonFrame:Point("TOPLEFT", 30, -50)
SkillTypeLabel1:Point("LEFT", SkillFrame, "TOPLEFT", 22, -85)
SkillRankFrame1:Point("TOPLEFT", 38, -78)
SkillListScrollFrame:Width(304)
SkillListScrollFrame:Point("TOPRIGHT", -61, -74)
SkillListScrollFrameScrollBar:Point("TOPLEFT", SkillListScrollFrame, "TOPRIGHT", 3, -19)
SkillListScrollFrameScrollBar:Point("BOTTOMLEFT", SkillListScrollFrame, "BOTTOMRIGHT", 3, 19)
SkillDetailScrollFrame:Size(304, 98)
SkillDetailScrollFrame:Point("TOPLEFT", SkillListScrollFrame, "BOTTOMLEFT", 0, -7)
SkillDetailScrollFrameScrollBar:Point("TOPLEFT", SkillDetailScrollFrame, "TOPRIGHT", 3, -19)
SkillDetailScrollFrameScrollBar:Point("BOTTOMLEFT", SkillDetailScrollFrame, "BOTTOMRIGHT", 3, 19)
SkillFrameCancelButton:Point("CENTER", SkillFrame, "TOPLEFT", 304, -417)
-- Token Frame
TokenFrame:StripTextures(true)
select(4, TokenFrame:GetChildren()):Hide()
S:HandleScrollBar(TokenFrameContainerScrollBar)
S:HandleButton(TokenFrameCancelButton)
TokenFrameContainer:Size(304, 360)
TokenFrameContainer:Point("TOPLEFT", 19, -39)
TokenFrameContainerScrollBar:Point("TOPLEFT", TokenFrameContainer, "TOPRIGHT", 3, -19)
TokenFrameContainerScrollBar:Point("BOTTOMLEFT", TokenFrameContainer, "BOTTOMRIGHT", 3, 19)
TokenFrameMoneyFrame:Point("BOTTOMRIGHT", -115, 88)
TokenFrameCancelButton:Point("CENTER", TokenFrame, "TOPLEFT", 304, -417)
TokenFrameContainerScrollBar.Show = function(self)
TokenFrameContainer:SetWidth(304)
for _, button in ipairs(TokenFrameContainer.buttons) do
button:SetWidth(300)
end
getmetatable(self).__index.Show(self)
end
TokenFrameContainerScrollBar.Hide = function(self)
TokenFrameContainer:SetWidth(325)
for _, button in ipairs(TokenFrameContainer.buttons) do
button:SetWidth(325)
end
getmetatable(self).__index.Hide(self)
end
local function skinTokenButton(button)
if not button.isSkinned then
button.categoryLeft:Kill()
button.categoryRight:Kill()
button.highlight:Kill()
button.expandIcon:Size(16)
button.expandIcon:SetTexCoord(0, 1, 0, 1)
button.expandIcon.SetTexCoord = E.noop
button.isSkinned = true
end
end
local tokenSkinned = 0
local function updateTokenContainer()
local offset = HybridScrollFrame_GetOffset(TokenFrameContainer)
local buttons = TokenFrameContainer.buttons
local numButtons = #buttons
local index, button
local _, name, isHeader, isExpanded, extraCurrencyType, icon
if numButtons > tokenSkinned then
for i = tokenSkinned + 1, numButtons do
skinTokenButton(TokenFrameContainer.buttons[i])
end
tokenSkinned = numButtons
end
for i = 1, numButtons do
index = offset + i
button = buttons[i]
name, isHeader, isExpanded, _, _, _, extraCurrencyType, icon = GetCurrencyListInfo(index)
if name then
if isHeader then
if isExpanded then
button.expandIcon:SetTexture(E.Media.Textures.Minus)
else
button.expandIcon:SetTexture(E.Media.Textures.Plus)
end
else
if extraCurrencyType == 1 then
button.icon:SetTexCoord(unpack(E.TexCoords))
elseif extraCurrencyType == 2 then
local factionGroup = UnitFactionGroup("player")
if factionGroup then
button.icon:SetTexture("Interface\\TargetingFrame\\UI-PVP-"..factionGroup)
-- texWidth, texHeight, cropWidth, cropHeight, offsetX, offsetY = 64, 64, 36, 36, 4, 1
button.icon:SetTexCoord(0.0625, 0.625, 0.015625, 0.578125)
else
button.icon:SetTexCoord(unpack(E.TexCoords))
end
else
button.icon:SetTexture(icon)
button.icon:SetTexCoord(unpack(E.TexCoords))
end
end
end
end
end
hooksecurefunc("TokenFrame_Update", updateTokenContainer)
hooksecurefunc(TokenFrameContainer, "update", updateTokenContainer)
-- Token Frame Popup
TokenFramePopup:StripTextures()
TokenFramePopup:SetTemplate("Transparent")
S:HandleCloseButton(TokenFramePopupCloseButton, TokenFramePopup)
S:HandleCheckBox(TokenFramePopupInactiveCheckBox)
S:HandleCheckBox(TokenFramePopupBackpackCheckBox)
TokenFramePopup:Point("TOPLEFT", TokenFrame, "TOPRIGHT", -33, -12)
end)
+60
View File
@@ -0,0 +1,60 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
local unpack = unpack
--WoW API / Variables
S:AddCallbackForAddon("Blizzard_DebugTools", "Skin_Blizzard_DebugTools", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.debug then return end
ScriptErrorsFrame:SetParent(E.UIParent)
ScriptErrorsFrame:StripTextures()
ScriptErrorsFrame:SetTemplate("Transparent")
S:HandleScrollBar(ScriptErrorsFrameScrollFrameScrollBar)
S:HandleCloseButton(ScriptErrorsFrameClose, ScriptErrorsFrame)
ScriptErrorsFrameScrollFrameText:FontTemplate(nil, 13)
ScriptErrorsFrameScrollFrameText:Width(461)
ScriptErrorsFrameScrollFrame:CreateBackdrop("Default")
ScriptErrorsFrameScrollFrame.backdrop:Point("BOTTOMRIGHT", 1, -2)
ScriptErrorsFrameScrollFrame:SetFrameLevel(ScriptErrorsFrameScrollFrame:GetFrameLevel() + 2)
ScriptErrorsFrameScrollFrame:Width(461)
ScriptErrorsFrameScrollFrame:Point("TOPLEFT", 9, -30)
ScriptErrorsFrameScrollFrameScrollBar:Point("TOPLEFT", ScriptErrorsFrameScrollFrame, "TOPRIGHT", 4, -18)
ScriptErrorsFrameScrollFrameScrollBar:Point("BOTTOMLEFT", ScriptErrorsFrameScrollFrame, "BOTTOMRIGHT", 4, 17)
EventTraceFrame:StripTextures()
EventTraceFrame:SetTemplate("Transparent")
S:HandleSliderFrame(EventTraceFrameScroll)
for i = 1, ScriptErrorsFrame:GetNumChildren() do
local child = select(i, ScriptErrorsFrame:GetChildren())
if child:GetObjectType() == "Button" and not child:GetName() then
S:HandleButton(child)
end
end
FrameStackTooltip:HookScript("OnShow", function(self)
local noscalemult = E.mult * GetCVar("uiScale")
self:SetBackdrop({
bgFile = E.media.blankTex,
edgeFile = E.media.blankTex,
tile = false, tileSize = 0, edgeSize = noscalemult,
insets = {left = -noscalemult, right = -noscalemult, top = -noscalemult, bottom = -noscalemult}
})
self:SetBackdropColor(unpack(E.media.backdropfadecolor))
self:SetBackdropBorderColor(unpack(E.media.bordercolor))
end)
EventTraceTooltip:HookScript("OnShow", function(self)
self:SetTemplate("Transparent")
end)
S:HandleCloseButton(EventTraceFrameCloseButton, EventTraceFrame)
end)
@@ -0,0 +1,50 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
--WoW API / Variables
S:AddCallback("Skin_DressingRoom", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.dressingroom then return end
DressUpFrame:StripTextures()
DressUpFrame:CreateBackdrop("Transparent")
DressUpFrame.backdrop:Point("TOPLEFT", 11, -12)
DressUpFrame.backdrop:Point("BOTTOMRIGHT", -32, 76)
S:SetUIPanelWindowInfo(DressUpFrame, "width")
S:SetBackdropHitRect(DressUpFrame)
DressUpFramePortrait:Kill()
SetDressUpBackground()
DressUpBackgroundTopLeft:SetDesaturated(true)
DressUpBackgroundTopRight:SetDesaturated(true)
DressUpBackgroundBotLeft:SetDesaturated(true)
DressUpBackgroundBotRight:SetDesaturated(true)
S:HandleCloseButton(DressUpFrameCloseButton, DressUpFrame.backdrop)
S:HandleRotateButton(DressUpModelRotateLeftButton)
S:HandleRotateButton(DressUpModelRotateRightButton)
S:HandleButton(DressUpFrameCancelButton)
S:HandleButton(DressUpFrameResetButton)
DressUpModel:CreateBackdrop("Default")
DressUpModel.backdrop:SetOutside(DressUpModel)
DressUpFrameDescriptionText:Point("CENTER", DressUpFrameTitleText, "BOTTOM", 10, -18)
DressUpModelRotateLeftButton:Point("TOPLEFT", DressUpFrame, 29, -76)
DressUpModelRotateRightButton:Point("TOPLEFT", DressUpModelRotateLeftButton, "TOPRIGHT", 3, 0)
DressUpModel:Size(323, 331)
DressUpModel:ClearAllPoints()
DressUpModel:Point("TOPLEFT", 20, -67)
DressUpBackgroundTopLeft:Point("TOPLEFT", 23, -67)
DressUpFrameCancelButton:Point("CENTER", DressUpFrame, "TOPLEFT", 304, -417)
DressUpFrameResetButton:Point("RIGHT", DressUpFrameCancelButton, "LEFT", -3, 0)
end)
+685
View File
@@ -0,0 +1,685 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
local _G = _G
local ipairs = ipairs
local unpack = unpack
--WoW API / Variables
local GetGuildRosterInfo = GetGuildRosterInfo
local GetNumRaidMembers = GetNumRaidMembers
local GetNumWhoResults = GetNumWhoResults
local GetWhoInfo = GetWhoInfo
local PlaySound = PlaySound
local GUILDMEMBERS_TO_DISPLAY = GUILDMEMBERS_TO_DISPLAY
local WHOS_TO_DISPLAY = WHOS_TO_DISPLAY
S:AddCallback("Skin_Friends", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.friends then return end
-- Friends Frame
FriendsFrame:StripTextures(true)
FriendsFrame:CreateBackdrop("Transparent")
FriendsFrame.backdrop:Point("TOPLEFT", 11, -12)
FriendsFrame.backdrop:Point("BOTTOMRIGHT", -32, 76)
S:SetUIPanelWindowInfo(FriendsFrame, "width")
S:SetBackdropHitRect(FriendsFrame)
S:HandleCloseButton(FriendsFrameCloseButton, FriendsFrame.backdrop)
S:HandleDropDownBox(FriendsFrameStatusDropDown, 70)
S:HandleEditBox(FriendsFrameBroadcastInput)
for i = 1, 2 do
local tab = _G["FriendsTabHeaderTab"..i]
tab:StripTextures()
tab:CreateBackdrop("Default", true)
tab.backdrop:Point("TOPLEFT", 3, -7)
tab.backdrop:Point("BOTTOMRIGHT", -2, -1)
tab:HookScript("OnEnter", S.SetModifiedBackdrop)
tab:HookScript("OnLeave", S.SetOriginalBackdrop)
end
for i = 1, 5 do
S:HandleTab(_G["FriendsFrameTab"..i])
end
FriendsFrameStatusDropDown:Point("TOPLEFT", FriendsListFrame, "TOPLEFT", 0, -37)
FriendsFrameStatusDropDownMouseOver:Size(22, 18)
FriendsFrameStatusDropDownMouseOver:Point("TOPLEFT", 21, -4)
FriendsFrameStatusDropDownStatus:Point("LEFT", 25, 3)
FriendsFrameBroadcastInput:Width(241)
FriendsFrameBroadcastInput:Point("TOPLEFT", FriendsFrameStatusDropDown, "TOPRIGHT", 11, -3)
FriendsTabHeaderTab1:Point("TOPLEFT", 30, -60)
-- Friends List Frame
for i = 1, FRIENDS_FRIENDS_TO_DISPLAY do
_G["FriendsFrameFriendsScrollFrameButton"..i.."SummonButton"]:StyleButton()
_G["FriendsFrameFriendsScrollFrameButton"..i.."SummonButtonIcon"]:SetTexCoord(unpack(E.TexCoords))
_G["FriendsFrameFriendsScrollFrameButton"..i.."SummonButtonNormalTexture"]:SetAlpha(0)
end
S:HandleScrollBar(FriendsFrameFriendsScrollFrameScrollBar)
S:HandleButton(FriendsFrameAddFriendButton, true)
S:HandleButton(FriendsFrameSendMessageButton, true)
FriendsFrameFriendsScrollFrame:Width(304)
FriendsFrameFriendsScrollFrame:Point("TOPLEFT", FriendsFrame, 19, -92)
FriendsFrameFriendsScrollFrameScrollBar:Point("TOPRIGHT", FriendsFrame, "TOPRIGHT", -40, -111)
FriendsFrameFriendsScrollFrameScrollBar:Point("BOTTOMLEFT", FriendsFrameFriendsScrollFrame, "BOTTOMRIGHT", 3, 19)
FriendsFrameAddFriendButton:Height(22)
FriendsFrameAddFriendButton:Point("BOTTOMLEFT", FriendsFrame, 19, 84)
FriendsFrameSendMessageButton:Height(22)
FriendsFrameSendMessageButton:Point("BOTTOMRIGHT", FriendsFrame, -40, 84)
-- Ignore List Frame
S:HandleScrollBar(FriendsFrameIgnoreScrollFrameScrollBar)
S:HandleButton(FriendsFrameIgnorePlayerButton, true)
S:HandleButton(FriendsFrameUnsquelchButton, true)
for i = 1, IGNORES_TO_DISPLAY do
S:HandleButtonHighlight(_G["FriendsFrameIgnoreButton"..i])
end
FriendsFrameIgnoreButton1:Point("TOPLEFT", FriendsFrame, "TOPLEFT", 22, -95)
FriendsFrameIgnoreScrollFrame:Width(304)
FriendsFrameIgnoreScrollFrame:Point("TOPRIGHT", FriendsFrame, "TOPRIGHT", -61, -92)
FriendsFrameIgnoreScrollFrameScrollBar:Point("TOPLEFT", FriendsFrameIgnoreScrollFrame, "TOPRIGHT", 3, -19)
FriendsFrameIgnoreScrollFrameScrollBar:Point("BOTTOMLEFT", FriendsFrameIgnoreScrollFrame, "BOTTOMRIGHT", 3, 21)
FriendsFrameIgnorePlayerButton:Height(22)
FriendsFrameIgnorePlayerButton:Point("BOTTOMLEFT", FriendsFrame, 19, 84)
FriendsFrameUnsquelchButton:Height(22)
FriendsFrameUnsquelchButton:Point("BOTTOMRIGHT", FriendsFrame, -40, 84)
-- Who Frame
S:HandleDropDownBox(WhoFrameDropDown)
S:SetBackdropHitRect(WhoFrameDropDown)
for i = 1, 4 do
local header = _G["WhoFrameColumnHeader"..i]
header:StripTextures()
header:StyleButton()
end
for i = 1, WHOS_TO_DISPLAY do
local button = _G["WhoFrameButton"..i]
local level = _G["WhoFrameButton"..i.."Level"]
local name = _G["WhoFrameButton"..i.."Name"]
local class = _G["WhoFrameButton"..i.."Class"]
button.icon = button:CreateTexture("$parentIcon", "ARTWORK")
button.icon:Size(15)
button.icon:Point("LEFT", 45, 0)
button.icon:SetTexture("Interface\\WorldStateFrame\\Icons-Classes")
button:CreateBackdrop("Default", true)
button.backdrop:SetAllPoints(button.icon)
S:HandleButtonHighlight(button)
level:ClearAllPoints()
level:SetPoint("TOPLEFT", 11, -1)
name:Size(100, 14)
name:ClearAllPoints()
name:Point("LEFT", 85, 0)
class:Hide()
end
WhoListScrollFrame:StripTextures()
S:HandleScrollBar(WhoListScrollFrameScrollBar)
S:HandleEditBox(WhoFrameEditBox)
S:HandleButton(WhoFrameWhoButton)
S:HandleButton(WhoFrameAddFriendButton)
S:HandleButton(WhoFrameGroupInviteButton)
WhoFrameColumnHeader3:ClearAllPoints()
WhoFrameColumnHeader3:Point("TOPLEFT", 20, -48)
WhoFrameColumnHeader4:ClearAllPoints()
WhoFrameColumnHeader4:Point("LEFT", WhoFrameColumnHeader3, "RIGHT", -2, 0)
WhoFrameColumn_SetWidth(WhoFrameColumnHeader4, 48)
WhoFrameColumnHeader1:ClearAllPoints()
WhoFrameColumnHeader1:Point("LEFT", WhoFrameColumnHeader4, "RIGHT", -2, 0)
WhoFrameColumn_SetWidth(WhoFrameColumnHeader1, 105)
WhoFrameColumnHeader2:ClearAllPoints()
WhoFrameColumnHeader2:Point("LEFT", WhoFrameColumnHeader1, "RIGHT", -6, 1)
WhoFrameButton1:Point("TOPLEFT", 17, -75)
WhoListScrollFrame:Size(304, 284)
WhoListScrollFrame:Point("TOPRIGHT", FriendsFrame, "TOPRIGHT", -61, -71)
WhoListScrollFrameScrollBar:Point("TOPLEFT", WhoListScrollFrame, "TOPRIGHT", 3, -19)
WhoListScrollFrameScrollBar:Point("BOTTOMLEFT", WhoListScrollFrame, "BOTTOMRIGHT", 3, 19)
WhoFrameTotals:Point("BOTTOM", -10, 137)
WhoFrameEditBox:Size(323, 18)
WhoFrameEditBox:Point("BOTTOM", -11, 114)
WhoFrameGroupInviteButton:Width(117)
WhoFrameAddFriendButton:Width(117)
WhoFrameGroupInviteButton:Point("BOTTOMRIGHT", -40, 84)
WhoFrameAddFriendButton:Point("RIGHT", WhoFrameGroupInviteButton, "LEFT", -3, 0)
WhoFrameWhoButton:Point("RIGHT", WhoFrameAddFriendButton, "LEFT", -3, 0)
hooksecurefunc("WhoList_Update", function()
local numWhos = GetNumWhoResults()
if numWhos == 0 then return end
numWhos = numWhos > WHOS_TO_DISPLAY and WHOS_TO_DISPLAY or numWhos
local _, level, classFileName
local button, buttonText, classTextColor, levelTextColor
for i = 1, numWhos do
button = _G["WhoFrameButton"..i]
_, _, level, _, _, _, classFileName = GetWhoInfo(button.whoIndex)
if classFileName then
classTextColor = E.media.herocolor
button.icon:Show()
button.icon:SetTexCoord(unpack(CLASS_ICON_TCOORDS[classFileName]))
else
classTextColor = HIGHLIGHT_FONT_COLOR
button.icon:Hide()
end
levelTextColor = GetQuestDifficultyColor(level)
buttonText = _G["WhoFrameButton"..i.."Name"]
buttonText:SetTextColor(classTextColor.r, classTextColor.g, classTextColor.b)
buttonText = _G["WhoFrameButton"..i.."Level"]
buttonText:SetTextColor(levelTextColor.r, levelTextColor.g, levelTextColor.b)
buttonText = _G["WhoFrameButton"..i.."Class"]
buttonText:SetTextColor(1.0, 1.0, 1.0)
end
end)
-- Guild Frame
S:HandleCheckBox(GuildFrameLFGButton)
GuildFrameLFGFrame:StripTextures()
GuildFrameLFGFrame:SetTemplate("Default")
GuildListScrollFrame:StripTextures()
S:HandleScrollBar(GuildListScrollFrameScrollBar)
S:HandleNextPrevButton(GuildFrameGuildListToggleButton)
S:HandleButton(GuildFrameGuildInformationButton)
S:HandleButton(GuildFrameAddMemberButton)
S:HandleButton(GuildFrameControlButton)
for i = 1, GUILDMEMBERS_TO_DISPLAY do
local button = _G["GuildFrameButton"..i]
local level = _G["GuildFrameButton"..i.."Level"]
local name = _G["GuildFrameButton"..i.."Name"]
local class = _G["GuildFrameButton"..i.."Class"]
local statusButton = _G["GuildFrameGuildStatusButton"..i]
local statusName = _G["GuildFrameGuildStatusButton"..i.."Name"]
button.icon = button:CreateTexture("$parentIcon", "ARTWORK")
button.icon:Size(15)
button.icon:Point("LEFT", 48, 0)
button.icon:SetTexture("Interface\\WorldStateFrame\\Icons-Classes")
button:CreateBackdrop("Default", true)
button.backdrop:SetAllPoints(button.icon)
S:HandleButtonHighlight(button)
S:HandleButtonHighlight(statusButton)
level:ClearAllPoints()
level:Point("TOPLEFT", 10, -1)
name:Size(100, 14)
name:ClearAllPoints()
name:Point("LEFT", 85, 0)
class:Hide()
statusName:ClearAllPoints()
statusName:SetPoint("LEFT", 10, 0)
end
for i = 1, 4 do
local header = _G["GuildFrameColumnHeader"..i]
header:StripTextures()
header:StyleButton()
header = _G["GuildFrameGuildStatusColumnHeader"..i]
header:StripTextures()
header:StyleButton()
end
GuildFrameColumnHeader3:ClearAllPoints()
GuildFrameColumnHeader3:Point("TOPLEFT", 20, -66)
WhoFrameColumn_SetWidth(GuildFrameColumnHeader3, 32)
GuildFrameColumnHeader4:ClearAllPoints()
GuildFrameColumnHeader4:Point("LEFT", GuildFrameColumnHeader3, "RIGHT", -2, 0)
WhoFrameColumn_SetWidth(GuildFrameColumnHeader4, 48)
GuildFrameColumnHeader1:ClearAllPoints()
GuildFrameColumnHeader1:Point("LEFT", GuildFrameColumnHeader4, "RIGHT", -2, 0)
WhoFrameColumn_SetWidth(GuildFrameColumnHeader1, 105)
GuildFrameColumnHeader2:ClearAllPoints()
GuildFrameColumnHeader2:Point("LEFT", GuildFrameColumnHeader1, "RIGHT", -2, 0)
WhoFrameColumn_SetWidth(GuildFrameColumnHeader2, 127)
GuildFrameGuildStatusColumnHeader1:Point("TOPLEFT", 20, -66)
GuildFrameButton1:Point("TOPLEFT", GuildFrame, "TOPLEFT", 17, -93)
GuildFrameGuildStatusButton1:Point("TOPLEFT", GuildFrame, "TOPLEFT", 17, -93)
GuildListScrollFrame:Size(304, 220)
GuildListScrollFrame:Point("TOPRIGHT", -61, -89)
GuildListScrollFrameScrollBar:Point("TOPLEFT", GuildListScrollFrame, "TOPRIGHT", 3, -19)
GuildListScrollFrameScrollBar:Point("BOTTOMLEFT", GuildListScrollFrame, "BOTTOMRIGHT", 3, 19)
GuildFrameTotals:Point("BOTTOM", GuildFrame, "LEFT", 82, -77)
GuildFrameGuildListToggleButton:Point("LEFT", 305, -69)
GuildFrameGuildListToggleButton.SetPoint = E.noop
GuildFrameNotesLabel:Point("TOPLEFT", 19, -340)
GuildFrameNotesText:Width(325)
GuildFrameGuildInformationButton:Width(121)
GuildFrameControlButton:Width(100)
GuildFrameGuildInformationButton:Point("RIGHT", GuildFrameAddMemberButton, "LEFT", -3, 0)
GuildFrameAddMemberButton:Point("RIGHT", GuildFrameControlButton, "LEFT", -3, 0)
GuildFrameControlButton:Point("BOTTOMRIGHT", -40, 84)
hooksecurefunc("GuildStatus_Update", function()
local _, online, classFileName, button, classTextColor
if FriendsFrame.playerStatusFrame then
local level, buttonText, levelTextColor
for i = 1, GUILDMEMBERS_TO_DISPLAY do
button = _G["GuildFrameButton"..i]
_, _, _, level, _, _, _, _, online, _, classFileName = GetGuildRosterInfo(button.guildIndex)
if classFileName then
if online then
classTextColor = E.media.herocolor
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[classFileName]))
end
end
else
for i = 1, GUILDMEMBERS_TO_DISPLAY do
button = _G["GuildFrameGuildStatusButton"..i]
_, _, _, _, _, _, _, _, online, _, classFileName = GetGuildRosterInfo(button.guildIndex)
if classFileName then
if online then
classTextColor = E.media.herocolor
_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)
-- Member Detail Frame
GuildMemberDetailFrame:StripTextures()
GuildMemberDetailFrame:CreateBackdrop("Transparent")
GuildMemberDetailFrame:Point("TOPLEFT", GuildFrame, "TOPRIGHT", -32, -13)
S:HandleCloseButton(GuildMemberDetailCloseButton, GuildMemberDetailFrame)
S:HandleNextPrevButton(GuildFramePromoteButton)
S:HandleNextPrevButton(GuildFrameDemoteButton)
GuildMemberNoteBackground:SetTemplate("Default")
GuildMemberOfficerNoteBackground:SetTemplate("Default")
S:HandleButton(GuildMemberRemoveButton)
S:HandleButton(GuildMemberGroupInviteButton)
GuildFramePromoteButton:Point("LEFT", GuildMemberDetailFrame, "RIGHT", -55, 46)
GuildFrameDemoteButton:Point("LEFT", GuildFramePromoteButton, "RIGHT", 3, 0)
GuildMemberRemoveButton:Point("BOTTOMLEFT", 7, 7)
GuildMemberGroupInviteButton:SetPoint("LEFT", GuildMemberRemoveButton, "RIGHT", 6, 0)
GUILD_DETAIL_NORM_HEIGHT = 203 -- orig 195
-- Info Frame
GuildInfoFrame:StripTextures()
GuildInfoFrame:CreateBackdrop("Transparent")
GuildInfoFrame.backdrop:Point("TOPLEFT", 4, -6)
GuildInfoFrame.backdrop:Point("BOTTOMRIGHT", -2, 0)
S:SetBackdropHitRect(GuildInfoFrame)
S:HandleCloseButton(GuildInfoCloseButton, GuildInfoFrame.backdrop)
GuildInfoTextBackground:SetTemplate("Default")
S:HandleScrollBar(GuildInfoFrameScrollFrameScrollBar)
S:HandleButton(GuildInfoSaveButton)
S:HandleButton(GuildInfoCancelButton)
S:HandleButton(GuildInfoGuildEventButton)
GuildInfoEditBox:Size(246, 312)
GuildInfoTextBackground:Size(254, 228)
GuildInfoTextBackground:Point("TOPLEFT", 12, -33)
GuildInfoFrameScrollFrame:Width(252)
GuildInfoFrameScrollFrame:Point("TOPLEFT", 2, -5)
GuildInfoFrameScrollFrameScrollBar:Point("TOPLEFT", GuildInfoFrameScrollFrame, "TOPRIGHT", 3, -14)
GuildInfoFrameScrollFrameScrollBar:Point("BOTTOMLEFT", GuildInfoFrameScrollFrame, "BOTTOMRIGHT", 3, 14)
GuildInfoSaveButton:Point("BOTTOMLEFT", 104, 8)
GuildInfoCancelButton:Point("LEFT", GuildInfoSaveButton, "RIGHT", 3, 0)
GuildInfoGuildEventButton:Point("RIGHT", GuildInfoSaveButton, "LEFT", -27, 0)
-- GuildEventLog Frame
GuildEventLogFrame:StripTextures()
GuildEventLogFrame:CreateBackdrop("Transparent")
GuildEventLogFrame.backdrop:Point("TOPLEFT", 4, -6)
GuildEventLogFrame.backdrop:Point("BOTTOMRIGHT", -1, 5)
S:SetBackdropHitRect(GuildEventLogFrame)
S:HandleCloseButton(GuildEventLogCloseButton, GuildEventLogFrame.backdrop)
GuildEventFrame:SetTemplate("Default")
S:HandleScrollBar(GuildEventLogScrollFrameScrollBar)
S:HandleButton(GuildEventLogCancelButton)
GuildEventFrame:Size(353, 361)
GuildEventFrame:Point("TOPLEFT", GuildEventLogFrame, "TOPLEFT", 12, -32)
GuildEventLogScrollFrame:Size(347, 353)
GuildEventLogScrollFrame:Point("TOPRIGHT", -3, -4)
GuildEventLogScrollFrameScrollBar:Point("TOPLEFT", GuildEventLogScrollFrame, "TOPRIGHT", 6, -15)
GuildEventLogScrollFrameScrollBar:Point("BOTTOMLEFT", GuildEventLogScrollFrame, "BOTTOMRIGHT", 6, 15)
-- Control Frame
GuildControlPopupFrame:StripTextures()
GuildControlPopupFrame:CreateBackdrop("Transparent")
GuildControlPopupFrame.backdrop:Point("TOPLEFT", 4, -6)
GuildControlPopupFrame.backdrop:Point("BOTTOMRIGHT", -27, 27)
S:SetBackdropHitRect(GuildControlPopupFrame)
S:HandleDropDownBox(GuildControlPopupFrameDropDown, 185)
GuildControlPopupFrameDropDownButton:Size(16)
local function SkinPlusMinus(f, minus)
f:SetNormalTexture("")
f.SetNormalTexture = E.noop
f:SetPushedTexture("")
f.SetPushedTexture = E.noop
f:SetHighlightTexture("")
f.SetHighlightTexture = E.noop
f:SetDisabledTexture("")
f.SetDisabledTexture = E.noop
f.Text = f:CreateFontString(nil, "OVERLAY")
f.Text:FontTemplate(nil, 22)
f.Text:Point("LEFT", 5, 0)
if minus then
f.Text:SetText("-")
else
f.Text:SetText("+")
end
end
SkinPlusMinus(GuildControlPopupFrameAddRankButton)
SkinPlusMinus(GuildControlPopupFrameRemoveRankButton, true)
S:HandleEditBox(GuildControlPopupFrameEditBox)
GuildControlPopupFrameEditBox.backdrop:Point("TOPLEFT", 0, -5)
GuildControlPopupFrameEditBox.backdrop:Point("BOTTOMRIGHT", 0, 5)
S:HandleCheckBox(GuildControlTabPermissionsViewTab)
S:HandleCheckBox(GuildControlTabPermissionsDepositItems)
S:HandleCheckBox(GuildControlTabPermissionsUpdateText)
for i = 1, 17 do
local checkbox = _G["GuildControlPopupFrameCheckbox"..i]
if checkbox then
S:HandleCheckBox(checkbox)
end
end
S:HandleEditBox(GuildControlWithdrawGoldEditBox)
GuildControlWithdrawGoldEditBox.backdrop:Point("TOPLEFT", 0, -5)
GuildControlWithdrawGoldEditBox.backdrop:Point("BOTTOMRIGHT", 0, 5)
for i = 1, MAX_GUILDBANK_TABS do
local tab = _G["GuildBankTabPermissionsTab"..i]
tab:StripTextures()
tab:CreateBackdrop("Default")
tab.backdrop:Point("TOPLEFT", 3, -10)
tab.backdrop:Point("BOTTOMRIGHT", -2, 4)
end
S:HandleEditBox(GuildControlWithdrawItemsEditBox)
GuildControlWithdrawItemsEditBox.backdrop:Point("TOPLEFT", 0, -5)
GuildControlWithdrawItemsEditBox.backdrop:Point("BOTTOMRIGHT", 0, 5)
S:HandleButton(GuildControlPopupAcceptButton)
S:HandleButton(GuildControlPopupFrameCancelButton)
GuildControlPopupFrameDropDown:Point("TOP", 0, -41)
GuildControlPopupFrameAddRankButton:Point("LEFT", GuildControlPopupFrameDropDown, "RIGHT", -8, 3)
GuildControlPopupFrameEditBox:Point("TOP", 35, -67)
select(8, GuildControlPopupFrame:GetRegions()):Point("TOP", -10, -100)
GuildControlPopupFrameCheckboxes:Point("TOPRIGHT", -22, 9)
GuildControlPopupFrameTabPermissions:SetTemplate("Transparent")
GuildControlPopupFrameTabPermissions:Width(273)
GuildControlPopupFrameTabPermissions:Point("BOTTOMLEFT", 12, 64)
GuildControlPopupFrameCancelButton:Point("BOTTOMRIGHT", -35, 35)
GuildControlPopupAcceptButton:Point("RIGHT", GuildControlPopupFrameCancelButton, "LEFT", -3, 0)
-- Channel Frame
ChannelFrameVerticalBar:Kill()
S:HandleCheckBox(ChannelFrameAutoJoinParty)
S:HandleCheckBox(ChannelFrameAutoJoinBattleground)
for i = 1, MAX_DISPLAY_CHANNEL_BUTTONS do
local button = _G["ChannelButton"..i]
local text = _G["ChannelButton"..i.."Text"]
button:StripTextures()
S:HandleButtonHighlight(button)
-- fix font template
if not text:GetFontObject() then
text:SetFontObject("GameTooltipTextSmall")
end
_G["ChannelButton"..i.."Collapsed"]:SetTextColor(1, 1, 1)
end
for i = 1, 22 do
S:HandleButtonHighlight(_G["ChannelMemberButton"..i])
end
ChannelListScrollFrame:StripTextures()
S:HandleScrollBar(ChannelListScrollFrameScrollBar)
ChannelRosterScrollFrame:StripTextures()
S:HandleScrollBar(ChannelRosterScrollFrameScrollBar)
S:HandleButton(ChannelFrameNewButton)
ChannelListScrollFrame:Size(161, 381)
ChannelListScrollFrame:Point("TOPLEFT", 19, -47)
ChannelListScrollFrameScrollBar:Point("TOPLEFT", ChannelListScrollFrame, "TOPRIGHT", 3, -19)
ChannelListScrollFrameScrollBar:Point("BOTTOMLEFT", ChannelListScrollFrame, "BOTTOMRIGHT", 3, 19)
ChannelRoster:Point("TOPLEFT", ChannelFrame, "TOP", 126, -70)
ChannelRoster.SetPoint = E.noop
ChannelMemberButton1:Point("TOPLEFT", ChannelFrame, "TOPLEFT", 186, -66)
ChannelMemberButton1.SetPoint = E.noop
ChannelRosterScrollFrame:Size(138, 352)
ChannelRosterScrollFrame:Point("TOPRIGHT", ChannelFrame, "TOPRIGHT", -32, -47)
ChannelRosterScrollFrameScrollBar:Point("TOPLEFT", ChannelRosterScrollFrame, "TOPRIGHT", 3, -19)
ChannelRosterScrollFrameScrollBar:Point("BOTTOMLEFT", ChannelRosterScrollFrame, "BOTTOMRIGHT", 3, 19)
ChannelFrameNewButton:Point("BOTTOMRIGHT", -11, 84)
hooksecurefunc("ChannelList_SetScroll", function()
local buttonWidth
if ChannelListScrollFrame.scrolling then
buttonWidth = 135
ChannelListScrollFrame:Width(138)
else
buttonWidth = 155
ChannelListScrollFrame:Width(161)
end
for i = 1, MAX_CHANNEL_BUTTONS do
_G["ChannelButton"..i]:Width(buttonWidth)
end
end)
-- Channel Frame DaughterFrame
ChannelFrameDaughterFrame:StripTextures()
ChannelFrameDaughterFrame:SetTemplate("Transparent")
S:HandleCloseButton(ChannelFrameDaughterFrameDetailCloseButton, ChannelFrameDaughterFrame)
S:HandleEditBox(ChannelFrameDaughterFrameChannelName)
S:HandleEditBox(ChannelFrameDaughterFrameChannelPassword)
S:HandleButton(ChannelFrameDaughterFrameOkayButton)
S:HandleButton(ChannelFrameDaughterFrameCancelButton)
ChannelFrameDaughterFrame:Width(211)
ChannelFrameDaughterFrameChannelName:Width(175)
ChannelFrameDaughterFrameChannelName:Point("TOPLEFT", 18, -60)
ChannelFrameDaughterFrameChannelPassword:Width(175)
ChannelFrameDaughterFrameOkayButton:Point("BOTTOMLEFT", 8, 8)
ChannelFrameDaughterFrameCancelButton:Point("LEFT", ChannelFrameDaughterFrameOkayButton, "RIGHT", 3, 0)
-- Raid Frame
S:HandleButton(RaidFrameConvertToRaidButton)
S:HandleButton(RaidFrameRaidInfoButton)
S:HandleButton(RaidFrameNotInRaidRaidBrowserButton)
RaidFrameConvertToRaidButton:Point("TOPLEFT", 45, -33)
RaidFrameRaidInfoButton:Point("LEFT", RaidFrameConvertToRaidButton, "RIGHT", 69, 0)
-- Raid Info Frame
RaidInfoFrame:StripTextures(true)
RaidInfoFrame:SetTemplate("Transparent")
RaidInfoInstanceLabel:StripTextures()
RaidInfoIDLabel:StripTextures()
S:HandleCloseButton(RaidInfoCloseButton, RaidInfoFrame)
S:HandleScrollBar(RaidInfoScrollFrameScrollBar)
S:HandleButton(RaidInfoExtendButton)
S:HandleButton(RaidInfoCancelButton)
RaidInfoInstanceLabel:Point("TOPLEFT", 13, -10)
RaidInfoScrollFrame:CreateBackdrop("Transparent")
RaidInfoScrollFrame.backdrop:Point("TOPLEFT", -1, 1)
RaidInfoScrollFrame.backdrop:Point("BOTTOMRIGHT", 1, -2)
RaidInfoScrollFrame:Height(182)
RaidInfoScrollFrame:Point("TOPLEFT", 9, -31)
RaidInfoScrollFrameScrollBar:Point("TOPLEFT", RaidInfoScrollFrame, "TOPRIGHT", 4, -18)
RaidInfoScrollFrameScrollBar:Point("BOTTOMLEFT", RaidInfoScrollFrame, "BOTTOMRIGHT", 4, 17)
for _, button in ipairs(RaidInfoScrollFrame.buttons) do
S:HandleButtonHighlight(button)
end
RaidInfoExtendButton:Point("BOTTOMLEFT", 8, 8)
RaidInfoCancelButton:Point("BOTTOMRIGHT", -8, 8)
RaidInfoFrame:SetScript("OnShow", function(self)
if GetNumRaidMembers() > 0 then
self:Point("TOPLEFT", "RaidFrame", "TOPRIGHT", -5, -12)
else
self:Point("TOPLEFT", "RaidFrame", "TOPRIGHT", -33, -12)
end
PlaySound("UChatScrollButton")
end)
RaidInfoScrollFrameScrollBar:SetScript("OnShow", function(self)
local parent = self:GetParent()
parent:Width(306)
RaidInfoInstanceLabel:Width(153)
for _, frame in ipairs(parent.buttons) do
frame:Width(296)
frame.name:Width(141)
end
end)
RaidInfoScrollFrameScrollBar:SetScript("OnHide", function(self)
local parent = self:GetParent()
parent:Width(327)
RaidInfoInstanceLabel:Width(173)
for _, frame in ipairs(parent.buttons) do
frame:Width(317)
frame.name:Width(162)
end
end)
RaidInfoScrollFrameScrollBar:GetScript("OnHide")(RaidInfoScrollFrameScrollBar)
end)
+118
View File
@@ -0,0 +1,118 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
--WoW API / Variables
local IsShiftKeyDown = IsShiftKeyDown
S:AddCallbackForAddon("Blizzard_GMChatUI", "Skin_Blizzard_GMChatUI", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.gmchat then return end
GMChatFrame:StripTextures()
GMChatFrame:CreateBackdrop("Transparent")
GMChatFrame.backdrop:Point("TOPLEFT", -2, 7)
GMChatFrame.backdrop:Point("BOTTOMRIGHT", 2, -6)
GMChatFrame:SetClampRectInsets(-6, 6, 33, -10)
GMChatFrame:Size(LeftChatPanel:GetWidth() - 4, 120)
GMChatFrame:Point("BOTTOMLEFT", LeftChatPanel, "TOPLEFT", 2, 5)
GMChatFrame:EnableMouseWheel(true)
GMChatTab:StripTextures()
GMChatTab:CreateBackdrop("Default")
GMChatTab.backdrop:Point("TOPLEFT", -2, 0)
GMChatTab.backdrop:Point("BOTTOMRIGHT", 2, 3)
GMChatTabText:Point("LEFT", GMChatTab, 17, 2)
GMChatTabText:FontTemplate(E.LSM:Fetch("font", E.db.chat.tabFont), E.db.chat.tabFontSize, E.db.chat.tabFontOutline)
GMChatTabText:SetTextColor(unpack(E.media.rgbvaluecolor))
S:HandleCloseButton(GMChatFrameCloseButton)
GMChatFrameCloseButton:Point("RIGHT", GMChatTab, 6, 2)
GMChatFrameButtonFrame:Kill()
local numScrollMessages = E.db.chat.numScrollMessages or 3
GMChatFrame:SetScript("OnMouseWheel", function(self, delta)
if delta < 0 then
if IsShiftKeyDown() then
self:ScrollToBottom()
else
for i = 1, numScrollMessages do
self:ScrollDown()
end
end
elseif delta > 0 then
if IsShiftKeyDown() then
self:ScrollToTop()
else
for i = 1, numScrollMessages do
self:ScrollUp()
end
end
end
end)
local statusFrame = select(2, GMChatStatusFrame:GetChildren())
statusFrame:StripTextures()
statusFrame:CreateBackdrop("Transparent")
statusFrame.backdrop:Point("TOPLEFT", 0, 1)
statusFrame.backdrop:Point("BOTTOMRIGHT", 0, 0)
GMChatStatusFramePulse:SetTexture("Interface\\GMChatFrame\\UI-GMStatusFrame-Pulse")
GMChatStatusFramePulse:Point("TOPLEFT", -25, 21)
GMChatStatusFramePulse:Point("BOTTOMRIGHT", 25, -19)
GMChatStatusFrame:HookScript("OnShow", function(self)
if TicketStatusFrame and TicketStatusFrame:IsShown() then
self:Point("TOPLEFT", TicketStatusFrame, "BOTTOMLEFT", 0, 1)
else
self:SetAllPoints(TicketStatusFrame)
end
end)
TicketStatusFrame:HookScript("OnShow", function(self)
GMChatStatusFrame:Point("TOPLEFT", self, "BOTTOMLEFT", 0, 1)
end)
TicketStatusFrame:HookScript("OnHide", function(self)
GMChatStatusFrame:SetAllPoints(self)
end)
end)
S:AddCallbackForAddon("Blizzard_GMSurveyUI", "Skin_Blizzard_GMSurveyUI", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.gmchat then return end
GMSurveyFrame:StripTextures()
GMSurveyFrame:CreateBackdrop("Transparent")
GMSurveyFrame.backdrop:Point("TOPLEFT", 11, 4)
GMSurveyFrame.backdrop:Point("BOTTOMRIGHT", -49, 10)
GMSurveyFrame:EnableMouse(true)
S:SetBackdropHitRect(GMSurveyFrame)
GMSurveyHeader:StripTextures()
S:HandleCloseButton(GMSurveyCloseButton, GMSurveyFrame.backdrop)
GMSurveyScrollFrame:StripTextures()
S:HandleScrollBar(GMSurveyScrollFrameScrollBar)
S:HandleButton(GMSurveyCancelButton)
S:HandleButton(GMSurveySubmitButton)
for i = 1, 7 do
local frame = _G["GMSurveyQuestion"..i]
frame:StripTextures()
frame:SetTemplate("Transparent")
end
GMSurveyCommentFrame:StripTextures()
GMSurveyCommentFrame:SetTemplate("Transparent")
GMSurveyScrollFrameScrollBar:Point("TOPLEFT", GMSurveyScrollFrame, "TOPRIGHT", 5, -19)
GMSurveyScrollFrameScrollBar:Point("BOTTOMLEFT", GMSurveyScrollFrame, "BOTTOMRIGHT", 5, 18)
GMSurveySubmitButton:Height(22)
GMSurveySubmitButton:Point("BOTTOMRIGHT", -57, 18)
GMSurveyCancelButton:Point("BOTTOMLEFT", 19, 18)
end)
+101
View File
@@ -0,0 +1,101 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
local _G = _G
local unpack = unpack
--WoW API / Variables
S:AddCallbackForAddon("Blizzard_GlyphUI", "Skin_Blizzard_GlyphUI", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.talent then return end
if not PlayerTalentFrame then
TalentFrame_LoadUI()
end
GlyphFrame:StripTextures()
GlyphFrameBackground:Size(323, 349)
GlyphFrameBackground:Point("TOPLEFT", 20, -59)
GlyphFrameBackground:CreateBackdrop()
S:HookScript(GlyphFrame, "OnShow", function(self)
S:SetBackdropHitRect(self, PlayerTalentFrame.backdrop)
S:Unhook(self, "OnShow")
end)
GlyphFrameBackground:SetTexture("Interface\\Spellbook\\UI-GlyphFrame")
GlyphFrameGlow:SetTexture("Interface\\Spellbook\\UI-GlyphFrame-Glow")
GlyphFrameGlow:SetAllPoints(GlyphFrameBackground)
-- texWidth, texHeight, cropWidth, cropHeight, offsetX, offsetY = 512, 512, 315, 340, 21, 72
GlyphFrameBackground:SetTexCoord(0.041015625, 0.65625, 0.140625, 0.8046875)
-- texWidth, texHeight, cropWidth, cropHeight, offsetX, offsetY = 512, 512, 315, 340, 30, 34
GlyphFrameGlow:SetTexCoord(0.05859375, 0.673828125, 0.06640625, 0.73046875)
local glyphBGScale = 1.0253968
local glyphPositions = {
{"CENTER", -1, 126},
{"CENTER", -1, -119},
{"TOPLEFT", 8, -62},
{"BOTTOMRIGHT", -10, 70},
{"TOPRIGHT", -8, -62},
{"BOTTOMLEFT", 7, 70}
}
local glyphFrameLevel = GlyphFrame:GetFrameLevel() + 1
for i = 1, 6 do
local frame = _G["GlyphFrameGlyph"..i]
frame:SetParent(GlyphFrameBackground.backdrop)
frame:SetFrameLevel(glyphFrameLevel)
frame:SetScale(glyphBGScale)
frame:Point(unpack(glyphPositions[i]))
end
GlyphFrame:HookScript("OnShow", function()
PlayerTalentFrameTitleText:Hide()
PlayerTalentFramePointsBar:Hide()
PlayerTalentFrameScrollFrame:Hide()
PlayerTalentFrameStatusFrame:Hide()
PlayerTalentFrameActivateButton:Hide()
end)
GlyphFrame:SetScript("OnHide", function()
PlayerTalentFrameTitleText:Show()
PlayerTalentFramePointsBar:Show()
PlayerTalentFrameScrollFrame:Show()
end)
hooksecurefunc(PlayerTalentFrame, "updateFunction", function()
if GlyphFrame:IsShown() then
PlayerTalentFramePreviewBar:Hide()
end
end)
do
local slotAnimations = {}
local TOPLEFT, TOP, TOPRIGHT, BOTTOMRIGHT, BOTTOM, BOTTOMLEFT = 3, 1, 5, 4, 2, 6
slotAnimations[TOPLEFT] = {["point"] = "CENTER", ["xStart"] = -13, ["xStop"] = -85, ["yStart"] = 17, ["yStop"] = 60}
slotAnimations[TOP] = {["point"] = "CENTER", ["xStart"] = -13, ["xStop"] = -13, ["yStart"] = 17, ["yStop"] = 100}
slotAnimations[TOPRIGHT] = {["point"] = "CENTER", ["xStart"] = -13, ["xStop"] = 59, ["yStart"] = 17, ["yStop"] = 60}
slotAnimations[BOTTOM] = {["point"] = "CENTER", ["xStart"] = -13, ["xStop"] = -13, ["yStart"] = 17, ["yStop"] = -64}
slotAnimations[BOTTOMLEFT] = {["point"] = "CENTER", ["xStart"] = -13, ["xStop"] = -87, ["yStart"] = 18, ["yStop"] = -27}
slotAnimations[BOTTOMRIGHT] = {["point"] = "CENTER", ["xStart"] = -13, ["xStop"] = 61, ["yStart"] = 18, ["yStop"] = -27}
for _, animData in pairs(slotAnimations) do
animData.xStart = animData.xStart + 3
animData.yStart = animData.yStart + 8
animData.xStop = (animData.xStop + 3) * glyphBGScale
animData.yStop = (animData.yStop + 8) * glyphBGScale
end
hooksecurefunc("GlyphFrame_StartSlotAnimation", function(slotID, duration, size)
local sparkle = _G["GlyphFrameSparkle"..slotID]
local animation = slotAnimations[slotID]
sparkle:SetPoint("CENTER", GlyphFrame, animation.point, animation.xStart, animation.yStart)
sparkle.animGroup.translate:SetOffset(animation.xStop - animation.xStart, animation.yStop - animation.yStart)
end)
end
end)
+93
View File
@@ -0,0 +1,93 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
local _G = _G
local select = select
local find, gsub = string.find, string.gsub
--WoW API / Variables
S:AddCallback("Skin_Gossip", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.gossip then return end
-- Gossip
GossipFramePortrait:Kill()
GossipFrameGreetingPanel:StripTextures()
GossipFrame:CreateBackdrop("Transparent")
GossipFrame.backdrop:Point("TOPLEFT", 11, -12)
GossipFrame.backdrop:Point("BOTTOMRIGHT", -32, 0)
S:SetUIPanelWindowInfo(GossipFrame, "width")
S:SetBackdropHitRect(GossipFrame)
GossipGreetingText:SetTextColor(1, 1, 1)
S:HandleCloseButton(GossipFrameCloseButton, GossipFrame.backdrop)
S:HandleScrollBar(GossipGreetingScrollFrameScrollBar)
S:HandleButton(GossipFrameGreetingGoodbyeButton)
for i = 1, NUMGOSSIPBUTTONS do
local button = _G["GossipTitleButton"..i]
S:HandleButtonHighlight(button)
select(3, button:GetRegions()):SetTextColor(1, 1, 1)
end
GossipFrameNpcNameText:ClearAllPoints()
GossipFrameNpcNameText:Point("TOP", GossipFrame, "TOP", -6, -15)
GossipGreetingScrollFrame:Size(304, 402)
GossipGreetingScrollFrame:Point("TOPLEFT", GossipFrame, "TOPLEFT", 19, -73)
GossipGreetingScrollFrameScrollBar:Point("TOPLEFT", GossipGreetingScrollFrame, "TOPRIGHT", 3, -19)
GossipGreetingScrollFrameScrollBar:Point("BOTTOMLEFT", GossipGreetingScrollFrame, "BOTTOMRIGHT", 3, 19)
GossipFrameGreetingGoodbyeButton:Point("BOTTOMRIGHT", -40, 8)
hooksecurefunc("GossipFrameUpdate", function()
for i = 1, GossipFrame.buttonIndex do
local button = _G["GossipTitleButton"..i]
if button and button:GetText() and find(button:GetText(), "|cff000000") then
button:SetText(gsub(button:GetText(), "|cff000000", "|cffFFFF00"))
end
end
end)
-- ItemText
ItemTextScrollFrame:StripTextures()
ItemTextFrame:StripTextures(true)
ItemTextFrame:CreateBackdrop("Transparent")
ItemTextFrame.backdrop:Point("TOPLEFT", 11, -12)
ItemTextFrame.backdrop:Point("BOTTOMRIGHT", -32, 76)
S:SetUIPanelWindowInfo(ItemTextFrame, "width")
S:SetBackdropHitRect(ItemTextFrame)
ItemTextPageText:SetTextColor(1, 1, 1)
ItemTextPageText.SetTextColor = E.noop
S:HandleCloseButton(ItemTextCloseButton, ItemTextFrame.backdrop)
S:HandleNextPrevButton(ItemTextPrevPageButton)
S:HandleNextPrevButton(ItemTextNextPageButton)
S:HandleScrollBar(ItemTextScrollFrameScrollBar)
ItemTextTitleText:Point("CENTER", -15, 230)
ItemTextCurrentPage:Point("TOP", -15, -52)
ItemTextPrevPageButton:Point("CENTER", ItemTextFrame, "TOPLEFT", 100, -58)
ItemTextNextPageButton:Point("CENTER", ItemTextFrame, "TOPRIGHT", -130, -58)
ItemTextPrevPageButton:GetRegions():Point("LEFT", ItemTextPrevPageButton, "RIGHT", 3, 0)
ItemTextNextPageButton:GetRegions():Point("RIGHT", ItemTextNextPageButton, "LEFT", -3, 0)
ItemTextScrollFrame:Width(283)
ItemTextScrollFrame:Point("TOPRIGHT", -61, -73)
ItemTextScrollFrameScrollBar:Point("TOPLEFT", ItemTextScrollFrame, "TOPRIGHT", 3, -19)
ItemTextScrollFrameScrollBar:Point("BOTTOMLEFT", ItemTextScrollFrame, "BOTTOMRIGHT", 3, 19)
end)
+214
View File
@@ -0,0 +1,214 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
local _G = _G
local unpack = unpack
--WoW API / Variables
local GetCurrentGuildBankTab = GetCurrentGuildBankTab
local GetGuildBankItemLink = GetGuildBankItemLink
local GetItemQualityColor = GetItemQualityColor
S:AddCallbackForAddon("Blizzard_GuildBankUI", "Skin_Blizzard_GuildBankUI", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.gbank then return end
GuildBankFrame:Width(639)
GuildBankFrame:StripTextures()
GuildBankFrame:CreateBackdrop("Transparent")
GuildBankFrame.backdrop:Point("TOPLEFT", 11, -12)
GuildBankFrame.backdrop:Point("BOTTOMRIGHT", 0, 8)
S:HookScript(GuildBankFrame, "OnShow", function(self)
S:SetUIPanelWindowInfo(self, "width", nil, 35)
S:SetBackdropHitRect(self)
S:Unhook(self, "OnShow")
end)
GuildBankFrame.inset = CreateFrame("Frame", nil, GuildBankFrame)
GuildBankFrame.inset:SetTemplate("Default")
GuildBankFrame.inset:Point("TOPLEFT", 19, -64)
GuildBankFrame.inset:Point("BOTTOMRIGHT", -8, 62)
GuildBankEmblemFrame:StripTextures(true)
S:HandleCloseButton((select(13, GuildBankFrame:GetChildren())), GuildBankFrame.backdrop)
S:HandleButton(GuildBankFrameDepositButton)
S:HandleButton(GuildBankFrameWithdrawButton)
S:HandleButton(GuildBankInfoSaveButton)
S:HandleButton(GuildBankFramePurchaseButton)
GuildBankInfoScrollFrame:StripTextures()
S:HandleScrollBar(GuildBankInfoScrollFrameScrollBar)
GuildBankTransactionsScrollFrame:StripTextures()
S:HandleScrollBar(GuildBankTransactionsScrollFrameScrollBar)
S:HandleTab(GuildBankFrameTab1)
S:HandleTab(GuildBankFrameTab2)
S:HandleTab(GuildBankFrameTab3)
S:HandleTab(GuildBankFrameTab4)
for i = 1, 6 do
local tab = _G["GuildBankTab"..i]
local button = _G["GuildBankTab"..i.."Button"]
local texture = _G["GuildBankTab"..i.."ButtonIconTexture"]
tab:StripTextures(true)
button:StripTextures()
button:SetTemplate()
button:StyleButton()
button:GetCheckedTexture():SetTexture(1, 1, 1, 0.3)
button:GetCheckedTexture():SetInside()
texture:SetInside()
texture:SetTexCoord(unpack(E.TexCoords))
texture:SetDrawLayer("ARTWORK")
end
local buttonMap = {}
for column = 1, NUM_GUILDBANK_COLUMNS do
_G["GuildBankColumn"..column]:StripTextures()
for index = 1, NUM_SLOTS_PER_GUILDBANK_GROUP do
local button = _G["GuildBankColumn"..column.."Button"..index]
local icon = _G["GuildBankColumn"..column.."Button"..index.."IconTexture"]
local texture = _G["GuildBankColumn"..column.."Button"..index.."NormalTexture"]
local count = _G["GuildBankColumn"..column.."Button"..index.."Count"]
if texture then
texture:SetTexture(nil)
end
button:StyleButton()
button:SetTemplate("Default", true)
icon:SetInside()
icon:SetTexCoord(unpack(E.TexCoords))
icon:SetDrawLayer("OVERLAY")
count:SetDrawLayer("OVERLAY")
buttonMap[#buttonMap + 1] = button
end
end
hooksecurefunc("GuildBankFrame_Update", function()
if GuildBankFrame.mode ~= "bank" then
GuildBankFrame.inset:Point("BOTTOMRIGHT", -29, 62)
return
else
GuildBankFrame.inset:Point("BOTTOMRIGHT", -8, 62)
GuildBankColumn1:Point("TOPLEFT", 20, -70)
end
local tab = GetCurrentGuildBankTab()
local _, link, quality
for i = 1, MAX_GUILDBANK_SLOTS_PER_TAB do
link = GetGuildBankItemLink(tab, i)
if link then
_, _, quality = GetItemInfo(link)
if quality and quality > 1 then
buttonMap[i]:SetBackdropBorderColor(GetItemQualityColor(quality))
else
buttonMap[i]:SetBackdropBorderColor(unpack(E.media.bordercolor))
end
else
buttonMap[i]:SetBackdropBorderColor(unpack(E.media.bordercolor))
end
end
end)
GuildBankLimitLabel:ClearAllPoints()
GuildBankLimitLabel:Point("BOTTOMLEFT", GuildBankMoneyLimitLabel, "TOPLEFT", -1, 11)
GuildBankFrameDepositButton:Point("BOTTOMRIGHT", -8, 36)
GuildBankFrameWithdrawButton:Point("RIGHT", GuildBankFrameDepositButton, "LEFT", -3, 0)
GuildBankFrameTab1:Point("BOTTOMLEFT", 11, -22)
GuildBankFrameTab2:Point("LEFT", GuildBankFrameTab1, "RIGHT", -15, 0)
GuildBankFrameTab3:Point("LEFT", GuildBankFrameTab2, "RIGHT", -15, 0)
GuildBankFrameTab4:Point("LEFT", GuildBankFrameTab3, "RIGHT", -15, 0)
-- Log + Money Log tabs
GuildBankMessageFrame:Size(575, 302)
GuildBankMessageFrame:Point("TOPLEFT", 27, -72)
GuildBankTransactionsScrollFrame:Size(591, 318)
GuildBankTransactionsScrollFrame:Point("TOPRIGHT", GuildBankFrame, "TOPRIGHT", -29, -64)
GuildBankTransactionsScrollFrameScrollBar:Point("TOPLEFT", GuildBankTransactionsScrollFrame, "TOPRIGHT", 3, -19)
GuildBankTransactionsScrollFrameScrollBar:Point("BOTTOMLEFT", GuildBankTransactionsScrollFrame, "BOTTOMRIGHT", 3, 19)
-- Info tab
GuildBankInfo:Point("TOPLEFT", 26, -72)
GuildBankInfoScrollFrame:Size(575, 302)
GuildBankInfoScrollFrameScrollBar:Point("TOPLEFT", GuildBankInfoScrollFrame, "TOPRIGHT", 12, -11)
GuildBankInfoScrollFrameScrollBar:Point("BOTTOMLEFT", GuildBankInfoScrollFrame, "BOTTOMRIGHT", 12, 11)
GuildBankTabInfoEditBox:Width(575)
GuildBankInfoSaveButton:Point("BOTTOMLEFT", GuildBankFrame, "BOTTOMLEFT", 19, 35)
-- Popup
S:HandleIconSelectionFrame(GuildBankPopupFrame, NUM_GUILDBANK_ICONS_SHOWN, "GuildBankPopupButton", "GuildBankPopup")
S:SetBackdropHitRect(GuildBankPopupFrame)
S:HandleScrollBar(GuildBankPopupScrollFrameScrollBar)
GuildBankPopupFrame:Point("TOPLEFT", GuildBankFrame, "TOPRIGHT", 24, 0)
local nameLable, iconLable = select(5, GuildBankPopupFrame:GetRegions())
nameLable:Point("TOPLEFT", 24, -18)
iconLable:Point("TOPLEFT", 24, -60)
GuildBankPopupEditBox:Point("TOPLEFT", 32, -35)
GuildBankPopupScrollFrame:CreateBackdrop("Transparent")
GuildBankPopupScrollFrame.backdrop:Point("TOPLEFT", 91, -10)
GuildBankPopupScrollFrame.backdrop:Point("BOTTOMRIGHT", -19, 5)
GuildBankPopupScrollFrame:Point("TOPRIGHT", -30, -66)
GuildBankPopupScrollFrameScrollBar:Point("TOPLEFT", GuildBankPopupScrollFrame, "TOPRIGHT", -16, -29)
GuildBankPopupScrollFrameScrollBar:Point("BOTTOMLEFT", GuildBankPopupScrollFrame, "BOTTOMRIGHT", -16, 24)
GuildBankPopupButton1:Point("TOPLEFT", 24, -82)
GuildBankPopupCancelButton:Point("BOTTOMRIGHT", -28, 35)
GuildBankPopupOkayButton:Point("RIGHT", GuildBankPopupCancelButton, "LEFT", -3, 0)
-- Reposition
GuildBankTab1:Point("TOPLEFT", GuildBankFrame, "TOPRIGHT", E.PixelMode and -3 or -1, -36)
GuildBankTab2:Point("TOPLEFT", GuildBankTab1, "BOTTOMLEFT", 0, 7)
GuildBankTab3:Point("TOPLEFT", GuildBankTab2, "BOTTOMLEFT", 0, 7)
GuildBankTab4:Point("TOPLEFT", GuildBankTab3, "BOTTOMLEFT", 0, 7)
GuildBankTab5:Point("TOPLEFT", GuildBankTab4, "BOTTOMLEFT", 0, 7)
GuildBankTab6:Point("TOPLEFT", GuildBankTab5, "BOTTOMLEFT", 0, 7)
GuildBankColumn1:Point("TOPLEFT", 25, -70)
GuildBankColumn2:Point("TOPLEFT", GuildBankColumn1, "TOPRIGHT", -14, 0)
GuildBankColumn3:Point("TOPLEFT", GuildBankColumn2, "TOPRIGHT", -14, 0)
GuildBankColumn4:Point("TOPLEFT", GuildBankColumn3, "TOPRIGHT", -14, 0)
GuildBankColumn5:Point("TOPLEFT", GuildBankColumn4, "TOPRIGHT", -14, 0)
GuildBankColumn6:Point("TOPLEFT", GuildBankColumn5, "TOPRIGHT", -14, 0)
GuildBankColumn7:Point("TOPLEFT", GuildBankColumn6, "TOPRIGHT", -14, 0)
GuildBankColumn1Button8:Point("TOPLEFT", GuildBankColumn1Button1, "TOPRIGHT", 6, 0)
GuildBankColumn2Button8:Point("TOPLEFT", GuildBankColumn2Button1, "TOPRIGHT", 6, 0)
GuildBankColumn3Button8:Point("TOPLEFT", GuildBankColumn3Button1, "TOPRIGHT", 6, 0)
GuildBankColumn4Button8:Point("TOPLEFT", GuildBankColumn4Button1, "TOPRIGHT", 6, 0)
GuildBankColumn5Button8:Point("TOPLEFT", GuildBankColumn5Button1, "TOPRIGHT", 6, 0)
GuildBankColumn6Button8:Point("TOPLEFT", GuildBankColumn6Button1, "TOPRIGHT", 6, 0)
GuildBankColumn7Button8:Point("TOPLEFT", GuildBankColumn7Button1, "TOPRIGHT", 6, 0)
end)
@@ -0,0 +1,46 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
--WoW API / Variables
S:AddCallback("Skin_GuildRegistrar", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.guildregistrar then return end
GuildRegistrarFrame:StripTextures(true)
GuildRegistrarFrame:CreateBackdrop("Transparent")
GuildRegistrarFrame.backdrop:Point("TOPLEFT", 11, -12)
GuildRegistrarFrame.backdrop:Point("BOTTOMRIGHT", -32, 76)
S:SetUIPanelWindowInfo(GuildRegistrarFrame, "width")
S:SetBackdropHitRect(GuildRegistrarFrame)
S:HandleCloseButton(GuildRegistrarFrameCloseButton, GuildRegistrarFrame.backdrop)
GuildRegistrarGreetingFrame:StripTextures()
for i = 1, 2 do
S:HandleButtonHighlight(_G["GuildRegistrarButton"..i])
end
S:HandleButton(GuildRegistrarFrameGoodbyeButton)
S:HandleButton(GuildRegistrarFrameCancelButton)
S:HandleButton(GuildRegistrarFramePurchaseButton)
S:HandleEditBox(GuildRegistrarFrameEditBox)
local leftBG, rightBG = select(6, GuildRegistrarFrameEditBox:GetRegions())
leftBG:Kill()
rightBG:Kill()
AvailableServicesText:SetTextColor(1, 1, 0)
GuildRegistrarPurchaseText:SetTextColor(1, 1, 1)
GuildRegistrarButton1:GetFontString():SetTextColor(1, 1, 1)
GuildRegistrarButton2:GetFontString():SetTextColor(1, 1, 1)
GuildRegistrarFrameEditBox:Height(20)
GuildRegistrarFrameGoodbyeButton:Point("BOTTOMRIGHT", -40, 84)
GuildRegistrarFrameCancelButton:Point("BOTTOMRIGHT", -40, 84)
GuildRegistrarFramePurchaseButton:Point("BOTTOMLEFT", 19, 84)
end)
+144
View File
@@ -0,0 +1,144 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
local _G = _G
local select = select
--WoW API / Variables
S:AddCallback("Skin_Help", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.help then return end
HelpFrame:StripTextures()
HelpFrame:CreateBackdrop("Transparent")
HelpFrame.backdrop:Point("TOPLEFT", 6, 0)
HelpFrame.backdrop:Point("BOTTOMRIGHT", -45, 14)
S:SetBackdropHitRect(HelpFrame)
S:HandleCloseButton(HelpFrameCloseButton, HelpFrame.backdrop)
local helpFrameButtons = {
"GMTalkOpenTicket",
"GMTalkCancel",
"ReportIssueOpenTicket",
"ReportIssueCancel",
"LagLoot",
"LagAuctionHouse",
"LagMail",
"LagChat",
"LagMovement",
"LagSpell",
"LagCancel",
"StuckStuck",
"StuckOpenTicket",
"StuckCancel",
"OpenTicketCancel",
"OpenTicketSubmit",
"ViewResponseCancel",
"ViewResponseMoreHelp",
"ViewResponseIssueResolved",
"WelcomeGMTalk",
"WelcomeReportIssue",
"WelcomeStuck",
"WelcomeCancel"
}
for i = 1, #helpFrameButtons do
S:HandleButton(_G["HelpFrame"..helpFrameButtons[i]])
end
KnowledgeBaseFrameDivider:StripTextures()
KnowledgeBaseFrameDivider2:StripTextures()
HelpFrameOpenTicketDivider:StripTextures()
HelpFrameViewResponseDivider:StripTextures()
local scrollBars = {
"HelpFrameOpenTicketScrollFrameScrollBar",
"HelpFrameViewResponseIssueScrollFrameScrollBar",
"HelpFrameViewResponseMessageScrollFrameScrollBar",
}
for _, scrollBar in ipairs(scrollBars) do
S:HandleScrollBar(_G[scrollBar])
_G[scrollBar.."Top"]:Hide()
_G[scrollBar.."Middle"]:Hide()
_G[scrollBar.."Bottom"]:Hide()
end
HelpFrameViewResponseIssueScrollFrame:CreateBackdrop("Transparent")
HelpFrameViewResponseIssueScrollFrame.backdrop:Point("TOPLEFT", -2, 2)
HelpFrameViewResponseIssueScrollFrame.backdrop:Point("BOTTOMRIGHT", 2, -2)
HelpFrameViewResponseMessageScrollFrame:CreateBackdrop("Transparent")
HelpFrameViewResponseMessageScrollFrame.backdrop:Point("TOPLEFT", -2, 2)
HelpFrameViewResponseMessageScrollFrame.backdrop:Point("BOTTOMRIGHT", 2, -2)
KnowledgeBaseFrame:StripTextures()
KnowledgeBaseFrame:HookScript("OnShow", function()
select(11, HelpFrame:GetRegions()):Hide()
end)
KnowledgeBaseFrame:SetScript("OnHide", function()
select(11, HelpFrame:GetRegions()):Show()
end)
S:HandleButton(GMChatOpenLog)
S:HandleButton(KnowledgeBaseFrameTopIssuesButton)
S:HandleEditBox(KnowledgeBaseFrameEditBox)
S:HandleDropDownBox(KnowledgeBaseFrameCategoryDropDown)
S:HandleDropDownBox(KnowledgeBaseFrameSubCategoryDropDown)
S:HandleButton(KnowledgeBaseFrameSearchButton)
S:HandleNextPrevButton(KnowledgeBaseArticleListFrameNextButton)
S:HandleNextPrevButton(KnowledgeBaseArticleListFramePreviousButton)
S:HandleScrollBar(KnowledgeBaseArticleScrollFrameScrollBar)
S:HandleButton(KnowledgeBaseArticleScrollChildFrameBackButton)
S:HandleButton(KnowledgeBaseFrameReportIssue)
S:HandleButton(KnowledgeBaseFrameGMTalk)
S:HandleButton(KnowledgeBaseFrameStuck)
S:HandleButton(KnowledgeBaseFrameLag)
S:HandleButton(KnowledgeBaseFrameCancel)
S:HandleButton(KnowledgeBaseFrameAbandonTicket)
S:HandleButton(KnowledgeBaseFrameEditTicket)
GMChatOpenLog:Point("TOPLEFT", 23, -22)
KnowledgeBaseFrameTopIssuesButton:Point("TOPRIGHT", -62, -118)
KnowledgeBaseFrameTopIssuesButton.Enable = E.noop
KnowledgeBaseFrameTopIssuesButton:Disable()
KnowledgeBaseFrameEditBox:Height(18)
KnowledgeBaseFrameEditBox:Point("TOPLEFT", KnowledgeBaseFrameDivider, "BOTTOMLEFT", 12, 10)
KnowledgeBaseFrameCategoryDropDown:Point("LEFT", KnowledgeBaseFrameEditBox, "RIGHT", -14, -3)
KnowledgeBaseFrameSubCategoryDropDown:Point("LEFT", KnowledgeBaseFrameCategoryDropDown, "RIGHT", -23, 0)
KnowledgeBaseFrameSearchButton:Height(20)
KnowledgeBaseFrameSearchButton:Point("LEFT", KnowledgeBaseFrameSubCategoryDropDown, "RIGHT", -2, 3)
KnowledgeBaseFrameReportIssue:Point("BOTTOMLEFT", 14, 22)
KnowledgeBaseFrameGMTalk:Point("BOTTOM", KnowledgeBaseFrameReportIssue, "TOP", 0, 3)
KnowledgeBaseFrameStuck:Point("LEFT", KnowledgeBaseFrameReportIssue, "RIGHT", 3, 0)
KnowledgeBaseFrameLag:Point("LEFT", KnowledgeBaseFrameGMTalk, "RIGHT", 3, 0)
KnowledgeBaseFrameAbandonTicket:Point("BOTTOMLEFT", 14, 22)
KnowledgeBaseFrameEditTicket:Point("BOTTOM", KnowledgeBaseFrameAbandonTicket, "TOP", 0, 3)
KnowledgeBaseFrameCancel:Point("BOTTOMRIGHT", -53, 22)
HelpFrameGMTalkCancel:Point("BOTTOMRIGHT", -53, 22)
HelpFrameLagCancel:Point("BOTTOMRIGHT", -53, 22)
HelpFrameReportIssueCancel:Point("BOTTOMRIGHT", -53, 22)
HelpFrameStuckCancel:Point("BOTTOMRIGHT", -53, 22)
HelpFrameOpenTicketCancel:Height(21)
HelpFrameOpenTicketCancel:Point("BOTTOMRIGHT", -53, 22)
HelpFrameOpenTicketSubmit:Point("RIGHT", HelpFrameOpenTicketCancel, "LEFT", -3, 0)
HelpFrameViewResponseMoreHelp:Point("BOTTOMLEFT", 14, 22)
HelpFrameViewResponseIssueResolved:Point("LEFT", HelpFrameViewResponseMoreHelp, "RIGHT", 3, 0)
HelpFrameViewResponseCancel:Height(21)
HelpFrameViewResponseCancel:Point("BOTTOMRIGHT", -53, 22)
end)
+190
View File
@@ -0,0 +1,190 @@
local E, L, V, P, G = unpack(select(2, ...)) -- Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
local _G = _G
local unpack = unpack
--WoW API / Variables
local GetInventoryItemID = GetInventoryItemID
local GetItemInfo = GetItemInfo
local GetItemQualityColor = GetItemQualityColor
S:AddCallbackForAddon("Blizzard_InspectUI", "Skin_Blizzard_InspectUI", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.inspect then return end
InspectFrame:StripTextures(true)
InspectFrame:CreateBackdrop("Transparent")
InspectFrame.backdrop:Point("TOPLEFT", 11, -12)
InspectFrame.backdrop:Point("BOTTOMRIGHT", -32, 76)
S:SetUIPanelWindowInfo(InspectFrame, "width")
S:SetBackdropHitRect(InspectFrame)
S:SetBackdropHitRect(InspectPVPFrame, InspectFrame.backdrop)
S:SetBackdropHitRect(InspectTalentFrame, InspectFrame.backdrop)
InspectPVPFrameHonor:SetHitRectInsets(0, 120, 0, 0)
InspectPVPFrameArena:SetHitRectInsets(0, 120, 0, 0)
S:HandleCloseButton(InspectFrameCloseButton, InspectFrame.backdrop)
S:HandleTab(InspectFrameTab1)
S:HandleTab(InspectFrameTab2)
S:HandleTab(InspectFrameTab3)
InspectPaperDollFrame:StripTextures()
local slots = {
"HeadSlot",
"NeckSlot",
"ShoulderSlot",
"BackSlot",
"ChestSlot",
"ShirtSlot",
"TabardSlot",
"WristSlot",
"HandsSlot",
"WaistSlot",
"LegsSlot",
"FeetSlot",
"Finger0Slot",
"Finger1Slot",
"Trinket0Slot",
"Trinket1Slot",
"MainHandSlot",
"SecondaryHandSlot",
"RangedSlot"
}
for _, slot in ipairs(slots) do
local icon = _G["Inspect"..slot.."IconTexture"]
local frame = _G["Inspect"..slot]
frame:StripTextures()
frame:SetFrameLevel(frame:GetFrameLevel() + 2)
frame:CreateBackdrop("Default")
frame.backdrop:SetAllPoints()
frame:StyleButton()
icon:SetTexCoord(unpack(E.TexCoords))
icon:SetInside()
end
local styleButton
do
local function awaitCache(button)
if InspectFrame.unit then
styleButton(button)
end
end
styleButton = function(button)
if button.hasItem then
local itemID = GetInventoryItemID(InspectFrame.unit, button:GetID())
if itemID then
local _, _, quality = GetItemInfo(itemID)
if not quality then
E:Delay(0.1, awaitCache, button)
return
elseif quality then
button.backdrop:SetBackdropBorderColor(GetItemQualityColor(quality))
return
end
end
end
button.backdrop:SetBackdropBorderColor(unpack(E.media.bordercolor))
end
end
hooksecurefunc("InspectPaperDollItemSlotButton_Update", styleButton)
S:HandleRotateButton(InspectModelRotateLeftButton)
S:HandleRotateButton(InspectModelRotateRightButton)
InspectPVPFrame:StripTextures()
for i = 1, MAX_ARENA_TEAMS do
local frame = _G["InspectPVPTeam"..i]
frame:StripTextures()
frame:CreateBackdrop("Transparent")
frame.backdrop:Point("TOPLEFT", 9, -6)
frame.backdrop:Point("BOTTOMRIGHT", -24, -5)
-- _G["InspectPVPTeam"..i.."StandardBar"]:Kill()
S:SetBackdropHitRect(frame)
end
InspectTalentFrame:StripTextures()
S:HandleCloseButton(InspectTalentFrameCloseButton, InspectFrame.backdrop)
for i = 1, MAX_TALENT_TABS do
local headerTab = _G["InspectTalentFrameTab"..i]
headerTab:StripTextures()
headerTab:CreateBackdrop("Default", true)
headerTab.backdrop:Point("TOPLEFT", 2, -7)
headerTab.backdrop:Point("BOTTOMRIGHT", 1, -1)
S:SetBackdropHitRect(headerTab)
headerTab:Width(i == 2 and 101 or 102)
headerTab.SetWidth = E.noop
headerTab:HookScript("OnEnter", S.SetModifiedBackdrop)
headerTab:HookScript("OnLeave", S.SetOriginalBackdrop)
end
for i = 1, MAX_NUM_TALENTS do
local talent = _G["InspectTalentFrameTalent"..i]
if talent then
local icon = _G["InspectTalentFrameTalent"..i.."IconTexture"]
local rank = _G["InspectTalentFrameTalent"..i.."Rank"]
talent:StripTextures()
talent:SetTemplate("Default")
talent:StyleButton()
icon:SetInside()
icon:SetTexCoord(unpack(E.TexCoords))
icon:SetDrawLayer("ARTWORK")
rank:SetFont(E.LSM:Fetch("font", E.db.general.font), 12, "OUTLINE")
end
end
InspectHeadSlot:Point("TOPLEFT", 19, -76)
InspectHandsSlot:Point("TOPLEFT", 307, -76)
InspectMainHandSlot:Point("TOPLEFT", InspectPaperDollFrame, "BOTTOMLEFT", 121, 131)
InspectModelFrame:Size(237, 324)
InspectModelFrame:Point("TOPLEFT", 63, -76)
InspectModelRotateLeftButton:Point("TOPLEFT", 4, -4)
InspectTalentFrameScrollFrame:StripTextures()
InspectTalentFrameScrollFrame:CreateBackdrop("Transparent")
InspectTalentFrameScrollFrame.backdrop:Point("TOPLEFT", -1, 1)
InspectTalentFrameScrollFrame.backdrop:Point("BOTTOMRIGHT", 5, -4)
InspectTalentFramePointsBar:StripTextures()
InspectModelRotateRightButton:Point("TOPLEFT", InspectModelRotateLeftButton, "TOPRIGHT", 3, 0)
InspectFrameTab1:Point("CENTER", InspectFrame, "BOTTOMLEFT", 54, 62)
InspectFrameTab2:Point("LEFT", InspectFrameTab1, "RIGHT", -15, 0)
InspectFrameTab3:Point("LEFT", InspectFrameTab2, "RIGHT", -15, 0)
InspectTalentFrameBackgroundTopLeft:Point("TOPLEFT", 21, -77)
InspectTalentFrameTab1:Point("TOPLEFT", 17, -40)
InspectTalentFrameScrollFrame:Width(298)
InspectTalentFrameScrollFrame:Point("TOPRIGHT", -66, -77)
S:HandleScrollBar(InspectTalentFrameScrollFrameScrollBar)
InspectTalentFrameScrollFrameScrollBar:Point("TOPLEFT", InspectTalentFrameScrollFrame, "TOPRIGHT", 8, -18)
InspectTalentFrameScrollFrameScrollBar:Point("BOTTOMLEFT", InspectTalentFrameScrollFrame, "BOTTOMRIGHT", 8, 15)
end)
+340
View File
@@ -0,0 +1,340 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
local _G = _G
local unpack = unpack
local find = string.find
--WoW API / Variables
local GetItemInfo = GetItemInfo
local GetItemQualityColor = GetItemQualityColor
local GetLFGDungeonRewardLink = GetLFGDungeonRewardLink
local GetLFGDungeonRewards = GetLFGDungeonRewards
local hooksecurefunc = hooksecurefunc
S:AddCallback("Skin_LFD", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.lfd then return end
AscensionLFGFrame:StripTextures(true)
AscensionLFGFrame:CreateBackdrop("Transparent")
AscensionLFGFrameContent:StripTextures(true)
AscensionLFGFrameMenu:StripTextures(true)
AscensionLFGFrameInset:StripTextures(true)
AscensionLFGFrameInset:CreateBackdrop("Transparent")
AscensionLFGFrameInsetNineSlice:StripTextures(true)
AscensionLFGFrameNineSlice:StripTextures(true)
AscensionLFGFrameMenuNineSlice:StripTextures(true)
AscensionPVEFrameLFDFrame:StripTextures(true)
AscensionPVEFrameLFDFrame:CreateBackdrop("Transparent")
AscensionPVEFrameLFDFrameRandom:StripTextures(true)
AscensionPVEFrameLFDFrameRandomScrollFrame:StripTextures(true)
S:HookScript(LFDParentFrame, "OnShow", function(self)
S:SetUIPanelWindowInfo(self, "width", 341)
S:SetBackdropHitRect(self, AscensionLFGFrame.backdrop)
S:Unhook(self, "OnShow")
end)
S:HandleCloseButton(AscensionLFGFrameCloseButton)
LFDParentFramePortrait:Kill()
-- Role Checkboxes
S:HandleCheckBox(AscensionPVEFrameLFDFrameRoleButtonTank.checkButton)
AscensionPVEFrameLFDFrameRoleButtonTank.checkButton:SetFrameLevel(AscensionPVEFrameLFDFrameRoleButtonTank.checkButton:GetFrameLevel() + 2)
S:HandleCheckBox(AscensionPVEFrameLFDFrameRoleButtonHealer.checkButton)
AscensionPVEFrameLFDFrameRoleButtonHealer.checkButton:SetFrameLevel(AscensionPVEFrameLFDFrameRoleButtonHealer.checkButton:GetFrameLevel() + 2)
S:HandleCheckBox(AscensionPVEFrameLFDFrameRoleButtonDPS.checkButton)
AscensionPVEFrameLFDFrameRoleButtonDPS.checkButton:SetFrameLevel(AscensionPVEFrameLFDFrameRoleButtonDPS.checkButton:GetFrameLevel() + 2)
S:HandleCheckBox(AscensionPVEFrameLFDFrameRoleButtonLeader.checkButton)
AscensionPVEFrameLFDFrameRoleButtonLeader.checkButton:SetFrameLevel(AscensionPVEFrameLFDFrameRoleButtonLeader.checkButton:GetFrameLevel() + 2)
-- Dropdown
S:HandleDropDownBox(AscensionPVEFrameLFDFrameTypeDropDown)
AscensionPVEFrameLFDFrameTypeDropDown:HookScript("OnShow", function(self) self:Width(200) end)
-- Specific Dungeons
for i = 1, NUM_LFD_CHOICE_BUTTONS do
local button = _G["AscensionPVEFrameLFDFrameSpecificListButton"..i]
button.enableButton:StripTextures()
button.enableButton:CreateBackdrop("Default")
button.enableButton.backdrop:SetInside(nil, 4, 4)
button.expandOrCollapseButton:SetNormalTexture(E.Media.Textures.Plus)
button.expandOrCollapseButton.SetNormalTexture = E.noop
button.expandOrCollapseButton:GetNormalTexture():Size(16)
button.expandOrCollapseButton:SetHighlightTexture(nil)
hooksecurefunc(button.expandOrCollapseButton, "SetNormalTexture", function(self, texture)
if find(texture, "MinusButton") then
self:GetNormalTexture():SetTexture(E.Media.Textures.Minus)
elseif find(texture, "PlusButton") then
self:GetNormalTexture():SetTexture(E.Media.Textures.Plus)
end
end)
end
AscensionPVEFrameLFDFrameSpecificListScrollFrame:StripTextures()
S:HandleScrollBar(AscensionPVEFrameLFDFrameRandomScrollFrameScrollBar)
S:HandleScrollBar(AscensionPVEFrameLFDFrameSpecificListScrollFrameScrollBar)
--Side menu buttons
for i = 1, 3 do
local sidebutton = _G["AscensionLFGFrameButton"..i]
S:HandleButton(sidebutton)
end
--Tabs
for i = 1, 3 do
local tab = _G["AscensionLFGFrameTab"..i]
tab:Size(122, 32)
tab:GetRegions():SetPoint("CENTER", 0, 2)
S:HandleTab(tab)
end
S:HandleButton(AscensionPVEFrameLFDFrameFindGroupButton)
--S:HandleButton(AscensionPVEFrameLFDFrameCancelButton)
--S:HandleButton(AscensionPVEFrameLFDFramePartyBackfillBackfillButton)
--S:HandleButton(AscensionPVEFrameLFDFramePartyBackfillNoBackfillButton)
S:HandleButton(AscensionPVEFrameLFDFrameNoLFDWhileLFRLeaveQueueButton)
AscensionPVEFrameLFDFrameRandomScrollFrameScrollBar:Point("TOPLEFT", AscensionPVEFrameLFDFrameRandomScrollFrame, "TOPRIGHT", 5, -22)
AscensionPVEFrameLFDFrameRandomScrollFrameScrollBar:Point("BOTTOMLEFT", AscensionPVEFrameLFDFrameRandomScrollFrame, "BOTTOMRIGHT", 5, 19)
AscensionPVEFrameLFDFrameSpecificListScrollFrameScrollBar:Point("TOPLEFT", AscensionPVEFrameLFDFrameSpecificListScrollFrame, "TOPRIGHT", 5, -17)
AscensionPVEFrameLFDFrameSpecificListScrollFrameScrollBar:Point("BOTTOMLEFT", AscensionPVEFrameLFDFrameSpecificListScrollFrame, "BOTTOMRIGHT", 5, 17)
AscensionPVEFrameLFDFrameFindGroupButton:Point("BOTTOMLEFT", 19, 10)
--AscensionPVEFrameLFDFrameCancelButton:Point("BOTTOMRIGHT", -11, 12)
--AscensionPVEFrameLFDFrameTypeDropDown:Point("TOPLEFT", 152, -119)
--AscensionPVEFrameLFDFrameSpecificListButton1:Point("TOPLEFT", 25, -154)
AscensionPVEFrameLFDFrameRandomScrollFrame:Point("BOTTOMRIGHT", -34, 41)
--AscensionPVEFrameLFDFrameCooldownFrame:Size(325, 259)
--AscensionPVEFrameLFDFrameCooldownFrame:Point("BOTTOMRIGHT", AscensionPVEFrameLFDFrame, "BOTTOMRIGHT", -11, 37)
--[[AscensionPVEFrameLFDFrameCooldownFrame:HookScript("OnShow", function(self)
self:SetFrameLevel(self:GetParent():GetFrameLevel() + 5)
end)
--]]
-- PvP Tab
-- Progress Bar
--Honor
S:HandleStatusBar(AscensionPVPFrameHonorBar)
--Arena
S:HandleStatusBar(AscensionPVPFrameArenaBar)
-- Quick Match
AscensionPVPFrame:StripTextures(true)
AscensionPVPFrame:CreateBackdrop("Transparent")
AscensionPVPFrameCasualFrame:StripTextures(true)
AscensionPVPFrameCasualFrame:CreateBackdrop("Transparent")
AscensionPVPFrameCasualFrameInset:StripTextures(true)
AscensionPVPFrameCasualFrameInset:CreateBackdrop("Transparent")
AscensionPVPFrameCasualFrameInsetNineSlice:StripTextures(true)
-- Buttons (Queues)
S:HandleButton(AscensionPVPFrameCasualFrameRandomBGButton)
S:HandleButton(AscensionPVPFrameCasualFrameCallToArmsButton1)
S:HandleButton(AscensionPVPFrameCasualFrameSkirmish1v1Button)
S:HandleButton(AscensionPVPFrameCasualFrameSkirmish2v2Button)
S:HandleButton(AscensionPVPFrameCasualFrameSkirmish3v3Button)
-- Honor Section
AscensionPVPFrameHonorInset:StripTextures(true)
AscensionPVPFrameHonorInset:CreateBackdrop("Transparent")
AscensionPVPFrameHonorInsetNineSlice:StripTextures(true)
-- Buttons
S:HandleButton(AscensionPVPFrameCasualFrameQueueButton)
S:HandleButton(AscensionPVPFrameCasualFrameSoloQueueButton)
--Rated Tab
AscensionPVPFrameRatedFrame:StripTextures(true)
AscensionPVPFrameRatedFrame:CreateBackdrop("Transparent")
AscensionPVPFrameRatedFrameInset:StripTextures(true)
AscensionPVPFrameRatedFrameInset:CreateBackdrop("Transparent")
AscensionPVPFrameRatedFrameInsetNineSlice:StripTextures(true)
-- Buttons (Rated)
S:HandleButton(AscensionPVPFrameRatedFrameArena1v1)
S:HandleButton(AscensionPVPFrameRatedFrameArena2v2)
S:HandleButton(AscensionPVPFrameRatedFrameArena3v3)
S:HandleButton(AscensionPVPFrameRatedFrameSoloQueueButton)
S:HandleButton(AscensionPVPFrameRatedFrameQueueButton)
-- PvP Ruleset
AscensionRulesetFrame:StripTextures(true)
--[[for i = 1, 3 do
local pvpruleset = _G["AscensionRulesetFrameRuleset"..i]
--pvpruleset:StripTextures(true)
S:HandleButton(pvpruleset.Select)
end
]]--
local function skinLFDRandomDungeonLoot(frame)
if frame.isSkinned then return end
local icon = _G[frame:GetName().."IconTexture"]
local nameFrame = _G[frame:GetName().."NameFrame"]
local count = _G[frame:GetName().."Count"]
frame:StripTextures()
frame:CreateBackdrop("Transparent")
frame.backdrop:SetOutside(icon)
icon:SetTexCoord(unpack(E.TexCoords))
icon:SetDrawLayer("BORDER")
icon:SetParent(frame.backdrop)
nameFrame:SetSize(118, 39)
count:SetParent(frame.backdrop)
frame.isSkinned = true
end
local function getLFGDungeonRewardLinkFix(dungeonID, rewardIndex)
local _, link = GetLFGDungeonRewardLink(dungeonID, rewardIndex)
if not link then
E.ScanTooltip:SetOwner(UIParent, "ANCHOR_NONE")
E.ScanTooltip:SetLFGDungeonReward(dungeonID, rewardIndex)
_, link = E.ScanTooltip:GetItem()
E.ScanTooltip:Hide()
end
return link
end
--[[hooksecurefunc("AscensionPVEFrameLFDFrameRandom_UpdateFrame", function()
local dungeonID = AscensionPVEFrameLFDFrame.type
if not dungeonID then return end
local _, _, _, _, _, numRewards = GetLFGDungeonRewards(dungeonID)
for i = 1, numRewards do
local frame = _G["AscensionPVEFrameLFDFrameRandomScrollFrameChildFrameItem"..i]
local name = _G["AscensionPVEFrameLFDFrameRandomScrollFrameChildFrameItem"..i.."Name"]
skinLFDRandomDungeonLoot(frame)
local link = getLFGDungeonRewardLinkFix(dungeonID, i)
if link then
local _, _, quality = GetItemInfo(link)
if quality then
local r, g, b = GetItemQualityColor(quality)
frame.backdrop:SetBackdropBorderColor(r, g, b)
name:SetTextColor(r, g, b)
end
else
frame.backdrop:SetBackdropBorderColor(unpack(E.media.bordercolor))
name:SetTextColor(1, 1, 1)
end
end
end)
--]]
-- LFDDungeonReadyStatus
LFDDungeonReadyStatus:SetTemplate("Transparent")
S:HandleCloseButton(LFDDungeonReadyStatusCloseButton, nil, "-")
LFDSearchStatus:SetTemplate("Transparent")
-- LFDRoleCheckPopup
LFDRoleCheckPopup:SetTemplate("Transparent")
S:HandleCheckBox(LFDRoleCheckPopupRoleButtonTank.checkButton)
S:HandleCheckBox(LFDRoleCheckPopupRoleButtonHealer.checkButton)
S:HandleCheckBox(LFDRoleCheckPopupRoleButtonDPS.checkButton)
S:HandleButton(LFDRoleCheckPopupAcceptButton)
S:HandleButton(LFDRoleCheckPopupDeclineButton)
-- LFDDungeonReadyDialog
LFDDungeonReadyDialog:SetTemplate("Transparent")
LFDDungeonReadyDialog.label:Size(280, 0)
LFDDungeonReadyDialog.label:Point("TOP", 0, -10)
LFDDungeonReadyDialog:CreateBackdrop("Default")
LFDDungeonReadyDialog.backdrop:Point("TOPLEFT", 10, -35)
LFDDungeonReadyDialog.backdrop:Point("BOTTOMRIGHT", -10, 40)
LFDDungeonReadyDialog.backdrop:SetFrameLevel(LFDDungeonReadyDialog:GetFrameLevel())
LFDDungeonReadyDialog.background:SetInside(LFDDungeonReadyDialog.backdrop)
LFDDungeonReadyDialogFiligree:SetTexture("")
LFDDungeonReadyDialogBottomArt:SetTexture("")
S:HandleCloseButton(LFDDungeonReadyDialogCloseButton, nil, "-")
LFDDungeonReadyDialogEnterDungeonButton:Point("BOTTOMRIGHT", LFDDungeonReadyDialog, "BOTTOM", -7, 10)
S:HandleButton(LFDDungeonReadyDialogEnterDungeonButton)
LFDDungeonReadyDialogLeaveQueueButton:Point("BOTTOMLEFT", LFDDungeonReadyDialog, "BOTTOM", 7, 10)
S:HandleButton(LFDDungeonReadyDialogLeaveQueueButton)
--[[
LFDDungeonReadyDialogRoleIcon:Size(57)
LFDDungeonReadyDialogRoleIcon:Point("BOTTOM", 1, 54)
LFDDungeonReadyDialogRoleIcon:SetTemplate("Default")
LFDDungeonReadyDialogRoleIconTexture:SetInside()
function GetTexCoordsForRole(role)
if role == "GUIDE" then
return 0.0625, 0.1953125, 0.05859375, 0.19140625
elseif role == "TANK" then
return 0.0625, 0.1953125, 0.3203125, 0.453125
elseif role == "HEALER" ) then
return 0.32421875, 0.45703125, 0.0546875, 0.1875
elseif role == "DAMAGER" then
return 0.32421875, 0.453125, 0.31640625, 0.4453125
end
end
GameTooltip:SetLFGDungeonReward(287, 1)
--]]
local function skinLFDDungeonReadyDialogReward(button)
if button.isSkinned then return end
button:Size(28)
button:SetTemplate("Default")
if button.texture ~= nil then
button.texture:SetInside()
button.texture:SetTexCoord(unpack(E.TexCoords))
end
button:DisableDrawLayer("OVERLAY")
button.isSkinned = true
end
hooksecurefunc("LFDDungeonReadyDialogReward_SetMisc", function(button)
skinLFDDungeonReadyDialogReward(button)
SetPortraitToTexture(button.texture, "")
button.texture:SetTexture("Interface\\Icons\\inv_misc_coin_02")
end)
hooksecurefunc("LFDDungeonReadyDialogReward_SetReward", function(button, dungeonID, rewardIndex)
skinLFDDungeonReadyDialogReward(button)
local link = getLFGDungeonRewardLinkFix(dungeonID, rewardIndex)
if link then
local _, _, quality = GetItemInfo(link)
button:SetBackdropBorderColor(GetItemQualityColor(quality))
else
button:SetBackdropBorderColor(unpack(E.media.bordercolor))
end
if button.texture ~= nil then
local texturePath = button.texture:GetTexture()
if texturePath then
SetPortraitToTexture(button.texture, "")
button.texture:SetTexture(texturePath)
end
end
end)
end)
+104
View File
@@ -0,0 +1,104 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
local _G = _G
local find = string.find
--WoW API / Variables
local hooksecurefunc = hooksecurefunc
S:AddCallback("Skin_LFR", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.lfr then return end
LFRParentFrame:StripTextures()
LFRParentFrame:CreateBackdrop("Transparent")
LFRParentFrame.backdrop:Point("TOPLEFT", 11, -12)
LFRParentFrame.backdrop:Point("BOTTOMRIGHT", -3, 4)
S:HookScript(LFRParentFrame, "OnShow", function(self)
S:SetUIPanelWindowInfo(self, "width")
S:SetBackdropHitRect(self)
S:Unhook(self, "OnShow")
end)
S:HandleCloseButton((LFRParentFrame:GetChildren()), LFRParentFrame.backdrop)
LFRQueueFrame:StripTextures()
LFRBrowseFrame:StripTextures()
local buttons = {
LFRQueueFrameFindGroupButton,
LFRQueueFrameAcceptCommentButton,
LFRBrowseFrameSendMessageButton,
LFRBrowseFrameInviteButton,
LFRBrowseFrameRefreshButton,
LFRQueueFrameNoLFRWhileLFDLeaveQueueButton
}
for i = 1, #buttons do
S:HandleButton(buttons[i], true)
end
S:HandleTab(LFRParentFrameTab1)
S:HandleTab(LFRParentFrameTab2)
S:HandleDropDownBox(LFRBrowseFrameRaidDropDown)
S:HandleScrollBar(LFRQueueFrameSpecificListScrollFrameScrollBar)
LFRQueueFrameCommentTextButton:CreateBackdrop("Default")
--DPS, Healer, Tank check button's don't have a name, use it's parent as a referance.
S:HandleCheckBox((LFRQueueFrameRoleButtonTank:GetChildren()))
S:HandleCheckBox((LFRQueueFrameRoleButtonHealer:GetChildren()))
S:HandleCheckBox((LFRQueueFrameRoleButtonDPS:GetChildren()))
LFRQueueFrameRoleButtonTank:GetChildren():SetFrameLevel(LFRQueueFrameRoleButtonTank:GetChildren():GetFrameLevel() + 2)
LFRQueueFrameRoleButtonHealer:GetChildren():SetFrameLevel(LFRQueueFrameRoleButtonHealer:GetChildren():GetFrameLevel() + 2)
LFRQueueFrameRoleButtonDPS:GetChildren():SetFrameLevel(LFRQueueFrameRoleButtonDPS:GetChildren():GetFrameLevel() + 2)
LFRQueueFrameSpecificListScrollFrame:StripTextures()
for i = 1, 7 do
local button = "LFRBrowseFrameColumnHeader"..i
_G[button.."Left"]:Kill()
_G[button.."Middle"]:Kill()
_G[button.."Right"]:Kill()
_G[button]:StyleButton()
end
for i = 1, NUM_LFR_CHOICE_BUTTONS do
local button = _G["LFRQueueFrameSpecificListButton"..i]
S:HandleCheckBox(button.enableButton)
button.expandOrCollapseButton:SetNormalTexture(E.Media.Textures.Plus)
button.expandOrCollapseButton.SetNormalTexture = E.noop
button.expandOrCollapseButton:GetNormalTexture():Size(16)
button.expandOrCollapseButton:SetHighlightTexture(nil)
hooksecurefunc(button.expandOrCollapseButton, "SetNormalTexture", function(self, texture)
if find(texture, "MinusButton") then
self:GetNormalTexture():SetTexture(E.Media.Textures.Minus)
elseif find(texture, "PlusButton") then
self:GetNormalTexture():SetTexture(E.Media.Textures.Plus)
end
end)
end
LFRQueueFrameSpecificListScrollFrameScrollBar:Point("TOPLEFT", LFRQueueFrameSpecificListScrollFrame, "TOPRIGHT", 5, -17)
LFRQueueFrameSpecificListScrollFrameScrollBar:Point("BOTTOMLEFT", LFRQueueFrameSpecificListScrollFrame, "BOTTOMRIGHT", 5, 17)
LFRQueueFrameNoLFRWhileLFD:Size(325, 271)
LFRQueueFrameNoLFRWhileLFD:Point("BOTTOMRIGHT", -11, 41)
LFRQueueFrameComment:Width(323)
LFRQueueFrameComment:Point("TOPLEFT", LFRQueueFrame, "BOTTOMLEFT", 20, 74)
LFRQueueFrameCommentTextButton:Size(323, 32)
LFRQueueFrameFindGroupButton:Point("BOTTOMLEFT", 19, 12)
LFRQueueFrameAcceptCommentButton:Point("BOTTOMRIGHT", -11, 12)
LFRBrowseFrameSendMessageButton:Point("BOTTOMLEFT", 19, 12)
LFRBrowseFrameInviteButton:Point("LEFT", LFRBrowseFrameSendMessageButton, "RIGHT", 4, 0)
LFRBrowseFrameRefreshButton:Point("LEFT", LFRBrowseFrameInviteButton, "RIGHT", 4, 0)
LFRParentFrameTab1:Point("BOTTOMLEFT", 11, -26)
end)
@@ -0,0 +1,52 @@
<Ui xmlns="http://www.blizzard.com/wow/ui/">
<Script file="Achievement.lua"/>
<Script file="Alerts.lua"/>
<Script file="Arena.lua"/>
<Script file="ArenaRegistrar.lua"/>
<Script file="AuctionHouse.lua"/>
<Script file="Bags.lua"/>
<Script file="Barber.lua"/>
<Script file="BGMap.lua"/>
<Script file="BGScore.lua"/>
<Script file="Binding.lua"/>
<Script file="BlizzardOptions.lua"/>
<Script file="Calendar.lua"/>
<Script file="Character.lua"/>
<Script file="Debug.lua"/>
<Script file="DressingRoom.lua"/>
<Script file="Friends.lua"/>
<Script file="GuildBank.lua"/>
<Script file="Glyph.lua"/>
<Script file="GMChat.lua"/>
<Script file="Gossip.lua"/>
<Script file="GuildRegistrar.lua"/>
<Script file="Help.lua"/>
<Script file="Inspect.lua"/>
<Script file="LFD.lua"/>
<Script file="LFR.lua"/>
<Script file="Loot.lua"/>
<Script file="Macro.lua"/>
<Script file="Mail.lua"/>
<Script file="Merchant.lua"/>
<Script file="MirrorTimers.lua"/>
<Script file="Misc.lua"/>
<Script file="Petition.lua"/>
<Script file="PvP.lua"/>
<Script file="Quest.lua"/>
<Script file="Raid.lua"/>
<Script file="Socket.lua"/>
<Script file="Spellbook.lua"/>
<Script file="Stable.lua"/>
<Script file="Tabard.lua"/>
<Script file="Talent.lua"/>
<Script file="Taxi.lua"/>
<Script file="Tooltip.lua"/>
<Script file="TimeManager.lua"/>
<Script file="Trade.lua"/>
<Script file="Tradeskill.lua"/>
<Script file="Trainer.lua"/>
<Script file="Tutorial.lua"/>
<Script file="WatchFrame.lua"/>
<Script file="Worldmap.lua"/>
<Script file="WorldStateFrame.lua"/>
</Ui>
+198
View File
@@ -0,0 +1,198 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
local _G = _G
local unpack, select = unpack, select
--WoW API / Variables
local GetItemQualityColor = GetItemQualityColor
local GetLootRollItemInfo = GetLootRollItemInfo
local GetLootSlotInfo = GetLootSlotInfo
local IsFishingLoot = IsFishingLoot
local LootSlotIsCoin = LootSlotIsCoin
local LootSlotIsItem = LootSlotIsItem
local UnitIsDead = UnitIsDead
local UnitIsFriend = UnitIsFriend
local UnitName = UnitName
local ITEMS = ITEMS
local LOOT = LOOT
local LOOTFRAME_NUMBUTTONS = LOOTFRAME_NUMBUTTONS
S:AddCallback("Skin_Loot", function()
if E.private.general.loot then return end
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.loot then return end
local LootFrame = _G.LootFrame
LootFrame:StripTextures()
LootFrame:CreateBackdrop("Transparent")
LootFrame.backdrop:Point("TOPLEFT", 16, -54)
LootFrame.backdrop:Point("BOTTOMRIGHT", -77, 8)
S:SetBackdropHitRect(LootFrame, nil, true)
LootFramePortraitOverlay:SetParent(E.HiddenFrame)
S:HandleNextPrevButton(LootFrameUpButton)
LootFrameUpButton:Point("BOTTOMLEFT", 25, 20)
LootFrameUpButton:Size(24)
S:HandleNextPrevButton(LootFrameDownButton)
LootFrameDownButton:Point("BOTTOMLEFT", 147, 21)
LootFrameDownButton:Size(24)
LootFrame:EnableMouseWheel(true)
LootFrame:SetScript("OnMouseWheel", function(_, value)
if value > 0 then
if LootFrameUpButton:IsShown() and LootFrameUpButton:IsEnabled() == 1 then
LootFrame_PageUp()
end
else
if LootFrameDownButton:IsShown() and LootFrameDownButton:IsEnabled() == 1 then
LootFrame_PageDown()
end
end
end)
S:HandleCloseButton(LootCloseButton)
LootCloseButton:Point("CENTER", LootFrame, "TOPRIGHT", -88, -65)
for i = 1, LootFrame:GetNumRegions() do
local region = select(i, LootFrame:GetRegions())
if region:GetObjectType() == "FontString" then
if region:GetText() == ITEMS then
LootFrame.Title = region
end
end
end
LootFrame.Title:ClearAllPoints()
LootFrame.Title:Point("TOPLEFT", LootFrame.backdrop, "TOPLEFT", 4, -4)
LootFrame.Title:SetJustifyH("LEFT")
LootFrame.Title:SetWordWrap(false)
LootFrame.Title:SetWidth(142)
LootFrame:HookScript("OnShow", function(self)
if IsFishingLoot() then
self.Title:SetText(L["Fishy Loot"])
elseif not UnitIsFriend("player", "target") and UnitIsDead("target") then
self.Title:SetText(UnitName("target"))
else
self.Title:SetText(LOOT)
end
end)
for i = 1, LOOTFRAME_NUMBUTTONS do
local button = _G["LootButton"..i]
local nameFrame = _G["LootButton"..i.."NameFrame"]
S:HandleItemButton(button, true)
button.bg = CreateFrame("Frame", nil, button)
button.bg:SetTemplate("Default")
button.bg:Point("TOPLEFT", 40, 0)
button.bg:Point("BOTTOMRIGHT", 110, 0)
button.bg:SetFrameLevel(button.bg:GetFrameLevel() - 1)
local questTexture = button:CreateTexture(nil, "OVERLAY")
questTexture:SetInside()
questTexture:SetTexture(E.Media.Textures.BagQuestIcon)
button.questTexture = questTexture
nameFrame:Hide()
end
hooksecurefunc("LootFrame_UpdateButton", function(index)
local numLootItems = LootFrame.numLootItems
local numLootToShow = LOOTFRAME_NUMBUTTONS
if numLootItems > LOOTFRAME_NUMBUTTONS then
numLootToShow = numLootToShow - 1
end
local slot = (numLootToShow * (LootFrame.page - 1)) + index
if slot <= numLootItems then
if index <= numLootToShow and (LootSlotIsItem(slot) or LootSlotIsCoin(slot)) then
local texture, _, _, quality, _, isQuestItem, questId, isActive = GetLootSlotInfo(slot)
if texture then
local button = _G["LootButton"..index]
if questId and not isActive then
button.backdrop:SetBackdropBorderColor(1.0, 1.0, 0.0)
button.questTexture:Show()
return
elseif questId or isQuestItem then
button.backdrop:SetBackdropBorderColor(1.0, 0.3, 0.3)
elseif quality then
button.backdrop:SetBackdropBorderColor(GetItemQualityColor(quality))
else
button.backdrop:SetBackdropBorderColor(unpack(E.media.bordercolor))
end
button.questTexture:Hide()
end
end
end
end)
end)
S:AddCallback("Skin_LootRoll", function()
if E.private.general.lootRoll then return end
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.lootRoll then return end
local function OnShow(self)
local frameName = self:GetName()
local iconFrame = _G[frameName.."IconFrame"]
local statusBar = _G[frameName.."Timer"]
local _, _, _, quality = GetLootRollItemInfo(self.rollID)
local r, g, b = GetItemQualityColor(quality)
self:SetTemplate("Transparent")
iconFrame:SetBackdropBorderColor(r, g, b)
statusBar:SetStatusBarColor(r, g, b)
end
for i = 1, NUM_GROUP_LOOT_FRAMES do
local frameName = "GroupLootFrame"..i
local frame = _G[frameName]
local iconFrame = _G[frameName.."IconFrame"]
local icon = _G[frameName.."IconFrameIcon"]
local statusBar = _G[frameName.."Timer"]
local decoration = _G[frameName.."Decoration"]
frame:EnableMouse(true)
frame:StripTextures()
frame:ClearAllPoints()
if i == 1 then
frame:Point("TOP", AlertFrameHolder, "BOTTOM", 0, -4)
else
frame:Point("TOP", _G["GroupLootFrame"..i - 1], "BOTTOM", 0, -4)
end
iconFrame:SetTemplate("Default")
iconFrame:StyleButton()
icon:SetInside()
icon:SetTexCoord(unpack(E.TexCoords))
statusBar:StripTextures()
statusBar:CreateBackdrop("Default")
statusBar:SetStatusBarTexture(E.media.normTex)
E:RegisterStatusBar(statusBar)
decoration:SetTexture("Interface\\DialogFrame\\UI-DialogBox-Gold-Dragon")
decoration:Size(130)
decoration:Point("TOPLEFT", -37, 20)
S:HandleCloseButton(_G[frameName.."PassButton"], frame)
_G[frameName.."Corner"]:Hide()
frame:HookScript("OnShow", OnShow)
end
end)
+131
View File
@@ -0,0 +1,131 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
local _G = _G
local unpack = unpack
--WoW API / Variables
S:AddCallbackForAddon("Blizzard_MacroUI", "Skin_Blizzard_MacroUI", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.macro then return end
MacroFrame:StripTextures()
MacroFrame:CreateBackdrop("Transparent")
MacroFrame.backdrop:Point("TOPLEFT", 11, -12)
MacroFrame.backdrop:Point("BOTTOMRIGHT", -32, 76)
S:SetUIPanelWindowInfo(MacroFrame, "width")
S:SetBackdropHitRect(MacroFrame)
S:HandleCloseButton(MacroFrameCloseButton, MacroFrame.backdrop)
MacroButtonScrollFrame:StripTextures()
MacroButtonScrollFrame:CreateBackdrop("Transparent")
S:HandleScrollBar(MacroButtonScrollFrameScrollBar)
S:HandleScrollBar(MacroFrameScrollFrameScrollBar)
MacroFrameSelectedMacroButton:StripTextures()
MacroFrameSelectedMacroButton:StyleButton(nil, true)
MacroFrameSelectedMacroButton:GetNormalTexture():SetTexture(nil)
MacroFrameSelectedMacroButton:SetTemplate()
MacroFrameSelectedMacroButtonIcon:SetTexCoord(unpack(E.TexCoords))
MacroFrameSelectedMacroButtonIcon:SetInside()
MacroFrameTextBackground:StripTextures()
MacroFrameTextBackground:CreateBackdrop()
MacroFrameTextBackground.backdrop:Point("TOPLEFT", 1, -3)
MacroFrameTextBackground.backdrop:Point("BOTTOMRIGHT", -17, 3)
S:HandleButton(MacroEditButton)
S:HandleButton(MacroDeleteButton)
S:HandleButton(MacroExitButton)
S:HandleButton(MacroNewButton)
for i = 1, 2 do
local tab = _G["MacroFrameTab"..i]
tab:StripTextures()
S:HandleButton(tab)
tab:Height(22)
if i == 1 then
tab:Point("TOPLEFT", 19, -50)
tab:Width(125)
elseif i == 2 then
tab:Point("LEFT", MacroFrameTab1, "RIGHT", 3, 0)
tab:Width(176)
end
tab.SetWidth = E.noop
end
for i = 1, MAX_ACCOUNT_MACROS do
local button = _G["MacroButton"..i]
local buttonIcon = _G["MacroButton"..i.."Icon"]
if button then
button:StripTextures()
button:SetTemplate(nil, true)
button:StyleButton(nil, true)
buttonIcon:SetTexCoord(unpack(E.TexCoords))
buttonIcon:SetInside()
end
end
MacroButtonScrollFrame:Size(302, 142)
MacroButtonScrollFrame:Point("TOPLEFT", 20, -76)
MacroButtonScrollFrameScrollBar:Point("TOPLEFT", MacroButtonScrollFrame, "TOPRIGHT", 4, -18)
MacroButtonScrollFrameScrollBar:Point("BOTTOMLEFT", MacroButtonScrollFrame, "BOTTOMRIGHT", 4, 18)
MacroButton1:Point("TOPLEFT", 10, -7)
MacroEditButton:Point("TOPLEFT", MacroFrameSelectedMacroBackground, "TOPLEFT", 60, -28)
MacroFrameTextBackground:Point("TOPLEFT", 18, -290)
MacroFrameText:Width(297)
MacroFrameSelectedMacroBackground:Point("TOPLEFT", 16, -213)
MacroFrameScrollFrame:Size(300, 81)
MacroFrameScrollFrame:Point("TOPLEFT", MacroFrameSelectedMacroBackground, "BOTTOMLEFT", 5, -20)
MacroFrameScrollFrameScrollBar:Point("TOPLEFT", MacroFrameScrollFrame, "TOPRIGHT", 5, -15)
MacroFrameScrollFrameScrollBar:Point("BOTTOMLEFT", MacroFrameScrollFrame, "BOTTOMRIGHT", 5, 15)
MacroFrameCharLimitText:Point("BOTTOM", -15, 113)
MacroDeleteButton:Point("BOTTOMLEFT", 19, 84)
MacroExitButton:Point("CENTER", MacroFrame, "TOPLEFT", 304, -417)
MacroNewButton:Point("CENTER", MacroFrame, "TOPLEFT", 221, -417)
-- Popup frame
S:HandleIconSelectionFrame(MacroPopupFrame, NUM_MACRO_ICONS_SHOWN, "MacroPopupButton", "MacroPopup")
S:SetBackdropHitRect(MacroPopupFrame)
MacroPopupFrame:Point("TOPLEFT", MacroFrame, "TOPRIGHT", -43, 0)
MacroPopupScrollFrame:SetTemplate("Transparent")
S:HandleScrollBar(MacroPopupScrollFrameScrollBar)
local text1, text2 = select(5, MacroPopupFrame:GetRegions())
text1:Point("TOPLEFT", 24, -18)
text2:Point("TOPLEFT", 24, -60)
MacroPopupEditBox:Point("TOPLEFT", 61, -35)
MacroPopupButton1:Point("TOPLEFT", 31, -82)
MacroPopupScrollFrame:Size(247, 180)
MacroPopupScrollFrame:Point("TOPRIGHT", -32, -76)
MacroPopupScrollFrameScrollBar:Point("TOPLEFT", MacroPopupScrollFrame, "TOPRIGHT", 3, -19)
MacroPopupScrollFrameScrollBar:Point("BOTTOMLEFT", MacroPopupScrollFrame, "BOTTOMRIGHT", 3, 19)
MacroPopupOkayButton:Point("RIGHT", MacroPopupCancelButton, "LEFT", -3, 0)
end)
+301
View File
@@ -0,0 +1,301 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
local _G = _G
local unpack, select = unpack, select
--WoW API / Variables
local GetInboxHeaderInfo = GetInboxHeaderInfo
local GetInboxItemLink = GetInboxItemLink
local GetItemInfo = GetItemInfo
local GetItemQualityColor = GetItemQualityColor
local GetSendMailItem = GetSendMailItem
local INBOXITEMS_TO_DISPLAY = INBOXITEMS_TO_DISPLAY
local ATTACHMENTS_MAX_SEND = ATTACHMENTS_MAX_SEND
local ATTACHMENTS_MAX_RECEIVE = ATTACHMENTS_MAX_RECEIVE
S:AddCallback("Skin_Mail", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.mail then return end
-- Inbox Frame
MailFrame:StripTextures(true)
MailFrame:CreateBackdrop("Transparent")
MailFrame.backdrop:Point("TOPLEFT", 11, -12)
MailFrame.backdrop:Point("BOTTOMRIGHT", -32, 76)
S:SetUIPanelWindowInfo(MailFrame, "width")
S:SetBackdropHitRect(MailFrame)
S:SetBackdropHitRect(SendMailFrame, MailFrame.backdrop)
MailFrame:EnableMouseWheel(true)
MailFrame:SetScript("OnMouseWheel", function(_, value)
if value > 0 then
if InboxPrevPageButton:IsEnabled() == 1 then
InboxPrevPage()
end
else
if InboxNextPageButton:IsEnabled() == 1 then
InboxNextPage()
end
end
end)
for i = 1, INBOXITEMS_TO_DISPLAY do
local mail = _G["MailItem"..i]
local button = _G["MailItem"..i.."Button"]
local icon = _G["MailItem"..i.."ButtonIcon"]
mail:StripTextures()
mail:CreateBackdrop("Transparent")
mail.backdrop:SetParent(button)
mail.backdrop:ClearAllPoints()
mail.backdrop:Point("TOPLEFT", mail, 45, -2)
mail.backdrop:Point("BOTTOMRIGHT", mail, 4, 9)
mail.backdrop:SetFrameLevel(mail:GetFrameLevel() - 1)
button:StripTextures()
button:CreateBackdrop()
button:Point("TOPLEFT", 8, -3)
button:Size(32)
button:StyleButton()
button.hover:SetAllPoints()
icon:SetTexCoord(unpack(E.TexCoords))
icon:SetInside(button.backdrop)
end
hooksecurefunc("InboxFrame_Update", function()
local numItems = GetInboxNumItems()
local index = (InboxFrame.pageNum - 1) * INBOXITEMS_TO_DISPLAY
for i = 1, INBOXITEMS_TO_DISPLAY do
index = index + 1
if index <= numItems then
local button = _G["MailItem"..i.."Button"]
local packageIcon, _, _, _, _, _, _, _, _, _, _, _, isGM = GetInboxHeaderInfo(index)
if packageIcon and not isGM then
local itemLink = GetInboxItemLink(index, 1)
if itemLink then
local quality = select(3, GetItemInfo(itemLink))
if quality then
button.backdrop:SetBackdropBorderColor(GetItemQualityColor(quality))
else
button.backdrop:SetBackdropBorderColor(unpack(E.media.bordercolor))
end
end
elseif isGM then
button.backdrop:SetBackdropBorderColor(0, 0.56, 0.94)
else
button.backdrop:SetBackdropBorderColor(unpack(E.media.bordercolor))
end
end
end
end)
InboxTitleText:Point("CENTER", 0, 231)
SendMailTitleText:Point("CENTER", 0, 231)
S:HandleNextPrevButton(InboxPrevPageButton, nil, nil, true)
InboxPrevPageButton:Size(32)
S:HandleNextPrevButton(InboxNextPageButton, nil, nil, true)
InboxNextPageButton:Size(32)
S:HandleCloseButton(InboxCloseButton, MailFrame.backdrop)
for i = 1, 2 do
local tab = _G["MailFrameTab"..i]
tab:StripTextures()
S:HandleTab(tab)
end
MailFrameTab1:Point("BOTTOMLEFT", MailFrame, 11, 46)
MailFrameTab2:Point("LEFT", MailFrameTab1, "RIGHT", -15, 0)
-- Send Mail Frame
SendMailFrame:StripTextures()
SendMailScrollFrame:StripTextures(true)
hooksecurefunc("SendMailFrame_Update", function()
for i = 1, ATTACHMENTS_MAX_SEND do
local button = _G["SendMailAttachment"..i]
local name = GetSendMailItem(i)
if not button.skinned then
button:StripTextures()
button:SetTemplate("Default", true)
button:StyleButton(nil, true)
button.skinned = true
end
if name then
local icon = button:GetNormalTexture()
local quality = select(3, GetItemInfo(name))
if quality then
button:SetBackdropBorderColor(GetItemQualityColor(quality))
else
button:SetBackdropBorderColor(unpack(E.media.bordercolor))
end
icon:SetTexCoord(unpack(E.TexCoords))
icon:SetInside()
else
button:SetBackdropBorderColor(unpack(E.media.bordercolor))
end
end
end)
S:HandleScrollBar(SendMailScrollFrameScrollBar)
S:HandleEditBox(SendMailNameEditBox)
S:HandleEditBox(SendMailSubjectEditBox)
S:HandleEditBox(SendMailMoneyGold)
S:HandleEditBox(SendMailMoneySilver)
S:HandleEditBox(SendMailMoneyCopper)
S:HandleButton(SendMailMailButton)
S:HandleButton(SendMailCancelButton)
for i = 1, 5 do
_G["AutoCompleteButton"..i]:StyleButton()
end
SendMailScrollFrame:CreateBackdrop()
SendMailScrollFrame.backdrop:Point("TOPLEFT", 0, 5)
SendMailScrollFrame.backdrop:Point("BOTTOMRIGHT", 0, -5)
SendMailScrollFrameScrollBar:Point("TOPLEFT", SendMailScrollFrame, "TOPRIGHT", 3, -14)
SendMailScrollFrameScrollBar:Point("BOTTOMLEFT", SendMailScrollFrame, "BOTTOMRIGHT", 3, 14)
SendMailBodyEditBox:SetTextColor(1, 1, 1)
SendMailBodyEditBox:Width(291)
SendMailBodyEditBox:Point("TOPLEFT", 5, -5)
SendMailScrollFrame:Width(304)
SendMailScrollFrame:Point("TOPLEFT", 19, -97)
SendMailNameEditBox:Height(18)
SendMailNameEditBox:Point("TOPLEFT", 75, -43)
SendMailSubjectEditBox:Size(247, 18)
SendMailSubjectEditBox:Point("TOPLEFT", SendMailNameEditBox, "BOTTOMLEFT", 0, -5)
SendMailCostMoneyFrame:Point("TOPRIGHT", -27, -45)
SendMailMoneyText:Point("TOPLEFT", 0, 3)
SendMailMoney:Point("TOPLEFT", SendMailMoneyText, "BOTTOMLEFT", 2, -3)
SendMailMoneyFrame:Point("BOTTOMRIGHT", SendMailFrame, "BOTTOMLEFT", 164, 88)
SendMailMailButton:Point("RIGHT", SendMailCancelButton, "LEFT", -3, 0)
SendMailCancelButton:Point("BOTTOMRIGHT", -40, 84)
-- Open Mail Frame
OpenMailFrame:StripTextures(true)
OpenMailFrame:CreateBackdrop("Transparent")
OpenMailFrame.backdrop:Point("TOPLEFT", 11, -12)
OpenMailFrame.backdrop:Point("BOTTOMRIGHT", -32, 76)
OpenMailFrame:Point("TOPLEFT", InboxFrame, "TOPRIGHT", -44, 0)
for i = 1, ATTACHMENTS_MAX_SEND do
local button = _G["OpenMailAttachmentButton"..i]
local icon = _G["OpenMailAttachmentButton"..i.."IconTexture"]
local count = _G["OpenMailAttachmentButton"..i.."Count"]
button:StripTextures()
button:SetTemplate("Default", true)
button:StyleButton()
if icon then
icon:SetTexCoord(unpack(E.TexCoords))
icon:SetDrawLayer("ARTWORK")
icon:SetInside()
count:SetDrawLayer("OVERLAY")
end
end
hooksecurefunc("OpenMailFrame_UpdateButtonPositions", function()
for i = 1, ATTACHMENTS_MAX_RECEIVE do
local itemLink = GetInboxItemLink(InboxFrame.openMailID, i)
local button = _G["OpenMailAttachmentButton"..i]
if itemLink then
local quality = select(3, GetItemInfo(itemLink))
if quality then
button:SetBackdropBorderColor(GetItemQualityColor(quality))
else
button:SetBackdropBorderColor(unpack(E.media.bordercolor))
end
else
button:SetBackdropBorderColor(unpack(E.media.bordercolor))
end
end
end)
S:HandleCloseButton(OpenMailCloseButton, OpenMailFrame.backdrop)
S:HandleButton(OpenMailReportSpamButton)
S:HandleButton(OpenMailReplyButton)
S:HandleButton(OpenMailDeleteButton)
S:HandleButton(OpenMailCancelButton)
OpenMailScrollFrame:StripTextures(true)
OpenMailScrollFrame:SetTemplate("Default")
S:HandleScrollBar(OpenMailScrollFrameScrollBar)
OpenMailBodyText:SetTextColor(1, 1, 1)
InvoiceTextFontNormal:SetFont(E.media.normFont, 13)
InvoiceTextFontNormal:SetTextColor(1, 1, 1)
OpenMailInvoiceBuyMode:SetTextColor(1, 0.80, 0.10)
OpenMailArithmeticLine:Kill()
OpenMailLetterButton:StripTextures()
OpenMailLetterButton:SetTemplate("Default", true)
OpenMailLetterButton:StyleButton()
OpenMailLetterButtonIconTexture:SetTexCoord(unpack(E.TexCoords))
OpenMailLetterButtonIconTexture:SetDrawLayer("ARTWORK")
OpenMailLetterButtonIconTexture:SetInside()
OpenMailLetterButtonCount:SetDrawLayer("OVERLAY")
OpenMailMoneyButton:StripTextures()
OpenMailMoneyButton:SetTemplate("Default", true)
OpenMailMoneyButton:StyleButton()
OpenMailMoneyButtonIconTexture:SetTexCoord(unpack(E.TexCoords))
OpenMailMoneyButtonIconTexture:SetDrawLayer("ARTWORK")
OpenMailMoneyButtonIconTexture:SetInside()
OpenMailMoneyButtonCount:SetDrawLayer("OVERLAY")
OpenMailScrollFrame:Width(304)
OpenMailScrollFrame:Point("TOPLEFT", 19, -92)
OpenMailScrollFrameScrollBar:Point("TOPLEFT", OpenMailScrollFrame, "TOPRIGHT", 3, -19)
OpenMailScrollFrameScrollBar:Point("BOTTOMLEFT", OpenMailScrollFrame, "BOTTOMRIGHT", 3, 19)
OpenMailSenderLabel:Point("TOPRIGHT", OpenMailFrame, "TOPLEFT", 85, -45)
OpenMailSubjectLabel:Point("TOPRIGHT", OpenMailFrame, "TOPLEFT", 85, -65)
OpenMailSender:Point("LEFT", OpenMailSenderLabel, "RIGHT", 5, -1)
OpenMailSubject:Point("TOPLEFT", OpenMailSubjectLabel, "TOPRIGHT", 5, -1)
OpenMailReportSpamButton:Point("TOPRIGHT", -40, -43)
OpenMailCancelButton:Point("BOTTOMRIGHT", -40, 84)
OpenMailDeleteButton:Point("RIGHT", OpenMailCancelButton, "LEFT", -3, 0)
OpenMailReplyButton:Point("RIGHT", OpenMailDeleteButton, "LEFT", -3, 0)
end)
+237
View File
@@ -0,0 +1,237 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
local _G = _G
local unpack = unpack
--WoW API / Variables
local GetBuybackItemInfo = GetBuybackItemInfo
local GetItemInfo = GetItemInfo
local GetItemQualityColor = GetItemQualityColor
local GetMerchantNumItems = GetMerchantNumItems
S:AddCallback("Skin_Merchant", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.merchant then return end
local MerchantFrame = _G.MerchantFrame
MerchantFrame:StripTextures(true)
MerchantFrame:CreateBackdrop("Transparent")
MerchantFrame.backdrop:Point("TOPLEFT", 11, -12)
MerchantFrame.backdrop:Point("BOTTOMRIGHT", -32, 76)
S:SetUIPanelWindowInfo(MerchantFrame, "width")
S:SetBackdropHitRect(MerchantFrame)
MerchantFrame:EnableMouseWheel(true)
MerchantFrame:SetScript("OnMouseWheel", function(_, value)
if value > 0 then
if MerchantPrevPageButton:IsShown() and MerchantPrevPageButton:IsEnabled() == 1 then
MerchantPrevPageButton_OnClick()
end
else
if MerchantNextPageButton:IsShown() and MerchantNextPageButton:IsEnabled() == 1 then
MerchantNextPageButton_OnClick()
end
end
end)
S:HandleCloseButton(MerchantFrameCloseButton, MerchantFrame.backdrop)
local function skinMerchantButton(buttonName, buyback)
local button = _G[buttonName]
local itemButton = _G[buttonName.."ItemButton"]
local icon = _G[buttonName.."ItemButtonIconTexture"]
local name = _G[buttonName.."Name"]
local nameFrame = _G[buttonName.."NameFrame"]
local money = _G[buttonName.."MoneyFrame"]
local slot = _G[buttonName.."SlotTexture"]
button:StripTextures(true)
button:CreateBackdrop("Default")
button.backdrop:Point("TOPLEFT", -2, 2)
if buyback then
button.backdrop:Point("BOTTOMRIGHT", 4, -13)
else
button.backdrop:Point("BOTTOMRIGHT", 4, -6)
end
itemButton:StripTextures()
itemButton:StyleButton()
itemButton:SetTemplate("Default", true)
itemButton:Size(40)
itemButton:Point("TOPLEFT", 4, -4)
icon:SetTexCoord(unpack(E.TexCoords))
icon:SetInside()
name:Point("LEFT", slot, "RIGHT", -4, 5)
nameFrame:Point("LEFT", slot, "RIGHT", -6, -17)
money:ClearAllPoints()
money:Point("BOTTOMLEFT", itemButton, "BOTTOMRIGHT", 3, 0)
if not buyback then
for j = 1, 2 do
local currencyItem = _G[buttonName.."AltCurrencyFrameItem"..j]
local currencyIcon = _G[buttonName.."AltCurrencyFrameItem"..j.."Texture"]
currencyIcon.backdrop = CreateFrame("Frame", nil, currencyItem)
currencyIcon.backdrop:SetTemplate("Default")
currencyIcon.backdrop:SetFrameLevel(currencyItem:GetFrameLevel())
currencyIcon.backdrop:SetOutside(currencyIcon)
currencyIcon:SetTexCoord(unpack(E.TexCoords))
currencyIcon:SetParent(currencyIcon.backdrop)
end
end
end
for i = 1, 12 do
skinMerchantButton("MerchantItem"..i)
if i % 2 == 0 then
_G["MerchantItem"..i]:Point("TOPLEFT", _G["MerchantItem"..i-1], "TOPRIGHT", 13, 0)
end
end
skinMerchantButton("MerchantBuyBackItem", true)
S:HandleNextPrevButton(MerchantNextPageButton, nil, nil, true)
S:HandleNextPrevButton(MerchantPrevPageButton, nil, nil, true)
S:HandleButton(MerchantRepairItemButton)
MerchantRepairItemButton:StyleButton(false)
-- texWidth, texHeight, cropWidth, cropHeight, offsetX, offsetY = 128, 64, 26, 26, 5, 6
MerchantRepairItemButton:GetRegions():SetTexCoord(0.0390625, 0.2421875, 0.09375, 0.5)
MerchantRepairItemButton:GetRegions():SetInside()
S:HandleButton(MerchantRepairAllButton)
MerchantRepairAllIcon:StyleButton(false)
-- texWidth, texHeight, cropWidth, cropHeight, offsetX, offsetY = 128, 64, 26, 26, 41, 6
MerchantRepairAllIcon:SetTexCoord(0.3203125, 0.5234375, 0.09375, 0.5)
MerchantRepairAllIcon:SetInside()
S:HandleButton(MerchantGuildBankRepairButton)
MerchantGuildBankRepairButton:StyleButton()
-- texWidth, texHeight, cropWidth, cropHeight, offsetX, offsetY = 128, 64, 26, 26, 77, 6
MerchantGuildBankRepairButtonIcon:SetTexCoord(0.6015625, 0.8046875, 0.09375, 0.5)
MerchantGuildBankRepairButtonIcon:SetInside()
S:HandleTab(MerchantFrameTab1)
S:HandleTab(MerchantFrameTab2)
MerchantNameText:Point("TOP", -6, -22)
MerchantItem1:SetPoint("TOPLEFT", 21, -54)
MerchantPrevPageButton:Point("CENTER", MerchantFrame, "BOTTOMLEFT", 37, 172)
MerchantNextPageButton:Point("CENTER", MerchantFrame, "BOTTOMLEFT", 324, 172)
MerchantPageText:Point("BOTTOM", -14, 166)
MerchantBuyBackItem:Point("TOPLEFT", MerchantItem10, "BOTTOMLEFT", 0, -39)
MerchantGuildBankRepairButton:Point("LEFT", MerchantRepairAllButton, "RIGHT", 5, 0)
MerchantRepairItemButton:Point("RIGHT", MerchantRepairAllButton, "LEFT", -5, 0)
MerchantRepairItemButton.SetPoint = E.noop
MerchantMoneyFrame:Point("BOTTOMRIGHT", -30, 86)
MerchantFrameTab1:Point("CENTER", MerchantFrame, "BOTTOMLEFT", 54, 62)
MerchantFrameTab2:Point("LEFT", MerchantFrameTab1, "RIGHT", -15, 0)
hooksecurefunc(MerchantRepairAllButton, "Show", function(self)
-- CanMerchantRepair && CanGuildBankRepair
if self:GetWidth() == 32 then
MerchantRepairText:SetPoint("CENTER", MerchantFrame, "BOTTOMLEFT", 94, 151)
MerchantRepairAllButton:Point("BOTTOMRIGHT", MerchantFrame, "BOTTOMLEFT", 111, 105)
else
MerchantRepairText:SetPoint("BOTTOMLEFT", MerchantFrame, "BOTTOMLEFT", 26, 125)
MerchantRepairAllButton:Point("BOTTOMRIGHT", MerchantFrame, "BOTTOMLEFT", 172, 113)
end
end)
hooksecurefunc("MerchantFrame_UpdateMerchantInfo", function()
local numMerchantItems = GetMerchantNumItems()
local index = (MerchantFrame.page - 1) * MERCHANT_ITEMS_PER_PAGE
local _, button, name, quality
for i = 1, BUYBACK_ITEMS_PER_PAGE do
index = index + 1
if index <= numMerchantItems then
button = _G["MerchantItem"..i.."ItemButton"]
name = _G["MerchantItem"..i.."Name"]
if button.link then
_, _, quality = GetItemInfo(button.link)
if quality then
local r, g, b = GetItemQualityColor(quality)
button:SetBackdropBorderColor(r, g, b)
name:SetTextColor(r, g, b)
else
button:SetBackdropBorderColor(unpack(E.media.bordercolor))
name:SetTextColor(1, 1, 1)
end
else
button:SetBackdropBorderColor(unpack(E.media.bordercolor))
name:SetTextColor(1, 1, 1)
end
end
local itemName = GetBuybackItemInfo(GetNumBuybackItems())
if itemName then
_, _, quality = GetItemInfo(itemName)
if quality then
local r, g, b = GetItemQualityColor(quality)
MerchantBuyBackItemItemButton:SetBackdropBorderColor(r, g, b)
MerchantBuyBackItemName:SetTextColor(r, g, b)
else
MerchantBuyBackItemItemButton:SetBackdropBorderColor(unpack(E.media.bordercolor))
MerchantBuyBackItemName:SetTextColor(1, 1, 1)
end
else
MerchantBuyBackItemItemButton:SetBackdropBorderColor(unpack(E.media.bordercolor))
end
end
MerchantItem3:SetPoint("TOPLEFT", "MerchantItem1", "BOTTOMLEFT", 0, -11)
MerchantItem5:SetPoint("TOPLEFT", "MerchantItem3", "BOTTOMLEFT", 0, -11)
MerchantItem7:SetPoint("TOPLEFT", "MerchantItem5", "BOTTOMLEFT", 0, -11)
MerchantItem9:SetPoint("TOPLEFT", "MerchantItem7", "BOTTOMLEFT", 0, -11)
end)
hooksecurefunc("MerchantFrame_UpdateBuybackInfo", function()
local numBuybackItems = GetNumBuybackItems()
local _, button, name, quality
for i = 1, BUYBACK_ITEMS_PER_PAGE do
if i <= numBuybackItems then
local itemName = GetBuybackItemInfo(i)
if itemName then
button = _G["MerchantItem"..i.."ItemButton"]
name = _G["MerchantItem"..i.."Name"]
_, _, quality = GetItemInfo(itemName)
if quality then
local r, g, b = GetItemQualityColor(quality)
button:SetBackdropBorderColor(r, g, b)
name:SetTextColor(r, g, b)
else
button:SetBackdropBorderColor(unpack(E.media.bordercolor))
name:SetTextColor(1, 1, 1)
end
end
end
end
MerchantItem3:SetPoint("TOPLEFT", "MerchantItem1", "BOTTOMLEFT", 0, -15)
MerchantItem5:SetPoint("TOPLEFT", "MerchantItem3", "BOTTOMLEFT", 0, -15)
MerchantItem7:SetPoint("TOPLEFT", "MerchantItem5", "BOTTOMLEFT", 0, -15)
MerchantItem9:SetPoint("TOPLEFT", "MerchantItem7", "BOTTOMLEFT", 0, -15)
end)
end)
@@ -0,0 +1,54 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
--WoW API / Variables
S:AddCallback("Skin_MirrorTimers", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.mirrorTimers then return end
local function MirrorTimer_OnUpdate(frame, elapsed)
if frame.paused then return end
if frame.timeSinceUpdate <= 0 then
local text = frame.label:GetText()
if frame.value > 0 then
frame.TimerText:SetFormattedText("%s (%d:%02d)", text, frame.value / 60, frame.value % 60)
else
frame.TimerText:SetFormattedText("%s (0:00)", text)
end
frame.timeSinceUpdate = 0.033
else
frame.timeSinceUpdate = frame.timeSinceUpdate - elapsed
end
end
for i = 1, MIRRORTIMER_NUMTIMERS do
local mirrorTimer = _G["MirrorTimer"..i]
local statusBar = _G["MirrorTimer"..i.."StatusBar"]
local text = _G["MirrorTimer"..i.."Text"]
mirrorTimer:StripTextures()
mirrorTimer:Size(222, 18)
mirrorTimer.label = text
statusBar:CreateBackdrop()
statusBar:Size(222, 18)
statusBar:SetStatusBarTexture(E.media.normTex)
E:RegisterStatusBar(statusBar)
text:Hide()
local timerText = mirrorTimer:CreateFontString(nil, "OVERLAY")
timerText:FontTemplate()
timerText:Point("CENTER", statusBar)
mirrorTimer.TimerText = timerText
mirrorTimer.timeSinceUpdate = 0
mirrorTimer:HookScript("OnUpdate", MirrorTimer_OnUpdate)
E:CreateMover(mirrorTimer, "MirrorTimer"..i.."Mover", L["MirrorTimer"]..i, nil, nil, nil, "ALL,SOLO")
end
end)
+302
View File
@@ -0,0 +1,302 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
local _G = _G
local type = type
local unpack = unpack
--WoW API / Variables
S:AddCallback("Skin_Misc", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.misc then return end
-- ESC/Menu Buttons
GameMenuFrame:StripTextures()
GameMenuFrame:CreateBackdrop("Transparent")
GameMenuFrameHeader:Point("TOP", 0, 7)
local menuButtons = {
GameMenuButtonOptions,
GameMenuButtonSoundOptions,
GameMenuButtonUIOptions,
-- GameMenuButtonMacOptions,
GameMenuButtonKeybindings,
GameMenuButtonMacros,
-- GameMenuButtonRatings,
GameMenuButtonLogout,
GameMenuButtonQuit,
GameMenuButtonContinue,
ElvUI_MenuButton
}
for i = 1, #menuButtons do
local button = menuButtons[i]
if button then
S:HandleButton(menuButtons[i])
end
end
-- Static Popups
for i = 1, 4 do
local staticPopup = _G["StaticPopup"..i]
local itemFrame = _G["StaticPopup"..i.."ItemFrame"]
local itemFrameBox = _G["StaticPopup"..i.."EditBox"]
local itemFrameTexture = _G["StaticPopup"..i.."ItemFrameIconTexture"]
local itemFrameNormal = _G["StaticPopup"..i.."ItemFrameNormalTexture"]
local itemFrameName = _G["StaticPopup"..i.."ItemFrameNameFrame"]
local closeButton = _G["StaticPopup"..i.."CloseButton"]
local wideBox = _G["StaticPopup"..i.."WideEditBox"]
staticPopup:SetTemplate("Transparent")
S:HandleEditBox(itemFrameBox)
itemFrameBox.backdrop:Point("TOPLEFT", -2, -4)
itemFrameBox.backdrop:Point("BOTTOMRIGHT", 2, 4)
S:HandleEditBox(_G["StaticPopup"..i.."MoneyInputFrameGold"])
S:HandleEditBox(_G["StaticPopup"..i.."MoneyInputFrameSilver"])
S:HandleEditBox(_G["StaticPopup"..i.."MoneyInputFrameCopper"])
for j = 1, itemFrameBox:GetNumRegions() do
local region = select(j, itemFrameBox:GetRegions())
if region and region:GetObjectType() == "Texture" then
if region:GetTexture() == "Interface\\ChatFrame\\UI-ChatInputBorder-Left" or region:GetTexture() == "Interface\\ChatFrame\\UI-ChatInputBorder-Right" then
region:Kill()
end
end
end
closeButton:StripTextures()
S:HandleCloseButton(closeButton, staticPopup)
itemFrame:GetNormalTexture():Kill()
itemFrame:SetTemplate()
itemFrame:StyleButton()
hooksecurefunc("StaticPopup_Show", function(which, _, _, data)
local info = StaticPopupDialogs[which]
if not info then return nil end
if info.hasItemFrame then
if data and type(data) == "table" then
if data.color then
itemFrame:SetBackdropBorderColor(unpack(data.color))
else
itemFrame:SetBackdropBorderColor(1, 1, 1, 1)
end
end
end
end)
itemFrameTexture:SetTexCoord(unpack(E.TexCoords))
itemFrameTexture:SetInside()
itemFrameNormal:SetAlpha(0)
itemFrameName:Kill()
select(8, wideBox:GetRegions()):Hide()
S:HandleEditBox(wideBox)
wideBox:Height(22)
for j = 1, 3 do
S:HandleButton(_G["StaticPopup"..i.."Button"..j])
end
end
-- Other Frames
TicketStatusFrameButton:SetTemplate("Transparent")
AutoCompleteBox:SetTemplate("Transparent")
ConsolidatedBuffsTooltip:SetTemplate("Transparent")
--ResInSafeZoneButton
-- BNToast Frame
BNToastFrame:SetTemplate("Transparent")
BNToastFrameCloseButton:Size(32)
BNToastFrameCloseButton:Point("TOPRIGHT", "BNToastFrame", 4, 4)
S:HandleCloseButton(BNToastFrameCloseButton, BNToastFrame)
-- Ready Check Frame
ReadyCheckFrame:EnableMouse(true)
ReadyCheckFrame:SetTemplate("Transparent")
S:HandleButton(ReadyCheckFrameYesButton)
ReadyCheckFrameYesButton:SetParent(ReadyCheckFrame)
ReadyCheckFrameYesButton:ClearAllPoints()
ReadyCheckFrameYesButton:Point("TOPRIGHT", ReadyCheckFrame, "CENTER", -3, -5)
S:HandleButton(ReadyCheckFrameNoButton)
ReadyCheckFrameNoButton:SetParent(ReadyCheckFrame)
ReadyCheckFrameNoButton:ClearAllPoints()
ReadyCheckFrameNoButton:Point("TOPLEFT", ReadyCheckFrame, "CENTER", 4, -5)
ReadyCheckFrameText:SetParent(ReadyCheckFrame)
ReadyCheckFrameText:Point("TOP", 0, -15)
ReadyCheckFrameText:SetTextColor(1, 1, 1)
ReadyCheckListenerFrame:SetAlpha(0)
-- Coin PickUp Frame
CoinPickupFrame:StripTextures()
CoinPickupFrame:SetTemplate("Transparent")
S:HandleButton(CoinPickupOkayButton)
S:HandleButton(CoinPickupCancelButton)
-- Zone Text Frame
ZoneTextFrame:ClearAllPoints()
ZoneTextFrame:Point("TOP", UIParent, 0, -128)
-- Stack Split Frame
StackSplitFrame:SetTemplate("Transparent")
StackSplitFrame:GetRegions():Hide()
StackSplitFrame:SetFrameStrata("DIALOG")
StackSplitFrame.bg1 = CreateFrame("Frame", nil, StackSplitFrame)
StackSplitFrame.bg1:SetFrameLevel(StackSplitFrame.bg1:GetFrameLevel() - 1)
StackSplitFrame.bg1:SetTemplate("Transparent")
StackSplitFrame.bg1:Point("TOPLEFT", 10, -15)
StackSplitFrame.bg1:Point("BOTTOMRIGHT", -10, 55)
S:HandleButton(StackSplitOkayButton)
S:HandleButton(StackSplitCancelButton)
-- Opacity Frame
OpacityFrame:StripTextures()
OpacityFrame:SetTemplate("Transparent")
S:HandleSliderFrame(OpacityFrameSlider)
-- Channel Pullout Frame
ChannelPullout:SetTemplate("Transparent")
ChannelPulloutBackground:Kill()
S:HandleTab(ChannelPulloutTab)
ChannelPulloutTab:Size(107, 26)
ChannelPulloutTabText:Point("LEFT", ChannelPulloutTabLeft, "RIGHT", 0, 4)
S:HandleCloseButton(ChannelPulloutCloseButton, ChannelPullout)
ChannelPulloutCloseButton:Size(32)
-- Dropdown Menu
local checkBoxSkin = E.private.skins.dropdownCheckBoxSkin
local menuLevel = 0
local maxButtons = 0
local function dropDownButtonShow(self)
if self.notCheckable then
self.check.backdrop:Hide()
else
self.check.backdrop:Show()
end
end
local function skinDropdownMenu()
local updateButtons = maxButtons < UIDROPDOWNMENU_MAXBUTTONS
if updateButtons or menuLevel < UIDROPDOWNMENU_MAXLEVELS then
for i = 1, UIDROPDOWNMENU_MAXLEVELS do
local frame = _G["DropDownList"..i]
if not frame.isSkinned then
_G["DropDownList"..i.."Backdrop"]:SetTemplate("Transparent")
_G["DropDownList"..i.."MenuBackdrop"]:SetTemplate("Transparent")
frame.isSkinned = true
end
if updateButtons then
for j = 1, UIDROPDOWNMENU_MAXBUTTONS do
local button = _G["DropDownList"..i.."Button"..j]
if not button.isSkinned then
S:HandleButtonHighlight(_G["DropDownList"..i.."Button"..j.."Highlight"])
if checkBoxSkin then
local check = _G["DropDownList"..i.."Button"..j.."Check"]
check:Size(12)
check:Point("LEFT", 1, 0)
check:CreateBackdrop()
check:SetTexture(E.media.normTex)
check:SetVertexColor(1, 0.82, 0, 0.8)
button.check = check
hooksecurefunc(button, "Show", dropDownButtonShow)
end
S:HandleColorSwatch(_G["DropDownList"..i.."Button"..j.."ColorSwatch"], 14)
button.isSkinned = true
end
end
end
end
menuLevel = UIDROPDOWNMENU_MAXLEVELS
maxButtons = UIDROPDOWNMENU_MAXBUTTONS
end
end
skinDropdownMenu()
hooksecurefunc("UIDropDownMenu_InitializeHelper", skinDropdownMenu)
-- Chat Menu
local chatMenus = {
"ChatMenu",
"EmoteMenu",
"LanguageMenu",
"VoiceMacroMenu",
}
for i = 1, #chatMenus do
if chatMenus[i] == "ChatMenu" then
_G[chatMenus[i]]:HookScript("OnShow", function(self)
self:SetTemplate("Transparent")
self:SetBackdropColor(unpack(E.media.backdropfadecolor))
self:ClearAllPoints()
self:Point("BOTTOMLEFT", ChatFrame1, "TOPLEFT", 0, 30)
end)
else
_G[chatMenus[i]]:HookScript("OnShow", function(self)
self:SetTemplate("Transparent")
self:SetBackdropColor(unpack(E.media.backdropfadecolor))
end)
end
end
for i = 1, 32 do
_G["ChatMenuButton"..i]:StyleButton()
_G["EmoteMenuButton"..i]:StyleButton()
_G["LanguageMenuButton"..i]:StyleButton()
_G["VoiceMacroMenuButton"..i]:StyleButton()
end
local locale = GetLocale()
if locale == "koKR" then
S:HandleButton(GameMenuButtonRatings)
RatingMenuFrame:SetTemplate("Transparent")
RatingMenuFrameHeader:Kill()
S:HandleButton(RatingMenuButtonOkay)
elseif locale == "ruRU" then
-- Declension Frame
DeclensionFrame:SetTemplate("Transparent")
S:HandleNextPrevButton(DeclensionFrameSetPrev)
S:HandleNextPrevButton(DeclensionFrameSetNext)
S:HandleButton(DeclensionFrameOkayButton)
S:HandleButton(DeclensionFrameCancelButton)
for i = 1, RUSSIAN_DECLENSION_PATTERNS do
local editBox = _G["DeclensionFrameDeclension"..i.."Edit"]
if editBox then
editBox:StripTextures()
S:HandleEditBox(editBox)
end
end
end
end)
+40
View File
@@ -0,0 +1,40 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
--WoW API / Variables
S:AddCallback("Skin_Petition", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.petition then return end
PetitionFrame:StripTextures(true)
PetitionFrame:CreateBackdrop("Transparent")
PetitionFrame.backdrop:Point("TOPLEFT", 11, -12)
PetitionFrame.backdrop:Point("BOTTOMRIGHT", -32, 76)
S:SetUIPanelWindowInfo(PetitionFrame, "width")
S:SetBackdropHitRect(PetitionFrame)
S:HandleButton(PetitionFrameSignButton)
S:HandleButton(PetitionFrameRequestButton)
S:HandleButton(PetitionFrameRenameButton)
S:HandleButton(PetitionFrameCancelButton)
S:HandleCloseButton(PetitionFrameCloseButton, PetitionFrame.backdrop)
PetitionFrameCharterTitle:SetTextColor(1, 1, 0)
PetitionFrameCharterName:SetTextColor(1, 1, 1)
PetitionFrameMasterTitle:SetTextColor(1, 1, 0)
PetitionFrameMasterName:SetTextColor(1, 1, 1)
PetitionFrameMemberTitle:SetTextColor(1, 1, 0)
for i = 1, 9 do
_G["PetitionFrameMemberName"..i]:SetTextColor(1, 1, 1)
end
PetitionFrameInstructions:SetTextColor(1, 1, 1)
PetitionFrameRequestButton:Point("BOTTOMLEFT", 19, 84)
PetitionFrameCancelButton:Point("BOTTOMRIGHT", -40, 84)
PetitionFrameRenameButton:Point("LEFT", PetitionFrameRequestButton, "RIGHT", 3, 0)
PetitionFrameRenameButton:Point("RIGHT", PetitionFrameCancelButton, "LEFT", -3, 0)
end)
+155
View File
@@ -0,0 +1,155 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
local _G = _G
--WoW API / Variables
local CanQueueForWintergrasp = CanQueueForWintergrasp
S:AddCallback("Skin_PvP", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.pvp then return end
PVPParentFrame:CreateBackdrop("Transparent")
PVPParentFrame.backdrop:Point("TOPLEFT", 11, -12)
PVPParentFrame.backdrop:Point("BOTTOMRIGHT", -32, 76)
S:SetUIPanelWindowInfo(PVPParentFrame, "width")
S:SetBackdropHitRect(PVPParentFrame)
S:SetBackdropHitRect(PVPFrame, PVPParentFrame.backdrop)
S:SetBackdropHitRect(PVPBattlegroundFrame, PVPParentFrame.backdrop)
S:HandleCloseButton(PVPParentFrameCloseButton, PVPParentFrame.backdrop)
S:HandleTab(PVPParentFrameTab1)
S:HandleTab(PVPParentFrameTab2)
PVPFrame:StripTextures(true)
for i = 1, MAX_ARENA_TEAMS do
local pvpTeam = _G["PVPTeam"..i]
pvpTeam:StripTextures()
pvpTeam:CreateBackdrop("Default")
pvpTeam.backdrop:Point("TOPLEFT", 9, -4)
pvpTeam.backdrop:Point("BOTTOMRIGHT", -24, 3)
S:SetBackdropHitRect(pvpTeam)
pvpTeam:HookScript("OnEnter", S.SetModifiedBackdrop)
pvpTeam:HookScript("OnLeave", S.SetOriginalBackdrop)
_G["PVPTeam"..i.."Highlight"]:Kill()
end
-- PVP Team Details
PVPTeamDetails:StripTextures()
PVPTeamDetails:SetTemplate("Transparent")
PVPTeamDetails:Point("TOPLEFT", PVPFrame, "TOPRIGHT", -33, -81)
S:HandleCloseButton(PVPTeamDetailsCloseButton, PVPTeamDetails)
for i = 1, 5 do
_G["PVPTeamDetailsFrameColumnHeader"..i]:StripTextures()
end
for i = 1, MAX_ARENA_TEAM_MEMBERS do
S:HandleButtonHighlight(_G["PVPTeamDetailsButton"..i])
end
S:HandleButton(PVPTeamDetailsAddTeamMember)
S:HandleNextPrevButton(PVPTeamDetailsToggleButton)
PVPTeamDetailsAddTeamMember:Point("TOPLEFT", PVPTeamDetailsButton10, "BOTTOMLEFT", 5, -8)
PVPTeamDetailsToggleButton:Point("BOTTOMRIGHT", -20, 25)
-- PVP Battleground Frame
PVPBattlegroundFrame:StripTextures(true)
PVPBattlegroundFrameTypeScrollFrame:StripTextures()
S:HandleScrollBar(PVPBattlegroundFrameTypeScrollFrameScrollBar)
PVPBattlegroundFrameInfoScrollFrame:StripTextures()
S:HandleScrollBar(PVPBattlegroundFrameInfoScrollFrameScrollBar)
S:HandleButton(PVPBattlegroundFrameGroupJoinButton)
S:HandleButton(PVPBattlegroundFrameJoinButton)
S:HandleButton(PVPBattlegroundFrameCancelButton)
for i = 1, 5 do
S:HandleButtonHighlight(_G["BattlegroundType"..i])
end
PVPBattlegroundFrameInfoScrollFrameChildFrameDescription:SetTextColor(1, 1, 1)
PVPBattlegroundFrameInfoScrollFrameChildFrameRewardsInfo.description:SetTextColor(1, 1, 1)
PVPBattlegroundFrameTypeScrollFrameScrollBar:Point("TOPLEFT", PVPBattlegroundFrameTypeScrollFrame, "TOPRIGHT", 6, -19)
PVPBattlegroundFrameTypeScrollFrameScrollBar:Point("BOTTOMLEFT", PVPBattlegroundFrameTypeScrollFrame, "BOTTOMRIGHT", 6, 19)
PVPBattlegroundFrameInfoScrollFrame:Point("BOTTOMLEFT", 19, 114)
PVPBattlegroundFrameInfoScrollFrameScrollBar:Point("TOPLEFT", PVPBattlegroundFrameInfoScrollFrame, "TOPRIGHT", 7, -24)
PVPBattlegroundFrameInfoScrollFrameScrollBar:Point("BOTTOMLEFT", PVPBattlegroundFrameInfoScrollFrame, "BOTTOMRIGHT", 7, 19)
PVPBattlegroundFrameGroupJoinButton:Width(127)
PVPBattlegroundFrameCancelButton:Point("CENTER", PVPBattlegroundFrame, "TOPLEFT", 300, -416)
PVPBattlegroundFrameJoinButton:Point("RIGHT", PVPBattlegroundFrameCancelButton, "LEFT", -3, 0)
PVPBattlegroundFrameGroupJoinButton:Point("RIGHT", PVPBattlegroundFrameJoinButton, "LEFT", -3, 0)
WintergraspTimer:Size(24)
WintergraspTimer:SetTemplate("Default")
WintergraspTimer:Point("RIGHT", PVPBattlegroundFrame, "TOPRIGHT", -42, -58)
WintergraspTimer.texture:SetDrawLayer("ARTWORK")
WintergraspTimer.texture:SetInside()
WintergraspTimer:HookScript("OnUpdate", function(self)
if CanQueueForWintergrasp() then
-- texWidth, texHeight, cropWidth, cropHeight, offsetX, offsetY = 32, 64, 20, 20, 6, 38
self.texture:SetTexCoord(0.1875, 0.8125, 0.59375, 0.90625)
else
-- texWidth, texHeight, cropWidth, cropHeight, offsetX, offsetY = 32, 64, 20, 20, 6, 6
self.texture:SetTexCoord(0.1875, 0.8125, 0.09375, 0.40625)
end
end)
-- Battlefield Frame
BattlefieldFrame:StripTextures(true)
BattlefieldFrame:CreateBackdrop("Transparent")
BattlefieldFrame.backdrop:Point("TOPLEFT", 11, -12)
BattlefieldFrame.backdrop:Point("BOTTOMRIGHT", -32, 76)
S:SetUIPanelWindowInfo(BattlefieldFrame, "width")
S:SetBackdropHitRect(BattlefieldFrame)
S:HandleCloseButton(BattlefieldFrameCloseButton, BattlefieldFrame.backdrop)
BattlefieldListScrollFrame:StripTextures()
S:HandleScrollBar(BattlefieldListScrollFrameScrollBar)
S:HandleScrollBar(BattlefieldFrameInfoScrollFrameScrollBar)
BattlefieldFrameInfoScrollFrameChildFrameDescription:SetTextColor(1, 1, 1)
BattlefieldFrameInfoScrollFrameChildFrameRewardsInfoDescription:SetTextColor(1, 1, 1)
S:HandleButton(BattlefieldFrameGroupJoinButton)
S:HandleButton(BattlefieldFrameJoinButton)
S:HandleButton(BattlefieldFrameCancelButton)
for i = 1, BATTLEFIELD_ZONES_DISPLAYED do
S:HandleButtonHighlight(_G["BattlefieldZone"..i])
end
BattlefieldFrameNameHeader:Point("TOPLEFT", 73, -57)
BattlefieldZone1:Point("TOPLEFT", 25, -80)
BattlefieldListScrollFrameScrollBar:Point("TOPLEFT", BattlefieldListScrollFrame, "TOPRIGHT", 9, -23)
BattlefieldListScrollFrameScrollBar:Point("BOTTOMLEFT", BattlefieldListScrollFrame, "BOTTOMRIGHT", 9, 23)
BattlefieldFrameInfoScrollFrame:Point("BOTTOMLEFT", 21, 113)
BattlefieldFrameInfoScrollFrameScrollBar:Point("TOPLEFT", BattlefieldFrameInfoScrollFrame, "TOPRIGHT", 7, -20)
BattlefieldFrameInfoScrollFrameScrollBar:Point("BOTTOMLEFT", BattlefieldFrameInfoScrollFrame, "BOTTOMRIGHT", 7, 19)
BattlefieldFrameGroupJoinButton:Width(127)
BattlefieldFrameGroupJoinButton:Point("RIGHT", BattlefieldFrameJoinButton, "LEFT", -3, 0)
BattlefieldFrameJoinButton:Point("RIGHT", BattlefieldFrameCancelButton, "LEFT", -3, 0)
BattlefieldFrameCancelButton:Point("CENTER", BattlefieldFrame, "TOPLEFT", 302, -417)
end)
+437
View File
@@ -0,0 +1,437 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
local _G = _G
local select = select
local unpack = unpack
local find, gsub = string.find, string.gsub
--WoW API / Variables
local GetItemInfo = GetItemInfo
local GetItemQualityColor = GetItemQualityColor
local GetMoney = GetMoney
local GetNumQuestLeaderBoards = GetNumQuestLeaderBoards
local GetQuestItemLink = GetQuestItemLink
local GetQuestLogItemLink = GetQuestLogItemLink
local GetQuestLogLeaderBoard = GetQuestLogLeaderBoard
local GetQuestLogRequiredMoney = GetQuestLogRequiredMoney
local hooksecurefunc = hooksecurefunc
local GetQuestMoneyToGet = GetQuestMoneyToGet
local MAX_NUM_ITEMS = MAX_NUM_ITEMS
local MAX_REPUTATIONS = MAX_REPUTATIONS
S:AddCallback("Skin_Quest", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.quest then return end
QuestLogFrame:StripTextures()
QuestLogFrame:CreateBackdrop("Transparent")
QuestLogFrame.backdrop:Point("TOPLEFT", 11, -12)
QuestLogFrame.backdrop:Point("BOTTOMRIGHT", -1, 11)
S:SetUIPanelWindowInfo(QuestLogFrame, "width")
S:SetBackdropHitRect(QuestLogFrame)
S:HandleCloseButton(QuestLogFrameCloseButton, QuestLogFrame.backdrop)
QuestLogCount:StripTextures()
QuestLogCount:CreateBackdrop("Transparent")
QuestLogCount.backdrop:Point("TOPLEFT", -1, 0)
QuestLogCount.backdrop:Point("BOTTOMRIGHT", 1, -4)
QuestLogFrameShowMapButton:StripTextures()
S:HandleButton(QuestLogFrameShowMapButton)
QuestLogScrollFrame:CreateBackdrop("Transparent")
QuestLogScrollFrame.backdrop:Point("TOPLEFT", 0, 2)
QuestLogScrollFrame.backdrop:Point("BOTTOMRIGHT", 0, -2)
QuestLogDetailScrollFrame:StripTextures()
QuestLogDetailScrollFrame:CreateBackdrop("Transparent")
QuestLogDetailScrollFrame.backdrop:Point("TOPLEFT", 0, 1)
QuestLogDetailScrollFrame.backdrop:Point("BOTTOMRIGHT", 0, -2)
EmptyQuestLogFrame:StripTextures()
S:HandleButton(QuestLogFrameAbandonButton)
S:HandleButton(QuestLogFramePushQuestButton)
S:HandleButton(QuestLogFrameTrackButton)
S:HandleButton(QuestLogFrameCancelButton)
QuestLogSkillHighlight:SetTexture(E.Media.Textures.Highlight)
QuestLogSkillHighlight:SetAlpha(0.35)
S:HandleScrollBar(QuestLogScrollFrameScrollBar)
S:HandleScrollBar(QuestLogDetailScrollFrameScrollBar)
S:HandleScrollBar(QuestDetailScrollFrameScrollBar)
S:HandleScrollBar(QuestProgressScrollFrameScrollBar)
S:HandleScrollBar(QuestRewardScrollFrameScrollBar)
QuestLogCount:ClearAllPoints()
QuestLogCount:Point("BOTTOMLEFT", QuestLogScrollFrame, "TOPLEFT", 1, 13)
QuestLogCount.SetPoint = E.noop
QuestLogFrameShowMapButton.text:ClearAllPoints()
QuestLogFrameShowMapButton.text:Point("CENTER")
QuestLogFrameShowMapButton:Size(QuestLogFrameShowMapButton.text:GetWidth() + 32, 32)
QuestLogScrollFrame:Point("TOPLEFT", 19, -62)
QuestLogScrollFrameScrollBar:Point("TOPLEFT", QuestLogScrollFrame, "TOPRIGHT", 3, -17)
QuestLogScrollFrameScrollBar:Point("BOTTOMLEFT", QuestLogScrollFrame, "BOTTOMRIGHT", 3, 17)
QuestLogDetailScrollFrame:Width(304)
QuestLogDetailScrollFrame.Hide = E.noop
QuestLogDetailScrollFrame:Show()
QuestLogFrameTrackButton:Height(22)
QuestLogFrameAbandonButton:Height(22)
QuestLogFramePushQuestButton:Height(22)
QuestLogFrameTrackButton:Point("RIGHT", -1, 2)
QuestLogFrameAbandonButton:Point("LEFT", 1, 2)
QuestLogFramePushQuestButton:Point("LEFT", QuestLogFrameAbandonButton, "RIGHT", 3, 0)
QuestLogFramePushQuestButton:Point("RIGHT", QuestLogFrameTrackButton, "LEFT", -3, 0)
QuestLogFrameCancelButton:Point("BOTTOMRIGHT", -9, 19)
QuestLogFrame:HookScript("OnShow", function()
QuestLogDetailScrollFrame.backdrop:Show()
QuestLogFrameShowMapButton:Point("TOPRIGHT", -30, -24)
QuestLogDetailScrollFrame:Height(336)
QuestLogDetailScrollFrame:Point("TOPRIGHT", -30, -61)
QuestLogDetailScrollFrameScrollBar:Point("TOPLEFT", QuestLogDetailScrollFrame, "TOPRIGHT", 3, -18)
QuestLogDetailScrollFrameScrollBar:Point("BOTTOMLEFT", QuestLogDetailScrollFrame, "BOTTOMRIGHT", 3, 17)
QuestLogControlPanel:SetPoint("BOTTOMLEFT", 18, 15)
end)
for _, questLogTitle in ipairs(QuestLogScrollFrame.buttons) do
questLogTitle:SetNormalTexture(E.Media.Textures.Plus)
questLogTitle.SetNormalTexture = E.noop
questLogTitle:GetNormalTexture():Size(16)
questLogTitle:GetNormalTexture():Point("LEFT", 5, 0)
questLogTitle:SetHighlightTexture("")
questLogTitle.SetHighlightTexture = E.noop
hooksecurefunc(questLogTitle, "SetNormalTexture", function(self, texture)
if find(texture, "MinusButton") then
self:GetNormalTexture():SetTexture(E.Media.Textures.Minus)
elseif find(texture, "PlusButton") then
self:GetNormalTexture():SetTexture(E.Media.Textures.Plus)
else
self:GetNormalTexture():SetTexture(0, 0, 0, 0)
end
end)
end
-- QuestLog Detail Frame
QuestLogDetailFrame:StripTextures()
QuestLogDetailFrame:Height(513)
QuestLogDetailFrame:CreateBackdrop("Transparent")
QuestLogDetailFrame.backdrop:Point("TOPLEFT", 11, -12)
QuestLogDetailFrame.backdrop:Point("BOTTOMRIGHT", 2, 1)
S:SetUIPanelWindowInfo(QuestLogDetailFrame, "height", nil, nil, true)
S:SetUIPanelWindowInfo(QuestLogDetailFrame, "width")
S:SetBackdropHitRect(QuestLogDetailFrame)
S:HandleCloseButton(QuestLogDetailFrameCloseButton, QuestLogDetailFrame.backdrop)
QuestLogDetailTitleText:Point("TOP", QuestLogDetailFrame, "TOP", 0, -18)
QuestLogDetailFrame:HookScript("OnShow", function()
QuestLogDetailScrollFrame.backdrop:Hide()
QuestLogDetailScrollFrame:Height(402)
QuestLogDetailScrollFrame:Point("TOPLEFT", 19, -73)
QuestLogDetailScrollFrameScrollBar:Point("TOPLEFT", QuestLogDetailScrollFrame, "TOPRIGHT", 3, -19)
QuestLogDetailScrollFrameScrollBar:Point("BOTTOMLEFT", QuestLogDetailScrollFrame, "BOTTOMRIGHT", 3, 19)
QuestLogFrameShowMapButton:Point("TOPRIGHT", -27, -34)
end)
-- Quest Frame
QuestFrame:StripTextures(true)
QuestFrame:CreateBackdrop("Transparent")
QuestFrame.backdrop:Point("TOPLEFT", 11, -12)
QuestFrame.backdrop:Point("BOTTOMRIGHT", -32, 0)
S:SetUIPanelWindowInfo(QuestFrame, "width")
S:SetBackdropHitRect(QuestFrame)
S:HandleCloseButton(QuestFrameCloseButton, QuestFrame.backdrop)
QuestFrameDetailPanel:StripTextures(true)
QuestDetailScrollFrame:StripTextures(true)
QuestDetailScrollChildFrame:StripTextures(true)
QuestRewardScrollFrame:StripTextures(true)
QuestRewardScrollChildFrame:StripTextures(true)
QuestFrameProgressPanel:StripTextures(true)
QuestFrameRewardPanel:StripTextures(true)
S:HandleButton(QuestFrameAcceptButton)
S:HandleButton(QuestFrameCompleteButton)
S:HandleButton(QuestFrameCompleteQuestButton)
S:HandleButton(QuestFrameDeclineButton)
S:HandleButton(QuestFrameGoodbyeButton)
S:HandleButton(QuestFrameCancelButton)
QuestFrameNpcNameText:ClearAllPoints()
QuestFrameNpcNameText:Point("TOP", QuestFrame, "TOP", -6, -15)
QuestDetailScrollFrame:Size(304, 402)
QuestRewardScrollFrame:Size(304, 402)
QuestProgressScrollFrame:Size(304, 402)
QuestDetailScrollFrame:Point("TOPLEFT", QuestFrame, "TOPLEFT", 19, -73)
QuestRewardScrollFrame:Point("TOPLEFT", QuestFrame, "TOPLEFT", 19, -73)
QuestProgressScrollFrame:Point("TOPLEFT", QuestFrame, "TOPLEFT", 19, -73)
QuestDetailScrollFrameScrollBar:Point("TOPLEFT", QuestDetailScrollFrame, "TOPRIGHT", 3, -19)
QuestDetailScrollFrameScrollBar:Point("BOTTOMLEFT", QuestDetailScrollFrame, "BOTTOMRIGHT", 3, 19)
QuestRewardScrollFrameScrollBar:Point("TOPLEFT", QuestRewardScrollFrame, "TOPRIGHT", 3, -19)
QuestRewardScrollFrameScrollBar:Point("BOTTOMLEFT", QuestRewardScrollFrame, "BOTTOMRIGHT", 3, 19)
QuestProgressScrollFrameScrollBar:Point("TOPLEFT", QuestProgressScrollFrame, "TOPRIGHT", 3, -19)
QuestProgressScrollFrameScrollBar:Point("BOTTOMLEFT", QuestProgressScrollFrame, "BOTTOMRIGHT", 3, 19)
QuestFrameAcceptButton:Point("BOTTOMLEFT", 19, 8)
QuestFrameCompleteButton:Point("BOTTOMLEFT", 19, 8)
QuestFrameCompleteQuestButton:Point("BOTTOMLEFT", 19, 8)
QuestFrameDeclineButton:Point("BOTTOMRIGHT", -40, 8)
QuestFrameGoodbyeButton:Point("BOTTOMRIGHT", -40, 8)
QuestFrameCancelButton:Point("BOTTOMRIGHT", -40, 8)
-- Quest Greeting Frame
QuestFrameGreetingPanel:StripTextures(true)
QuestGreetingFrameHorizontalBreak:Kill()
S:HandleButton(QuestFrameGreetingGoodbyeButton, true)
S:HandleScrollBar(QuestGreetingScrollFrameScrollBar)
GreetingText:SetTextColor(1, 1, 1)
CurrentQuestsText:SetTextColor(1, 0.80, 0.10)
AvailableQuestsText:SetTextColor(1, 0.80, 0.10)
GreetingText.SetTextColor = E.noop
CurrentQuestsText.SetTextColor = E.noop
AvailableQuestsText.SetTextColor = E.noop
QuestGreetingScrollFrame:Size(304, 402)
QuestGreetingScrollFrame:Point("TOPLEFT", GossipFrame, "TOPLEFT", 19, -73)
QuestGreetingScrollFrameScrollBar:Point("TOPLEFT", QuestGreetingScrollFrame, "TOPRIGHT", 3, -19)
QuestGreetingScrollFrameScrollBar:Point("BOTTOMLEFT", QuestGreetingScrollFrame, "BOTTOMRIGHT", 3, 19)
QuestFrameGreetingGoodbyeButton:Point("BOTTOMRIGHT", -40, 8)
QuestFrameGreetingPanel:HookScript("OnShow", function()
for i = 1, MAX_NUM_QUESTS do
local button = _G["QuestTitleButton"..i]
if button:GetFontString() then
if button:GetText() and find(button:GetText(), "|cff000000") then
button:SetText(gsub(button:GetText(), "|cff000000", "|cffFFFF00"))
end
end
end
end)
-- Quest Progress + Reward
QuestInfoItemHighlight:StripTextures()
QuestInfoTimerText:SetTextColor(1, 1, 1)
QuestInfoAnchor:SetTextColor(1, 1, 1)
local items = {
["QuestInfoItem"] = MAX_NUM_ITEMS,
["QuestProgressItem"] = MAX_REQUIRED_ITEMS
}
for frame, numItems in pairs(items) do
for i = 1, numItems do
local item = _G[frame..i]
local icon = _G[frame..i.."IconTexture"]
local count = _G[frame..i.."Count"]
item:StripTextures()
item:SetTemplate("Default")
item:StyleButton()
item:Size(143, 40)
item:SetFrameLevel(item:GetFrameLevel() + 2)
icon:Size(E.PixelMode and 38 or 32)
icon:SetDrawLayer("OVERLAY")
icon:Point("TOPLEFT", E.PixelMode and 1 or 4, -(E.PixelMode and 1 or 4))
S:HandleIcon(icon)
count:SetParent(item.backdrop)
count:SetDrawLayer("OVERLAY")
end
end
local function questQualityColors(frame, text, link, quality)
if link and not quality then
quality = select(3, GetItemInfo(link))
end
if quality then
local r, g, b = GetItemQualityColor(quality)
frame:SetBackdropBorderColor(r, g, b)
frame.backdrop:SetBackdropBorderColor(r, g, b)
text:SetTextColor(r, g, b)
else
frame:SetBackdropBorderColor(unpack(E.media.bordercolor))
frame.backdrop:SetBackdropBorderColor(unpack(E.media.bordercolor))
text:SetTextColor(1, 1, 1)
end
end
hooksecurefunc("QuestFrameProgressItems_Update", function()
QuestProgressTitleText:SetTextColor(1, 0.80, 0.10)
QuestProgressText:SetTextColor(1, 1, 1)
QuestProgressRequiredItemsText:SetTextColor(1, 0.80, 0.10)
local moneyToGet = GetQuestMoneyToGet()
if moneyToGet > 0 then
if moneyToGet > GetMoney() then
QuestProgressRequiredMoneyText:SetTextColor(0.6, 0.6, 0.6)
else
QuestProgressRequiredMoneyText:SetTextColor(1, 0.80, 0.10)
end
end
local item, name, link
for i = 1, MAX_REQUIRED_ITEMS do
item = _G["QuestProgressItem"..i]
name = _G["QuestProgressItem"..i.."Name"]
link = item.type and GetQuestItemLink(item.type, item:GetID())
questQualityColors(item, name, link)
end
end)
hooksecurefunc("QuestInfoItem_OnClick", function(self)
if self.type == "choice" then
self:SetBackdropBorderColor(1, 0.80, 0.10)
self.backdrop:SetBackdropBorderColor(1, 0.80, 0.10)
_G[self:GetName().."Name"]:SetTextColor(1, 0.80, 0.10)
local item, name, link
for i = 1, MAX_NUM_ITEMS do
item = _G["QuestInfoItem"..i]
if item ~= self then
name = _G["QuestInfoItem"..i.."Name"]
link = item.type and (QuestInfoFrame.questLog and GetQuestLogItemLink or GetQuestItemLink)(item.type, item:GetID())
questQualityColors(item, name, link)
end
end
end
end)
local function questObjectiveText()
local numObjectives = GetNumQuestLeaderBoards()
local _, objType, finished, objective
local numVisibleObjectives = 0
for i = 1, numObjectives do
_, objType, finished = GetQuestLogLeaderBoard(i)
if objType ~= "spell" then
numVisibleObjectives = numVisibleObjectives + 1
objective = _G["QuestInfoObjective"..numVisibleObjectives]
if finished then
objective:SetTextColor(1, 0.80, 0.10)
else
objective:SetTextColor(0.6, 0.6, 0.6)
end
end
end
end
hooksecurefunc("QuestInfo_Display", function()
QuestInfoTitleHeader:SetTextColor(1, 0.80, 0.10)
QuestInfoDescriptionHeader:SetTextColor(1, 0.80, 0.10)
QuestInfoObjectivesHeader:SetTextColor(1, 0.80, 0.10)
QuestInfoRewardsHeader:SetTextColor(1, 0.80, 0.10)
QuestInfoDescriptionText:SetTextColor(1, 1, 1)
QuestInfoObjectivesText:SetTextColor(1, 1, 1)
QuestInfoGroupSize:SetTextColor(1, 1, 1)
QuestInfoRewardText:SetTextColor(1, 1, 1)
QuestInfoItemChooseText:SetTextColor(1, 1, 1)
QuestInfoItemReceiveText:SetTextColor(1, 1, 1)
QuestInfoSpellLearnText:SetTextColor(1, 1, 1)
QuestInfoHonorFrameReceiveText:SetTextColor(1, 1, 1)
QuestInfoArenaPointsFrameReceiveText:SetTextColor(1, 1, 1)
QuestInfoTalentFrameReceiveText:SetTextColor(1, 1, 1)
QuestInfoXPFrameReceiveText:SetTextColor(1, 1, 1)
QuestInfoReputationText:SetTextColor(1, 1, 1)
for i = 1, MAX_REPUTATIONS do
_G["QuestInfoReputation"..i.."Faction"]:SetTextColor(1, 1, 1)
end
local requiredMoney = GetQuestLogRequiredMoney()
if requiredMoney > 0 then
if requiredMoney > GetMoney() then
QuestInfoRequiredMoneyText:SetTextColor(0.6, 0.6, 0.6)
else
QuestInfoRequiredMoneyText:SetTextColor(1, 0.80, 0.10)
end
end
questObjectiveText()
local item, name, link
for i = 1, MAX_NUM_ITEMS do
item = _G["QuestInfoItem"..i]
name = _G["QuestInfoItem"..i.."Name"]
link = item.type and (QuestInfoFrame.questLog and GetQuestLogItemLink or GetQuestItemLink)(item.type, item:GetID())
questQualityColors(item, name, link)
end
end)
hooksecurefunc("QuestInfo_ShowRewards", function()
local item, name, link
for i = 1, MAX_NUM_ITEMS do
item = _G["QuestInfoItem"..i]
name = _G["QuestInfoItem"..i.."Name"]
link = item.type and (QuestInfoFrame.questLog and GetQuestLogItemLink or GetQuestItemLink)(item.type, item:GetID())
questQualityColors(item, name, link)
end
end)
hooksecurefunc("QuestInfo_ShowRequiredMoney", function()
local requiredMoney = GetQuestLogRequiredMoney()
if requiredMoney > 0 then
if requiredMoney > GetMoney() then
QuestInfoRequiredMoneyText:SetTextColor(0.6, 0.6, 0.6)
else
QuestInfoRequiredMoneyText:SetTextColor(1, 0.80, 0.10)
end
end
end)
end)
+152
View File
@@ -0,0 +1,152 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
local _G = _G
local ipairs = ipairs
local unpack = unpack
--WoW API / Variables
S:AddCallbackForAddon("Blizzard_RaidUI", "Skin_Blizzard_RaidUI", function()
if E.private.skins.blizzard.enable and E.private.skins.blizzard.friends then
RaidClassButton1:HookScript("OnShow", function()
S:SetUIPanelWindowInfo(FriendsFrame, "width", nil, 21)
end)
RaidClassButton1:HookScript("OnHide", function()
S:SetUIPanelWindowInfo(FriendsFrame, "width")
end)
end
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.raid then return end
local StripAllTextures = {
RaidGroup1,
RaidGroup2,
RaidGroup3,
RaidGroup4,
RaidGroup5,
RaidGroup6,
RaidGroup7,
RaidGroup8
}
for _, object in ipairs(StripAllTextures) do
object:StripTextures()
end
RaidFrameRaidBrowserButton:Point("TOPLEFT", RaidFrame, 45, -33)
S:HandleButton(RaidFrameRaidBrowserButton)
S:HandleButton(RaidFrameReadyCheckButton)
-- S:HandleButton(RaidFrameRaidInfoButton) -- skinned in Friends.lua
for i = 1, MAX_RAID_GROUPS * 5 do
S:HandleButton(_G["RaidGroupButton"..i], true)
end
for i = 1, 8 do
for j = 1, 5 do
local slot = _G["RaidGroup"..i.."Slot"..j]
slot:StripTextures()
slot:SetTemplate("Transparent")
end
end
do
local prevButton
local button, icon, count, coords
for index = 1, 13 do
button = _G["RaidClassButton"..index]
icon = _G["RaidClassButton"..index.."IconTexture"]
count = _G["RaidClassButton"..index.."Count"]
button:StripTextures()
button:SetTemplate("Default")
button:Size(22)
button:ClearAllPoints()
if index == 1 then
button:Point("TOPLEFT", RaidFrame, "TOPRIGHT", -33, -44)
elseif index == 11 then
button:Point("TOP", prevButton, "BOTTOM", 0, -25)
else
button:Point("TOP", prevButton, "BOTTOM", 0, -5)
end
prevButton = button
icon:SetInside()
if index == 11 then
icon:SetTexture("Interface\\RaidFrame\\UI-RaidFrame-Pets")
icon:SetTexCoord(unpack(E.TexCoords))
elseif index == 12 then
icon:SetTexture("Interface\\RaidFrame\\UI-RaidFrame-MainTank")
icon:SetTexCoord(unpack(E.TexCoords))
elseif index == 13 then
icon:SetTexture("Interface\\RaidFrame\\UI-RaidFrame-MainAssist")
icon:SetTexCoord(unpack(E.TexCoords))
else
coords = CLASS_ICON_TCOORDS[CLASS_SORT_ORDER[index]]
icon:SetTexture("Interface\\WorldStateFrame\\Icons-Classes")
icon:SetTexCoord(coords[1] + 0.02, coords[2] - 0.02, coords[3] + 0.02, coords[4] - 0.02)
end
count:FontTemplate(nil, 12, "OUTLINE")
end
end
hooksecurefunc("RaidPulloutButton_OnDragStart", function(frame)
if InCombatLockdown() then return end
local scale = GetScreenHeightScale()
local cursorX, cursorY = GetCursorPosition()
frame:SetPoint("TOP", nil, "BOTTOMLEFT", cursorX * scale, cursorY * scale)
end)
local nSkinned = 0
hooksecurefunc("RaidPullout_GetFrame", function()
if nSkinned < NUM_RAID_PULLOUT_FRAMES then
nSkinned = NUM_RAID_PULLOUT_FRAMES
local pfButton = _G["RaidPullout"..nSkinned]
pfButton:CreateBackdrop("Transparent")
pfButton.backdrop:Point("TOPLEFT", 9, -17)
pfButton.backdrop:Point("BOTTOMRIGHT", -7, 7)
_G["RaidPullout"..nSkinned.."MenuBackdrop"]:SetBackdrop(nil)
end
end)
local MAX_RAID_AURAS = MAX_RAID_AURAS
local pfButtonSubFrames = {"HealthBar", "ManaBar", "Target", "TargetTarget"}
hooksecurefunc("RaidPullout_Update", function(pullOutFrame)
for _, pfButton in ipairs(pullOutFrame.buttons) do
if not pfButton.backdrop then
local pfBName = pfButton:GetName()
local pfTot = _G[pfBName.."TargetTargetFrame"]
for _, sName in ipairs(pfButtonSubFrames) do
local sBar = _G[pfBName..sName]
sBar:StripTextures()
sBar:SetStatusBarTexture(E.media.normTex)
end
pfButton:CreateBackdrop("Default")
pfButton.backdrop:Point("TOPLEFT", E.PixelMode and 0 or -1, -(E.PixelMode and 10 or 9))
pfButton.backdrop:Point("BOTTOMRIGHT", E.PixelMode and 0 or 1, E.PixelMode and -2 or 0)
pfTot:StripTextures()
pfTot:CreateBackdrop("Default")
pfTot.backdrop:Point("TOPLEFT", E.PixelMode and 10 or 9, -(E.PixelMode and 15 or 14))
pfTot.backdrop:Point("BOTTOMRIGHT", -(E.PixelMode and 10 or 9), E.PixelMode and 8 or 7)
for i = 1, MAX_RAID_AURAS do
S:HandleIcon(_G[pfBName.."Aura"..i.."Icon"])
_G[pfBName.."Aura"..i.."Border"]:Hide()
end
end
end
end)
end)
+90
View File
@@ -0,0 +1,90 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
local _G = _G
--WoW API / Variables
local GetNumSockets = GetNumSockets
local GetSocketTypes = GetSocketTypes
S:AddCallbackForAddon("Blizzard_ItemSocketingUI", "Skin_Blizzard_ItemSocketingUI", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.socket then return end
ITEM_SOCKETING_DESCRIPTION_MIN_WIDTH = 278
ItemSocketingFrame:StripTextures()
ItemSocketingFrame:CreateBackdrop("Transparent")
ItemSocketingFrame.backdrop:Point("TOPLEFT", 11, -12)
ItemSocketingFrame.backdrop:Point("BOTTOMRIGHT", -2, 31)
S:SetUIPanelWindowInfo(ItemSocketingFrame, "width")
S:SetBackdropHitRect(ItemSocketingFrame)
ItemSocketingFramePortrait:Kill()
S:HandleCloseButton(ItemSocketingCloseButton, ItemSocketingFrame.backdrop)
ItemSocketingScrollFrame:Height(269)
ItemSocketingScrollFrame:Point("TOPLEFT", 20, -77)
ItemSocketingScrollFrame:StripTextures()
ItemSocketingScrollFrame:CreateBackdrop("Transparent")
ItemSocketingScrollFrame.backdrop:Point("BOTTOMRIGHT", 3, -2)
S:HandleScrollBar(ItemSocketingScrollFrameScrollBar)
ItemSocketingScrollFrameScrollBar:Point("TOPLEFT", ItemSocketingScrollFrame, "TOPRIGHT", 6, -18)
ItemSocketingScrollFrameScrollBar:Point("BOTTOMLEFT", ItemSocketingScrollFrame, "BOTTOMRIGHT", 6, 17)
S:HandleButton(ItemSocketingSocketButton)
ItemSocketingSocketButton:Point("BOTTOMRIGHT", -10, 39)
for i = 1, MAX_NUM_SOCKETS do
local button = _G["ItemSocketingSocket"..i]
local bracket = _G["ItemSocketingSocket"..i.."BracketFrame"]
local bg = _G["ItemSocketingSocket"..i.."Background"]
local icon = _G["ItemSocketingSocket"..i.."IconTexture"]
local shine = _G["ItemSocketingSocket"..i.."Shine"]
button:StripTextures()
button:StyleButton(false)
button:SetTemplate("Default", true)
bracket:Kill()
bg:Kill()
icon:SetTexCoord(unpack(E.TexCoords))
icon:SetInside()
shine:Point("CENTER")
shine:Size(40)
end
local GEM_TYPE_INFO = GEM_TYPE_INFO
hooksecurefunc("ItemSocketingFrame_Update", function()
local numSockets = GetNumSockets()
for i = 1, numSockets do
local button = _G["ItemSocketingSocket"..i]
local color = GEM_TYPE_INFO[GetSocketTypes(i)]
button:SetBackdropColor(color.r, color.g, color.b, 0.15)
button:SetBackdropBorderColor(color.r, color.g, color.b)
end
if numSockets == 3 then
ItemSocketingSocket1:SetPoint("BOTTOM", -80, 70)
elseif numSockets == 2 then
ItemSocketingSocket1:SetPoint("BOTTOM", -36, 70)
else
ItemSocketingSocket1:SetPoint("BOTTOM", 0, 70)
end
end)
hooksecurefunc(ItemSocketingScrollFrame, "SetWidth", function(self, width)
if width == 269 then
self:Width(300)
elseif width == 297 then
self:Width(321)
end
end)
end)
+209
View File
@@ -0,0 +1,209 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
local _G = _G
local unpack = unpack
--WoW API / Variables
--local SpellBook_GetCurrentPage = SpellBook_GetCurrentPage
--local BOOKTYPE_SPELL = BOOKTYPE_SPELL
local MAX_SKILLLINE_TABS = MAX_SKILLLINE_TABS
S:AddCallback("Skin_Spellbook", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.spellbook then return end
-- AscensionSpellbook
AscensionSpellbookFrame:StripTextures(true)
AscensionSpellbookFrame:CreateBackdrop("Transparent")
--AscensionSpellbookFrame:Size -- for later on, the spells will need to be moved as well
AscensionSpellbookFrameNineSlice:StripTextures(true)
--AscensionSpellbookFrameNineSlice:CreateBackdrop("Transparent")
AscensionSpellbookFrameInset:StripTextures(true)
AscensionSpellbookFrameInset:CreateBackdrop("Transparent")
AscensionSpellbookFrame:RegisterForDrag("LeftButton")
AscensionSpellbookFrame:SetMovable(true)
AscensionSpellbookFrame:SetScript("OnDragStart", function(self) self:StartMoving() end)
AscensionSpellbookFrame:SetScript("OnDragStop", function(self) self:StopMovingOrSizing() end)
-- AscensionSpellbookFrame:SetScale(0.9)
for i = 1, 3 do
local tab = _G["AscensionSpellbookFrameTab"..i]
tab:Size(122, 32)
tab:GetRegions():SetPoint("CENTER", 0, 2)
S:HandleTab(tab)
end
AscensionSpellbookFrameTab1:Point("CENTER", AscensionSpellbookFrame, "BOTTOMLEFT", 72, 62)
AscensionSpellbookFrameTab2:Point("LEFT", AscensionSpellbookFrameTab1, "RIGHT", -15, 0)
AscensionSpellbookFrameTab3:Point("LEFT", AscensionSpellbookFrameTab2, "RIGHT", -15, 0)
S:HandleNextPrevButton(AscensionSpellbookFramePreviousPageButton, nil, nil, true)
S:HandleNextPrevButton(AscensionSpellbookFrameNextPageButton, nil, nil, true)
S:HandleCloseButton(AscensionSpellbookFrameCloseButton)
S:HandleCheckBox(AscensionSpellbookFrameContentSpellsShowAllSpellRanks)
for i = 1, SPELLS_PER_PAGE do
local button = _G["AscensionSpellbookFrameContentSpellsSpellButton"..i]
local autoCast = _G["AscensionSpellbookFrameContentSpellsSpellButton"..i.."AutoCastable"]
button:StripTextures()
button:CreateBackdrop("Default", true)
autoCast:SetTexture("Interface\\Buttons\\UI-AutoCastableOverlay")
autoCast:SetOutside(button, 16, 16)
_G["AscensionSpellbookFrameContentSpellsSpellButton"..i.."IconTexture"]:SetTexCoord(unpack(E.TexCoords))
E:RegisterCooldown(_G["AscensionSpellbookFrameContentSpellsSpellButton"..i.."Cooldown"])
end
hooksecurefunc("SpellButton_UpdateButton", function(self)
local name = self:GetName()
_G[name.."SpellName"]:SetTextColor(1, 0.80, 0.10)
_G[name.."SubSpellName"]:SetTextColor(1, 1, 1)
_G[name.."Highlight"]:SetTexture(1, 1, 1, 0.3)
end)
for i = 1, MAX_SKILLLINE_TABS do
local tab = _G["AscensionSpellbookFrameSideBarTab"..i]
tab:StripTextures()
tab:StyleButton(nil, true)
tab:SetTemplate("Default", true)
tab:GetNormalTexture():SetInside()
tab:GetNormalTexture():SetTexCoord(unpack(E.TexCoords))
end
AscensionSpellbookFrameSideBarTab1:Point("TOPLEFT", AscensionSpellbookFrame, "TOPRIGHT", 0, -40)
for i = 2, MAX_SKILLLINE_TABS do
local tab = _G["AscensionSpellbookFrameSideBarTab"..i]
local previous = _G["AscensionSpellbookFrameSideBarTab"..i - 1]
tab:SetPoint("TOPLEFT", previous, "BOTTOMLEFT", 0, -8)
end
SpellBookPageText:SetTextColor(1, 1, 1)
--Professions
AscensionSpellbookFrameContentProfessions:StripTextures(true)
for i = 1, 5 do
local professions = _G["AscensionSpellbookFrameContentProfessionsProfession"..i]
--_G["AscensionSpellbookFrameContentProfessionsProfession"..i.."MainSpellIconTexture"]:SetTexCoord(unpack(E.TexCoords))
--_G["AscensionSpellbookFrameContentProfessionsProfession"..i.."ExtraSpellIconTexture"]:SetTexCoord(unpack(E.TexCoords))
S:HandleStatusBar(_G["AscensionSpellbookFrameContentProfessionsProfession"..i.."StatusBar"])
professions.MissingText:FontTemplate(nil,12)
professions.MissingText:SetTextColor(1, 1, 1)
end
-- Pet Tab
AscensionSpellbookFrameContentPetSpells:StripTextures(true)
AscensionSpellbookFrameContentPetSpells:CreateBackdrop("Transparent")
for i = 1, 12 do
local button = _G["AscensionSpellbookFrameContentPetSpellsSpellButton"..i]
button:StripTextures()
button:CreateBackdrop("Default", true)
_G["AscensionSpellbookFrameContentPetSpellsSpellButton"..i.."IconTexture"]:SetTexCoord(unpack(E.TexCoords))
E:RegisterCooldown(_G["AscensionSpellbookFrameContentPetSpellsSpellButton"..i.."Cooldown"])
end
-- Blizz Spellbook (Leaving here for now)
SpellBookFrame:StripTextures(true)
SpellBookFrame:CreateBackdrop("Transparent")
SpellBookFrame.backdrop:Point("TOPLEFT", 11, -12)
SpellBookFrame.backdrop:Point("BOTTOMRIGHT", -32, 76)
S:SetUIPanelWindowInfo(SpellBookFrame, "width", nil, 32)
S:SetBackdropHitRect(SpellBookFrame)
--[[
SpellBookFrame:EnableMouseWheel(true)
SpellBookFrame:SetScript("OnMouseWheel", function(_, value)
--do nothing if not on an appropriate book type
if SpellBookFrame.bookType ~= BOOKTYPE_SPELL then
return
end
local currentPage, maxPages = SpellBook_GetCurrentPage()
if value > 0 then
if currentPage > 1 then
SpellBookPrevPageButton_OnClick()
end
else
if currentPage < maxPages then
SpellBookNextPageButton_OnClick()
end
end
end)
]]
for i = 1, 3 do
local tab = _G["SpellBookFrameTabButton"..i]
tab:Size(122, 32)
tab:GetNormalTexture():SetTexture(nil)
tab:GetDisabledTexture():SetTexture(nil)
tab:GetRegions():SetPoint("CENTER", 0, 2)
S:HandleTab(tab)
end
SpellBookFrameTabButton1:Point("CENTER", SpellBookFrame, "BOTTOMLEFT", 72, 62)
SpellBookFrameTabButton2:Point("LEFT", SpellBookFrameTabButton1, "RIGHT", -15, 0)
SpellBookFrameTabButton3:Point("LEFT", SpellBookFrameTabButton2, "RIGHT", -15, 0)
S:HandleNextPrevButton(SpellBookPrevPageButton, nil, nil, true)
S:HandleNextPrevButton(SpellBookNextPageButton, nil, nil, true)
S:HandleCloseButton(SpellBookCloseButton, SpellBookFrame.backdrop)
S:HandleCheckBox(ShowAllSpellRanksCheckBox)
for i = 1, SPELLS_PER_PAGE do
local button = _G["SpellButton"..i]
local autoCast = _G["SpellButton"..i.."AutoCastable"]
button:StripTextures()
autoCast:SetTexture("Interface\\Buttons\\UI-AutoCastableOverlay")
autoCast:SetOutside(button, 16, 16)
button:CreateBackdrop("Default", true)
_G["SpellButton"..i.."IconTexture"]:SetTexCoord(unpack(E.TexCoords))
E:RegisterCooldown(_G["SpellButton"..i.."Cooldown"])
end
hooksecurefunc("SpellButton_UpdateButton", function(self)
local name = self:GetName()
_G[name.."SpellName"]:SetTextColor(1, 0.80, 0.10)
_G[name.."SubSpellName"]:SetTextColor(1, 1, 1)
_G[name.."Highlight"]:SetTexture(1, 1, 1, 0.3)
end)
for i = 1, MAX_SKILLLINE_TABS do
local tab = _G["SpellBookSkillLineTab"..i]
tab:StripTextures()
tab:StyleButton(nil, true)
tab:SetTemplate("Default", true)
tab:GetNormalTexture():SetInside()
tab:GetNormalTexture():SetTexCoord(unpack(E.TexCoords))
end
SpellBookSkillLineTab1:Point("TOPLEFT", SpellBookFrame, "TOPRIGHT", -33, -65)
SpellBookPageText:SetTextColor(1, 1, 1)
end)
+83
View File
@@ -0,0 +1,83 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
local _G = _G
--WoW API / Variables
local GetPetHappiness = GetPetHappiness
local HasPetUI = HasPetUI
local UnitExists = UnitExists
S:AddCallback("Skin_Stable", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.stable then return end
PetStableFrame:StripTextures()
PetStableFramePortrait:Kill()
PetStableFrame:CreateBackdrop("Transparent")
PetStableFrame.backdrop:Point("TOPLEFT", 11, -12)
PetStableFrame.backdrop:Point("BOTTOMRIGHT", -32, 76)
S:SetUIPanelWindowInfo(PetStableFrame, "width")
S:SetBackdropHitRect(PetStableFrame)
S:HandleCloseButton(PetStableFrameCloseButton, PetStableFrame.backdrop)
S:HandleRotateButton(PetStableModelRotateLeftButton)
S:HandleRotateButton(PetStableModelRotateRightButton)
S:HandleButton(PetStablePurchaseButton)
S:HandleItemButton(PetStableCurrentPet, true)
PetStableCurrentPetIconTexture:SetDrawLayer("OVERLAY")
PetStableModel:Size(325, 224)
PetStableModel:Point("TOPLEFT", 19, -71)
PetStableModelRotateLeftButton:Point("TOPLEFT", PetStableModel, "TOPLEFT", 4, -4)
PetStableModelRotateRightButton:Point("TOPLEFT", PetStableModelRotateLeftButton, "TOPRIGHT", 3, 0)
-- texWidth, texHeight, cropWidth, cropHeight, offsetX, offsetY = 128, 64, 16, 16, 52, 4
PetStablePetInfo:GetRegions():SetTexCoord(0.03125, 0.15625, 0.0625, 0.3125)
PetStablePetInfo:SetFrameLevel(PetModelFrame:GetFrameLevel() + 2)
PetStablePetInfo:CreateBackdrop("Default")
PetStablePetInfo:Size(25)
PetStablePetInfo:Point("TOPLEFT", PetStableModelRotateLeftButton, "BOTTOMLEFT", 10, -4)
PetStableCurrentPet:Point("BOTTOMLEFT", 40, 150)
local function UpdateSlot(self, r, g, b)
if g ~= 1 then
self:SetTexture(.8, .2, .2, .3)
else
self:SetTexture(0, 0, 0, 0)
end
end
for i = 1, NUM_PET_STABLE_SLOTS do
S:HandleItemButton(_G["PetStableStabledPet"..i], true)
_G["PetStableStabledPet"..i.."IconTexture"]:SetDrawLayer("OVERLAY")
local bg = _G["PetStableStabledPet"..i.."Background"]
bg:SetDrawLayer("BORDER")
bg:SetInside()
hooksecurefunc(bg, "SetVertexColor", UpdateSlot)
end
hooksecurefunc("PetStable_Update", function()
local hasPetUI, isHunterPet = HasPetUI()
if hasPetUI and not isHunterPet and UnitExists("pet") then return end
local happiness = GetPetHappiness()
if happiness == 1 then
-- texWidth, texHeight, cropWidth, cropHeight, offsetX, offsetY = 128, 64, 16, 16, 52, 4
PetStablePetInfo:GetRegions():SetTexCoord(0.40625, 0.53125, 0.0625, 0.3125)
elseif happiness == 2 then
-- texWidth, texHeight, cropWidth, cropHeight, offsetX, offsetY = 128, 64, 16, 16, 28, 4
PetStablePetInfo:GetRegions():SetTexCoord(0.21875, 0.34375, 0.0625, 0.3125)
elseif happiness == 3 then
-- texWidth, texHeight, cropWidth, cropHeight, offsetX, offsetY = 128, 64, 16, 16, 52, 4
PetStablePetInfo:GetRegions():SetTexCoord(0.03125, 0.15625, 0.0625, 0.3125)
end
end)
end)
+59
View File
@@ -0,0 +1,59 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
--WoW API / Variables
S:AddCallback("Skin_Tabard", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.tabard then return end
TabardFrame:StripTextures()
TabardFrame:CreateBackdrop("Transparent")
TabardFrame.backdrop:Point("TOPLEFT", 11, -12)
TabardFrame.backdrop:Point("BOTTOMRIGHT", -32, 76)
S:SetUIPanelWindowInfo(TabardFrame, "width")
S:SetBackdropHitRect(TabardFrame)
S:HandleCloseButton(TabardFrameCloseButton, TabardFrame.backdrop)
TabardFramePortrait:Kill()
TabardModel:CreateBackdrop("Transparent")
TabardModel.backdrop:Point("TOPLEFT", -2, 5)
TabardModel.backdrop:Point("BOTTOMRIGHT", 20, -1)
S:HandleRotateButton(TabardCharacterModelRotateLeftButton)
S:HandleRotateButton(TabardCharacterModelRotateRightButton)
S:HandleButton(TabardFrameCancelButton)
S:HandleButton(TabardFrameAcceptButton)
TabardFrameCostFrame:StripTextures()
TabardFrameCustomizationFrame:StripTextures()
for i = 1, 5 do
_G["TabardFrameCustomization"..i]:StripTextures()
S:HandleNextPrevButton(_G["TabardFrameCustomization"..i.."LeftButton"])
S:HandleNextPrevButton(_G["TabardFrameCustomization"..i.."RightButton"])
end
TabardModel:Point("BOTTOM", -20, 114)
TabardCharacterModelRotateLeftButton:Point("BOTTOMLEFT", 2, 3)
TabardCharacterModelRotateRightButton:Point("TOPLEFT", TabardCharacterModelRotateLeftButton, "TOPRIGHT", 3, 0)
-- TabardCharacterModelRotateLeftButton.SetPoint = E.noop
-- TabardCharacterModelRotateRightButton.SetPoint = E.noop
TabardFrameEmblemTopRight:Point("TOPRIGHT", TabardFrameOuterFrameTopRight, "TOPRIGHT", 24, 6)
TabardFrameCustomization1:Point("TOPLEFT", TabardFrameCustomizationBorder, "TOPLEFT", 63, -63)
TabardFrameMoneyFrame:Point("BOTTOMRIGHT", TabardFrame, "BOTTOMLEFT", 183, 88)
TabardFrameCancelButton:Point("CENTER", TabardFrame, "TOPLEFT", 304, -417)
TabardFrameAcceptButton:Point("CENTER", TabardFrame, "TOPLEFT", 221, -417)
TabardModel:SetModelScale(1.25)
end)
+115
View File
@@ -0,0 +1,115 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
local _G = _G
local unpack = unpack
--WoW API / Variables
S:AddCallbackForAddon("Blizzard_TalentUI", "Skin_Blizzard_TalentUI", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.talent then return end
PlayerTalentFrame:StripTextures(true)
PlayerTalentFrame:CreateBackdrop("Transparent")
PlayerTalentFrame.backdrop:Point("TOPLEFT", 11, -12)
PlayerTalentFrame.backdrop:Point("BOTTOMRIGHT", -32, 76)
S:SetBackdropHitRect(PlayerTalentFrame)
do
local offset
local talentGroups = GetNumTalentGroups(false, false)
local petTalentGroups = GetNumTalentGroups(false, true)
if talentGroups + petTalentGroups > 1 then
S:SetUIPanelWindowInfo(PlayerTalentFrame, "width", nil, 32)
offset = true
else
S:SetUIPanelWindowInfo(PlayerTalentFrame, "width")
end
hooksecurefunc("PlayerTalentFrame_UpdateSpecs", function(_, numTalentGroups, _, numPetTalentGroups)
if offset and numTalentGroups + numPetTalentGroups <= 1 then
S:SetUIPanelWindowInfo(PlayerTalentFrame, "width")
offset = nil
elseif not offset and numTalentGroups + numPetTalentGroups > 1 then
S:SetUIPanelWindowInfo(PlayerTalentFrame, "width", nil, 32)
offset = true
end
end)
end
S:HandleCloseButton(PlayerTalentFrameCloseButton, PlayerTalentFrame.backdrop)
local function glyphFrameOnShow(self)
if GlyphFrame and GlyphFrame:IsShown() then
self:Hide()
end
end
PlayerTalentFrameStatusFrame:HookScript("OnShow", glyphFrameOnShow)
PlayerTalentFrameActivateButton:HookScript("OnShow", glyphFrameOnShow)
PlayerTalentFrameStatusFrame:StripTextures()
PlayerTalentFramePointsBar:StripTextures()
PlayerTalentFramePreviewBar:StripTextures()
S:HandleButton(PlayerTalentFrameActivateButton)
S:HandleButton(PlayerTalentFrameResetButton)
S:HandleButton(PlayerTalentFrameLearnButton)
PlayerTalentFramePreviewBarFiller:StripTextures()
PlayerTalentFrameScrollFrame:StripTextures()
PlayerTalentFrameScrollFrame:CreateBackdrop("Default")
S:HandleScrollBar(PlayerTalentFrameScrollFrameScrollBar)
for i = 1, MAX_NUM_TALENTS do
local talent = _G["PlayerTalentFrameTalent"..i]
local icon = _G["PlayerTalentFrameTalent"..i.."IconTexture"]
local rank = _G["PlayerTalentFrameTalent"..i.."Rank"]
if talent then
talent:StripTextures()
talent:SetTemplate("Default")
talent:StyleButton()
icon:SetInside()
icon:SetTexCoord(unpack(E.TexCoords))
icon:SetDrawLayer("ARTWORK")
rank:SetFont(E.LSM:Fetch("font", E.db.general.font), 12, "OUTLINE")
end
end
for i = 1, 4 do
S:HandleTab(_G["PlayerTalentFrameTab"..i])
end
for i = 1, MAX_TALENT_TABS do
local tab = _G["PlayerSpecTab"..i]
tab:GetRegions():Hide()
tab:SetTemplate("Default")
tab:StyleButton(nil, true)
tab:GetNormalTexture():SetInside()
tab:GetNormalTexture():SetTexCoord(unpack(E.TexCoords))
end
PlayerTalentFrameStatusFrame:Point("TOPLEFT", 57, -40)
PlayerTalentFrameActivateButton:Point("TOP", 0, -40)
PlayerTalentFrameScrollFrame:Width(302)
PlayerTalentFrameScrollFrame:Point("TOPRIGHT", PlayerTalentFrame, "TOPRIGHT", -62, -77)
PlayerTalentFrameScrollFrame:Point("BOTTOM", PlayerTalentFramePointsBar, "TOP", 0, 0)
PlayerTalentFrameScrollFrameScrollBar:Point("TOPLEFT", PlayerTalentFrameScrollFrame, "TOPRIGHT", 4, -18)
PlayerTalentFrameScrollFrameScrollBar:Point("BOTTOMLEFT", PlayerTalentFrameScrollFrame, "BOTTOMRIGHT", 4, 18)
PlayerTalentFrameResetButton:Point("RIGHT", -4, 1)
PlayerTalentFrameLearnButton:Point("RIGHT", PlayerTalentFrameResetButton, "LEFT", -3, 0)
PlayerTalentFrameTab1:Point("BOTTOMLEFT", 11, 46)
end)
+36
View File
@@ -0,0 +1,36 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
--WoW API / Variables
S:AddCallback("Skin_Taxi", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.taxi then return end
TaxiFrame:StripTextures()
TaxiFrame:CreateBackdrop("Transparent")
TaxiFrame.backdrop:Point("TOPLEFT", 11, -12)
TaxiFrame.backdrop:Point("BOTTOMRIGHT", -32, 76)
S:SetUIPanelWindowInfo(TaxiFrame, "width")
S:SetBackdropHitRect(TaxiFrame)
TaxiPortrait:Kill()
S:HandleCloseButton(TaxiCloseButton, TaxiFrame.backdrop)
TaxiRouteMap:CreateBackdrop("Default")
local TAXI_MAP_WIDTH = 331 -- orig 316
local TAXI_MAP_HEIGHT = 369 -- orig 352
_G.TAXI_MAP_WIDTH = TAXI_MAP_WIDTH
_G.TAXI_MAP_HEIGHT = TAXI_MAP_HEIGHT
TaxiMap:Size(TAXI_MAP_WIDTH, TAXI_MAP_HEIGHT)
TaxiRouteMap:Size(TAXI_MAP_WIDTH, TAXI_MAP_HEIGHT)
TaxiMap:Point("TOP", -11, -48)
TaxiRouteMap:Point("TOP", -11, -48)
end)
@@ -0,0 +1,100 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
--WoW API / Variables
S:AddCallbackForAddon("Blizzard_TimeManager", "Skin_Blizzard_TimeManager", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.timemanager then return end
TimeManagerFrame:StripTextures()
TimeManagerFrame:SetTemplate("Transparent")
E:CreateMover(TimeManagerFrame, "TimeManagerFrameMover", TIMEMANAGER_TITLE)
TimeManagerFrame.mover:SetFrameLevel(TimeManagerFrame:GetFrameLevel() + 4)
S:HandleCloseButton(TimeManagerCloseButton, TimeManagerFrame)
TimeManagerStopwatchFrameBackground:SetTexture(nil)
TimeManagerStopwatchCheck:SetTemplate("Default")
TimeManagerStopwatchCheck:StyleButton(nil, true)
TimeManagerStopwatchCheck:GetNormalTexture():SetInside()
TimeManagerStopwatchCheck:GetNormalTexture():SetTexCoord(unpack(E.TexCoords))
S:HandleDropDownBox(TimeManagerAlarmHourDropDown, 80)
S:HandleDropDownBox(TimeManagerAlarmMinuteDropDown, 80)
S:HandleDropDownBox(TimeManagerAlarmAMPMDropDown, 80)
S:HandleEditBox(TimeManagerAlarmMessageEditBox)
TimeManagerAlarmEnabledButton:SetNormalTexture(nil)
TimeManagerAlarmEnabledButton.SetNormalTexture = E.noop
TimeManagerAlarmEnabledButton:SetPushedTexture(nil)
TimeManagerAlarmEnabledButton.SetPushedTexture = E.noop
S:HandleButton(TimeManagerAlarmEnabledButton)
S:HandleCheckBox(TimeManagerMilitaryTimeCheck)
S:HandleCheckBox(TimeManagerLocalTimeCheck)
TimeManagerFrame:Size(186, 221)
select(7, TimeManagerFrame:GetRegions()):Point("TOP", 0, -5)
TimeManagerFrameTicker:Point("CENTER", TimeManagerGlobe, -4, 12)
TimeManagerStopwatchFrame:Point("TOPRIGHT", 9, -13)
TimeManagerAlarmTimeFrame:Point("TOPLEFT", 8, -56)
TimeManagerAlarmHourDropDown:Point("TOPLEFT", TimeManagerAlarmTimeLabel, "BOTTOMLEFT", -20, -3)
TimeManagerAlarmMinuteDropDown:Point("LEFT", TimeManagerAlarmHourDropDown, "RIGHT", -21, 0)
TimeManagerAlarmAMPMDropDown:Point("LEFT", TimeManagerAlarmMinuteDropDown, "RIGHT", -21, 0)
TimeManagerAlarmMessageEditBox:Width(168)
TimeManagerAlarmMessageEditBox:Point("TOPLEFT", TimeManagerAlarmMessageLabel, "BOTTOMLEFT", 1, -7)
TimeManagerAlarmEnabledButton:Size(170, 22)
TimeManagerAlarmEnabledButton:Point("LEFT", 8, -50)
TimeManagerMilitaryTimeCheck:Point("TOPLEFT", 158, -175)
-- StopwatchFrame
StopwatchFrame:CreateBackdrop("Transparent")
StopwatchFrame.backdrop:Point("TOPLEFT", 0, -20)
StopwatchFrame.backdrop:Point("BOTTOMRIGHT", 0, 0)
StopwatchFrame:StripTextures()
StopwatchTabFrame:StripTextures()
S:HandleCloseButton(StopwatchCloseButton)
S:HandleButton(StopwatchResetButton)
StopwatchTicker:Point("BOTTOMRIGHT", -49, 0)
StopwatchResetButton:Size(16)
StopwatchResetButton:Point("BOTTOMRIGHT", -4, 4)
StopwatchResetButton:SetNormalTexture("Interface\\AddOns\\ElvUI\\media\\textures\\reset")
StopwatchPlayPauseButton:Size(12)
StopwatchPlayPauseButton:Point("RIGHT", StopwatchResetButton, "LEFT", -5, 0)
StopwatchPlayPauseButton:CreateBackdrop("Default", true)
StopwatchPlayPauseButton.backdrop:SetOutside(StopwatchPlayPauseButton, 2, 2)
StopwatchPlayPauseButton:SetNormalTexture("Interface\\AddOns\\ElvUI\\media\\textures\\play")
StopwatchPlayPauseButton:SetHighlightTexture("")
StopwatchPlayPauseButton:HookScript("OnEnter", S.SetModifiedBackdrop)
StopwatchPlayPauseButton:HookScript("OnLeave", S.SetOriginalBackdrop)
local function SetPlayTexture()
StopwatchPlayPauseButton:SetNormalTexture("Interface\\AddOns\\ElvUI\\media\\textures\\play")
end
local function SetPauseTexture()
StopwatchPlayPauseButton:SetNormalTexture("Interface\\AddOns\\ElvUI\\media\\textures\\pause")
end
hooksecurefunc("Stopwatch_Play", SetPauseTexture)
hooksecurefunc("Stopwatch_Pause", SetPlayTexture)
hooksecurefunc("Stopwatch_Clear", SetPlayTexture)
end)
+45
View File
@@ -0,0 +1,45 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
local TT = E:GetModule("Tooltip")
--Lua functions
--WoW API / Variables
S:AddCallback("Skin_Tooltip", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.tooltip then return end
S:HandleCloseButton(ItemRefCloseButton, ItemRefTooltip)
local tooltips = {
GameTooltip,
ItemRefTooltip,
ItemRefShoppingTooltip1,
ItemRefShoppingTooltip2,
ItemRefShoppingTooltip3,
AutoCompleteBox,
FriendsTooltip,
ConsolidatedBuffsTooltip,
ShoppingTooltip1,
ShoppingTooltip2,
ShoppingTooltip3,
WorldMapTooltip,
WorldMapCompareTooltip1,
WorldMapCompareTooltip2,
WorldMapCompareTooltip3
}
for _, tt in ipairs(tooltips) do
TT:SecureHookScript(tt, "OnShow", "SetStyle")
end
GameTooltipStatusBar:SetStatusBarTexture(E.media.normTex)
E:RegisterStatusBar(GameTooltipStatusBar)
GameTooltipStatusBar:CreateBackdrop("Transparent")
GameTooltipStatusBar:ClearAllPoints()
GameTooltipStatusBar:Point("TOPLEFT", GameTooltip, "BOTTOMLEFT", E.Border, -(E.Spacing * 3))
GameTooltipStatusBar:Point("TOPRIGHT", GameTooltip, "BOTTOMRIGHT", -E.Border, -(E.Spacing * 3))
TT:SecureHook("GameTooltip_ShowStatusBar", "GameTooltip_ShowStatusBar")
TT:SecureHookScript(GameTooltip, "OnSizeChanged", "CheckBackdropColor")
TT:SecureHookScript(GameTooltip, "OnUpdate", "CheckBackdropColor")
end)
+146
View File
@@ -0,0 +1,146 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
local _G = _G
local unpack, select = unpack, select
--WoW API / Variables
local GetItemInfo = GetItemInfo
local GetItemQualityColor = GetItemQualityColor
local GetTradePlayerItemLink = GetTradePlayerItemLink
local GetTradeTargetItemLink = GetTradeTargetItemLink
S:AddCallback("Skin_Trade", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.trade then return end
TradeFrame:StripTextures(true)
TradeFrame:CreateBackdrop("Transparent")
TradeFrame.backdrop:Point("TOPLEFT", 11, -12)
TradeFrame.backdrop:Point("BOTTOMRIGHT", -21, 49)
S:SetUIPanelWindowInfo(TradeFrame, "width")
S:SetBackdropHitRect(TradeFrame)
S:HandleCloseButton(TradeFrameCloseButton, TradeFrame.backdrop)
S:HandleButton(TradeFrameTradeButton)
S:HandleButton(TradeFrameCancelButton)
S:HandleEditBox(TradePlayerInputMoneyFrameGold)
S:HandleEditBox(TradePlayerInputMoneyFrameSilver)
S:HandleEditBox(TradePlayerInputMoneyFrameCopper)
for i = 1, MAX_TRADE_ITEMS do
local player = _G["TradePlayerItem"..i]
local recipient = _G["TradeRecipientItem"..i]
local playerButton = _G["TradePlayerItem"..i.."ItemButton"]
local playerButtonIcon = _G["TradePlayerItem"..i.."ItemButtonIconTexture"]
local recipientButton = _G["TradeRecipientItem"..i.."ItemButton"]
local recipientButtonIcon = _G["TradeRecipientItem"..i.."ItemButtonIconTexture"]
player:StripTextures()
recipient:StripTextures()
playerButton:StripTextures()
playerButton:StyleButton()
playerButton:SetTemplate("Default", true)
playerButtonIcon:SetInside()
playerButtonIcon:SetTexCoord(unpack(E.TexCoords))
recipientButton:StripTextures()
recipientButton:StyleButton()
recipientButton:SetTemplate("Default", true)
recipientButtonIcon:SetInside()
recipientButtonIcon:SetTexCoord(unpack(E.TexCoords))
playerButton.bg = CreateFrame("Frame", nil, playerButton)
playerButton.bg:SetTemplate("Default")
playerButton.bg:Point("TOPLEFT", playerButton, "TOPRIGHT", 4, 0)
playerButton.bg:Point("BOTTOMRIGHT", _G["TradePlayerItem"..i.."NameFrame"], "BOTTOMRIGHT", 0, 14)
playerButton.bg:SetFrameLevel(playerButton:GetFrameLevel() - 3)
recipientButton.bg = CreateFrame("Frame", nil, recipientButton)
recipientButton.bg:SetTemplate("Default")
recipientButton.bg:Point("TOPLEFT", recipientButton, "TOPRIGHT", 4, 0)
recipientButton.bg:Point("BOTTOMRIGHT", _G["TradeRecipientItem"..i.."NameFrame"], "BOTTOMRIGHT", 0, 14)
recipientButton.bg:SetFrameLevel(recipientButton:GetFrameLevel() - 3)
end
TradeHighlightPlayerTop:SetTexture(0, 1, 0, 0.2)
TradeHighlightPlayerBottom:SetTexture(0, 1, 0, 0.2)
TradeHighlightPlayerMiddle:SetTexture(0, 1, 0, 0.2)
TradeHighlightPlayerEnchantTop:SetTexture(0, 1, 0, 0.2)
TradeHighlightPlayerEnchantBottom:SetTexture(0, 1, 0, 0.2)
TradeHighlightPlayerEnchantMiddle:SetTexture(0, 1, 0, 0.2)
TradeHighlightRecipientTop:SetTexture(0, 1, 0, 0.2)
TradeHighlightRecipientBottom:SetTexture(0, 1, 0, 0.2)
TradeHighlightRecipientMiddle:SetTexture(0, 1, 0, 0.2)
TradeHighlightRecipientEnchantTop:SetTexture(0, 1, 0, 0.2)
TradeHighlightRecipientEnchantBottom:SetTexture(0, 1, 0, 0.2)
TradeHighlightRecipientEnchantMiddle:SetTexture(0, 1, 0, 0.2)
TradeHighlightPlayer:SetFrameStrata("HIGH")
TradeHighlightRecipient:SetFrameStrata("HIGH")
TradeHighlightPlayerEnchant:SetFrameStrata("HIGH")
TradeHighlightRecipientEnchant:SetFrameStrata("HIGH")
hooksecurefunc("TradeFrame_UpdatePlayerItem", function(id)
local tradeItemButton = _G["TradePlayerItem"..id.."ItemButton"]
local link = GetTradePlayerItemLink(id)
if link then
local tradeItemName = _G["TradePlayerItem"..id.."Name"]
local quality = select(3, GetItemInfo(link))
tradeItemName:SetTextColor(GetItemQualityColor(quality))
if quality then
tradeItemButton:SetBackdropBorderColor(GetItemQualityColor(quality))
else
tradeItemButton:SetBackdropBorderColor(unpack(E.media.bordercolor))
end
else
tradeItemButton:SetBackdropBorderColor(unpack(E.media.bordercolor))
end
end)
hooksecurefunc("TradeFrame_UpdateTargetItem", function(id)
local tradeItemButton = _G["TradeRecipientItem"..id.."ItemButton"]
local link = GetTradeTargetItemLink(id)
if link then
local tradeItemName = _G["TradeRecipientItem"..id.."Name"]
local quality = select(3, GetItemInfo(link))
tradeItemName:SetTextColor(GetItemQualityColor(quality))
if quality then
tradeItemButton:SetBackdropBorderColor(GetItemQualityColor(quality))
else
tradeItemButton:SetBackdropBorderColor(unpack(E.media.bordercolor))
end
else
tradeItemButton:SetBackdropBorderColor(unpack(E.media.bordercolor))
end
end)
TradePlayerInputMoneyFrame:Point("TOPLEFT", 26, -53)
TradeRecipientMoneyFrame:Point("TOPRIGHT", -40, -58)
TradePlayerItem1:Point("TOPLEFT", 23, -94)
TradeRecipientItem1:Point("TOPLEFT", 196, -94)
TradeHighlightPlayer:Height(263)
TradeHighlightRecipient:Height(263)
TradeHighlightPlayer:Point("TOPLEFT", 20, -91)
TradeHighlightRecipient:Point("TOPLEFT", 193, -91)
TradeFramePlayerEnchantText:Point("TOPLEFT", 26, -364)
TradeFrameTradeButton:Point("BOTTOMRIGHT", -113, 61)
end)
+264
View File
@@ -0,0 +1,264 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
local _G = _G
local unpack, select = unpack, select
local find = string.find
--WoW API / Variables
local CreateFrame = CreateFrame
local GetItemInfo = GetItemInfo
local GetItemQualityColor = GetItemQualityColor
local GetTradeSkillItemLink = GetTradeSkillItemLink
local GetTradeSkillReagentInfo = GetTradeSkillReagentInfo
local GetTradeSkillReagentItemLink = GetTradeSkillReagentItemLink
local hooksecurefunc = hooksecurefunc
S:AddCallbackForAddon("Blizzard_TradeSkillUI", "Skin_Blizzard_TradeSkillUI", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.tradeskill then return end
local SKILLS_DISPLAYED = 21
TRADE_SKILLS_DISPLAYED = SKILLS_DISPLAYED
for i = 9, SKILLS_DISPLAYED do
CreateFrame("Button", "TradeSkillSkill"..i, TradeSkillFrame, "TradeSkillSkillButtonTemplate"):Point("TOPLEFT", _G["TradeSkillSkill"..i - 1], "BOTTOMLEFT")
end
TradeSkillFrame:StripTextures(true)
TradeSkillFrame:Width(713)
TradeSkillFrame:CreateBackdrop("Transparent")
TradeSkillFrame.backdrop:Point("TOPLEFT", 11, -12)
TradeSkillFrame.backdrop:Point("BOTTOMRIGHT", -32, 76)
S:SetUIPanelWindowInfo(TradeSkillFrame, "width")
S:SetBackdropHitRect(TradeSkillFrame)
S:HandleCloseButton(TradeSkillFrameCloseButton, TradeSkillFrame.backdrop)
TradeSkillRankFrame:StripTextures()
TradeSkillRankFrame:CreateBackdrop()
TradeSkillRankFrame:SetStatusBarTexture(E.media.normTex)
TradeSkillRankFrame:SetStatusBarColor(0.22, 0.39, 0.84)
TradeSkillRankFrame.SetStatusBarColor = E.noop
E:RegisterStatusBar(TradeSkillRankFrame)
S:HandleCheckBox(TradeSkillFrameAvailableFilterCheckButton)
S:HandleEditBox(TradeSkillFrameEditBox)
S:HandleDropDownBox(TradeSkillInvSlotDropDown, 140)
S:HandleDropDownBox(TradeSkillSubClassDropDown, 140)
TradeSkillExpandButtonFrame:StripTextures()
TradeSkillCollapseAllButton:SetNormalTexture(E.Media.Textures.Plus)
TradeSkillCollapseAllButton.SetNormalTexture = E.noop
TradeSkillCollapseAllButton:GetNormalTexture():Point("LEFT", 3, 2)
TradeSkillCollapseAllButton:GetNormalTexture():Size(16)
TradeSkillCollapseAllButton:SetHighlightTexture("")
TradeSkillCollapseAllButton.SetHighlightTexture = E.noop
TradeSkillCollapseAllButton:SetDisabledTexture(E.Media.Textures.Plus)
TradeSkillCollapseAllButton.SetDisabledTexture = E.noop
TradeSkillCollapseAllButton:GetDisabledTexture():Point("LEFT", 3, 2)
TradeSkillCollapseAllButton:GetDisabledTexture():Size(16)
TradeSkillCollapseAllButton:GetDisabledTexture():SetDesaturated(true)
for i = 1, SKILLS_DISPLAYED do
local skillButton = _G["TradeSkillSkill"..i]
local skillButtonHighlight = _G["TradeSkillSkill"..i.."Highlight"]
skillButton:SetNormalTexture(E.Media.Textures.Plus)
skillButton.SetNormalTexture = E.noop
skillButton:GetNormalTexture():Size(13)
skillButton:GetNormalTexture():Point("LEFT", 2, 1)
skillButtonHighlight:SetTexture("")
skillButtonHighlight.SetTexture = E.noop
hooksecurefunc(skillButton, "SetNormalTexture", function(self, texture)
if find(texture, "MinusButton") then
self:GetNormalTexture():SetTexture(E.Media.Textures.Minus)
elseif find(texture, "PlusButton") then
self:GetNormalTexture():SetTexture(E.Media.Textures.Plus)
else
self:GetNormalTexture():SetTexture("")
end
end)
end
TradeSkillListScrollFrame:StripTextures()
S:HandleScrollBar(TradeSkillListScrollFrameScrollBar)
TradeSkillDetailScrollFrame:StripTextures()
TradeSkillDetailScrollFrame.scrollBarHideable = nil
TradeSkillDetailScrollChildFrame:StripTextures()
S:HandleScrollBar(TradeSkillDetailScrollFrameScrollBar)
TradeSkillSkillIcon:StyleButton(nil, true)
TradeSkillSkillIcon:SetTemplate("Default")
TradeSkillRequirementLabel:SetTextColor(1, 0.80, 0.10)
for i = 1, MAX_TRADE_SKILL_REAGENTS do
local reagent = _G["TradeSkillReagent"..i]
local icon = _G["TradeSkillReagent"..i.."IconTexture"]
local count = _G["TradeSkillReagent"..i.."Count"]
local name = _G["TradeSkillReagent"..i.."Name"]
local nameFrame = _G["TradeSkillReagent"..i.."NameFrame"]
reagent:SetTemplate("Default")
reagent:StyleButton(nil, true)
reagent:Size(143, 40)
icon.backdrop = CreateFrame("Frame", nil, reagent)
icon.backdrop:SetTemplate()
icon.backdrop:Point("TOPLEFT", icon, -1, 1)
icon.backdrop:Point("BOTTOMRIGHT", icon, 1, -1)
icon:SetTexCoord(unpack(E.TexCoords))
icon:SetDrawLayer("OVERLAY")
icon:Size(E.PixelMode and 38 or 32)
icon:Point("TOPLEFT", E.PixelMode and 1 or 4, -(E.PixelMode and 1 or 4))
icon:SetParent(icon.backdrop)
count:SetParent(icon.backdrop)
count:SetDrawLayer("OVERLAY")
name:Point("LEFT", nameFrame, "LEFT", 20, 0)
nameFrame:Kill()
end
TradeSkillHighlight:SetTexture(E.Media.Textures.Highlight)
TradeSkillHighlight:SetAlpha(0.35)
S:HandleNextPrevButton(TradeSkillDecrementButton)
S:HandleEditBox(TradeSkillInputBox)
S:HandleNextPrevButton(TradeSkillIncrementButton)
S:HandleButton(TradeSkillCancelButton)
S:HandleButton(TradeSkillCreateButton)
S:HandleButton(TradeSkillCreateAllButton)
TradeSkillRankFrame:Size(522, 17)
TradeSkillRankFrame:Point("TOPLEFT", 85, -36)
TradeSkillRankFrameSkillRank:Point("TOP", TradeSkillFrameTitleText, 0, -23)
TradeSkillFrameAvailableFilterCheckButton:Point("TOPLEFT", 80, -59)
TradeSkillFrameEditBox:Height(18)
TradeSkillFrameEditBox:Point("TOPRIGHT", TradeSkillRankFrame, "BOTTOMRIGHT", -263, -9)
TradeSkillInvSlotDropDown:Point("TOPRIGHT", -32, -58)
TradeSkillSubClassDropDown:Point("RIGHT", TradeSkillInvSlotDropDown, "LEFT", 21, 0)
TradeSkillExpandButtonFrame:Point("TOPLEFT", 15, -68)
TradeSkillSkill1:Point("TOPLEFT", 25, -90)
TradeSkillListScrollFrame:Size(305, 340)
TradeSkillListScrollFrame:Point("TOPRIGHT", -389, -88)
TradeSkillListScrollFrame.Hide = E.noop
TradeSkillListScrollFrame:Show()
TradeSkillListScrollFrameScrollBar:Point("TOPLEFT", TradeSkillListScrollFrame, "TOPRIGHT", 3, -19)
TradeSkillListScrollFrameScrollBar:Point("BOTTOMLEFT", TradeSkillListScrollFrame, "BOTTOMRIGHT", 3, 19)
TradeSkillDetailScrollFrame:Size(304, 311)
TradeSkillDetailScrollFrame:Point("TOPLEFT", 348, -88)
TradeSkillDetailScrollChildFrame:Size(304, 310)
TradeSkillDetailScrollFrameScrollBar:Point("TOPLEFT", TradeSkillDetailScrollFrame, "TOPRIGHT", 3, -19)
TradeSkillDetailScrollFrameScrollBar:Point("BOTTOMLEFT", TradeSkillDetailScrollFrame, "BOTTOMRIGHT", 3, 19)
TradeSkillSkillIcon:Size(47)
TradeSkillSkillIcon:Point("TOPLEFT", 10, -9)
TradeSkillSkillName:Point("TOPLEFT", 65, -9)
TradeSkillDescription:Point("TOPLEFT", 8, -64)
TradeSkillReagent1:Point("TOPLEFT", TradeSkillReagentLabel, "BOTTOMLEFT", 1, -3)
TradeSkillReagent2:Point("LEFT", TradeSkillReagent1, "RIGHT", 3, 0)
TradeSkillReagent3:Point("TOPLEFT", TradeSkillReagent1, "BOTTOMLEFT", 0, -3)
TradeSkillReagent4:Point("LEFT", TradeSkillReagent3, "RIGHT", 3, 0)
TradeSkillReagent5:Point("TOPLEFT", TradeSkillReagent3, "BOTTOMLEFT", 0, -3)
TradeSkillReagent6:Point("LEFT", TradeSkillReagent5, "RIGHT", 3, 0)
TradeSkillReagent7:Point("TOPLEFT", TradeSkillReagent5, "BOTTOMLEFT", 0, -3)
TradeSkillReagent8:Point("LEFT", TradeSkillReagent7, "RIGHT", 3, 0)
TradeSkillInputBox:Height(16)
TradeSkillCancelButton:Point("CENTER", TradeSkillFrame, "TOPLEFT", 633, -417)
TradeSkillCreateButton:Point("CENTER", TradeSkillFrame, "TOPLEFT", 550, -417)
TradeSkillCreateAllButton:Point("RIGHT", TradeSkillCreateButton, "LEFT", -82, 0)
TradeSkillIncrementButton:Point("RIGHT", TradeSkillCreateButton, "LEFT", -4, 0)
TradeSkillDecrementButton:Point("LEFT", TradeSkillCreateAllButton, "RIGHT", 4, 0)
hooksecurefunc(TradeSkillCollapseAllButton, "SetNormalTexture", function(self, texture)
if find(texture, "MinusButton") then
self:GetNormalTexture():SetTexture(E.Media.Textures.Minus)
else
self:GetNormalTexture():SetTexture(E.Media.Textures.Plus)
end
end)
hooksecurefunc("TradeSkillFrame_SetSelection", function(id)
if TradeSkillSkillIcon:GetNormalTexture() then
TradeSkillSkillIcon:SetAlpha(1)
TradeSkillSkillIcon:GetNormalTexture():SetTexCoord(unpack(E.TexCoords))
TradeSkillSkillIcon:GetNormalTexture():SetInside()
else
TradeSkillSkillIcon:SetAlpha(0)
end
local skillLink = GetTradeSkillItemLink(id)
local r, g, b
if skillLink then
local quality = select(3, GetItemInfo(skillLink))
if quality then
r, g, b = GetItemQualityColor(quality)
TradeSkillSkillIcon:SetBackdropBorderColor(r, g, b)
TradeSkillSkillName:SetTextColor(r, g, b)
else
TradeSkillSkillIcon:SetBackdropBorderColor(unpack(E.media.bordercolor))
TradeSkillSkillName:SetTextColor(1, 1, 1)
end
end
for i = 1, GetTradeSkillNumReagents(id) do
local _, _, reagentCount, playerReagentCount = GetTradeSkillReagentInfo(id, i)
local reagentLink = GetTradeSkillReagentItemLink(id, i)
if reagentLink then
local reagent = _G["TradeSkillReagent"..i]
local icon = _G["TradeSkillReagent"..i.."IconTexture"]
local quality = select(3, GetItemInfo(reagentLink))
if quality then
local name = _G["TradeSkillReagent"..i.."Name"]
r, g, b = GetItemQualityColor(quality)
icon.backdrop:SetBackdropBorderColor(r, g, b)
reagent:SetBackdropBorderColor(r, g, b)
if playerReagentCount < reagentCount then
name:SetTextColor(0.5, 0.5, 0.5)
else
name:SetTextColor(r, g, b)
end
else
reagent:SetBackdropBorderColor(unpack(E.media.bordercolor))
icon.backdrop:SetBackdropBorderColor(unpack(E.media.bordercolor))
end
end
end
end)
end)
+136
View File
@@ -0,0 +1,136 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
local _G = _G
local unpack = unpack
local find = string.find
--WoW API / Variables
local hooksecurefunc = hooksecurefunc
S:AddCallbackForAddon("Blizzard_TrainerUI", "Skin_Blizzard_TrainerUI", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.trainer then return end
ClassTrainerFrame:StripTextures(true)
ClassTrainerFrame:CreateBackdrop("Transparent")
ClassTrainerFrame.backdrop:Point("TOPLEFT", 11, -12)
ClassTrainerFrame.backdrop:Point("BOTTOMRIGHT", -32, 76)
S:SetUIPanelWindowInfo(ClassTrainerFrame, "width")
S:SetBackdropHitRect(ClassTrainerFrame)
S:HandleCloseButton(ClassTrainerFrameCloseButton, ClassTrainerFrame.backdrop)
ClassTrainerListScrollFrame:StripTextures()
ClassTrainerDetailScrollFrame:StripTextures()
ClassTrainerDetailScrollFrame.scrollBarHideable = nil
ClassTrainerExpandButtonFrame:StripTextures()
ClassTrainerDetailScrollChildFrame:StripTextures()
S:HandleDropDownBox(ClassTrainerFrameFilterDropDown)
S:HandleScrollBar(ClassTrainerListScrollFrameScrollBar)
S:HandleScrollBar(ClassTrainerDetailScrollFrameScrollBar)
ClassTrainerSkillHighlight:SetTexture(E.Media.Textures.Highlight)
ClassTrainerSkillHighlight:SetAlpha(0.35)
ClassTrainerSkillIcon:StripTextures()
ClassTrainerSkillIcon:StyleButton(nil, true)
ClassTrainerCollapseAllButton:SetNormalTexture(E.Media.Textures.Plus)
ClassTrainerCollapseAllButton.SetNormalTexture = E.noop
ClassTrainerCollapseAllButton:GetNormalTexture():Point("LEFT", 3, 2)
ClassTrainerCollapseAllButton:GetNormalTexture():Size(16)
ClassTrainerCollapseAllButton:SetHighlightTexture("")
ClassTrainerCollapseAllButton.SetHighlightTexture = E.noop
ClassTrainerCollapseAllButton:SetDisabledTexture(E.Media.Textures.Plus)
ClassTrainerCollapseAllButton.SetDisabledTexture = E.noop
ClassTrainerCollapseAllButton:GetDisabledTexture():Point("LEFT", 3, 2)
ClassTrainerCollapseAllButton:GetDisabledTexture():Size(16)
ClassTrainerCollapseAllButton:GetDisabledTexture():SetDesaturated(true)
for i = 1, CLASS_TRAINER_SKILLS_DISPLAYED do
local skillButton = _G["ClassTrainerSkill"..i]
local highlight = _G["ClassTrainerSkill"..i.."Highlight"]
skillButton:SetNormalTexture(E.Media.Textures.Plus)
skillButton.SetNormalTexture = E.noop
skillButton:GetNormalTexture():Size(16)
highlight:SetTexture("")
highlight.SetTexture = E.noop
hooksecurefunc(skillButton, "SetNormalTexture", function(self, texture)
if find(texture, "MinusButton") then
self:GetNormalTexture():SetTexture(E.Media.Textures.Minus)
elseif find(texture, "PlusButton") then
self:GetNormalTexture():SetTexture(E.Media.Textures.Plus)
else
self:GetNormalTexture():SetTexture("")
end
end)
end
S:HandleButton(ClassTrainerCancelButton)
S:HandleButton(ClassTrainerTrainButton)
ClassTrainerGreetingText:Width(317)
ClassTrainerGreetingText:Point("TOPLEFT", 22, -35)
ClassTrainerGreetingText:SetJustifyH("CENTER")
ClassTrainerCollapseAllButton:Point("LEFT", ClassTrainerExpandTabLeft, "RIGHT", -1, 5)
ClassTrainerFrameFilterDropDown:Point("TOPRIGHT", -32, -60)
ClassTrainerSkill1:Point("TOPLEFT", 22, -91)
ClassTrainerListScrollFrame:Size(304, 164)
ClassTrainerListScrollFrame.SetHeight = E.noop
ClassTrainerListScrollFrame:Point("TOPRIGHT", -61, -88)
ClassTrainerListScrollFrameScrollBar:Point("TOPLEFT", ClassTrainerListScrollFrame, "TOPRIGHT", 3, -19)
ClassTrainerListScrollFrameScrollBar:Point("BOTTOMLEFT", ClassTrainerListScrollFrame, "BOTTOMRIGHT", 3, 19)
ClassTrainerDetailScrollFrame:Size(304, 140)
ClassTrainerDetailScrollFrame.SetHeight = E.noop
ClassTrainerDetailScrollFrame:Point("TOPLEFT", ClassTrainerListScrollFrame, "BOTTOMLEFT", 0, -7)
ClassTrainerDetailScrollChildFrame:Width(304)
ClassTrainerSkillName:Width(300)
ClassTrainerDetailScrollFrameScrollBar:Point("TOPLEFT", ClassTrainerDetailScrollFrame, "TOPRIGHT", 3, -19)
ClassTrainerDetailScrollFrameScrollBar:Point("BOTTOMLEFT", ClassTrainerDetailScrollFrame, "BOTTOMRIGHT", 3, 19)
ClassTrainerMoneyFrame:Point("BOTTOMRIGHT", ClassTrainerFrame, "BOTTOMLEFT", 180, 88)
ClassTrainerCancelButton:Point("CENTER", ClassTrainerFrame, "TOPLEFT", 304, -417)
ClassTrainerTrainButton:Point("CENTER", ClassTrainerFrame, "TOPLEFT", 221, -417)
hooksecurefunc("ClassTrainer_SetToClassTrainer", function()
CLASS_TRAINER_SKILLS_DISPLAYED = 10
end)
hooksecurefunc(ClassTrainerCollapseAllButton, "SetNormalTexture", function(self, texture)
if find(texture, "MinusButton") then
self:GetNormalTexture():SetTexture(E.Media.Textures.Minus)
else
self:GetNormalTexture():SetTexture(E.Media.Textures.Plus)
end
end)
hooksecurefunc("ClassTrainer_SetSelection", function()
local skillIcon = ClassTrainerSkillIcon:GetNormalTexture()
if skillIcon then
skillIcon:SetInside()
skillIcon:SetTexCoord(unpack(E.TexCoords))
ClassTrainerSkillIcon:SetTemplate("Default")
end
end)
end)
+44
View File
@@ -0,0 +1,44 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
--WoW API / Variables
S:AddCallback("Skin_Tutorial", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.tutorial then return end
TutorialFrameAlertButton:StripTextures()
TutorialFrameAlertButton:CreateBackdrop("Default", true)
TutorialFrameAlertButton:Size(50)
local TutorialFrameAlertButtonIcon = TutorialFrameAlertButton:GetNormalTexture()
TutorialFrameAlertButtonIcon:SetTexture("INTERFACE\\ICONS\\INV_Letter_18")
TutorialFrameAlertButtonIcon:Point("TOPLEFT", 5, -5)
TutorialFrameAlertButtonIcon:Point("BOTTOMRIGHT", -5, 5)
TutorialFrameAlertButtonIcon:SetTexCoord(unpack(E.TexCoords))
TutorialFrameBackground:Hide()
-- TutorialFrameTop:Hide()
-- TutorialFrameBottom:Hide()
TutorialFrame:DisableDrawLayer("BORDER")
TutorialFrame:CreateBackdrop("Transparent")
TutorialFrame.backdrop:Point("TOPLEFT", 11, -12)
TutorialFrame.backdrop:Point("BOTTOMRIGHT", -1, 2)
TutorialFrameTitle:Point("TOP", 0, -19)
S:HandleCloseButton((select(4, TutorialFrame:GetChildren())), TutorialFrame.backdrop)
S:HandleNextPrevButton(TutorialFrameNextButton)
TutorialFrameNextButton:Point("BOTTOMRIGHT", -132, 7)
TutorialFrameNextButton:Size(22)
S:HandleNextPrevButton(TutorialFramePrevButton)
TutorialFramePrevButton:Point("BOTTOMLEFT", 30, 7)
TutorialFramePrevButton:Size(22)
S:HandleButton(TutorialFrameOkayButton)
TutorialFrameCallOut:Kill()
end)
+157
View File
@@ -0,0 +1,157 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
local _G = _G
local unpack = unpack
local format = string.format
--WoW API / Variables
local GetNumQuestWatches = GetNumQuestWatches
local GetQuestDifficultyColor = GetQuestDifficultyColor
local GetQuestIndexForWatch = GetQuestIndexForWatch
local GetQuestLogTitle = GetQuestLogTitle
local hooksecurefunc = hooksecurefunc
S:AddCallback("Skin_WatchFrame", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.watchframe then return end
-- WatchFrame Expand/Collapse Button
WatchFrameCollapseExpandButton:StripTextures()
WatchFrameCollapseExpandButton:Size(18)
WatchFrameCollapseExpandButton.tex = WatchFrameCollapseExpandButton:CreateTexture(nil, "OVERLAY")
WatchFrameCollapseExpandButton.tex:SetTexture(E.Media.Textures.MinusButton)
WatchFrameCollapseExpandButton.tex:SetInside()
WatchFrameCollapseExpandButton:SetHighlightTexture("Interface\\Buttons\\UI-PlusButton-Hilight", "ADD")
WatchFrameCollapseExpandButton:SetFrameStrata("MEDIUM")
WatchFrameCollapseExpandButton:Point("TOPRIGHT", 0, -2)
hooksecurefunc("WatchFrame_Expand", function()
WatchFrameCollapseExpandButton.tex:SetTexture(E.Media.Textures.MinusButton)
WatchFrame:Width(WATCHFRAME_EXPANDEDWIDTH)
end)
hooksecurefunc("WatchFrame_Collapse", function()
WatchFrameCollapseExpandButton.tex:SetTexture(E.Media.Textures.PlusButton)
WatchFrame:Width(WATCHFRAME_EXPANDEDWIDTH)
end)
-- WatchFrame Text
hooksecurefunc("WatchFrame_Update", function()
local questIndex, title, level, color
for i = 1, GetNumQuestWatches() do
questIndex = GetQuestIndexForWatch(i)
if questIndex then
title, level = GetQuestLogTitle(questIndex)
color = GetQuestDifficultyColor(level)
for j = 1, #WATCHFRAME_QUESTLINES do
if WATCHFRAME_QUESTLINES[j].text:GetText() == title then
WATCHFRAME_QUESTLINES[j].text:SetTextColor(color.r, color.g, color.b)
WATCHFRAME_QUESTLINES[j].color = color
end
end
end
end
for i = 1, #WATCHFRAME_ACHIEVEMENTLINES do
WATCHFRAME_ACHIEVEMENTLINES[i].color = nil
end
-- WatchFrame Items
for i = 1, WATCHFRAME_NUM_ITEMS do
local button = _G["WatchFrameItem"..i]
if button and not button.isSkinned then
local icon = _G["WatchFrameItem"..i.."IconTexture"]
local normal = _G["WatchFrameItem"..i.."NormalTexture"]
local cooldown = _G["WatchFrameItem"..i.."Cooldown"]
button:CreateBackdrop()
button.backdrop:SetAllPoints()
button:StyleButton()
button:Size(25)
normal:SetAlpha(0)
icon:SetInside()
icon:SetTexCoord(unpack(E.TexCoords))
E:RegisterCooldown(cooldown)
button.isSkinned = true
end
end
end)
-- WatchFrame Highlight
hooksecurefunc("WatchFrameLinkButtonTemplate_Highlight", function(self, onEnter)
local line
for index = self.startLine, self.lastLine do
line = self.lines[index]
if line then
if index == self.startLine then
if onEnter then
line.text:SetTextColor(1, 0.80, 0.10)
else
if line.color then
line.text:SetTextColor(line.color.r, line.color.g, line.color.b)
else
line.text:SetTextColor(0.75, 0.61, 0)
end
end
end
end
end
end)
-- WatchFrame POI Buttons
local function poi_OnEnter(self)
self.bg:SetBackdropBorderColor(unpack(E.media.rgbvaluecolor))
end
local function poi_OnLeave(self)
self.bg:SetBackdropBorderColor(unpack(E.media.bordercolor))
end
hooksecurefunc("QuestPOI_DisplayButton", function(parentName, buttonType, buttonIndex)
local poiButton = _G[format("poi%s%s_%d", parentName, buttonType, buttonIndex)]
if poiButton and parentName == "WatchFrameLines" then
if not poiButton.isSkinned then
poiButton.normalTexture:SetTexture("")
poiButton.pushedTexture:SetTexture("")
poiButton.highlightTexture:SetTexture("")
poiButton.selectionGlow:SetTexture("")
poiButton:SetScale(1)
poiButton:SetHitRectInsets(6, 6, 6, 6)
poiButton.bg = CreateFrame("Frame", nil, poiButton)
poiButton.bg:SetTemplate("Default", true)
poiButton.bg:Point("TOPLEFT", 6, -6)
poiButton.bg:Point("BOTTOMRIGHT", -6, 6)
poiButton.bg:SetFrameLevel(poiButton.bg:GetFrameLevel() - 1)
poiButton:HookScript("OnEnter", poi_OnEnter)
poiButton:HookScript("OnLeave", poi_OnLeave)
poiButton.isSkinned = true
end
end
end)
hooksecurefunc("QuestPOI_SelectButton", function(poiButton)
if poiButton and poiButton.bg then
poiButton.bg:SetBackdropColor(unpack(E.media.rgbvaluecolor))
end
end)
hooksecurefunc("QuestPOI_DeselectButton", function(poiButton)
if poiButton and poiButton.bg then
poiButton.bg:SetBackdropColor(unpack(E.media.backdropcolor))
end
end)
end)
@@ -0,0 +1,84 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
local _G = _G
S:AddCallback("Skin_WorldStateFrame", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.WorldStateFrame then return end
local function captureBarCreate(id)
local bar = _G["WorldStateCaptureBar"..id]
local leftBar = _G["WorldStateCaptureBar"..id.."LeftBar"]
local rightBar = _G["WorldStateCaptureBar"..id.."RightBar"]
local middleBar = _G["WorldStateCaptureBar"..id.."MiddleBar"]
select(4, bar:GetRegions()):SetTexture(nil)
_G["WorldStateCaptureBar"..id.."LeftLine"]:SetTexture(nil)
_G["WorldStateCaptureBar"..id.."RightLine"]:SetTexture(nil)
_G["WorldStateCaptureBar"..id.."LeftIconHighlight"]:SetTexture(nil)
_G["WorldStateCaptureBar"..id.."RightIconHighlight"]:SetTexture(nil)
_G["WorldStateCaptureBar"..id.."Indicator"]:StripTextures()
bar:Size(173, 16)
bar:CreateBackdrop("Default")
leftBar:Size(85, 16)
leftBar:SetPoint("LEFT", 0, 0)
leftBar:SetTexture(E.media.glossTex)
leftBar:SetTexCoord(1, 0, 1, 0)
leftBar:SetVertexColor(0, .44, .87)
bar.leftBarIcon = bar:CreateTexture("$parentLeftBarIcon", "ARTWORK")
bar.leftBarIcon:SetTexture("Interface\\AddOns\\ElvUI\\Media\\Textures\\Alliance-Logo-Small")
bar.leftBarIcon:SetPoint("RIGHT", bar, "LEFT", 0, 0)
bar.leftBarIcon:SetSize(32, 32)
rightBar:Size(85, 16)
rightBar:SetPoint("RIGHT", 0, 0)
rightBar:SetTexture(E.media.glossTex)
rightBar:SetTexCoord(1, 0, 1, 0)
rightBar:SetVertexColor(.77, .12, .23)
bar.rightBarIcon = bar:CreateTexture("$parentRightBarIcon", "ARTWORK")
bar.rightBarIcon:SetTexture("Interface\\AddOns\\ElvUI\\Media\\Textures\\Horde-Logo-Small")
bar.rightBarIcon:SetPoint("LEFT", bar, "RIGHT", 0, 0)
bar.rightBarIcon:Size(32, 32)
middleBar:Size(25, 16)
middleBar:SetTexture(E.media.glossTex)
middleBar:SetTexCoord(1, 0, 1, 0)
middleBar:SetVertexColor(1, 1, 1)
bar.spark = CreateFrame("Frame", "$parentSpark", bar)
bar.spark:SetTemplate("Default", true)
bar.spark:Size(4, 18)
end
hooksecurefunc(ExtendedUI["CAPTUREPOINT"], "create", captureBarCreate)
hooksecurefunc(ExtendedUI["CAPTUREPOINT"], "update", function(id, value, neutralPercent)
local bar = _G["WorldStateCaptureBar"..id]
local middleBar = _G["WorldStateCaptureBar"..id.."MiddleBar"]
local barSize = 170
local position = 173 * (1 - value / 100)
if neutralPercent == 0 then
middleBar:Width(1)
else
middleBar:Width(neutralPercent / 100 * barSize)
end
bar.oldValue = position
if bar.spark then
bar.spark:Point("CENTER", bar, "LEFT", position, 0)
else
captureBarCreate(id)
end
end)
end)
+198
View File
@@ -0,0 +1,198 @@
local E, L, V, P, G = unpack(select(2, ...)) --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local S = E:GetModule("Skins")
--Lua functions
--WoW API / Variables
S:AddCallback("Skin_WorldMap", function()
if not E.private.skins.blizzard.enable or not E.private.skins.blizzard.worldmap then return end
WorldMapFrame:DisableDrawLayer("BACKGROUND")
WorldMapFrame:DisableDrawLayer("ARTWORK")
WorldMapFrame:DisableDrawLayer("OVERLAY")
WorldMapFrame:CreateBackdrop("Transparent")
WorldMapFrame.backdrop:Point("TOPRIGHT", WorldMapFrameCloseButton, -3, 0)
WorldMapFrame.backdrop:Point("BOTTOMRIGHT", WorldMapTrackQuest, 0, -3)
WorldMapFrame:SetClampRectInsets(3, 0, 2, 1)
WorldMapFrameTitle:SetDrawLayer("BORDER")
WorldMapTitleButton:Width(530)
WorldMapTitleButton:Point("TOPLEFT", WorldMapFrameMiniBorderLeft, "TOPLEFT", 4, 1)
WorldMapDetailFrame:CreateBackdrop()
WorldMapDetailFrame.backdrop:Point("TOPLEFT", -2, 2)
WorldMapDetailFrame.backdrop:Point("BOTTOMRIGHT", 2, -1)
WorldMapQuestDetailScrollFrame:Width(348)
WorldMapQuestDetailScrollFrame:Point("BOTTOMLEFT", WorldMapDetailFrame, "BOTTOMLEFT", -25, -207)
WorldMapQuestDetailScrollFrame:CreateBackdrop("Transparent")
WorldMapQuestDetailScrollFrame.backdrop:Point("TOPLEFT", 24, 2)
WorldMapQuestDetailScrollFrame.backdrop:Point("BOTTOMRIGHT", 23, -4)
WorldMapQuestDetailScrollFrame.backdrop:SetFrameLevel(WorldMapQuestDetailScrollFrame:GetFrameLevel())
WorldMapQuestDetailScrollFrame:SetHitRectInsets(24, -23, 0, -2)
WorldMapQuestDetailScrollChildFrame:SetScale(1)
WorldMapQuestDetailScrollFrameTrack:Kill()
WorldMapQuestRewardScrollFrame:Width(340)
WorldMapQuestRewardScrollFrame:Point("LEFT", WorldMapQuestDetailScrollFrame, "RIGHT", 8, 0)
WorldMapQuestRewardScrollFrame:CreateBackdrop("Transparent")
WorldMapQuestRewardScrollFrame.backdrop:Point("TOPLEFT", 20, 2)
WorldMapQuestRewardScrollFrame.backdrop:Point("BOTTOMRIGHT", 22, -4)
WorldMapQuestRewardScrollFrame.backdrop:SetFrameLevel(WorldMapQuestRewardScrollFrame:GetFrameLevel())
WorldMapQuestRewardScrollFrame:SetHitRectInsets(20, -22, 0, -2)
WorldMapQuestRewardScrollChildFrame:SetScale(1)
WorldMapQuestRewardScrollFrameTrack:SetTexture()
WorldMapQuestScrollFrame:Point("TOPLEFT", WorldMapDetailFrame, "TOPRIGHT", 6, -1)
WorldMapQuestScrollFrame:CreateBackdrop("Transparent")
WorldMapQuestScrollFrame.backdrop:Point("TOPLEFT", 0, 2)
WorldMapQuestScrollFrame.backdrop:Point("BOTTOMRIGHT", 25, -1)
WorldMapQuestScrollFrame.backdrop:SetFrameLevel(WorldMapQuestScrollFrame:GetFrameLevel())
WorldMapQuestSelectBar:SetTexture(E.Media.Textures.Highlight)
WorldMapQuestSelectBar:SetAlpha(0.35)
WorldMapQuestHighlightBar:SetTexture(E.Media.Textures.Highlight)
WorldMapQuestHighlightBar:SetAlpha(0.35)
S:HandleScrollBar(WorldMapQuestScrollFrameScrollBar)
S:HandleScrollBar(WorldMapQuestDetailScrollFrameScrollBar)
S:HandleScrollBar(WorldMapQuestRewardScrollFrameScrollBar)
WorldMapQuestScrollFrameScrollBar:Point("TOPLEFT", WorldMapQuestScrollFrame, "TOPRIGHT", 5, -19)
WorldMapQuestScrollFrameScrollBar:Point("BOTTOMLEFT", WorldMapQuestScrollFrame, "BOTTOMRIGHT", 5, 20)
WorldMapQuestDetailScrollFrameScrollBar:Point("TOPLEFT", WorldMapQuestDetailScrollFrame, "TOPRIGHT", 3, -19)
WorldMapQuestDetailScrollFrameScrollBar:Point("BOTTOMLEFT", WorldMapQuestDetailScrollFrame, "BOTTOMRIGHT", 3, 17)
WorldMapQuestRewardScrollFrameScrollBar:Point("TOPLEFT", WorldMapQuestRewardScrollFrame, "TOPRIGHT", 2, -19)
WorldMapQuestRewardScrollFrameScrollBar:Point("BOTTOMLEFT", WorldMapQuestRewardScrollFrame, "BOTTOMRIGHT", 2, 17)
S:HandleCloseButton(WorldMapFrameCloseButton)
WorldMapFrameSizeDownButton:ClearAllPoints()
WorldMapFrameSizeDownButton:Point("RIGHT", WorldMapFrameCloseButton, "LEFT", 4, 0)
WorldMapFrameSizeDownButton.SetPoint = E.noop
WorldMapFrameSizeDownButton:GetHighlightTexture():Kill()
S:HandleNextPrevButton(WorldMapFrameSizeDownButton, "down", nil, true)
WorldMapFrameSizeDownButton:Size(26)
WorldMapFrameSizeUpButton:ClearAllPoints()
WorldMapFrameSizeUpButton:Point("RIGHT", WorldMapFrameCloseButton, "LEFT", 4, 0)
WorldMapFrameSizeUpButton:GetHighlightTexture():Kill()
S:HandleNextPrevButton(WorldMapFrameSizeUpButton, "up", nil, true)
WorldMapFrameSizeUpButton:Size(26)
S:HandleDropDownBox(WorldMapLevelDropDown)
S:HandleDropDownBox(WorldMapZoneMinimapDropDown)
S:HandleDropDownBox(WorldMapContinentDropDown)
S:HandleDropDownBox(WorldMapZoneDropDown)
WorldMapLevelUpButton:Point("TOPLEFT", WorldMapLevelDropDown, "TOPRIGHT", -6, 4)
WorldMapLevelDownButton:Point("BOTTOMLEFT", WorldMapLevelDropDown, "BOTTOMRIGHT", -6, 0)
S:HandleButton(WorldMapZoomOutButton)
WorldMapZoomOutButton:Point("LEFT", WorldMapZoneDropDown, "RIGHT", 0, 3)
S:HandleCheckBox(WorldMapTrackQuest)
S:HandleCheckBox(WorldMapQuestShowObjectives)
WorldMapFrameAreaLabel:FontTemplate(nil, 50, "OUTLINE")
WorldMapFrameAreaLabel:SetShadowOffset(2, -2)
WorldMapFrameAreaLabel:SetTextColor(0.90, 0.8294, 0.6407)
WorldMapFrameAreaDescription:FontTemplate(nil, 40, "OUTLINE")
WorldMapFrameAreaDescription:SetShadowOffset(2, -2)
WorldMapZoneInfo:FontTemplate(nil, 27, "OUTLINE")
WorldMapZoneInfo:SetShadowOffset(2, -2)
WorldMapLevelDropDown.SetPoint = E.noop
local setPoint = UIParent.SetPoint
local currentMapMode
local function SmallSkin()
if WORLDMAP_SETTINGS.advanced then
if currentMapMode == 0 then return end
currentMapMode = 0
WorldMapFrame.backdrop:Point("TOPLEFT", 3, 2)
WorldMapFrame.backdrop:Point("TOPRIGHT", WorldMapFrameCloseButton, -3, 0)
WorldMapDetailFrame.backdrop:Point("TOPLEFT", -2, 2)
WorldMapDetailFrame.backdrop:Point("BOTTOMRIGHT", 1, -1)
setPoint(WorldMapLevelDropDown, "TOPRIGHT", WorldMapPositioningGuide, "TOPRIGHT", -419, -24)
else
if currentMapMode == 1 then return end
currentMapMode = 1
WorldMapFrame.backdrop:Point("TOPLEFT", 11, -12)
WorldMapFrame.backdrop:Point("TOPRIGHT", WorldMapFrameCloseButton, -1, 0)
WorldMapDetailFrame.backdrop:Point("TOPLEFT", -2, 2)
WorldMapDetailFrame.backdrop:Point("BOTTOMRIGHT", 2, -1)
setPoint(WorldMapLevelDropDown, "TOPRIGHT", WorldMapPositioningGuide, "TOPRIGHT", -439, -38)
end
end
local function LargeSkin()
if currentMapMode == 2 then return end
currentMapMode = 2
WorldMapFrame.backdrop:Point("TOPLEFT", WorldMapDetailFrame, "TOPLEFT", -8, 70)
WorldMapFrame.backdrop:Point("TOPRIGHT", WorldMapFrameCloseButton, -3, 0)
WorldMapDetailFrame.backdrop:Point("TOPLEFT", -1, 1)
WorldMapDetailFrame.backdrop:Point("BOTTOMRIGHT", 1, -1)
setPoint(WorldMapLevelDropDown, "TOPRIGHT", WorldMapPositioningGuide, "TOPRIGHT", -50, -35)
end
local function QuestSkin()
if currentMapMode == 3 then return end
currentMapMode = 3
WorldMapFrame.backdrop:Point("TOPLEFT", WorldMapDetailFrame, "TOPLEFT", -9, 70)
WorldMapFrame.backdrop:Point("TOPRIGHT", WorldMapFrameCloseButton, -3, 0)
WorldMapDetailFrame.backdrop:Point("TOPLEFT", -1, 1)
WorldMapDetailFrame.backdrop:Point("BOTTOMRIGHT", 1, -1)
setPoint(WorldMapLevelDropDown, "TOPRIGHT", WorldMapPositioningGuide, "TOPRIGHT", -50, -35)
end
local function FixSkin()
if WORLDMAP_SETTINGS.size == WORLDMAP_FULLMAP_SIZE then
LargeSkin()
elseif WORLDMAP_SETTINGS.size == WORLDMAP_WINDOWED_SIZE then
SmallSkin()
elseif WORLDMAP_SETTINGS.size == WORLDMAP_QUESTLIST_SIZE then
QuestSkin()
end
end
if not E.private.worldmap.enable then
WorldMapFrame:EnableMouse(false)
WorldMapFrame.EnableMouse = E.noop
end
WorldMapTitleButton:Hide()
WorldMapFrame.backdrop:EnableMouse(true)
FixSkin()
S:SetUIPanelWindowInfo(WorldMapFrame, "width", 594)
hooksecurefunc("WorldMapFrame_SetQuestMapView", QuestSkin)
hooksecurefunc("WorldMapFrame_SetFullMapView", LargeSkin)
hooksecurefunc("WorldMapFrame_SetMiniMode", SmallSkin)
hooksecurefunc("ToggleMapFramerate", FixSkin)
hooksecurefunc("WorldMapFrame_ToggleAdvanced", FixSkin)
end)
+5
View File
@@ -0,0 +1,5 @@
<Ui xmlns="http://www.blizzard.com/wow/ui/">
<Script file="Skins.lua"/>
<Include file="Addons\Load_Addons.xml"/>
<Include file="Blizzard\Load_Blizzard.xml"/>
</Ui>
File diff suppressed because it is too large Load Diff