comparison ui/ExportTab.lua @ 17:e77e01abce98

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