annotate ui/EnchantTab.lua @ 11:ece9167c0d1c v1.2.14.0

Localization support, combat log features (wipe command, aura/pet tracking, and realm detection).
author yellowfive
date Thu, 10 Jul 2014 12:24:59 -0700
parents ec731d2fe6ba
children e77e01abce98
rev   line source
adam@0 1 local _, AskMrRobot = ...
yellowfive@11 2 local L = AskMrRobot.L;
adam@0 3 -- initialize the EnchantTab class
adam@0 4 AskMrRobot.EnchantTab = AskMrRobot.inheritsFrom(AskMrRobot.Frame)
adam@0 5
adam@0 6 function AskMrRobot.EnchantTab:new(parent)
adam@0 7
adam@0 8 local tab = AskMrRobot.Frame:new(nil, parent)
adam@0 9 setmetatable(tab, { __index = AskMrRobot.EnchantTab })
adam@0 10 tab:SetPoint("TOPLEFT")
adam@0 11 tab:SetPoint("BOTTOMRIGHT")
adam@0 12 tab:Hide()
adam@0 13
adam@0 14
adam@0 15 local text = tab:CreateFontString("AmrEnchantsText1", "ARTWORK", "GameFontNormalLarge")
adam@0 16 text:SetPoint("TOPLEFT", 0, -5)
yellowfive@11 17 text:SetText(L.AMR_ENCHANTTAB_ENCHANTS)
adam@0 18
adam@0 19 tab.stamp = AskMrRobot.RobotStamp:new(nil, tab)
adam@0 20 tab.stamp:Hide()
yellowfive@11 21 tab.stamp.smallText:SetText(L.AMR_ENCHANTTAB_100_OPTIMAL)
adam@0 22 tab.stamp:SetPoint("TOPLEFT", text, "BOTTOMLEFT", 2, -15)
adam@0 23 tab.stamp:SetPoint("RIGHT", tab, "RIGHT", -20, 0)
adam@0 24
adam@0 25 tab.slotHeader = tab:CreateFontString("AmrBadEnchantSlotHeader", "ARTWORK", "GameFontNormal")
adam@0 26 tab.slotHeader:SetPoint("TOPLEFT", "AmrEnchantsText1", "BOTTOMLEFT", 0, -20)
yellowfive@11 27 tab.slotHeader:SetText(L.AMR_ENCHANTTAB_SLOT)
adam@0 28 tab.slotHeader:SetWidth(90)
adam@0 29 tab.slotHeader:SetJustifyH("LEFT")
adam@0 30
adam@0 31 tab.currentHeader = tab:CreateFontString("AmrBadEnchantCurrentHeader", "ARTWORK", "GameFontNormal")
yellowfive@11 32 tab.currentHeader:SetText(L.AMR_ENCHANTTAB_CURRENT)
adam@0 33 tab.currentHeader:SetPoint("TOPLEFT", "AmrBadEnchantSlotHeader", "TOPLEFT", 100, 0)
adam@0 34 tab.currentHeader:SetWidth(120)
adam@0 35 tab.currentHeader:SetJustifyH("LEFT")
adam@0 36
adam@0 37 tab.optimizedHeader = tab:CreateFontString("AmrBadEnchantOptimizedHeader", "ARTWORK", "GameFontNormal")
adam@0 38 tab.optimizedHeader:SetPoint("TOPLEFT", "AmrBadEnchantCurrentHeader", "TOPLEFT", 140, 0)
adam@0 39 tab.optimizedHeader:SetPoint("RIGHT", -30, 0)
yellowfive@11 40 tab.optimizedHeader:SetText(L.AMR_ENCHANTTAB_OPTIMIZED)
adam@0 41 tab.optimizedHeader:SetJustifyH("LEFT")
adam@0 42
adam@0 43 tab.badEnchantSlots = {}
adam@0 44 tab.badEnchantCurrent = {}
adam@0 45 tab.badEnchantOptimized = {}
adam@0 46
adam@0 47 for i = 1, #AskMrRobot.slotNames do
adam@0 48 local itemText = tab:CreateFontString(nil, "ARTWORK", "GameFontWhite")
adam@0 49 itemText:SetPoint("TOPLEFT", "AmrBadEnchantSlotHeader", "TOPLEFT", 0, -26 * i)
adam@0 50 itemText:SetPoint("BOTTOMRIGHT", "AmrBadEnchantSlotHeader", "BOTTOMRIGHT", 0, -26 * i)
adam@0 51 itemText:SetJustifyH("LEFT")
yellowfive@11 52 itemText:SetText(L.AMR_ENCHANTTAB_TESTSLOT)
adam@0 53 tinsert(tab.badEnchantSlots, itemText)
adam@0 54
adam@0 55 itemText = AskMrRobot.EnchantLinkText:new(nil, tab)
adam@0 56 itemText:SetPoint("TOPLEFT", "AmrBadEnchantCurrentHeader", "TOPLEFT", 0, -26 * i)
adam@0 57 itemText:SetPoint("BOTTOMRIGHT", "AmrBadEnchantCurrentHeader", "BOTTOMRIGHT", 0, -26 * i)
adam@0 58 tinsert(tab.badEnchantCurrent, itemText)
adam@0 59
adam@0 60 itemText = AskMrRobot.EnchantLinkIconAndText:new(nil, tab)
adam@0 61 itemText:SetPoint("TOPLEFT", "AmrBadEnchantOptimizedHeader", "TOPLEFT", 0, -26 * i)
adam@0 62 itemText:SetPoint("BOTTOMRIGHT", "AmrBadEnchantOptimizedHeader", "BOTTOMRIGHT", 0, -26 * i)
adam@0 63 tinsert(tab.badEnchantOptimized, itemText)
adam@0 64 end
adam@0 65
adam@0 66 return tab
adam@0 67 end
adam@0 68
adam@0 69 function AskMrRobot.EnchantTab:showBadEnchants()
adam@0 70
adam@0 71 local badEnchants = AskMrRobot.itemDiffs.enchants
adam@0 72
adam@0 73 local i = 1
adam@0 74
adam@0 75 -- for all the bad items
adam@0 76 for slotNum, badEnchant in AskMrRobot.sortSlots(badEnchants) do
adam@0 77 self.badEnchantSlots[i]:SetText(_G[strupper(AskMrRobot.slotNames[slotNum])])
adam@0 78 self.badEnchantSlots[i]:Show()
adam@0 79
adam@0 80 self.badEnchantCurrent[i]:SetEnchantId(badEnchant.current)
adam@0 81
adam@0 82 self.badEnchantOptimized[i]:SetEnchantId(badEnchant.optimized)
adam@0 83 i = i + 1
adam@0 84 end
adam@0 85
adam@0 86 -- hide / show the headers
adam@0 87 if i == 1 then
adam@0 88 self.optimizedHeader:Hide()
adam@0 89 self.currentHeader:Hide()
adam@0 90 self.slotHeader:Hide()
adam@0 91 self.stamp:Show()
adam@0 92 else
adam@0 93 self.optimizedHeader:Show()
adam@0 94 self.currentHeader:Show()
adam@0 95 self.slotHeader:Show()
adam@0 96 self.stamp:Hide()
adam@0 97 end
adam@0 98
adam@0 99 -- hide the remaining slots
adam@0 100 while i <= #self.badEnchantSlots do
adam@0 101 self.badEnchantSlots[i]:Hide()
adam@0 102 self.badEnchantCurrent[i]:SetEnchantId(nil)
adam@0 103 self.badEnchantOptimized[i]:SetEnchantId(nil)
adam@0 104 i = i + 1
adam@0 105 end
adam@0 106 end