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