adam@0: local _, AskMrRobot = ... yellowfive@11: local L = AskMrRobot.L; 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) yellowfive@11: text:SetText(L.AMR_EXPORTTAB_EXPORT_BB) 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) yellowfive@11: btn:SetText(L.AMR_EXPORTTAB_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) yellowfive@11: btn:SetText(L.AMR_EXPORTTAB_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 yellowfive@11: text = CreateText(tab.manualElements, tab, "GameFontNormalLarge", chooseText, 0, -20, L.AMR_EXPORTTAB_COPY_PASTE_EXPORT) yellowfive@11: local text2 = CreateText(tab.manualElements, tab, "GameFontWhite", text, 0, -15, L.AMR_EXPORTTAB_COPY_PASTE_EXPORT_1) yellowfive@11: text = CreateText(tab.manualElements, tab, "GameFontWhite", text2, 0, -15, L.AMR_EXPORTTAB_COPY_PASTE_EXPORT_2) 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: yellowfive@11: text = CreateText(tab.manualElements, tab, "GameFontWhite", txtExportString, -12, -20, L.AMR_EXPORTTAB_COPY_PASTE_EXPORT_3) yellowfive@11: text2 = CreateText(tab.manualElements, tab, "GameFontWhite", text, 10, -5, L.AMR_EXPORTTAB_COPY_PASTE_EXPORT_4) 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: yellowfive@11: text = CreateText(tab.manualElements, tab, "GameFontWhite", text2, 0, -120, L.AMR_EXPORTTAB_COPY_PASTE_EXPORT_NOTE) 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 yellowfive@11: text = CreateText(tab.autoElements, tab, "GameFontNormalLarge", chooseText, 0, -20, L.AMR_EXPORTTAB_AMR_CLIENT_EXPORT) yellowfive@11: text2 = CreateText(tab.autoElements, tab, "GameFontWhite", text, 0, -15, L.AMR_EXPORTTAB_AMR_CLIENT_EXPORT_1) yellowfive@11: text = CreateText(tab.autoElements, tab, "GameFontWhite", text2, 0, -15, L.AMR_EXPORTTAB_AMR_CLIENT_EXPORT_2) 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: yellowfive@11: text = CreateText(tab.autoElements, tab, "GameFontWhite", btn, -12, -20, L.AMR_EXPORTTAB_AMR_CLIENT_EXPORT_3) yellowfive@11: text2 = CreateText(tab.autoElements, tab, "GameFontWhite", text, 10, -5, L.AMR_EXPORTTAB_AMR_CLIENT_EXPORT_4) 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