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