Files
coa-elvui/ElvUI_AddOnSkins/Skins/Addons/ackisRecipeList.lua
T

365 lines
12 KiB
Lua

local E, L, V, P, G = unpack(ElvUI)
local S = E:GetModule("Skins")
local AS = E:GetModule("AddOnSkins")
if not AS:IsAddonLODorEnabled("AckisRecipeList") then return end
local ipairs, select, unpack = ipairs, select, unpack
local hooksecurefunc = hooksecurefunc
-- AckisRecipeList 2.01.14
-- https://www.curseforge.com/wow/addons/arl/files/458020
S:AddCallbackForAddon("AckisRecipeList", "AckisRecipeList", function()
if not E.private.addOnSkins.AckisRecipeList then return end
local addon = LibStub("AceAddon-3.0"):GetAddon("Ackis Recipe List", true)
if not addon then return end
local function HandleScrollBar(frame)
local UpButton, DownButton = frame:GetChildren()
S:HandleNextPrevButton(UpButton, "up")
UpButton:Size(20, 18)
S:HandleNextPrevButton(DownButton)
DownButton:Size(20, 18)
frame.trackbg = CreateFrame("Frame", nil, frame)
frame.trackbg:Point("TOPLEFT", UpButton, "BOTTOMLEFT", 0, -1)
frame.trackbg:Point("BOTTOMRIGHT", DownButton, "TOPRIGHT", 0, 1)
frame.trackbg:SetTemplate()
frame:GetThumbTexture():SetAlpha(0)
frame.thumbbg = CreateFrame("Frame", nil, frame)
frame.thumbbg:Point("TOPLEFT", frame:GetThumbTexture(), "TOPLEFT", 8, -7)
frame.thumbbg:Point("BOTTOMRIGHT", frame:GetThumbTexture(), "BOTTOMRIGHT", -8, 7)
frame.thumbbg:SetTemplate("Default", true, true)
frame.thumbbg:SetBackdropColor(0.6, 0.6, 0.6)
frame.thumbbg:SetFrameLevel(frame.trackbg:GetFrameLevel() + 1)
end
local function SkinButton(button, strip)
S:HandleButton(button, strip)
button.SetNormalTexture = E.noop
button.SetHighlightTexture = E.noop
button.SetPushedTexture = E.noop
button.SetDisabledTexture = E.noop
end
local function ChangeTexture(texture)
texture:SetInside()
texture:SetTexCoord(0.22, 0.78, 0.22, 0.78)
end
local function ExpansionButton(button)
button:GetRegions():SetDesaturated(true)
button:GetPushedTexture():SetTexture(nil)
button:GetHighlightTexture():SetTexture(nil)
button:GetCheckedTexture():SetTexture(nil)
hooksecurefunc(button, "SetChecked", function(self, state)
self:GetRegions():SetDesaturated(state)
end)
end
S:HandleButton(addon.scan_button)
hooksecurefunc(addon, "TRADE_SKILL_SHOW", function(self)
if self.scan_button:GetParent() == TradeSkillFrame then
self.scan_button:SetFrameLevel(TradeSkillFrame:GetFrameLevel() + 10)
end
end)
S:SecureHook(addon, "Scan", function(self)
S:Unhook(self, "Scan")
local ARL_MainPanel = ARL_MainPanel
ARL_MainPanel:StripTextures()
ARL_MainPanel:CreateBackdrop("Transparent")
ARL_MainPanel.backdrop:Point("TOPLEFT", 11, -12)
ARL_MainPanel.backdrop:Point("BOTTOMRIGHT", -32, 76)
S:SetBackdropHitRect(ARL_MainPanel, ARL_MainPanel.backdrop, true)
hooksecurefunc(ARL_MainPanel, "ToggleState", function(self)
if self.is_expanded then
self.backdrop:Point("BOTTOMRIGHT", -87, 76)
S:SetBackdropHitRect(self, self.backdrop, true)
else
self.backdrop:Point("BOTTOMRIGHT", -32, 76)
S:SetBackdropHitRect(self, self.backdrop, true)
end
end)
S:HandleCloseButton(ARL_MainPanel.xclose_button, ARL_MainPanel.backdrop)
ARL_MainPanel.title_bar:Hide()
ARL_MainPanel.top_left:Hide()
ARL_MainPanel.top_right:Hide()
ARL_MainPanel.bottom_left:Hide()
ARL_MainPanel.bottom_right:Hide()
ARL_MainPanel.top_left.Show = E.noop
ARL_MainPanel.top_right.Show = E.noop
ARL_MainPanel.bottom_left.Show = E.noop
ARL_MainPanel.bottom_right.Show = E.noop
ARL_MainPanel.prof_button:SetTemplate()
ARL_MainPanel.prof_button:Size(32)
ARL_MainPanel.prof_button:Point("TOPLEFT", 19, -20)
local prof_buttonHighlight = ARL_MainPanel.prof_button:GetHighlightTexture()
prof_buttonHighlight:SetInside()
prof_buttonHighlight:SetTexture(1, 1, 1, 0.3)
prof_buttonHighlight:SetTexture()
ChangeTexture(ARL_MainPanel.prof_button._normal)
ChangeTexture(ARL_MainPanel.prof_button._pushed)
ChangeTexture(ARL_MainPanel.prof_button._disabled)
hooksecurefunc(ARL_MainPanel.prof_button, "ChangeTexture", function(self)
ChangeTexture(self._normal)
ChangeTexture(self._pushed)
ChangeTexture(self._disabled)
end)
S:HandleEditBox(ARL_MainPanel.search_editbox)
ARL_MainPanel.search_editbox.backdrop:Point("TOPLEFT", -2, 0)
ARL_MainPanel.search_editbox:Point("TOPLEFT", ARL_MainPanel, "TOPLEFT", 90, -50)
ARL_MainPanel.search_editbox:DisableDrawLayer("BACKGROUND")
ARL_MainPanel.search_editbox:Size(140, 17)
for i = 1, ARL_MainPanel:GetNumChildren() do
local child = select(i, ARL_MainPanel:GetChildren())
if child and child:IsObjectType("CheckButton") and child.text then
-- SkillToggle
S:HandleCheckBox(child, true)
child:Size(14)
child:Point("TOPLEFT", ARL_MainPanel.search_editbox, "TOPRIGHT", -142, 34)
child.text:Point("LEFT", child, "RIGHT", 3, 0)
local excludeToggle = select(i + 1, ARL_MainPanel:GetChildren())
S:HandleCheckBox(excludeToggle, true)
excludeToggle:Size(14)
excludeToggle:Point("TOP", child, "BOTTOM", 0, -3)
excludeToggle.text:Point("LEFT", excludeToggle, "RIGHT", 3, 0)
break
end
end
select(2, ARL_MainPanel.expand_button:GetPoint()):GetParent():Hide()
S:HandleCollapseExpandButton(ARL_MainPanel.expand_button, "+")
ARL_MainPanel.expand_button:ClearAllPoints()
ARL_MainPanel.expand_button:Point("BOTTOMRIGHT", ARL_MainPanel.search_editbox, "BOTTOMLEFT", -53, -2)
ARL_MainPanel.list_frame:SetBackdrop(nil)
ARL_MainPanel.list_frame:CreateBackdrop("Transparent")
ARL_MainPanel.list_frame.backdrop:Point("TOPLEFT", -2, 2)
ARL_MainPanel.list_frame.backdrop:Point("BOTTOMRIGHT", 5, 5)
ARL_MainPanel.list_frame:Point("TOPLEFT", ARL_MainPanel, "TOPLEFT", 21, -73)
HandleScrollBar(ARL_MainPanel.list_frame.scroll_bar)
ARL_MainPanel.list_frame.scroll_bar:Point("TOPLEFT", ARL_MainPanel.list_frame, "TOPRIGHT", 6, -12)
ARL_MainPanel.list_frame.scroll_bar:Point("BOTTOMLEFT", ARL_MainPanel.list_frame, "BOTTOMRIGHT", 6, 19)
ARL_MainPanel.list_frame.scroll_bar.Hide = E.noop
ARL_MainPanel.list_frame.scroll_bar:Show()
for i = 1, 25 do
S:HandleCollapseExpandButton(ARL_MainPanel.list_frame.state_buttons[i], "+")
S:HandleButtonHighlight(ARL_MainPanel.list_frame.entry_buttons[i])
end
S:HandleNextPrevButton(ARL_MainPanel.sort_button, "down", nil, true)
ARL_MainPanel.sort_button:Size(22)
ARL_MainPanel.sort_button:ClearAllPoints()
ARL_MainPanel.sort_button:Point("LEFT", ARL_MainPanel.expand_button, "RIGHT", 20, 0)
ARL_MainPanel.sort_button.SetTextures = function(self)
local normal, pushed = self:GetNormalTexture(), self:GetPushedTexture()
if addon.db.profile.sorting == "Ascending" then
normal:SetRotation(3.14)
pushed:SetRotation(3.14)
else
normal:SetRotation(0)
pushed:SetRotation(0)
end
end
ARL_MainPanel.progress_bar:StripTextures()
ARL_MainPanel.progress_bar:CreateBackdrop()
ARL_MainPanel.progress_bar:Size(209, 20)
ARL_MainPanel.progress_bar:Point("BOTTOMLEFT", ARL_MainPanel, 20, 85)
ARL_MainPanel.progress_bar:SetStatusBarTexture(E.media.normTex)
ARL_MainPanel.progress_bar:SetStatusBarColor(0.22, 0.39, 0.84)
E:RegisterStatusBar(ARL_MainPanel.progress_bar)
ARL_MainPanel.close_button:Height(22)
ARL_MainPanel.close_button:Point("LEFT", ARL_MainPanel.progress_bar, "RIGHT", 4, 0)
SkinButton(ARL_MainPanel.close_button, true)
for i, tab in ipairs(ARL_MainPanel.tabs) do
tab:StripTextures()
tab.left.SetTexture = E.noop
tab.middle.SetTexture = E.noop
tab.right.SetTexture = E.noop
tab:CreateBackdrop()
tab.backdrop:Point("TOPLEFT", 10, E.PixelMode and -1 or -3)
tab.backdrop:Point("BOTTOMRIGHT", -10, 3)
tab:SetHitRectInsets(10, 10, E.PixelMode and 1 or 3, 3)
if i == 1 then
tab:Point("TOPLEFT", ARL_MainPanel, "BOTTOMLEFT", 11, 78)
else
tab:Point("LEFT", ARL_MainPanel.tabs[i-1], "RIGHT", -15, 0)
end
end
if not (TipTac and TipTac.AddModifiedTip) then
E:GetModule("Tooltip"):SecureHookScript(AckisRecipeList_SpellTooltip, "OnShow", "SetStyle")
AS:SkinLibrary("LibQTip-1.0")
end
S:HandleNextPrevButton(ARL_MainPanel.filter_toggle, "right", nil, true)
ARL_MainPanel.filter_toggle:Point("TOPLEFT", ARL_MainPanel, "TOPLEFT", 324, -39)
ARL_MainPanel.filter_toggle:Size(28)
ARL_MainPanel.filter_toggle.SetTextures = function(self)
local normal, pushed = self:GetNormalTexture(), self:GetPushedTexture()
if ARL_MainPanel.is_expanded then
normal:SetRotation(1.57)
pushed:SetRotation(1.57)
else
normal:SetRotation(-1.57)
pushed:SetRotation(-1.57)
end
self:HookScript("OnEnter", function()
normal:SetVertexColor(unpack(E.media.rgbvaluecolor))
end)
self:HookScript("OnLeave", function()
normal:SetVertexColor(1, 1, 1)
end)
end
ARL_MainPanel.filter_toggle:HookScript("OnClick", function(self)
if self.isFrameSkinned then return end
self.isFrameSkinned = true
ARL_MainPanel.filter_menu:SetTemplate("Transparent")
ARL_MainPanel.filter_menu:Size(326, 332)
ARL_MainPanel.filter_menu:Point("TOPRIGHT", ARL_MainPanel, "TOPRIGHT", -95, -71)
ARL_MainPanel.filter_reset:Point("BOTTOMRIGHT", ARL_MainPanel, "BOTTOMRIGHT", -95, 84)
SkinButton(ARL_MainPanel.filter_reset, true)
local menuIcons = {
"menu_toggle_general",
"menu_toggle_obtain",
"menu_toggle_binding",
"menu_toggle_item",
"menu_toggle_quality",
"menu_toggle_player",
"menu_toggle_rep",
"menu_toggle_misc"
}
for i, menuIcon in ipairs(menuIcons) do
local iconEntry = ARL_MainPanel[menuIcon]
if i == 1 then
iconEntry:Point("LEFT", ARL_MainPanel.filter_toggle, "RIGHT", 17, 0)
end
iconEntry:SetTemplate()
iconEntry:StyleButton()
iconEntry:DisableDrawLayer("BACKGROUND")
local region = select(2, iconEntry:GetRegions())
region:SetInside()
region:SetTexCoord(unpack(E.TexCoords))
end
local filterMenus = {
"general",
"obtain",
"binding",
"item",
"quality",
"player",
"rep",
"misc"
}
for _, menu in ipairs(filterMenus) do
local menuEntry = ARL_MainPanel.filter_menu[menu]
if menu == "misc" then
for i = 1, menuEntry:GetNumChildren() do
local child = select(i, menuEntry:GetChildren())
if child and child:IsObjectType("Button") then
S:HandleNextPrevButton(child)
select(2, child:GetPoint()):SetTextColor(1, 1, 1)
end
end
elseif menu == "rep" then
for expNum = 0, 2 do
for i = 1, menuEntry["expansion"..expNum]:GetNumChildren() do
local child = select(i, menuEntry["expansion"..expNum]:GetChildren())
if child and (child:IsObjectType("Button") and child.text and not child:IsObjectType("CheckButton")) then
child:StripTextures()
child.text:SetTextColor(1, 0.8, 0.1)
elseif child and child:IsObjectType("CheckButton") and child.text then
S:HandleCheckBox(child)
child.text:SetTextColor(1, 1, 1)
end
end
end
else
for i = 1, menuEntry:GetNumChildren() do
local child = select(i, menuEntry:GetChildren())
if child and (child:IsObjectType("Button") and child.text and not child:IsObjectType("CheckButton")) then
child:StripTextures()
child.text:SetTextColor(1, 0.8, 0.1)
elseif child and child:IsObjectType("CheckButton") and child.text then
S:HandleCheckBox(child)
child.text:SetTextColor(1, 1, 1)
end
end
end
end
ExpansionButton(ARL_MainPanel.filter_menu.rep.toggle_expansion0)
ExpansionButton(ARL_MainPanel.filter_menu.rep.toggle_expansion1)
ExpansionButton(ARL_MainPanel.filter_menu.rep.toggle_expansion2)
end)
end)
ARLCopyFrame:StripTextures()
ARLCopyFrame:SetTemplate("Transparent")
S:HandleScrollBar(ARLCopyScrollScrollBar)
for i = 1, ARLCopyFrame:GetNumChildren() do
local child = select(i, ARLCopyFrame:GetChildren())
if child and child:IsObjectType("Button") then
child:ClearAllPoints()
child:Point("TOPRIGHT", ARLCopyFrame, "TOPRIGHT", 1, 0)
S:HandleCloseButton(child)
break
end
end
end)