From a67d81868570c03243f28ba47319093f5d1f8902 Mon Sep 17 00:00:00 2001 From: Road-block Date: Tue, 5 Mar 2019 00:20:11 +0200 Subject: [PATCH] bags: add bag panel miniactions * add picklock button * add disenchant button * add open container button * add tooltip hints to new and existing mini actions --- img/disenchant.tga | Bin 0 -> 1042 bytes img/empty.tga | Bin 0 -> 1042 bytes img/full.tga | Bin 0 -> 1042 bytes img/picklock.tga | Bin 0 -> 1042 bytes modules/bags.lua | 240 ++++++++++++++++++++++++++++++++++++++++- modules/thirdparty.lua | 30 +++++- 6 files changed, 266 insertions(+), 4 deletions(-) create mode 100644 img/disenchant.tga create mode 100644 img/empty.tga create mode 100644 img/full.tga create mode 100644 img/picklock.tga diff --git a/img/disenchant.tga b/img/disenchant.tga new file mode 100644 index 0000000000000000000000000000000000000000..3d18348d2d5639326b58bf80d698b6ccf203783c GIT binary patch literal 1042 zcmbV~Pb)-G7{>1~!}yaK8q-V`CTu7R3yH;Tn39dPva(TD%Af3rg)iV67&}{8NQzP{ zWFfwQ*hpC*g}K-7x!rR+WEPzI&HKF1dEfWkJNGzFjbm2YNjrt4$^H^O&#Q;5@B4A} z5n~XImS(^2=S=)s{3SSpL-LGj(Cz4Tq6?ZmM}9$U`DI25e+%|CPy57XIL3R08+d~U zydu$s1<0FO_zB3FT#@}X@bH5r&3e%f#x9t5jbrKEV|G8e&Z-cg7*Q>;0j@)@Z1s2IjlwM4sh4;P8zCjDb^vdhlC<&c$lfx1!jSD( z)67Xh@ZYG0zC7&V)m7`UeQL*H*m#-+U68vc&bAe@YJVuK(0HZ=eU9s<>9;za`it$bm!6C)XWg4U?-ee kMBjt%XEyX2(MPZeJ@V|u4BfX$c{&rVZ@mZ;cHMvV7rL7LlmGw# literal 0 HcmV?d00001 diff --git a/img/empty.tga b/img/empty.tga new file mode 100644 index 0000000000000000000000000000000000000000..203510bf3984cf8f73cd436a75edf65d64d6e91e GIT binary patch literal 1042 zcmb`Fu}T9$6h$W*Vibf03o#H7EUYX7DeSbh4ypVBNfE))AF%NU`~WRtW4aW<(!xe! zBUl(n5flp%0>Q#v&)v+pldwdI4xGF<_w9XeXEw&n8MguxnDxBd{Ut_GlnujhVH!M> zgJirNC=D8T?|+~}{g7wp{dZ-bLw|u&@@g8?_CfvMsqd!vpQ%-R-Os5lLK|;H?7^0+ zBWeDx{kF#yF{>Uk`tRiX4?pkTgdtSunIUdM$$=J-f1jVd?%)Xunon%OC&<4Y;_U4Y#24sQ)BG%}4J;e19Wn@{7I#y8rSNHfWPcT(f6i DkD*?h literal 0 HcmV?d00001 diff --git a/img/full.tga b/img/full.tga new file mode 100644 index 0000000000000000000000000000000000000000..963b519a1d8eec834be4be0e707d72ad8977ead5 GIT binary patch literal 1042 zcmb`EJxfAS7{`w#T0wBJ$swqz$svfq&F>&ieSr{csIAY?*wP1R$)z=LHgJg|5LyH$ z%ca1u5bpK&kNem`E*jbcKc2VqKhJq_ZpE1eE^s?*mM!C>C`yN6n4JY{GVnV-9;h1J zpnaOdBmEj{SN*e+XQ;oz1#u+_dPkuBKj@bd^gViIzwXEM)}etm!grxyeM*}DXMMcK zEk3P17SumT_uqQkSg;)7qfdguaK~ex6?ccLm3A3g;eG;uC0V zwv5=HuQT7lcT5NW0&g$^%k^*Jv|evWc@xg)z2mQ88xG+aE+GebsDo@WUwSj@MQFhg i2Ji*4Pf$LL=ilRh{?D}LS+fOt|AQIqqEDG-89xS77)@^g literal 0 HcmV?d00001 diff --git a/img/picklock.tga b/img/picklock.tga new file mode 100644 index 0000000000000000000000000000000000000000..bf2b6e7b144c130f4fc2ec0d420965a32f37e38d GIT binary patch literal 1042 zcmbV~F-t;G6vuB383ghOMQRFKqs5`E#Zhn$mx?}slMR8?H)tx_T-*c;A!u}wmbQij zhiELaLCOsEy?!U&h0EbR6EFO@_nh*72Rq^Ohk4zf7)N@?Kr&Ko5pca 0) + local show_picklock = (frame.picklock:GetID() > 0) + if not show_disenchant then + frame.disenchant:Hide() + frame.picklock:SetPoint("TOPRIGHT", frame.open, "TOPLEFT", -default_border*3, 0) + else + frame.disenchant:Show() + frame.picklock:SetPoint("TOPRIGHT", frame.disenchant, "TOPLEFT", -default_border*3, 0) + end + if not show_picklock then + frame.picklock:Hide() + if show_disenchant then + frame.keys:SetPoint("TOPRIGHT", frame.disenchant, "TOPLEFT", -default_border*3, 0) + else + frame.keys:SetPoint("TOPRIGHT", frame.open, "TOPLEFT", -default_border*3, 0) + end + else + frame.picklock:Show() + frame.keys:SetPoint("TOPRIGHT", frame.picklock, "TOPLEFT", -default_border*3, 0) + end + end + + function pfUI.bag:RefreshSpells() + if not (pfUI.bag and pfUI.bag.right) then return end + for tabIndex = 1, GetNumSpellTabs() do + local _, _, offset, numSpells = GetSpellTabInfo(tabIndex) + for spellIndex = offset + 1, offset + numSpells do + local spellTexture = GetSpellTexture(spellIndex, BOOKTYPE_SPELL) + -- scan for disenchant and pick lock + for texture, widget in pairs(knownInventorySpellTextures) do + if strfind(spellTexture, texture) and pfUI.bag.right[widget.frame] then + pfUI.bag.right[widget.frame]:SetID(spellIndex) + end + end + end + end + pfUI.bag:ReanchorAdditions() + end + function pfUI.bag:CreateAdditions(frame) -- bag additions if frame == pfUI.bag.right then @@ -551,11 +631,17 @@ pfUI:RegisterModule("bags", function () frame.bags:SetScript("OnEnter", function () frame.bags.backdrop:SetBackdropBorderColor(1,1,.25,1) frame.bags.texture:SetVertexColor(1,1,.25,1) + GameTooltip:SetOwner(this, "ANCHOR_RIGHT") + GameTooltip:SetText(_G.TUTORIAL_TITLE10) + GameTooltip:Show() end) frame.bags:SetScript("OnLeave", function () CreateBackdrop(frame.bags, default_border) frame.bags.texture:SetVertexColor(.25,.25,.25,1) + if GameTooltip:IsOwned(this) then + GameTooltip:Hide() + end end) frame.bags:SetScript("OnClick", function() @@ -567,10 +653,146 @@ pfUI:RegisterModule("bags", function () end) end + -- open button + if not frame.open then + frame.open = CreateFrame("Button", "pfBagSlotOpen", frame) + frame.open:SetPoint("TOPRIGHT", frame.bags, "TOPLEFT", -default_border*3, 0) + CreateBackdrop(frame.open, default_border) + frame.open:SetHeight(12) + frame.open:SetWidth(12) + frame.open:SetTextColor(1,1,.25,1) + frame.open:SetFont(pfUI.font_default, C.global.font_size, "OUTLINE") + frame.open.texture = frame.open:CreateTexture("pfBagOpenContainer") + frame.open.texture:SetTexture("Interface\\AddOns\\pfUI\\img\\empty") + frame.open.texture:ClearAllPoints() + frame.open.texture:SetPoint("TOPLEFT", frame.open, "TOPLEFT", 3, -1) + frame.open.texture:SetPoint("BOTTOMRIGHT", frame.open, "BOTTOMRIGHT", -3, 1) + frame.open.texture:SetVertexColor(.25,.25,.25,1) + + frame.open:SetScript("OnEnter", function () + frame.open.backdrop:SetBackdropBorderColor(1,1,.25,1) + frame.open.texture:SetVertexColor(1,1,.25,1) + GameTooltip:SetOwner(this, "ANCHOR_RIGHT") + if openable.bag and openable.slot then + --GameTooltip:SetBagItem(openable.bag, openable.slot) -- alternative for full container tooltip + GameTooltip:SetText(openable.name) + else + GameTooltip:SetText(_G.EMPTY) + end + GameTooltip:Show() + end) + + frame.open:SetScript("OnLeave", function () + CreateBackdrop(frame.open, default_border) + frame.open.texture:SetVertexColor(.25,.25,.25,1) + if GameTooltip:IsOwned(this) then + GameTooltip:Hide() + end + end) + + frame.open:SetScript("OnClick", function() + if openable.bag and openable.slot then + ClearCursor() + if MerchantFrame:IsShown() then + HideUIPanel(MerchantFrame) + end + UseContainerItem(openable.bag, openable.slot) + end + end) + end + + -- disenchant button + if not frame.disenchant then + frame.disenchant = CreateFrame("Button", "pfBagSlotDisenchant", frame) + frame.disenchant:SetPoint("TOPRIGHT", frame.open, "TOPLEFT", -default_border*3, 0) + CreateBackdrop(frame.disenchant, default_border) + frame.disenchant:SetHeight(12) + frame.disenchant:SetWidth(12) + frame.disenchant:SetTextColor(1,1,.25,1) + frame.disenchant:SetFont(pfUI.font_default, C.global.font_size, "OUTLINE") + frame.disenchant.texture = frame.disenchant:CreateTexture("pfBagDisenchant") + frame.disenchant.texture:SetTexture("Interface\\AddOns\\pfUI\\img\\disenchant") + frame.disenchant.texture:ClearAllPoints() + frame.disenchant.texture:SetPoint("TOPLEFT", frame.disenchant, "TOPLEFT", 3, -1) + frame.disenchant.texture:SetPoint("BOTTOMRIGHT", frame.disenchant, "BOTTOMRIGHT", -3, 1) + frame.disenchant.texture:SetVertexColor(.25,.25,.25,1) + + frame.disenchant:SetScript("OnEnter", function () + frame.disenchant.backdrop:SetBackdropBorderColor(1,1,.25,1) + frame.disenchant.texture:SetVertexColor(1,1,.25,1) + local id = this:GetID() + if id and id > 0 then + local name = GetSpellName(id, BOOKTYPE_SPELL) + GameTooltip:SetOwner(this, "ANCHOR_RIGHT") + GameTooltip:SetText(name) + GameTooltip:Show() + end + end) + + frame.disenchant:SetScript("OnLeave", function () + CreateBackdrop(frame.disenchant, default_border) + frame.disenchant.texture:SetVertexColor(.25,.25,.25,1) + if GameTooltip:IsOwned(this) then + GameTooltip:Hide() + end + end) + + frame.disenchant:SetScript("OnClick", function() + local id = this:GetID() + if id and id > 0 then + CastSpell(id,BOOKTYPE_SPELL) + end + end) + end + + -- pick lock button + if not frame.picklock then + frame.picklock = CreateFrame("Button", "pfBagSlotPicklock", frame) + frame.picklock:SetPoint("TOPRIGHT", frame.disenchant, "TOPLEFT", -default_border*3, 0) + CreateBackdrop(frame.picklock, default_border) + frame.picklock:SetHeight(12) + frame.picklock:SetWidth(12) + frame.picklock:SetTextColor(1,1,.25,1) + frame.picklock:SetFont(pfUI.font_default, C.global.font_size, "OUTLINE") + frame.picklock.texture = frame.picklock:CreateTexture("pfBagPicklock") + frame.picklock.texture:SetTexture("Interface\\AddOns\\pfUI\\img\\picklock") + frame.picklock.texture:ClearAllPoints() + frame.picklock.texture:SetPoint("TOPLEFT", frame.picklock, "TOPLEFT", 3, -1) + frame.picklock.texture:SetPoint("BOTTOMRIGHT", frame.picklock, "BOTTOMRIGHT", -3, 1) + frame.picklock.texture:SetVertexColor(.25,.25,.25,1) + + frame.picklock:SetScript("OnEnter", function () + frame.picklock.backdrop:SetBackdropBorderColor(1,1,.25,1) + frame.picklock.texture:SetVertexColor(1,1,.25,1) + local id = this:GetID() + if id and id > 0 then + local name = GetSpellName(id, BOOKTYPE_SPELL) + GameTooltip:SetOwner(this, "ANCHOR_RIGHT") + GameTooltip:SetText(name) + GameTooltip:Show() + end + end) + + frame.picklock:SetScript("OnLeave", function () + CreateBackdrop(frame.picklock, default_border) + frame.picklock.texture:SetVertexColor(.25,.25,.25,1) + if GameTooltip:IsOwned(this) then + GameTooltip:Hide() + end + end) + + frame.picklock:SetScript("OnClick", function() + local id = this:GetID() + if id and id > 0 then + CastSpell(id,BOOKTYPE_SPELL) + end + end) + end + -- key button if not frame.keys then frame.keys = CreateFrame("Button", "pfBagSlotShow", frame) - frame.keys:SetPoint("TOPRIGHT", frame.bags, "TOPLEFT", -default_border*3, 0) + frame.keys:SetPoint("TOPRIGHT", frame.picklock, "TOPLEFT", -default_border*3, 0) CreateBackdrop(frame.keys, default_border) frame.keys:SetHeight(12) frame.keys:SetWidth(12) @@ -586,11 +808,17 @@ pfUI:RegisterModule("bags", function () frame.keys:SetScript("OnEnter", function () frame.keys.backdrop:SetBackdropBorderColor(1,1,.25,1) frame.keys.texture:SetVertexColor(1,1,.25,1) + GameTooltip:SetOwner(this, "ANCHOR_RIGHT") + GameTooltip:SetText(_G.KEYRING) + GameTooltip:Show() end) frame.keys:SetScript("OnLeave", function () CreateBackdrop(frame.keys, default_border) frame.keys.texture:SetVertexColor(.25,.25,.25,1) + if GameTooltip:IsOwned(this) then + GameTooltip:Hide() + end end) frame.keys:SetScript("OnClick", function() @@ -710,11 +938,17 @@ pfUI:RegisterModule("bags", function () frame.bags:SetScript("OnEnter", function () frame.bags.backdrop:SetBackdropBorderColor(1,1,.25,1) frame.bags.texture:SetVertexColor(1,1,.25,1) + GameTooltip:SetOwner(this, "ANCHOR_RIGHT") + GameTooltip:SetText(_G.TUTORIAL_TITLE10) + GameTooltip:Show() end) frame.bags:SetScript("OnLeave", function () CreateBackdrop(frame.bags, default_border) frame.bags.texture:SetVertexColor(.25,.25,.25,1) + if GameTooltip:IsOwned(this) then + GameTooltip:Hide() + end end) frame.bags:SetScript("OnClick", function() diff --git a/modules/thirdparty.lua b/modules/thirdparty.lua index 0bb1e358..738adca0 100644 --- a/modules/thirdparty.lua +++ b/modules/thirdparty.lua @@ -505,11 +505,18 @@ pfUI:RegisterModule("thirdparty", function () 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("SortBags","Title")) + GameTooltip:AddLine(GetAddOnMetadata("SortBags","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() @@ -542,11 +549,18 @@ pfUI:RegisterModule("thirdparty", function () 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("SortBags","Title")) + GameTooltip:AddLine(GetAddOnMetadata("SortBags","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() @@ -559,9 +573,9 @@ pfUI:RegisterModule("thirdparty", function () HookAddonOrVariable("MrPlow", function() if C.thirdparty.mrplow.enable == "0" then return end - pfUI.thirdparty.bagsort = "mrplow" -- dont't check for sortbags, use mrplow as default local MrPlowL = AceLibrary and AceLibrary("AceLocale-2.2"):new("MrPlow") if not (MrPlowL and MrPlowL["Bank"]) then return end + pfUI.thirdparty.bagsort = "mrplow" -- dont't check for sortbags, use mrplow as default pfUI.thirdparty.mrplow = CreateFrame("Frame", nil) pfUI.thirdparty.mrplow:RegisterEvent("PLAYER_ENTERING_WORLD") @@ -600,11 +614,18 @@ pfUI:RegisterModule("thirdparty", function () 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(MrPlowL["Mr Plow"]) + GameTooltip:AddLine(MrPlowL["The Works"],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() @@ -637,11 +658,18 @@ pfUI:RegisterModule("thirdparty", function () 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(MrPlowL["Mr Plow"]) + GameTooltip:AddLine(MrPlowL["Bank"],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()