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