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