init
This commit is contained in:
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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>
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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
Reference in New Issue
Block a user