Mercurial > wow > reagentmaker
comparison SecureMenu.lua @ 20:4ea38bae4174
Lots of display arrangements (tooltips and counts)
Corrected an id in data
| author | contrebasse |
|---|---|
| date | Sun, 10 Apr 2011 19:26:33 +0200 |
| parents | f7b23db7bcc6 |
| children | 15123d11fc64 |
comparison
equal
deleted
inserted
replaced
| 19:f7b23db7bcc6 | 20:4ea38bae4174 |
|---|---|
| 7 MenuFrame:SetFrameStrata("DIALOG") | 7 MenuFrame:SetFrameStrata("DIALOG") |
| 8 MenuFrame:EnableMouse(true) | 8 MenuFrame:EnableMouse(true) |
| 9 MenuFrame:SetPoint("CENTER") | 9 MenuFrame:SetPoint("CENTER") |
| 10 tinsert(UISpecialFrames,"ReagentMaker_ExternalFrame") -- make it closable with escape | 10 tinsert(UISpecialFrames,"ReagentMaker_ExternalFrame") -- make it closable with escape |
| 11 | 11 |
| 12 local SCAN_DELAY = 0.2 | |
| 13 local t_throttle = SCAN_DELAY | |
| 14 function MenuFrame.throttleUpdateCounts(self, t_elapsed) | |
| 15 t_throttle = t_throttle - t_elapsed | |
| 16 if t_throttle<0 then | |
| 17 self:SetScript("OnUpdate", nil) | |
| 18 | |
| 19 -- Update counts | |
| 20 MenuFrame.updateCounts() | |
| 21 end | |
| 22 end | |
| 12 MenuFrame:SetScript("OnEvent",function(self,event,...) | 23 MenuFrame:SetScript("OnEvent",function(self,event,...) |
| 13 if event == "TRADE_SKILL_UPDATE" then | 24 if event == "BAG_UPDATE" then |
| 14 MenuFrame.updateCounts() | 25 t_throttle = SCAN_DELAY |
| 26 self:SetScript("OnUpdate", MenuFrame.throttleUpdateCounts) | |
| 15 elseif event == "TRADE_SKILL_CLOSE" or event == "PLAYER_REGEN_DISABLED" then | 27 elseif event == "TRADE_SKILL_CLOSE" or event == "PLAYER_REGEN_DISABLED" then |
| 16 MenuFrame:Hide() | 28 MenuFrame:Hide() |
| 17 end | 29 end |
| 18 end) | 30 end) |
| 19 MenuFrame:RegisterEvent("TRADE_SKILL_CLOSE") | 31 MenuFrame:RegisterEvent("TRADE_SKILL_CLOSE") |
| 20 MenuFrame:RegisterEvent("PLAYER_REGEN_ENABLED") | 32 MenuFrame:RegisterEvent("PLAYER_REGEN_ENABLED") |
| 21 MenuFrame:RegisterEvent("TRADE_SKILL_UPDATE") | 33 MenuFrame:RegisterEvent("BAG_UPDATE") |
| 34 MenuFrame:SetScript("OnEnter",function(self) | |
| 35 if self.reagentLink then | |
| 36 GameTooltip:SetOwner(self) | |
| 37 GameTooltip:SetHyperlink(self.reagentLink) | |
| 38 GameTooltip:Show() | |
| 39 GameTooltip:ClearAllPoints() | |
| 40 GameTooltip:SetPoint("TOPRIGHT",self,"TOPLEFT",10,0) | |
| 41 end | |
| 42 end) | |
| 43 MenuFrame:SetScript("OnLeave",function() | |
| 44 GameTooltip:Hide() | |
| 45 end) | |
| 22 A.MenuFrame = MenuFrame | 46 A.MenuFrame = MenuFrame |
| 23 | 47 |
| 24 -- Background adaptable vertically | 48 -- Background adaptable vertically |
| 25 local bg_top = MenuFrame:CreateTexture(nil,"BACKGROUND",nil,0) | 49 local bg_top = MenuFrame:CreateTexture(nil,"BACKGROUND",nil,0) |
| 26 bg_top:SetTexture("Interface\\LootFrame\\UI-LootPanel") | 50 bg_top:SetTexture("Interface\\LootFrame\\UI-LootPanel") |
| 60 local numActiveEntries = 0 | 84 local numActiveEntries = 0 |
| 61 local menuEntries = {} | 85 local menuEntries = {} |
| 62 | 86 |
| 63 -- Button hovering | 87 -- Button hovering |
| 64 local function btnEntered(btn) | 88 local function btnEntered(btn) |
| 65 --[[ | 89 if btn.numMakable and btn.numMakable>0 then |
| 66 -- Index of the reagent in the recipe, taken from the button name | |
| 67 local reagentRecipeIndex = A.buttonNumber(btn) | |
| 68 | |
| 69 -- ID of the reagent we want to craft | |
| 70 local reagentID = A.link2ID(GetTradeSkillReagentItemLink(GetTradeSkillSelectionIndex(), reagentRecipeIndex)) | |
| 71 | |
| 72 -- Continue only if the reagent is known | |
| 73 if not reagentID or not A.data[reagentID] then return end | |
| 74 --]] | |
| 75 | |
| 76 if btn.numMakable>0 then | |
| 77 btn.textureHighlight:Show() | 90 btn.textureHighlight:Show() |
| 78 end | 91 end |
| 79 | 92 |
| 80 GameTooltip:SetOwner(btn,"ANCHOR_TOPLEFT") | 93 GameTooltip:SetOwner(btn,"ANCHOR_LEFT") |
| 81 GameTooltip:SetHyperlink(btn.reagentLink) | 94 GameTooltip:SetHyperlink(btn.reagentLink) |
| 82 GameTooltip:Show() | 95 GameTooltip:Show() |
| 83 local link, tradeLink = GetSpellLink(btn.spellID) | 96 if btn.spellID then |
| 84 A.tooltipRecipe:SetOwner(GameTooltip) | 97 local link = GetSpellLink(btn.spellID) |
| 85 A.tooltipRecipe:SetHyperlink(link) | 98 if link then |
| 86 A.tooltipRecipe:Show() | 99 A.tooltipRecipe:SetOwner(GameTooltip) |
| 87 A.tooltipRecipe:ClearAllPoints() | 100 A.tooltipRecipe:SetHyperlink(link) |
| 88 A.tooltipRecipe:SetPoint("BOTTOMLEFT",GameTooltip,"BOTTOMRIGHT") | 101 A.tooltipRecipe:Show() |
| 102 A.tooltipRecipe:ClearAllPoints() | |
| 103 A.tooltipRecipe:SetPoint("TOPRIGHT",GameTooltip,"BOTTOMRIGHT") | |
| 104 end | |
| 105 end | |
| 89 end | 106 end |
| 90 local function btnLeft(btn) | 107 local function btnLeft(btn) |
| 91 btn.textureHighlight:Hide() | 108 btn.textureHighlight:Hide() |
| 92 GameTooltip:Hide() | 109 GameTooltip:Hide() |
| 93 A.tooltipRecipe:Hide() | 110 A.tooltipRecipe:Hide() |
| 143 resultNumber:SetJustifyH("LEFT") | 160 resultNumber:SetJustifyH("LEFT") |
| 144 resultNumber:SetJustifyV("TOP") | 161 resultNumber:SetJustifyV("TOP") |
| 145 resultNumber:SetFont("Fonts\\ARIALN.TTF", 12, "OUTLINE") | 162 resultNumber:SetFont("Fonts\\ARIALN.TTF", 12, "OUTLINE") |
| 146 btn.resultNumber = resultNumber | 163 btn.resultNumber = resultNumber |
| 147 | 164 |
| 148 btn:HookScript("OnEnter", btnEntered) | 165 btn:SetScript("OnEnter", btnEntered) |
| 149 btn:HookScript("OnLeave", btnLeft) | 166 btn:SetScript("OnLeave", btnLeft) |
| 150 | 167 |
| 151 return btn | 168 return btn |
| 152 end | 169 end |
| 153 | |
| 154 | 170 |
| 155 local function menuCraftItem() | 171 local function menuCraftItem() |
| 156 action(itemID,reagentIndex,IsShiftKeyDown()) | 172 action(itemID,reagentIndex,IsShiftKeyDown()) |
| 157 end | 173 end |
| 158 | 174 |
| 270 SetPortraitToTexture(itemIcon, texture) | 286 SetPortraitToTexture(itemIcon, texture) |
| 271 TitleText:SetText(name) | 287 TitleText:SetText(name) |
| 272 local color = ITEM_QUALITY_COLORS[quality] | 288 local color = ITEM_QUALITY_COLORS[quality] |
| 273 TitleText:SetTextColor(color.r, color.g, color.b) | 289 TitleText:SetTextColor(color.r, color.g, color.b) |
| 274 | 290 |
| 291 -- Save vars to show the tooltip later | |
| 292 MenuFrame.reagentLink = link | |
| 293 | |
| 275 -- Loop over the available recipes | 294 -- Loop over the available recipes |
| 276 for _,reagent in ipairs(A.data[itemID]) do | 295 for _,reagent in ipairs(A.data[itemID]) do |
| 277 if A.data[itemID].spell then | 296 if A.data[itemID].spell then |
| 278 -- Special spell | 297 -- Special spell |
| 279 menuAddItem(A.data[itemID].spell,itemID,reagent,A.data[itemID].spellID) | 298 menuAddItem(A.data[itemID].spell,itemID,reagent,A.data[itemID].spellID) |
