| contrebasse@98 | 1 local addonName, A = ... | 
| contrebasse@98 | 2 | 
| contrebasse@98 | 3 local SCROLL_ID = 38682 | 
| contrebasse@98 | 4 local ENCHANTING_ID = 7411 | 
| contrebasse@98 | 5 local btn | 
| contrebasse@98 | 6 | 
| contrebasse@98 | 7 local EventsFrame = CreateFrame("Frame",nil,TradeSkillFrame) -- It will be hidden with the TradeSkillFrame | 
| contrebasse@98 | 8 | 
| contrebasse@98 | 9 local function CheckButtonAvailable(arg1) | 
| contrebasse@98 | 10 	if not btn then return end | 
| contrebasse@98 | 11 | 
| contrebasse@98 | 12 	-- Do not manage guild tradeskill | 
| contrebasse@98 | 13 	-- Check that we're still with the enchanting tradeskill | 
| contrebasse@98 | 14 	if IsTradeSkillGuild() or IsTradeSkillLinked() or GetTradeSkillLine() ~= GetSpellInfo(ENCHANTING_ID) then | 
| contrebasse@98 | 15 		btn:Hide() | 
| contrebasse@98 | 16 		return | 
| contrebasse@98 | 17 	end | 
| contrebasse@98 | 18 | 
| contrebasse@98 | 19 	-- Check that the selected recipe can be crafted, and the crafted thing is an enchant | 
| contrebasse@98 | 20 	local index = GetTradeSkillSelectionIndex() | 
| contrebasse@98 | 21 	if not index then | 
| contrebasse@98 | 22 		btn:Hide() | 
| contrebasse@98 | 23 		return | 
| contrebasse@98 | 24 	end | 
| contrebasse@98 | 25 	local _, _, numAvailable, _, serviceType = GetTradeSkillInfo(index) | 
| contrebasse@98 | 26 | 
| contrebasse@98 | 27 	-- serviceType is localised, but nil if an item is created | 
| contrebasse@98 | 28 	if not serviceType then | 
| contrebasse@98 | 29 		btn:Hide() | 
| contrebasse@98 | 30 		return | 
| contrebasse@98 | 31 	end | 
| contrebasse@124 | 32 | 
| contrebasse@98 | 33 	-- Check that there's scrolls in the bags | 
| contrebasse@98 | 34 	local itemCount = GetItemCount(SCROLL_ID) | 
| contrebasse@98 | 35 	if not itemCount or itemCount==0 then | 
| contrebasse@98 | 36 		btn:Disable() | 
| contrebasse@98 | 37 		btn:Show() | 
| contrebasse@98 | 38 		btn:SetText(A.L["Enchant a scroll (0)"]) | 
| contrebasse@98 | 39 		return | 
| contrebasse@98 | 40 	end | 
| contrebasse@98 | 41 	btn:SetText(A.L["Enchant a scroll (%d)"]:format(itemCount)) | 
| contrebasse@124 | 42 | 
| contrebasse@98 | 43 	if numAvailable==0 then | 
| contrebasse@98 | 44 		btn:Disable() | 
| contrebasse@98 | 45 		btn:Show() | 
| contrebasse@98 | 46 		return | 
| contrebasse@98 | 47 	end | 
| contrebasse@98 | 48 | 
| contrebasse@98 | 49 	-- It passed the tests | 
| contrebasse@98 | 50 	btn:Enable() | 
| contrebasse@98 | 51 	btn:Show() | 
| contrebasse@98 | 52 end | 
| contrebasse@98 | 53 EventsFrame:SetScript("OnEvent",CheckButtonAvailable) | 
| contrebasse@98 | 54 EventsFrame:RegisterEvent("BAG_UPDATE") | 
| contrebasse@98 | 55 hooksecurefunc("SelectTradeSkill",CheckButtonAvailable) | 
| contrebasse@98 | 56 | 
| contrebasse@98 | 57 function A.LoadEnchantOnScroll() | 
| contrebasse@98 | 58 	btn = CreateFrame("Button", nil, TradeSkillFrame, "UIPanelButtonTemplate") | 
| contrebasse@98 | 59 	btn:SetSize(168,22) | 
| contrebasse@98 | 60 	btn:SetPoint("TOPRIGHT",TradeSkillCreateButton,"TOPLEFT",0,0) | 
| contrebasse@98 | 61 	btn:SetText(A.L["Enchant on a scroll"]) | 
| contrebasse@128 | 62 	btn:Hide() | 
| contrebasse@124 | 63 | 
| contrebasse@98 | 64 	btn:SetScript("OnClick",function() | 
| contrebasse@98 | 65 		-- from http://wowprogramming.com/utils/xmlbrowser/live/AddOns/Blizzard_TradeSkillUI/Blizzard_TradeSkillUI.xml | 
| contrebasse@98 | 66 		DoTradeSkill(TradeSkillFrame.selectedSkill,1) | 
| contrebasse@124 | 67 | 
| contrebasse@98 | 68 		-- From GnomeWorks/ScrollMaking.lua | 
| contrebasse@98 | 69 		UseItemByName(SCROLL_ID) | 
| contrebasse@98 | 70 	end) | 
| contrebasse@98 | 71 end |