From 93ad7cdb9231e5d43a1d7d48b8f9d4dc295f4f48 Mon Sep 17 00:00:00 2001 From: shagu Date: Mon, 5 Oct 2020 16:35:45 +0200 Subject: [PATCH] thirdparty: add bag_sort integration --- api/config.lua | 1 + modules/gui.lua | 1 + modules/thirdparty-tbc.lua | 103 +++++++++++++++++++++++++++++++++++++ 3 files changed, 105 insertions(+) diff --git a/api/config.lua b/api/config.lua index 05dec849..3e7395b0 100644 --- a/api/config.lua +++ b/api/config.lua @@ -708,6 +708,7 @@ function pfUI:LoadConfig() pfUI:UpdateConfig("thirdparty", "wim", "enable", "1") pfUI:UpdateConfig("thirdparty", "healcomm", "enable", "1") pfUI:UpdateConfig("thirdparty", "sortbags", "enable", "1") + pfUI:UpdateConfig("thirdparty", "bag_sort", "enable", "1") pfUI:UpdateConfig("thirdparty", "mrplow", "enable", "1") pfUI:UpdateConfig("thirdparty", "flightmap", "enable", "1") pfUI:UpdateConfig("thirdparty", "theorycraft", "enable", "1") diff --git a/modules/gui.lua b/modules/gui.lua index 36eba6b7..3e873943 100644 --- a/modules/gui.lua +++ b/modules/gui.lua @@ -2169,6 +2169,7 @@ pfUI:RegisterModule("gui", "vanilla:tbc", function () CreateConfig(nil, "WIM", C.thirdparty.wim, "enable", "checkbox", nil, nil, nil, nil, "vanilla") CreateConfig(nil, "HealComm", C.thirdparty.healcomm, "enable", "checkbox", nil, nil, nil, nil, "vanilla") CreateConfig(nil, "SortBags", C.thirdparty.sortbags, "enable", "checkbox", nil, nil, nil, nil, "vanilla") + CreateConfig(nil, "Bag_Sort", C.thirdparty.bag_sort, "enable", "checkbox", nil, nil, nil, nil, "tbc") CreateConfig(nil, "MrPlow", C.thirdparty.mrplow, "enable", "checkbox") CreateConfig(nil, "DruidBar", C.thirdparty.druidbar, "enable", "checkbox", nil, nil, nil, nil, "tbc") CreateConfig(nil, "BCEPGP", C.thirdparty.bcepgp, "enable", "checkbox", nil, nil, nil, nil, "tbc") diff --git a/modules/thirdparty-tbc.lua b/modules/thirdparty-tbc.lua index ecd173a0..fdcd4a17 100644 --- a/modules/thirdparty-tbc.lua +++ b/modules/thirdparty-tbc.lua @@ -193,6 +193,109 @@ pfUI:RegisterModule("thirdparty-tbc", "tbc", function () end end) + HookAddonOrVariable("Bag_Sort", function() + if C.thirdparty.bag_sort.enable == "0" then return end + pfUI.thirdparty.bagsort = "bag_sort" + + pfUI.thirdparty.bag_sort = CreateFrame("Frame", nil) + pfUI.thirdparty.bag_sort:RegisterEvent("PLAYER_ENTERING_WORLD") + pfUI.thirdparty.bag_sort:SetScript("OnEvent", function() + pfUI.thirdparty.bag_sort:UnregisterAllEvents() + + -- don't do anything if another bagsorter was found + if pfUI.thirdparty.bagsort ~= "bag_sort" then return end + + -- make sure the bag module is enabled + if not pfUI.bag or not pfUI.bag.right then return end + + local rawborder, default_border = GetBorderSize("bags") + + -- draw the button + if not pfUI.bag.right.sort then + pfUI.bag.right.sort = CreateFrame("Button", "pfBagSlotSort", UIParent) + pfUI.bag.right.sort:SetParent(pfUI.bag.right) + pfUI.bag.right.sort:SetPoint("TOPRIGHT", pfUI.bag.right.keys, "TOPLEFT", -default_border*3, 0) + + CreateBackdrop(pfUI.bag.right.sort, default_border) + pfUI.bag.right.sort:SetHeight(12) + pfUI.bag.right.sort:SetWidth(12) + pfUI.bag.right.sort:SetTextColor(1,1,.25,1) + pfUI.bag.right.sort:SetFont(pfUI.font_default, C.global.font_size, "OUTLINE") + pfUI.bag.right.sort.texture = pfUI.bag.right.sort:CreateTexture("pfBagArrowUp") + pfUI.bag.right.sort.texture:SetTexture(pfUI.media["img:sort"]) + pfUI.bag.right.sort.texture:ClearAllPoints() + pfUI.bag.right.sort.texture:SetPoint("TOPLEFT", pfUI.bag.right.sort, "TOPLEFT", 2, -2) + pfUI.bag.right.sort.texture:SetPoint("BOTTOMRIGHT", pfUI.bag.right.sort, "BOTTOMRIGHT", -2, 2) + pfUI.bag.right.sort.texture:SetVertexColor(.25,.25,.25,1) + + pfUI.bag.right.sort:SetScript("OnEnter", function () + pfUI.bag.right.sort.backdrop:SetBackdropBorderColor(1,1,.25,1) + pfUI.bag.right.sort.texture:SetVertexColor(1,1,.25,1) + GameTooltip:SetOwner(this, "ANCHOR_RIGHT") + GameTooltip:SetText(GetAddOnMetadata("Bag_Sort","Title")) + GameTooltip:AddLine(GetAddOnMetadata("Bag_Sort","Notes"),1,1,1) + GameTooltip:Show() + end) + + pfUI.bag.right.sort:SetScript("OnLeave", function () + CreateBackdrop(pfUI.bag.right.sort) + pfUI.bag.right.sort.texture:SetVertexColor(.25,.25,.25,1) + if GameTooltip:IsOwned(this) then + GameTooltip:Hide() + end + end) + + pfUI.bag.right.sort:SetScript("OnClick", function() + BS_slashBagSortHandler() + end) + + pfUI.bag.right.search:ClearAllPoints() + pfUI.bag.right.search:SetPoint("TOPLEFT", pfUI.bag.right, "TOPLEFT", default_border, -default_border) + pfUI.bag.right.search:SetPoint("TOPRIGHT", pfUI.bag.right.sort, "TOPLEFT", -default_border*3, -default_border) + end + + -- draw the button + if not pfUI.bag.left.sort then + pfUI.bag.left.sort = CreateFrame("Button", "pfBankSlotSort", UIParent) + pfUI.bag.left.sort:SetParent(pfUI.bag.left) + pfUI.bag.left.sort:SetPoint("TOPRIGHT", pfUI.bag.left.bags, "TOPLEFT", -default_border*3, 0) + + CreateBackdrop(pfUI.bag.left.sort, default_border) + pfUI.bag.left.sort:SetHeight(12) + pfUI.bag.left.sort:SetWidth(12) + pfUI.bag.left.sort:SetTextColor(1,1,.25,1) + pfUI.bag.left.sort:SetFont(pfUI.font_default, C.global.font_size, "OUTLINE") + pfUI.bag.left.sort.texture = pfUI.bag.left.sort:CreateTexture("pfBagArrowUp") + pfUI.bag.left.sort.texture:SetTexture(pfUI.media["img:sort"]) + pfUI.bag.left.sort.texture:ClearAllPoints() + pfUI.bag.left.sort.texture:SetPoint("TOPLEFT", pfUI.bag.left.sort, "TOPLEFT", 2, -2) + pfUI.bag.left.sort.texture:SetPoint("BOTTOMRIGHT", pfUI.bag.left.sort, "BOTTOMRIGHT", -2, 2) + pfUI.bag.left.sort.texture:SetVertexColor(.25,.25,.25,1) + + pfUI.bag.left.sort:SetScript("OnEnter", function () + pfUI.bag.left.sort.backdrop:SetBackdropBorderColor(1,1,.25,1) + pfUI.bag.left.sort.texture:SetVertexColor(1,1,.25,1) + GameTooltip:SetOwner(this, "ANCHOR_RIGHT") + GameTooltip:SetText(GetAddOnMetadata("Bag_Sort","Title")) + GameTooltip:AddLine(GetAddOnMetadata("Bag_Sort","Notes"),1,1,1) + GameTooltip:Show() + end) + + pfUI.bag.left.sort:SetScript("OnLeave", function () + CreateBackdrop(pfUI.bag.left.sort) + pfUI.bag.left.sort.texture:SetVertexColor(.25,.25,.25,1) + if GameTooltip:IsOwned(this) then + GameTooltip:Hide() + end + end) + + pfUI.bag.left.sort:SetScript("OnClick", function() + BS_slashBankSortHandler() + end) + end + end) + end) + HookAddonOrVariable("DruidBarFrame", function() if C.thirdparty.druidbar.enable == "0" then return end local p = ManaBarColor[0]