annotate 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
rev   line source
adam@0 1 local _, AskMrRobot = ...
adam@0 2
adam@0 3 -- initialize the ExportTab class
adam@0 4 AskMrRobot.ExportTab = AskMrRobot.inheritsFrom(AskMrRobot.Frame)
adam@0 5
adam@0 6 -- helper to create text for this tab
adam@0 7 local function CreateText(state, tab, font, relativeTo, xOffset, yOffset, text)
adam@0 8 local t = tab:CreateFontString(nil, "ARTWORK", font)
adam@0 9 t:SetPoint("TOPLEFT", relativeTo, "BOTTOMLEFT", xOffset, yOffset)
adam@0 10 t:SetPoint("RIGHT", tab, "RIGHT", -25, 0)
adam@0 11 t:SetWidth(t:GetWidth())
adam@0 12 t:SetJustifyH("LEFT")
adam@0 13 t:SetText(text)
adam@0 14
adam@0 15 if (state ~= nil) then
adam@0 16 table.insert(state, t)
adam@0 17 end
adam@0 18
adam@0 19 return t
adam@0 20 end
adam@0 21
adam@0 22 function AskMrRobot.ExportTab:new(parent)
adam@0 23
adam@0 24 local tab = AskMrRobot.Frame:new(nil, parent)
adam@0 25 setmetatable(tab, { __index = AskMrRobot.ExportTab })
adam@0 26 tab:SetPoint("TOPLEFT")
adam@0 27 tab:SetPoint("BOTTOMRIGHT")
adam@0 28 tab:Hide()
adam@0 29
adam@0 30 -- 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 31 tab.manualElements = {}
adam@0 32 tab.autoElements = {}
adam@0 33
adam@0 34 local text = tab:CreateFontString(nil, "ARTWORK", "GameFontNormalLarge")
adam@0 35 text:SetPoint("TOPLEFT", 0, -5)
adam@0 36 text:SetText("Export Gear for Best in Bags")
adam@0 37
adam@0 38 local chooseText = CreateText(nil, tab, "GameFontWhite", text, 0, -15, "Choose a method:")
adam@0 39 chooseText:SetJustifyV("MIDDLE")
adam@0 40 chooseText:SetHeight(30)
adam@0 41
adam@0 42 local btn = CreateFrame("Button", "AmrExportManual", tab, "UIPanelButtonTemplate")
adam@0 43 btn:SetPoint("TOPLEFT", text, "BOTTOMLEFT", 125, -15)
adam@0 44 btn:SetText("Copy/Paste")
adam@0 45 btn:SetWidth(120)
adam@0 46 btn:SetHeight(30)
adam@0 47 tab.btnManual = btn
adam@0 48
adam@0 49 btn:SetScript("OnClick", function()
adam@0 50 AmrOptions.exportToClient = false
adam@0 51 tab:Update()
adam@0 52 end)
adam@0 53
adam@0 54 btn = CreateFrame("Button", "AmrExportAuto", tab, "UIPanelButtonTemplate")
adam@0 55 btn:SetPoint("TOPLEFT", text, "BOTTOMLEFT", 275, -15)
adam@0 56 btn:SetText("AMR Client")
adam@0 57 btn:SetWidth(120)
adam@0 58 btn:SetHeight(30)
adam@0 59 tab.btnAuto = btn
adam@0 60
adam@0 61 btn:SetScript("OnClick", function()
adam@0 62 AmrOptions.exportToClient = true
adam@0 63 tab:Update()
adam@0 64 end)
adam@0 65
adam@0 66 -- copy/paste
adam@0 67 text = CreateText(tab.manualElements, tab, "GameFontNormalLarge", chooseText, 0, -20, "COPY/PASTE EXPORT")
adam@0 68 local text2 = CreateText(tab.manualElements, tab, "GameFontWhite", text, 0, -15, "1. Open your bank")
adam@0 69 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 70
adam@0 71 local txtExportString = CreateFrame("ScrollFrame", "AmrScrollFrame", tab, "InputScrollFrameTemplate")
adam@0 72 txtExportString:SetPoint("TOPLEFT", text, "BOTTOMLEFT", 12, -10)
adam@0 73 txtExportString:SetPoint("RIGHT", -25, 0)
adam@0 74 txtExportString:SetWidth(txtExportString:GetWidth())
adam@0 75 txtExportString:SetHeight(50)
adam@0 76 txtExportString.EditBox:SetWidth(txtExportString:GetWidth())
adam@0 77 txtExportString.EditBox:SetMaxLetters(0)
adam@0 78 txtExportString.CharCount:Hide()
adam@0 79 tab.txtExportString = txtExportString
adam@0 80 table.insert(tab.manualElements, txtExportString)
adam@0 81
adam@0 82 txtExportString.EditBox:SetScript("OnEscapePressed", function()
adam@0 83 AskMrRobot_ReforgeFrame:Hide()
adam@0 84 end)
adam@0 85
adam@0 86 text = CreateText(tab.manualElements, tab, "GameFontWhite", txtExportString, -12, -20, "3. Go to AskMrRobot.com and paste into the IMPORT window")
adam@0 87 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 88
adam@0 89 local image = tab:CreateTexture(nil, "BACKGROUND")
adam@0 90 image:SetPoint("TOPLEFT", text2, "BOTTOMLEFT", 2, -10)
adam@0 91 image:SetTexture("Interface\\AddOns\\AskMrRobot\\Media\\BiBScreen")
adam@0 92 table.insert(tab.manualElements, image)
adam@0 93
adam@0 94 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 95
adam@0 96 btn = CreateFrame("Button", "AmrUpdateExportString", tab, "UIPanelButtonTemplate")
adam@0 97 btn:SetPoint("TOPLEFT", text, "BOTTOMLEFT", 0, -5)
adam@0 98 btn:SetText("Update")
adam@0 99 btn:SetWidth(120)
adam@0 100 btn:SetHeight(25)
adam@0 101 table.insert(tab.manualElements, btn)
adam@0 102
adam@0 103 btn:SetScript("OnClick", function()
adam@0 104 tab:Update()
adam@0 105 end)
adam@0 106
adam@0 107 -- amr client
adam@0 108 text = CreateText(tab.autoElements, tab, "GameFontNormalLarge", chooseText, 0, -20, "AMR CLIENT EXPORT")
adam@0 109 text2 = CreateText(tab.autoElements, tab, "GameFontWhite", text, 0, -15, "1. Open your bank")
adam@0 110 text = CreateText(tab.autoElements, tab, "GameFontWhite", text2, 0, -15, "2. Press the button below to update your AskMrRobot.lua file")
adam@0 111
adam@0 112 btn = CreateFrame("Button", "AmrExportFile", tab, "UIPanelButtonTemplate")
adam@0 113 btn:SetPoint("TOPLEFT", text, "BOTTOMLEFT", 12, -10)
adam@0 114 btn:SetText("Export to File")
adam@0 115 btn:SetWidth(180)
adam@0 116 btn:SetHeight(25)
adam@0 117 table.insert(tab.autoElements, btn)
adam@0 118
adam@0 119 btn:SetScript("OnClick", function()
adam@0 120 AskMrRobot.SaveAll()
adam@0 121 ReloadUI()
adam@0 122 end)
adam@0 123
adam@0 124 text = CreateText(tab.autoElements, tab, "GameFontWhite", btn, -12, -20, "3. Go to AskMrRobot.com and press REFRESH")
adam@0 125 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 126
adam@0 127 image = tab:CreateTexture(nil, "BACKGROUND")
adam@0 128 image:SetPoint("TOPLEFT", text2, "BOTTOMLEFT", 2, -10)
adam@0 129 image:SetTexture("Interface\\AddOns\\AskMrRobot\\Media\\BiBScreen")
adam@0 130 table.insert(tab.autoElements, image)
adam@0 131
adam@0 132 tab:SetScript("OnShow", function()
adam@0 133 tab:Update()
adam@0 134 end)
adam@0 135
adam@0 136 return tab
adam@0 137 end
adam@0 138
adam@0 139 -- update the panel and state
adam@0 140 function AskMrRobot.ExportTab:Update()
adam@0 141
adam@0 142 if (AmrOptions.exportToClient) then
adam@0 143 for i, v in ipairs(self.manualElements) do v:Hide() end
adam@0 144 for i, v in ipairs(self.autoElements) do v:Show() end
adam@0 145 self.btnManual:UnlockHighlight()
adam@0 146 self.btnAuto:LockHighlight()
adam@0 147 else
adam@0 148 for i, v in ipairs(self.autoElements) do v:Hide() end
adam@0 149 for i, v in ipairs(self.manualElements) do v:Show() end
adam@0 150 self.btnAuto:UnlockHighlight()
adam@0 151 self.btnManual:LockHighlight()
adam@0 152
adam@0 153 AskMrRobot.SaveAll()
adam@0 154 self.txtExportString.EditBox:SetText(AskMrRobot.ExportToString())
adam@0 155 self.txtExportString.EditBox:HighlightText()
adam@0 156 self.txtExportString.EditBox:SetFocus()
adam@0 157 end
adam@0 158 end