adam@0: local _, AskMrRobot = ... yellowfive@11: local L = AskMrRobot.L; adam@0: -- initialize the EnchantTab class adam@0: AskMrRobot.EnchantTab = AskMrRobot.inheritsFrom(AskMrRobot.Frame) adam@0: adam@0: function AskMrRobot.EnchantTab:new(parent) adam@0: adam@0: local tab = AskMrRobot.Frame:new(nil, parent) adam@0: setmetatable(tab, { __index = AskMrRobot.EnchantTab }) adam@0: tab:SetPoint("TOPLEFT") adam@0: tab:SetPoint("BOTTOMRIGHT") adam@0: tab:Hide() adam@0: adam@0: adam@0: local text = tab:CreateFontString("AmrEnchantsText1", "ARTWORK", "GameFontNormalLarge") adam@0: text:SetPoint("TOPLEFT", 0, -5) yellowfive@11: text:SetText(L.AMR_ENCHANTTAB_ENCHANTS) adam@0: adam@0: tab.stamp = AskMrRobot.RobotStamp:new(nil, tab) adam@0: tab.stamp:Hide() yellowfive@11: tab.stamp.smallText:SetText(L.AMR_ENCHANTTAB_100_OPTIMAL) adam@0: tab.stamp:SetPoint("TOPLEFT", text, "BOTTOMLEFT", 2, -15) adam@0: tab.stamp:SetPoint("RIGHT", tab, "RIGHT", -20, 0) adam@0: adam@0: tab.slotHeader = tab:CreateFontString("AmrBadEnchantSlotHeader", "ARTWORK", "GameFontNormal") adam@0: tab.slotHeader:SetPoint("TOPLEFT", "AmrEnchantsText1", "BOTTOMLEFT", 0, -20) yellowfive@11: tab.slotHeader:SetText(L.AMR_ENCHANTTAB_SLOT) adam@0: tab.slotHeader:SetWidth(90) adam@0: tab.slotHeader:SetJustifyH("LEFT") adam@0: adam@0: tab.currentHeader = tab:CreateFontString("AmrBadEnchantCurrentHeader", "ARTWORK", "GameFontNormal") yellowfive@11: tab.currentHeader:SetText(L.AMR_ENCHANTTAB_CURRENT) adam@0: tab.currentHeader:SetPoint("TOPLEFT", "AmrBadEnchantSlotHeader", "TOPLEFT", 100, 0) adam@0: tab.currentHeader:SetWidth(120) adam@0: tab.currentHeader:SetJustifyH("LEFT") adam@0: adam@0: tab.optimizedHeader = tab:CreateFontString("AmrBadEnchantOptimizedHeader", "ARTWORK", "GameFontNormal") adam@0: tab.optimizedHeader:SetPoint("TOPLEFT", "AmrBadEnchantCurrentHeader", "TOPLEFT", 140, 0) adam@0: tab.optimizedHeader:SetPoint("RIGHT", -30, 0) yellowfive@11: tab.optimizedHeader:SetText(L.AMR_ENCHANTTAB_OPTIMIZED) adam@0: tab.optimizedHeader:SetJustifyH("LEFT") adam@0: adam@0: tab.badEnchantSlots = {} adam@0: tab.badEnchantCurrent = {} adam@0: tab.badEnchantOptimized = {} adam@0: adam@17: for i = 1, #AskMrRobot.slotIds do adam@0: local itemText = tab:CreateFontString(nil, "ARTWORK", "GameFontWhite") adam@0: itemText:SetPoint("TOPLEFT", "AmrBadEnchantSlotHeader", "TOPLEFT", 0, -26 * i) adam@0: itemText:SetPoint("BOTTOMRIGHT", "AmrBadEnchantSlotHeader", "BOTTOMRIGHT", 0, -26 * i) adam@0: itemText:SetJustifyH("LEFT") yellowfive@11: itemText:SetText(L.AMR_ENCHANTTAB_TESTSLOT) adam@0: tinsert(tab.badEnchantSlots, itemText) adam@0: adam@0: itemText = AskMrRobot.EnchantLinkText:new(nil, tab) adam@0: itemText:SetPoint("TOPLEFT", "AmrBadEnchantCurrentHeader", "TOPLEFT", 0, -26 * i) adam@0: itemText:SetPoint("BOTTOMRIGHT", "AmrBadEnchantCurrentHeader", "BOTTOMRIGHT", 0, -26 * i) adam@0: tinsert(tab.badEnchantCurrent, itemText) adam@0: adam@0: itemText = AskMrRobot.EnchantLinkIconAndText:new(nil, tab) adam@0: itemText:SetPoint("TOPLEFT", "AmrBadEnchantOptimizedHeader", "TOPLEFT", 0, -26 * i) adam@0: itemText:SetPoint("BOTTOMRIGHT", "AmrBadEnchantOptimizedHeader", "BOTTOMRIGHT", 0, -26 * i) adam@0: tinsert(tab.badEnchantOptimized, itemText) adam@0: end adam@0: adam@0: return tab adam@0: end adam@0: adam@17: function AskMrRobot.EnchantTab:Update() adam@0: adam@0: local i = 1 adam@0: adam@0: -- for all the bad items adam@17: if AskMrRobot.ComparisonResult.enchants then adam@17: for iSlot = 1, #AskMrRobot.slotIds do adam@17: local slotId = AskMrRobot.slotIds[iSlot] adam@17: local badEnchant = AskMrRobot.ComparisonResult.enchants[slotId] adam@17: if badEnchant ~= nil then adam@17: self.badEnchantSlots[i]:SetText(AskMrRobot.slotDisplayText[slotId]) adam@17: self.badEnchantSlots[i]:Show() adam@0: adam@17: self.badEnchantCurrent[i]:SetEnchantId(badEnchant.current) adam@0: adam@17: self.badEnchantOptimized[i]:SetEnchantId(badEnchant.optimized) adam@17: i = i + 1 adam@17: end adam@17: end adam@17: adam@0: end adam@0: adam@0: -- hide / show the headers adam@0: if i == 1 then adam@0: self.optimizedHeader:Hide() adam@0: self.currentHeader:Hide() adam@0: self.slotHeader:Hide() adam@0: self.stamp:Show() adam@0: else adam@0: self.optimizedHeader:Show() adam@0: self.currentHeader:Show() adam@0: self.slotHeader:Show() adam@0: self.stamp:Hide() adam@0: end adam@0: adam@0: -- hide the remaining slots adam@0: while i <= #self.badEnchantSlots do adam@0: self.badEnchantSlots[i]:Hide() adam@0: self.badEnchantCurrent[i]:SetEnchantId(nil) adam@0: self.badEnchantOptimized[i]:SetEnchantId(nil) adam@0: i = i + 1 adam@0: end adam@0: end