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
|