diff ui/ExportTab.lua @ 0:ec731d2fe6ba

Version 1.2.12.0
author Adam tegen <adam.tegen@gmail.com>
date Tue, 20 May 2014 21:43:23 -0500
parents
children ece9167c0d1c
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/ExportTab.lua	Tue May 20 21:43:23 2014 -0500
@@ -0,0 +1,158 @@
+local _, AskMrRobot = ...
+
+-- initialize the ExportTab class
+AskMrRobot.ExportTab = AskMrRobot.inheritsFrom(AskMrRobot.Frame)
+
+-- helper to create text for this tab
+local function CreateText(state, tab, font, relativeTo, xOffset, yOffset, text)
+    local t = tab:CreateFontString(nil, "ARTWORK", font)
+	t:SetPoint("TOPLEFT", relativeTo, "BOTTOMLEFT", xOffset, yOffset)
+	t:SetPoint("RIGHT", tab, "RIGHT", -25, 0)
+	t:SetWidth(t:GetWidth())
+	t:SetJustifyH("LEFT")
+	t:SetText(text)
+    
+    if (state ~= nil) then
+        table.insert(state, t)
+    end
+    
+    return t
+end
+
+function AskMrRobot.ExportTab:new(parent)
+
+	local tab = AskMrRobot.Frame:new(nil, parent)	
+	setmetatable(tab, { __index = AskMrRobot.ExportTab })
+	tab:SetPoint("TOPLEFT")
+	tab:SetPoint("BOTTOMRIGHT")
+	tab:Hide()
+    
+    -- 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.
+    tab.manualElements = {}
+    tab.autoElements = {}
+
+	local text = tab:CreateFontString(nil, "ARTWORK", "GameFontNormalLarge")
+	text:SetPoint("TOPLEFT", 0, -5)
+	text:SetText("Export Gear for Best in Bags")  
+    
+    local chooseText = CreateText(nil, tab, "GameFontWhite", text, 0, -15, "Choose a method:")
+	chooseText:SetJustifyV("MIDDLE")
+    chooseText:SetHeight(30)
+    
+    local btn = CreateFrame("Button", "AmrExportManual", tab, "UIPanelButtonTemplate")
+	btn:SetPoint("TOPLEFT", text, "BOTTOMLEFT", 125, -15)
+	btn:SetText("Copy/Paste")
+	btn:SetWidth(120)
+	btn:SetHeight(30)
+    tab.btnManual = btn
+    
+    btn:SetScript("OnClick", function()
+        AmrOptions.exportToClient = false
+        tab:Update()
+    end)
+    
+    btn = CreateFrame("Button", "AmrExportAuto", tab, "UIPanelButtonTemplate")
+	btn:SetPoint("TOPLEFT", text, "BOTTOMLEFT", 275, -15)
+	btn:SetText("AMR Client")
+	btn:SetWidth(120)
+	btn:SetHeight(30)
+    tab.btnAuto = btn
+    
+    btn:SetScript("OnClick", function()
+        AmrOptions.exportToClient = true
+        tab:Update()
+    end)
+    
+    -- copy/paste
+    text = CreateText(tab.manualElements, tab, "GameFontNormalLarge", chooseText, 0, -20, "COPY/PASTE EXPORT")
+    local text2 = CreateText(tab.manualElements, tab, "GameFontWhite", text, 0, -15, "1. Open your bank")
+    text = CreateText(tab.manualElements, tab, "GameFontWhite", text2, 0, -15, "2. Copy the text below by pressing Ctrl+C (or Cmd+C on a Mac)")
+
+	local txtExportString = CreateFrame("ScrollFrame", "AmrScrollFrame", tab, "InputScrollFrameTemplate")
+	txtExportString:SetPoint("TOPLEFT", text, "BOTTOMLEFT", 12, -10)
+	txtExportString:SetPoint("RIGHT", -25, 0)
+	txtExportString:SetWidth(txtExportString:GetWidth())
+	txtExportString:SetHeight(50)
+	txtExportString.EditBox:SetWidth(txtExportString:GetWidth())
+    txtExportString.EditBox:SetMaxLetters(0)
+	txtExportString.CharCount:Hide()
+	tab.txtExportString = txtExportString
+    table.insert(tab.manualElements, txtExportString)
+    
+    txtExportString.EditBox:SetScript("OnEscapePressed", function()
+        AskMrRobot_ReforgeFrame:Hide()
+    end)
+    
+    text = CreateText(tab.manualElements, tab, "GameFontWhite", txtExportString, -12, -20, "3. Go to AskMrRobot.com and paste into the IMPORT window")
+    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)")
+
+    local image = tab:CreateTexture(nil, "BACKGROUND")
+	image:SetPoint("TOPLEFT", text2, "BOTTOMLEFT", 2, -10)
+	image:SetTexture("Interface\\AddOns\\AskMrRobot\\Media\\BiBScreen")
+    table.insert(tab.manualElements, image)
+    
+    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.")
+    
+    btn = CreateFrame("Button", "AmrUpdateExportString", tab, "UIPanelButtonTemplate")
+	btn:SetPoint("TOPLEFT", text, "BOTTOMLEFT", 0, -5)
+	btn:SetText("Update")
+	btn:SetWidth(120)
+	btn:SetHeight(25)
+    table.insert(tab.manualElements, btn)
+    
+    btn:SetScript("OnClick", function()
+        tab:Update()
+    end)
+    
+    -- amr client
+    text = CreateText(tab.autoElements, tab, "GameFontNormalLarge", chooseText, 0, -20, "AMR CLIENT EXPORT")
+    text2 = CreateText(tab.autoElements, tab, "GameFontWhite", text, 0, -15, "1. Open your bank")
+    text = CreateText(tab.autoElements, tab, "GameFontWhite", text2, 0, -15, "2. Press the button below to update your AskMrRobot.lua file")
+
+    btn = CreateFrame("Button", "AmrExportFile", tab, "UIPanelButtonTemplate")
+	btn:SetPoint("TOPLEFT", text, "BOTTOMLEFT", 12, -10)
+	btn:SetText("Export to File")
+	btn:SetWidth(180)
+	btn:SetHeight(25)
+    table.insert(tab.autoElements, btn)
+    
+    btn:SetScript("OnClick", function()
+        AskMrRobot.SaveAll()
+        ReloadUI()
+    end)
+
+    text = CreateText(tab.autoElements, tab, "GameFontWhite", btn, -12, -20, "3. Go to AskMrRobot.com and press REFRESH")
+    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:)")
+
+    image = tab:CreateTexture(nil, "BACKGROUND")
+	image:SetPoint("TOPLEFT", text2, "BOTTOMLEFT", 2, -10)
+	image:SetTexture("Interface\\AddOns\\AskMrRobot\\Media\\BiBScreen")
+    table.insert(tab.autoElements, image)
+
+    tab:SetScript("OnShow", function()
+        tab:Update()
+	end)
+    
+	return tab
+end
+
+-- update the panel and state
+function AskMrRobot.ExportTab:Update()
+
+    if (AmrOptions.exportToClient) then
+        for i, v in ipairs(self.manualElements) do v:Hide() end
+        for i, v in ipairs(self.autoElements) do v:Show() end
+        self.btnManual:UnlockHighlight()
+        self.btnAuto:LockHighlight()
+    else
+        for i, v in ipairs(self.autoElements) do v:Hide() end
+        for i, v in ipairs(self.manualElements) do v:Show() end
+        self.btnAuto:UnlockHighlight()
+        self.btnManual:LockHighlight()
+        
+        AskMrRobot.SaveAll()
+        self.txtExportString.EditBox:SetText(AskMrRobot.ExportToString())
+        self.txtExportString.EditBox:HighlightText()
+        self.txtExportString.EditBox:SetFocus()
+    end
+end