contrebasse@98: local addonName, A = ... contrebasse@98: contrebasse@98: local SCROLL_ID = 38682 contrebasse@98: local ENCHANTING_ID = 7411 contrebasse@98: local btn contrebasse@98: contrebasse@98: local EventsFrame = CreateFrame("Frame",nil,TradeSkillFrame) -- It will be hidden with the TradeSkillFrame contrebasse@98: contrebasse@98: local function CheckButtonAvailable(arg1) contrebasse@98: if not btn then return end contrebasse@98: contrebasse@98: -- Do not manage guild tradeskill contrebasse@98: -- Check that we're still with the enchanting tradeskill contrebasse@98: if IsTradeSkillGuild() or IsTradeSkillLinked() or GetTradeSkillLine() ~= GetSpellInfo(ENCHANTING_ID) then contrebasse@98: btn:Hide() contrebasse@98: return contrebasse@98: end contrebasse@98: contrebasse@98: -- Check that the selected recipe can be crafted, and the crafted thing is an enchant contrebasse@98: local index = GetTradeSkillSelectionIndex() contrebasse@98: if not index then contrebasse@98: btn:Hide() contrebasse@98: return contrebasse@98: end contrebasse@98: local _, _, numAvailable, _, serviceType = GetTradeSkillInfo(index) contrebasse@98: contrebasse@98: -- serviceType is localised, but nil if an item is created contrebasse@98: if not serviceType then contrebasse@98: btn:Hide() contrebasse@98: return contrebasse@98: end contrebasse@98: contrebasse@98: -- Check that there's scrolls in the bags contrebasse@98: local itemCount = GetItemCount(SCROLL_ID) contrebasse@98: if not itemCount or itemCount==0 then contrebasse@98: btn:Disable() contrebasse@98: btn:Show() contrebasse@98: btn:SetText(A.L["Enchant a scroll (0)"]) contrebasse@98: return contrebasse@98: end contrebasse@98: btn:SetText(A.L["Enchant a scroll (%d)"]:format(itemCount)) contrebasse@98: contrebasse@98: if numAvailable==0 then contrebasse@98: btn:Disable() contrebasse@98: btn:Show() contrebasse@98: return contrebasse@98: end contrebasse@98: contrebasse@98: -- It passed the tests contrebasse@98: btn:Enable() contrebasse@98: btn:Show() contrebasse@98: end contrebasse@98: EventsFrame:SetScript("OnEvent",CheckButtonAvailable) contrebasse@98: EventsFrame:RegisterEvent("BAG_UPDATE") contrebasse@98: hooksecurefunc("SelectTradeSkill",CheckButtonAvailable) contrebasse@98: contrebasse@98: function A.LoadEnchantOnScroll() contrebasse@98: btn = CreateFrame("Button", nil, TradeSkillFrame, "UIPanelButtonTemplate") contrebasse@98: btn:SetSize(168,22) contrebasse@98: btn:SetPoint("TOPRIGHT",TradeSkillCreateButton,"TOPLEFT",0,0) contrebasse@98: btn:SetText(A.L["Enchant on a scroll"]) contrebasse@98: btn:Show() contrebasse@98: contrebasse@98: btn:SetScript("OnClick",function() contrebasse@98: -- from http://wowprogramming.com/utils/xmlbrowser/live/AddOns/Blizzard_TradeSkillUI/Blizzard_TradeSkillUI.xml contrebasse@98: DoTradeSkill(TradeSkillFrame.selectedSkill,1) contrebasse@98: contrebasse@98: -- From GnomeWorks/ScrollMaking.lua contrebasse@98: UseItemByName(SCROLL_ID) contrebasse@98: end) contrebasse@98: end