Files

152 lines
5.0 KiB
Lua

local E, L, V, P, G = unpack(ElvUI)
local S = E:GetModule("Skins")
local AS = E:GetModule("AddOnSkins")
if not AS:IsAddonLODorEnabled("Recount") then return end
local _G = _G
-- Recount 4.0.1
-- https://www.wowace.com/projects/recount/files/458517
S:AddCallbackForAddon("Recount", "Recount", function()
if not E.private.addOnSkins.Recount then return end
local function skinFrame(frame)
frame:SetTemplate("Transparent")
frame.Title:ClearAllPoints()
frame.Title:Point("TOP", frame, "TOP", 0, -5)
frame.Title:FontTemplate()
frame.Title:SetTextColor(1, 0.82, 0, 1)
S:HandleCloseButton(frame.CloseButton)
frame.CloseButton:ClearAllPoints()
frame.CloseButton:Point("TOPRIGHT", frame, "TOPRIGHT", -2, -2)
end
local function skinMainFrame(frame)
frame:SetBackdrop(nil)
local backdrop = CreateFrame("Frame", nil, frame)
backdrop:SetFrameLevel(frame:GetFrameLevel() - 1)
backdrop:Point("BOTTOMLEFT", frame, E.PixelMode and 1 or 0, E.PixelMode and 1 or 0)
backdrop:Point("TOPRIGHT", frame, E.PixelMode and -1 or 0, -(E.PixelMode and 31 or 30))
backdrop:SetTemplate(E.db.addOnSkins.recountTemplate, E.db.addOnSkins.recountTemplate == "Default" and E.db.addOnSkins.recountTemplateGloss or false)
frame.backdrop = backdrop
local header = CreateFrame("Frame", nil, backdrop)
header:Height(22)
header:Point("TOPLEFT", frame, E.PixelMode and 1 or 0, -(E.PixelMode and 8 or 7))
header:Point("TOPRIGHT", frame, E.PixelMode and -1 or 0, 0)
header:SetTemplate(E.db.addOnSkins.recountTitleTemplate, E.db.addOnSkins.recountTitleTemplate == "Default" and E.db.addOnSkins.recountTitleTemplateGloss or false)
frame.header = header
frame.Title:ClearAllPoints()
frame.Title:Point("LEFT", header, 6, 0)
S:HandleCloseButton(frame.CloseButton)
frame.CloseButton:ClearAllPoints()
frame.CloseButton:Point("RIGHT", header, -6, 0)
frame.CloseButton.Texture:Size(10)
frame.RightButton:Size(18)
frame.LeftButton:Size(18)
S:HandleNextPrevButton(frame.RightButton, "right", nil, true)
S:HandleNextPrevButton(frame.LeftButton, "left", nil, true)
Recount:SetupMainWindowButtons()
frame.DragBottomLeft:SetNormalTexture(nil)
frame.DragBottomRight:SetNormalTexture(nil)
end
hooksecurefunc(Recount, "AddWindow", function(self, window)
if window:GetName() == "Recount_ReportWindow" then
if Recount_ReportWindow.isSkinned then return end
skinFrame(Recount_ReportWindow)
Recount_ReportWindow.slider:Point("TOP", Recount_ReportWindow, 0, -45)
Recount_ReportWindow.ReportTitle:Point("TOPLEFT", Recount_ReportWindow, 10, -75)
Recount_ReportWindow.WhisperText:Point("BOTTOMLEFT", Recount_ReportWindow, 10, 37)
Recount_ReportWindow.ReportTitle:FontTemplate()
Recount_ReportWindow.WhisperText:FontTemplate()
Recount_ReportWindow.Whisper:StripTextures(true)
Recount_ReportWindow.Whisper:Height(16)
S:HandleSliderFrame(Recount_ReportWindow.slider)
S:HandleEditBox(Recount_ReportWindow.Whisper)
S:HandleButton(Recount_ReportWindow.ReportButton)
Recount_ReportWindow.isSkinned = true
elseif window:GetName() == "Recount_ConfigWindow" then
if Recount_ConfigWindow.isSkinned then return end
skinFrame(Recount_ConfigWindow)
S:HandleSliderFrame(Recount_ConfigWindow_Scaling_Slider)
S:HandleSliderFrame(Recount_ConfigWindow_RowHeight_Slider)
S:HandleSliderFrame(Recount_ConfigWindow_RowSpacing_Slider)
Recount_ConfigWindow.isSkinned = true
end
end)
skinMainFrame(Recount.MainWindow)
skinFrame(Recount.DetailWindow)
skinFrame(Recount.GraphWindow)
S:HandleScrollBar(Recount_MainWindow_ScrollBarScrollBar)
hooksecurefunc(Recount, "HideScrollbarElements", function(self, name)
_G[name.."ScrollBar"].backdrop:Hide()
_G[name.."ScrollBar"]:GetThumbTexture().backdrop:Hide()
end)
hooksecurefunc(Recount, "ShowScrollbarElements", function(self, name)
_G[name.."ScrollBar"].backdrop:Show()
_G[name.."ScrollBar"]:GetThumbTexture().backdrop:Show()
end)
if Recount.db.profile.MainWindow.ShowScrollbar then
Recount:ShowScrollbarElements("Recount_MainWindow_ScrollBar")
else
Recount:HideScrollbarElements("Recount_MainWindow_ScrollBar")
end
local buttons = {
Recount.MainWindow.CloseButton,
Recount.MainWindow.RightButton,
Recount.MainWindow.LeftButton,
Recount.MainWindow.ResetButton,
Recount.MainWindow.FileButton,
Recount.MainWindow.ConfigButton,
Recount.MainWindow.ReportButton,
Recount_DetailWindow.LeftButton,
Recount_DetailWindow.RightButton,
Recount_DetailWindow.ReportButton,
Recount_DetailWindow.SummaryButton
}
for _, button in ipairs(buttons) do
if button:GetNormalTexture() then
button:GetNormalTexture():SetDesaturated(true)
end
if button:GetPushedTexture() then
button:GetPushedTexture():SetDesaturated(true)
end
if button:GetHighlightTexture() then
button:GetHighlightTexture():SetDesaturated(true)
end
end
local RecountLocale = LibStub("AceLocale-3.0"):GetLocale("Recount")
local function resetData(self) Recount:ResetData() self:GetParent():Hide() end
function Recount:ShowReset()
AS:AcceptFrame(RecountLocale["Reset Recount?"], resetData)
end
end)