Details | Compare with Previous | View Log
Line No. | Rev | Author | Line |
---|---|---|---|
1 | 2 | Seerah-7 | -- ESOutpost © ZAM Network LLC |
2 | Seerah-7 | -- All Rights Reserved |
|
3 | Seerah-7 | ||
4 | Seerah-7 | local wm = WINDOW_MANAGER |
|
5 | Seerah-7 | local M = ESOutpostMaps |
|
6 | Seerah-7 | ||
7 | Seerah-7 | ||
8 | Seerah-7 | local gui = wm:CreateTopLevelWindow("ESOutpostGUI") |
|
9 | Seerah-7 | gui:SetDimensions(525, 350) |
|
10 | Seerah-7 | gui:SetAnchor(CENTER) |
|
11 | Seerah-7 | gui:SetClampedToScreen(true) |
|
12 | Seerah-7 | gui:SetClampedToScreenInsets(-425, -15, 5, 5) --width of tooltip frame on left == 416 |
|
13 | Seerah-7 | gui:SetMouseEnabled(true) |
|
14 | Seerah-7 | gui:SetMovable(true) |
|
15 | Seerah-7 | gui:SetHandler("OnReceiveDrag", function(self) |
|
16 | Seerah-7 | self:StartMoving() |
|
17 | Seerah-7 | end) |
|
18 | Seerah-7 | gui:SetHandler("OnMouseUp", function(self) |
|
19 | Seerah-7 | self:StopMovingOrResizing() |
|
20 | Seerah-7 | end) |
|
21 | Seerah-7 | gui.bg = wm:CreateControlFromVirtual("ESOutpostBG", gui, "ZO_DefaultBackdrop") |
|
22 | Seerah-7 | ||
23 | Seerah-7 | gui.bg.watermark = wm:CreateControl(nil, gui.bg, CT_TEXTURE) |
|
24 | Seerah-7 | gui.bg.watermark:SetDimensions(300, 300) |
|
25 | Seerah-7 | gui.bg.watermark:SetAnchor(CENTER) |
|
26 | Seerah-7 | gui.bg.watermark:SetTexture("ESOutpost\\ESO-Outpost-Logo.dds") |
|
27 | Seerah-7 | gui.bg.watermark:SetAlpha(.3) |
|
28 | Seerah-7 | ||
29 | Seerah-7 | gui.title = wm:CreateControl(nil, gui, CT_LABEL) |
|
30 | Seerah-7 | gui.title:SetFont("ZoFontCallout") |
|
31 | Seerah-7 | gui.title:SetAnchor(TOP) |
|
32 | Seerah-7 | gui.title:SetText("|cC5C29EESO|rutpost") |
|
33 | Seerah-7 | ||
34 | Seerah-7 | gui.icon = wm:CreateControl(nil, gui, CT_TEXTURE) |
|
35 | Seerah-7 | gui.icon:SetAnchor(TOPLEFT, gui, TOPLEFT, 15, 70) |
|
36 | Seerah-7 | gui.icon:SetDimensions(100, 100) |
|
37 | Seerah-7 | gui.icon:SetTexture("EsoUI\\Art\\ActionBar\\abilityframe64_up.dds") |
|
38 | Seerah-7 | gui.icon.texture = wm:CreateControl(nil, gui.icon, CT_TEXTURE) |
|
39 | Seerah-7 | gui.icon.texture:SetDimensions(90, 90) |
|
40 | Seerah-7 | gui.icon.texture:SetAnchor(CENTER) |
|
41 | Seerah-7 | ||
42 | Seerah-7 | gui.name = wm:CreateControl(nil, gui, CT_LABEL) |
|
43 | Seerah-7 | gui.name:SetFont("ZoFontHeader4") |
|
44 | Seerah-7 | gui.name:SetAnchor(TOPLEFT, gui.icon, TOPRIGHT, 20, 0) |
|
45 | Seerah-7 | gui.name:SetDimensions(365, 32) |
|
46 | Seerah-7 | gui.name:SetWrapMode(TEXT_WRAP_MODE_ELLIPSIS) |
|
47 | Seerah-7 | ||
48 | Seerah-7 | gui.lvl = wm:CreateControl(nil, gui, CT_LABEL) |
|
49 | Seerah-7 | gui.lvl:SetFont("ZoFontHeader2") |
|
50 | Seerah-7 | gui.lvl:SetHeight(26) |
|
51 | Seerah-7 | gui.lvl:SetWrapMode(TEXT_WRAP_MODE_ELLIPSIS) |
|
52 | Seerah-7 | gui.lvl:SetAnchor(TOPLEFT, gui.name, BOTTOMLEFT, 0, 6) |
|
53 | Seerah-7 | gui.lvl:SetText("Level") |
|
54 | Seerah-7 | ||
55 | Seerah-7 | gui.lvlNumbg = wm:CreateControlFromVirtual("ESOutpostLevelBG", gui, "ZO_EditBackdrop") |
|
56 | Seerah-7 | gui.lvlNumbg:SetDimensions(33, 28) |
|
57 | Seerah-7 | gui.lvlNumbg:SetAnchor(LEFT, gui.lvl, RIGHT, 5, 0) |
|
58 | Seerah-7 | gui.lvlNum = wm:CreateControlFromVirtual("ESOutpostLevel", gui.lvlNumbg, "ZO_DefaultEditForBackdrop") |
|
59 | Seerah-7 | gui.lvlNum:SetTextType(TEXT_TYPE_NUMERIC) |
|
60 | Seerah-7 | gui.lvlNum.tooltipText = "Please confirm the level of the item as stated in the tooltip.\nOccasionally, this information as given by the API to ESOutpost is incorrect.\nIf the item has no level, this number should be 0." |
|
61 | Seerah-7 | gui.lvlNum:SetHandler("OnMouseEnter", ZO_Options_OnMouseEnter) |
|
62 | Seerah-7 | gui.lvlNum:SetHandler("OnMouseExit", ZO_Options_OnMouseExit) |
|
63 | 3 | Seerah-7 | gui.lvlNum:SetHandler("OnEscape", gui.lvlNum.LoseFocus) |
64 | Seerah-7 | gui.lvlNum:SetHandler("OnTab", function() |
|
65 | Seerah-7 | if not gui.traitValue:IsHidden() then |
|
66 | Seerah-7 | gui.traitValue:TakeFocus() |
|
67 | Seerah-7 | elseif not gui.enchantValueX:IsHidden() then |
|
68 | Seerah-7 | gui.enchantValueX:TakeFocus() |
|
69 | Seerah-7 | end |
|
70 | Seerah-7 | end) |
|
71 | 2 | Seerah-7 | |
72 | Seerah-7 | gui.type = wm:CreateControl(nil, gui, CT_LABEL) |
|
73 | Seerah-7 | gui.type:SetFont("ZoFontHeader2") |
|
74 | Seerah-7 | gui.type:SetHeight(26) |
|
75 | 5 | Seerah-7 | gui.type:SetAnchor(LEFT, gui.lvlNumbg, RIGHT, 15, 1) |
76 | 2 | Seerah-7 | gui.type:SetAnchor(TOPRIGHT, gui.name, BOTTOMRIGHT, 0, 6) |
77 | Seerah-7 | gui.type:SetWrapMode(TEXT_WRAP_MODE_ELLIPSIS) |
|
78 | Seerah-7 | ||
79 | Seerah-7 | gui.statValue = wm:CreateControl(nil, gui, CT_LABEL) |
|
80 | Seerah-7 | gui.statValue:SetFont("ZoFontHeader2") |
|
81 | Seerah-7 | gui.statValue:SetAnchor(TOPLEFT, gui.lvl, BOTTOMLEFT, 0, 6) |
|
82 | Seerah-7 | gui.statValue:SetHeight(26) |
|
83 | Seerah-7 | gui.statValue:SetWrapMode(TEXT_WRAP_MODE_ELLIPSIS) |
|
84 | Seerah-7 | ||
85 | Seerah-7 | gui.trait = wm:CreateControl(nil, gui, CT_LABEL) |
|
86 | Seerah-7 | gui.trait:SetFont("ZoFontHeader2") |
|
87 | Seerah-7 | gui.trait:SetAnchor(LEFT, gui.statValue, RIGHT, 20, 0) |
|
88 | Seerah-7 | gui.trait:SetHeight(26) |
|
89 | Seerah-7 | gui.trait:SetWrapMode(TEXT_WRAP_MODE_ELLIPSIS) |
|
90 | Seerah-7 | ||
91 | Seerah-7 | gui.traitValuebg = wm:CreateControlFromVirtual("ESOutpostTraitValueBG", gui, "ZO_EditBackdrop") |
|
92 | Seerah-7 | gui.traitValuebg:SetDimensions(50, 28) |
|
93 | Seerah-7 | gui.traitValuebg:SetAnchor(LEFT, gui.trait, RIGHT, 10, 0) |
|
94 | Seerah-7 | gui.traitValue = wm:CreateControlFromVirtual("ESOutpostTraitValue", gui.traitValuebg, "ZO_DefaultEditForBackdrop") |
|
95 | Seerah-7 | gui.traitValue:SetTextType(TEXT_TYPE_NUMERIC) |
|
96 | Seerah-7 | gui.traitValue.tooltipText = "Please enter the amount of the trait's effect.\nThis is a |cFFFFFFwhite|r number, found in the item's tooltip in the item trait description." |
|
97 | Seerah-7 | gui.traitValue:SetHandler("OnMouseEnter", ZO_Options_OnMouseEnter) |
|
98 | Seerah-7 | gui.traitValue:SetHandler("OnMouseExit", ZO_Options_OnMouseExit) |
|
99 | 3 | Seerah-7 | gui.traitValue:SetHandler("OnTab", function() |
100 | Seerah-7 | if not gui.enchantValueX:IsHidden() then |
|
101 | Seerah-7 | gui.enchantValueX:TakeFocus() |
|
102 | Seerah-7 | end |
|
103 | Seerah-7 | end) |
|
104 | 2 | Seerah-7 | |
105 | Seerah-7 | gui.enchant = wm:CreateControlFromVirtual("ESOutpostEnchant", gui, "ZO_StatsDropdownRow") |
|
106 | Seerah-7 | gui.enchant:SetAnchor(TOPLEFT, gui.icon, BOTTOMLEFT, 0, 15) |
|
107 | Seerah-7 | gui.enchant:SetWidth(350) |
|
108 | Seerah-7 | local enchantdrop = gui.enchant:GetNamedChild("Dropdown") |
|
109 | Seerah-7 | enchantdrop:SetWidth(350) |
|
110 | Seerah-7 | gui.enchant.callback = function(_, choiceText, choice) |
|
111 | Seerah-7 | gui.enchant.type = choiceText |
|
112 | Seerah-7 | gui.enchant.hash = choice.hash |
|
113 | Seerah-7 | if choice.vars == 0 then |
|
114 | Seerah-7 | gui.enchantValueXbg:SetHidden(true) |
|
115 | Seerah-7 | gui.enchantValueYbg:SetHidden(true) |
|
116 | Seerah-7 | else |
|
117 | Seerah-7 | gui.enchantValueXbg:SetHidden(false) |
|
118 | Seerah-7 | gui.enchantValueYbg:SetHidden(choice.vars ~= 2) |
|
119 | Seerah-7 | gui.enchantValueX:SetText("") |
|
120 | Seerah-7 | gui.enchantValueY:SetText("") |
|
121 | Seerah-7 | end |
|
122 | Seerah-7 | end |
|
123 | Seerah-7 | enchantdrop.tooltipText = 'Please select the enchant on your item.\nIf your item is not enchanted, select "None".' |
|
124 | Seerah-7 | enchantdrop:SetHandler("OnMouseEnter", ZO_Options_OnMouseEnter) |
|
125 | Seerah-7 | enchantdrop:SetHandler("OnMouseExit", ZO_Options_OnMouseExit) |
|
126 | Seerah-7 | gui.enchant.dropdown:SetSelectedItem("Select Enchant") |
|
127 | Seerah-7 | ||
128 | Seerah-7 | gui.locked = wm:CreateControl("ESOutpostLock", gui.enchant, CT_TEXTURE) |
|
129 | Seerah-7 | gui.locked:SetDimensions(16, 16) |
|
130 | Seerah-7 | gui.locked:SetTexture("EsoUI\\Art\\Miscellaneous\\locked_up.dds") |
|
131 | Seerah-7 | gui.locked:SetAnchor(LEFT, gui.enchant, RIGHT, 10, 0) |
|
132 | Seerah-7 | ||
133 | Seerah-7 | gui.enchantValueXbg = wm:CreateControlFromVirtual("ESOutpostEnchantValueXBG", gui, "ZO_EditBackdrop") |
|
134 | Seerah-7 | gui.enchantValueXbg:SetDimensions(40, 28) |
|
135 | Seerah-7 | gui.enchantValueXbg:SetAnchor(LEFT, gui.locked, RIGHT, 10, 0) |
|
136 | Seerah-7 | gui.enchantValueX = wm:CreateControlFromVirtual("ESOutpostEnchantValueX", gui.enchantValueXbg, "ZO_DefaultEditForBackdrop") |
|
137 | Seerah-7 | gui.enchantValueX:SetTextType(TEXT_TYPE_NUMERIC) |
|
138 | Seerah-7 | gui.enchantValueX.tooltipText = "Please enter the value of |cFFFFFF<x>|r.\nThis is a |cFFFFFFwhite|r number in the enchant text, found in the item's tooltip." |
|
139 | Seerah-7 | gui.enchantValueX:SetHandler("OnMouseEnter", ZO_Options_OnMouseEnter) |
|
140 | Seerah-7 | gui.enchantValueX:SetHandler("OnMouseExit", ZO_Options_OnMouseExit) |
|
141 | 3 | Seerah-7 | gui.enchantValueX:SetHandler("OnEscape", gui.enchantValueX.LoseFocus) |
142 | Seerah-7 | gui.traitValue:SetHandler("OnTab", function() |
|
143 | Seerah-7 | if not gui.enchantValueY:IsHidden() then |
|
144 | Seerah-7 | gui.enchantValueY:TakeFocus() |
|
145 | Seerah-7 | end |
|
146 | Seerah-7 | end) |
|
147 | 2 | Seerah-7 | |
148 | Seerah-7 | gui.enchantValueYbg = wm:CreateControlFromVirtual("ESOutpostEnchantValueYBG", gui, "ZO_EditBackdrop") |
|
149 | Seerah-7 | gui.enchantValueYbg:SetDimensions(40, 28) |
|
150 | Seerah-7 | gui.enchantValueYbg:SetAnchor(LEFT, gui.enchantValueX, RIGHT, 15, -1) |
|
151 | Seerah-7 | gui.enchantValueY = wm:CreateControlFromVirtual("ESOutpostEnchantValueY", gui.enchantValueYbg, "ZO_DefaultEditForBackdrop") |
|
152 | Seerah-7 | gui.enchantValueY:SetTextType(TEXT_TYPE_NUMERIC) |
|
153 | Seerah-7 | gui.enchantValueY.tooltipText = "Please enter the value of |cFFFFFF<y>|r.\nThis is a |cFFFFFFwhite|r number in the enchant text, found in the item's tooltip." |
|
154 | Seerah-7 | gui.enchantValueY:SetHandler("OnMouseEnter", ZO_Options_OnMouseEnter) |
|
155 | Seerah-7 | gui.enchantValueY:SetHandler("OnMouseExit", ZO_Options_OnMouseExit) |
|
156 | 3 | Seerah-7 | gui.enchantValueY:SetHandler("OnEscape", gui.enchantValueY.LoseFocus) |
157 | 2 | Seerah-7 | |
158 | Seerah-7 | gui.generate = wm:CreateControlFromVirtual("ESOutpostGenerate", gui, "ZO_DefaultButton") |
|
159 | Seerah-7 | gui.generate:SetAnchor(BOTTOM, gui, BOTTOM, 0, -75) |
|
160 | Seerah-7 | gui.generate:SetDimensions(400, 32) |
|
161 | Seerah-7 | gui.generate:SetText("Generate Merchandise Appraisal String") |
|
162 | Seerah-7 | gui.generate.tooltipText = "Click to generate your Appraisal String after ensuring all information is correct." |
|
163 | Seerah-7 | gui.generate:SetHandler("OnMouseEnter", ZO_Options_OnMouseEnter) |
|
164 | Seerah-7 | gui.generate:SetHandler("OnMouseExit", ZO_Options_OnMouseExit) |
|
165 | Seerah-7 | ||
166 | Seerah-7 | gui.genstringbg = wm:CreateControlFromVirtual("ESOutpostGeneratedStringBG", gui, "ZO_EditBackdrop") |
|
167 | Seerah-7 | gui.genstringbg:SetDimensions(475, 30) |
|
168 | Seerah-7 | gui.genstringbg:SetAnchor(BOTTOMLEFT, gui, BOTTOMLEFT, 15, -20) |
|
169 | Seerah-7 | gui.genstringbg:SetAnchor(BOTTOMRIGHT, gui, BOTTOMRIGHT, -65, -20) |
|
170 | Seerah-7 | gui.genstring = wm:CreateControlFromVirtual("ESOutpostGeneratedString", gui.genstringbg, "ZO_DefaultEditForBackdrop") |
|
171 | Seerah-7 | gui.genstring:SetMaxInputChars(1000) |
|
172 | Seerah-7 | gui.genstring.tooltipText = "Copy this text to your clipboard using the |cFFFFFFCopy|r button, then paste your Appraisal String at |cFFFFFFESOutpost.com|r" |
|
173 | Seerah-7 | gui.genstring:SetHandler("OnMouseEnter", ZO_Options_OnMouseEnter) |
|
174 | Seerah-7 | gui.genstring:SetHandler("OnMouseExit", ZO_Options_OnMouseExit) |
|
175 | Seerah-7 | gui.genstring:SetHandler("OnEscape", gui.genstring.LoseFocus) |
|
176 | Seerah-7 | gui.genstring:SetCopyEnabled(true) |
|
177 | Seerah-7 | gui.genstring:SetEditEnabled(false) |
|
178 | Seerah-7 | ||
179 | Seerah-7 | gui.copy = wm:CreateControlFromVirtual("ESOutpostCopy", gui, "ZO_DefaultTextButton") |
|
180 | Seerah-7 | gui.copy:SetWidth(50) |
|
181 | Seerah-7 | gui.copy:SetAnchor(BOTTOMRIGHT, gui, BOTTOMRIGHT, -15, -20) |
|
182 | Seerah-7 | gui.copy:SetText("Copy") |
|
183 | Seerah-7 | gui.copy:SetHandler("OnClicked", function() |
|
184 | Seerah-7 | gui.genstring:CopyAllTextToClipboard() |
|
185 | Seerah-7 | ZO_Alert(nil, SOUNDS.SKILL_GAINED, "|cC5C29EESO|rutpost: Copied to clipboard.") |
|
186 | Seerah-7 | end) |
|
187 | Seerah-7 | ||
188 | Seerah-7 | gui.close = wm:CreateControlFromVirtual("ESOutpostClose", gui, "ZO_CloseButton") |
|
189 | Seerah-7 | gui.close:SetHandler("OnClicked", function() gui:SetHidden(true) end) |
|
190 | Seerah-7 | ||
191 | Seerah-7 | gui.tooltip = wm:CreateControlFromVirtual("ESOutpostTooltip", gui, "ZO_ItemIconTooltip") |
|
192 | Seerah-7 | gui.tooltip:ClearAnchors() |
|
193 | Seerah-7 | gui.tooltip:SetAnchor(TOPRIGHT, gui, TOPLEFT, -10, -8) |
|
194 | Seerah-7 | gui.tooltip:SetHidden(false) |
|
195 | Seerah-7 | ||
196 | Seerah-7 | gui:SetHidden(true) |
|
197 | Seerah-7 | ||
198 | Seerah-7 | ||
199 | Seerah-7 | ------------ |
|
200 | Seerah-7 | ||
201 | Seerah-7 | ||
202 | Seerah-7 | local buttonPool |
|
203 | Seerah-7 | local function CreateButton(buttonPool) |
|
204 | Seerah-7 | local button = ZO_ObjectPool_CreateControl("ESOutpostItemButton", buttonPool, GuiRoot) |
|
205 | Seerah-7 | button.outpostBtn = true |
|
206 | 8 | Seerah-7 | button.data = {tooltipText = "ESOutpost"} |
207 | 2 | Seerah-7 | button:SetHandler("OnClicked", CollectESOutpostItemData) |
208 | Seerah-7 | button:SetHandler("OnMouseEnter", function(...) |
|
209 | Seerah-7 | local anim = button.row:GetNamedChild("Highlight").animation |
|
210 | Seerah-7 | if anim then |
|
211 | Seerah-7 | anim:PlayInstantlyToEnd() |
|
212 | Seerah-7 | end |
|
213 | Seerah-7 | ZO_Options_OnMouseEnter(...) |
|
214 | Seerah-7 | end) |
|
215 | Seerah-7 | button:SetHandler("OnMouseExit", ZO_Options_OnMouseExit) |
|
216 | Seerah-7 | return button |
|
217 | Seerah-7 | end |
|
218 | Seerah-7 | ||
219 | Seerah-7 | local function RemoveButton(button) |
|
220 | Seerah-7 | button:SetHidden(true) |
|
221 | Seerah-7 | button.row.outpostIcon = nil |
|
222 | Seerah-7 | end |
|
223 | Seerah-7 | ||
224 | Seerah-7 | function gui:CreateInventoryButtons() |
|
225 | Seerah-7 | ESOutpostDB = ESOutpostDB or {icons = true} |
|
226 | Seerah-7 | local db = ESOutpostDB |
|
227 | Seerah-7 | ||
228 | Seerah-7 | if not buttonPool then |
|
229 | Seerah-7 | buttonPool = ZO_ObjectPool:New(CreateButton, RemoveButton) |
|
230 | Seerah-7 | end |
|
231 | Seerah-7 | ||
232 | Seerah-7 | local inventories = PLAYER_INVENTORY.inventories |
|
233 | Seerah-7 | local origCallback |
|
234 | Seerah-7 | local function newCallback(row, slot, ...) |
|
235 | Seerah-7 | origCallback(row, slot, ...) |
|
236 | Seerah-7 | if db.icons then |
|
237 | Seerah-7 | local itemData = row.dataEntry.data |
|
238 | Seerah-7 | if not IsItemBound(itemData.bagId, itemData.slotIndex) then |
|
239 | Seerah-7 | if not row.outpostIcon then |
|
240 | Seerah-7 | local button, key = buttonPool:AcquireObject() |
|
241 | Seerah-7 | local rowLabel = row:GetNamedChild("Name") |
|
242 | Seerah-7 | button:SetParent(rowLabel) |
|
243 | Seerah-7 | button:ClearAnchors() |
|
244 | Seerah-7 | button:SetAnchor(LEFT, rowLabel, RIGHT) |
|
245 | Seerah-7 | button:SetHidden(false) |
|
246 | Seerah-7 | row.outpostIcon = button |
|
247 | Seerah-7 | button.row = row |
|
248 | Seerah-7 | button.key = key |
|
249 | Seerah-7 | end |
|
250 | Seerah-7 | else |
|
251 | Seerah-7 | if row.outpostIcon then |
|
252 | Seerah-7 | buttonPool:ReleaseObject(row.outpostIcon.key) |
|
253 | Seerah-7 | end |
|
254 | Seerah-7 | end |
|
255 | Seerah-7 | end |
|
256 | Seerah-7 | end |
|
257 | Seerah-7 | for i = 1, #inventories do |
|
258 | Seerah-7 | local inventoryView = inventories[i].listView |
|
259 | Seerah-7 | --skip this - only want backpack, bank and guild bank |
|
260 | Seerah-7 | if inventoryView ~= ZO_PlayerInventoryQuest then |
|
261 | Seerah-7 | --find the callback function for updating inventory rows |
|
262 | Seerah-7 | local callback = inventoryView.dataTypes[1].setupCallback |
|
263 | Seerah-7 | origCallback = callback |
|
264 | Seerah-7 | --overwrite it to have our post-hook |
|
265 | Seerah-7 | inventoryView.dataTypes[1].setupCallback = newCallback |
|
266 | Seerah-7 | end |
|
267 | Seerah-7 | end |
|
268 | Seerah-7 | ||
269 | Seerah-7 | SLASH_COMMANDS["/esoutpost"] = function() |
|
270 | Seerah-7 | db.icons = not db.icons |
|
271 | Seerah-7 | if db.icons then |
|
272 | Seerah-7 | buttonPool:ReleaseAllObjects() |
|
273 | Seerah-7 | end |
|
274 | Seerah-7 | end |
|
275 | Seerah-7 | end |