adam@0: local _, AskMrRobot = ... adam@0: adam@0: -- initialize the ExportTab class adam@0: AskMrRobot.ExportTab = AskMrRobot.inheritsFrom(AskMrRobot.Frame) adam@0: adam@0: -- helper to create text for this tab adam@0: local function CreateText(state, tab, font, relativeTo, xOffset, yOffset, text) adam@0: local t = tab:CreateFontString(nil, "ARTWORK", font) adam@0: t:SetPoint("TOPLEFT", relativeTo, "BOTTOMLEFT", xOffset, yOffset) adam@0: t:SetPoint("RIGHT", tab, "RIGHT", -25, 0) adam@0: t:SetWidth(t:GetWidth()) adam@0: t:SetJustifyH("LEFT") adam@0: t:SetText(text) adam@0: adam@0: if (state ~= nil) then adam@0: table.insert(state, t) adam@0: end adam@0: adam@0: return t adam@0: end adam@0: adam@0: function AskMrRobot.ExportTab:new(parent) adam@0: adam@0: local tab = AskMrRobot.Frame:new(nil, parent) adam@0: setmetatable(tab, { __index = AskMrRobot.ExportTab }) adam@0: tab:SetPoint("TOPLEFT") adam@0: tab:SetPoint("BOTTOMRIGHT") adam@0: tab:Hide() adam@0: adam@0: -- used to toggle between the two states... could use like, tabs or a UI panel or something, but then I would have to read more pseudo-documentation. adam@0: tab.manualElements = {} adam@0: tab.autoElements = {} adam@0: adam@0: local text = tab:CreateFontString(nil, "ARTWORK", "GameFontNormalLarge") adam@0: text:SetPoint("TOPLEFT", 0, -5) adam@0: text:SetText("Export Gear for Best in Bags") adam@0: adam@0: local chooseText = CreateText(nil, tab, "GameFontWhite", text, 0, -15, "Choose a method:") adam@0: chooseText:SetJustifyV("MIDDLE") adam@0: chooseText:SetHeight(30) adam@0: adam@0: local btn = CreateFrame("Button", "AmrExportManual", tab, "UIPanelButtonTemplate") adam@0: btn:SetPoint("TOPLEFT", text, "BOTTOMLEFT", 125, -15) adam@0: btn:SetText("Copy/Paste") adam@0: btn:SetWidth(120) adam@0: btn:SetHeight(30) adam@0: tab.btnManual = btn adam@0: adam@0: btn:SetScript("OnClick", function() adam@0: AmrOptions.exportToClient = false adam@0: tab:Update() adam@0: end) adam@0: adam@0: btn = CreateFrame("Button", "AmrExportAuto", tab, "UIPanelButtonTemplate") adam@0: btn:SetPoint("TOPLEFT", text, "BOTTOMLEFT", 275, -15) adam@0: btn:SetText("AMR Client") adam@0: btn:SetWidth(120) adam@0: btn:SetHeight(30) adam@0: tab.btnAuto = btn adam@0: adam@0: btn:SetScript("OnClick", function() adam@0: AmrOptions.exportToClient = true adam@0: tab:Update() adam@0: end) adam@0: adam@0: -- copy/paste adam@0: text = CreateText(tab.manualElements, tab, "GameFontNormalLarge", chooseText, 0, -20, "COPY/PASTE EXPORT") adam@0: local text2 = CreateText(tab.manualElements, tab, "GameFontWhite", text, 0, -15, "1. Open your bank") adam@0: text = CreateText(tab.manualElements, tab, "GameFontWhite", text2, 0, -15, "2. Copy the text below by pressing Ctrl+C (or Cmd+C on a Mac)") adam@0: adam@0: local txtExportString = CreateFrame("ScrollFrame", "AmrScrollFrame", tab, "InputScrollFrameTemplate") adam@0: txtExportString:SetPoint("TOPLEFT", text, "BOTTOMLEFT", 12, -10) adam@0: txtExportString:SetPoint("RIGHT", -25, 0) adam@0: txtExportString:SetWidth(txtExportString:GetWidth()) adam@0: txtExportString:SetHeight(50) adam@0: txtExportString.EditBox:SetWidth(txtExportString:GetWidth()) adam@0: txtExportString.EditBox:SetMaxLetters(0) adam@0: txtExportString.CharCount:Hide() adam@0: tab.txtExportString = txtExportString adam@0: table.insert(tab.manualElements, txtExportString) adam@0: adam@0: txtExportString.EditBox:SetScript("OnEscapePressed", function() adam@0: AskMrRobot_ReforgeFrame:Hide() adam@0: end) adam@0: adam@0: text = CreateText(tab.manualElements, tab, "GameFontWhite", txtExportString, -12, -20, "3. Go to AskMrRobot.com and paste into the IMPORT window") adam@0: text2 = CreateText(tab.manualElements, tab, "GameFontWhite", text, 10, -5, "(located to the right of your character name near the top of the web page, see screenshot)") adam@0: adam@0: local image = tab:CreateTexture(nil, "BACKGROUND") adam@0: image:SetPoint("TOPLEFT", text2, "BOTTOMLEFT", 2, -10) adam@0: image:SetTexture("Interface\\AddOns\\AskMrRobot\\Media\\BiBScreen") adam@0: table.insert(tab.manualElements, image) adam@0: adam@0: text = CreateText(tab.manualElements, tab, "GameFontWhite", text2, 0, -120, "NOTE: If you change something while this window is open, press the Update button below to generate a new export string.") adam@0: adam@0: btn = CreateFrame("Button", "AmrUpdateExportString", tab, "UIPanelButtonTemplate") adam@0: btn:SetPoint("TOPLEFT", text, "BOTTOMLEFT", 0, -5) adam@0: btn:SetText("Update") adam@0: btn:SetWidth(120) adam@0: btn:SetHeight(25) adam@0: table.insert(tab.manualElements, btn) adam@0: adam@0: btn:SetScript("OnClick", function() adam@0: tab:Update() adam@0: end) adam@0: adam@0: -- amr client adam@0: text = CreateText(tab.autoElements, tab, "GameFontNormalLarge", chooseText, 0, -20, "AMR CLIENT EXPORT") adam@0: text2 = CreateText(tab.autoElements, tab, "GameFontWhite", text, 0, -15, "1. Open your bank") adam@0: text = CreateText(tab.autoElements, tab, "GameFontWhite", text2, 0, -15, "2. Press the button below to update your AskMrRobot.lua file") adam@0: adam@0: btn = CreateFrame("Button", "AmrExportFile", tab, "UIPanelButtonTemplate") adam@0: btn:SetPoint("TOPLEFT", text, "BOTTOMLEFT", 12, -10) adam@0: btn:SetText("Export to File") adam@0: btn:SetWidth(180) adam@0: btn:SetHeight(25) adam@0: table.insert(tab.autoElements, btn) adam@0: adam@0: btn:SetScript("OnClick", function() adam@0: AskMrRobot.SaveAll() adam@0: ReloadUI() adam@0: end) adam@0: adam@0: text = CreateText(tab.autoElements, tab, "GameFontWhite", btn, -12, -20, "3. Go to AskMrRobot.com and press REFRESH") adam@0: text2 = CreateText(tab.autoElements, tab, "GameFontWhite", text, 10, -5, "(located to the right of your character name near the top of the web page, see screenshot:)") adam@0: adam@0: image = tab:CreateTexture(nil, "BACKGROUND") adam@0: image:SetPoint("TOPLEFT", text2, "BOTTOMLEFT", 2, -10) adam@0: image:SetTexture("Interface\\AddOns\\AskMrRobot\\Media\\BiBScreen") adam@0: table.insert(tab.autoElements, image) adam@0: adam@0: tab:SetScript("OnShow", function() adam@0: tab:Update() adam@0: end) adam@0: adam@0: return tab adam@0: end adam@0: adam@0: -- update the panel and state adam@0: function AskMrRobot.ExportTab:Update() adam@0: adam@0: if (AmrOptions.exportToClient) then adam@0: for i, v in ipairs(self.manualElements) do v:Hide() end adam@0: for i, v in ipairs(self.autoElements) do v:Show() end adam@0: self.btnManual:UnlockHighlight() adam@0: self.btnAuto:LockHighlight() adam@0: else adam@0: for i, v in ipairs(self.autoElements) do v:Hide() end adam@0: for i, v in ipairs(self.manualElements) do v:Show() end adam@0: self.btnAuto:UnlockHighlight() adam@0: self.btnManual:LockHighlight() adam@0: adam@0: AskMrRobot.SaveAll() adam@0: self.txtExportString.EditBox:SetText(AskMrRobot.ExportToString()) adam@0: self.txtExportString.EditBox:HighlightText() adam@0: self.txtExportString.EditBox:SetFocus() adam@0: end adam@0: end