Details | Compare with Previous | View Log
Line No. | Rev | Author | Line |
---|---|---|---|
1 | 5 | Seerah-7 | -- ZAM_Notebook © ZAM Network LLC |
2 | Seerah-7 | -- All Rights Reserved |
|
3 | Seerah-7 | ||
4 | 2 | Seerah-7 | local wm = WINDOW_MANAGER |
5 | Seerah-7 | local em = EVENT_MANAGER |
|
6 | Seerah-7 | local znb, db, indexPool, currentlyViewing |
|
7 | Seerah-7 | local tinsert = table.insert |
|
8 | Seerah-7 | local tremove = table.remove |
|
9 | Seerah-7 | ||
10 | Seerah-7 | local defaults = { |
|
11 | Seerah-7 | anchor = { |
|
12 | Seerah-7 | a = CENTER, |
|
13 | Seerah-7 | b = CENTER, |
|
14 | Seerah-7 | x = 0, |
|
15 | Seerah-7 | y = 0, |
|
16 | Seerah-7 | } |
|
17 | Seerah-7 | ||
18 | Seerah-7 | } |
|
19 | Seerah-7 | ||
20 | Seerah-7 | ||
21 | 11 | Seerah-7 | local function ProtectText(text) --protect against backslashes corrupting our saved variables |
22 | Seerah-7 | return text:gsub([[\]], [[%%92]]) |
|
23 | Seerah-7 | end |
|
24 | Seerah-7 | ||
25 | Seerah-7 | local function UnprotectText(text) --convert back to what should be displayed |
|
26 | Seerah-7 | return text:gsub([[%%92]], [[\]]) |
|
27 | Seerah-7 | end |
|
28 | Seerah-7 | ||
29 | 2 | Seerah-7 | local buttonCount = 1 |
30 | Seerah-7 | local function CreateIndexButton(indexPool) |
|
31 | 14 | Seerah-7 | local button = ZO_ObjectPool_CreateControl("ZAM_NotebookIndex", indexPool, znb.menu.scrollChild) |
32 | Seerah-7 | local anchorBtn = buttonCount == 1 and znb.menu.scrollChild or indexPool:AcquireObject(buttonCount-1) |
|
33 | 2 | Seerah-7 | button:SetAnchor(TOPLEFT, anchorBtn, buttonCount == 1 and TOPLEFT or BOTTOMLEFT) |
34 | Seerah-7 | button:SetHorizontalAlignment(TEXT_ALIGN_LEFT) |
|
35 | Seerah-7 | button:SetWidth(190) |
|
36 | Seerah-7 | button:SetHandler("OnClicked", function(self) |
|
37 | 11 | Seerah-7 | znb.titleEdit:SetText(UnprotectText(self.data.title)) |
38 | Seerah-7 | znb.edit:SetText(UnprotectText(self.data.text)) |
|
39 | 2 | Seerah-7 | currentlyViewing = self.id |
40 | 8 | Seerah-7 | znb.save.highlight:SetHidden(true) |
41 | 10 | Seerah-7 | znb.selectedHL:SetHidden(false) |
42 | Seerah-7 | znb.selectedHL:ClearAnchors() |
|
43 | Seerah-7 | znb.selectedHL:SetAnchorFill(self) |
|
44 | 2 | Seerah-7 | end) |
45 | Seerah-7 | ||
46 | Seerah-7 | buttonCount = buttonCount + 1 |
|
47 | Seerah-7 | return button |
|
48 | Seerah-7 | end |
|
49 | Seerah-7 | ||
50 | Seerah-7 | local function RemoveIndexButton(button) |
|
51 | Seerah-7 | button:SetHidden(true) |
|
52 | Seerah-7 | end |
|
53 | Seerah-7 | ||
54 | Seerah-7 | local function PopulateScrollList() |
|
55 | Seerah-7 | local numPages = #db.pages |
|
56 | Seerah-7 | for i = 1, numPages do |
|
57 | Seerah-7 | local button = indexPool:AcquireObject(i) |
|
58 | Seerah-7 | button.data = db.pages[i] |
|
59 | Seerah-7 | button.id = i |
|
60 | 14 | Seerah-7 | button:SetText(UnprotectText(button.data.title)) |
61 | 2 | Seerah-7 | button:SetHidden(false) |
62 | Seerah-7 | end |
|
63 | Seerah-7 | local activePages = indexPool:GetActiveObjectCount() |
|
64 | Seerah-7 | if activePages > numPages then |
|
65 | Seerah-7 | for i = numPages+1, activePages do |
|
66 | Seerah-7 | indexPool:ReleaseObject(i) |
|
67 | Seerah-7 | end |
|
68 | Seerah-7 | end |
|
69 | Seerah-7 | end |
|
70 | Seerah-7 | ||
71 | Seerah-7 | local function CreateNotebook() |
|
72 | Seerah-7 | --main window |
|
73 | Seerah-7 | znb = wm:CreateTopLevelWindow("ZAM_Notebook") |
|
74 | Seerah-7 | znb:SetDimensions(800, 650) |
|
75 | Seerah-7 | znb:SetAnchor(db.anchor.a, GuiRoot, db.anchor.b, db.anchor.x, db.anchor.y) |
|
76 | Seerah-7 | znb:SetClampedToScreen(true) |
|
77 | Seerah-7 | znb:SetMouseEnabled(true) |
|
78 | Seerah-7 | znb:SetMovable(true) |
|
79 | Seerah-7 | znb:SetHandler("OnReceiveDrag", function(self) |
|
80 | Seerah-7 | --if not db.locked then |
|
81 | Seerah-7 | self:StartMoving() |
|
82 | Seerah-7 | --end |
|
83 | Seerah-7 | end) |
|
84 | Seerah-7 | znb:SetHandler("OnMouseUp", function(self) |
|
85 | Seerah-7 | self:StopMovingOrResizing() |
|
86 | Seerah-7 | local _,a,_,b,x,y = self:GetAnchor() |
|
87 | Seerah-7 | db.anchor = {["a"]=a, ["b"]=b, ["x"]=x, ["y"]=y} |
|
88 | Seerah-7 | end) |
|
89 | Seerah-7 | ||
90 | Seerah-7 | --window bg |
|
91 | Seerah-7 | znb.bg = wm:CreateControl("ZAM_NotebookBG", znb, CT_TEXTURE) |
|
92 | Seerah-7 | znb.bg:SetTexture("ZAM_Notebook\\NotebookBG.dds") |
|
93 | Seerah-7 | znb.bg:SetTextureCoords(0, 0.98, 0, 0.85) |
|
94 | Seerah-7 | znb.bg:SetAnchorFill(znb) |
|
95 | Seerah-7 | ||
96 | Seerah-7 | --window title |
|
97 | Seerah-7 | znb.title = wm:CreateControl("ZAM_NotebookTitle", znb, CT_LABEL) |
|
98 | Seerah-7 | znb.title:SetAnchor(TOPLEFT, znb, TOPLEFT, 50, 50) |
|
99 | Seerah-7 | znb.title:SetFont("ZoFontWindowTitle") |
|
100 | Seerah-7 | znb.title:SetText("ZAM Notebook") |
|
101 | Seerah-7 | ||
102 | Seerah-7 | --divider below title |
|
103 | Seerah-7 | znb.titleDiv = wm:CreateControl("ZAM_NotebookTitleDiv", znb, CT_TEXTURE) |
|
104 | Seerah-7 | znb.titleDiv:SetDimensions(800, 4) |
|
105 | Seerah-7 | znb.titleDiv:SetAnchor(TOPLEFT, znb.title, BOTTOMLEFT, -50, 5) |
|
106 | Seerah-7 | znb.titleDiv:SetTexture("EsoUI\\Art\\Miscellaneous\\centerscreen_topDivider.dds") |
|
107 | Seerah-7 | ||
108 | Seerah-7 | --pages menu |
|
109 | Seerah-7 | znb.menu = wm:CreateControlFromVirtual("ZAM_NotebookMenu", znb, "ZO_ScrollContainer") |
|
110 | Seerah-7 | znb.menu:SetAnchor(TOPLEFT, znb.titleDiv, BOTTOMLEFT, 70, 30) |
|
111 | Seerah-7 | znb.menu:SetAnchor(BOTTOMLEFT, znb, BOTTOMLEFT, 70, -60) |
|
112 | Seerah-7 | znb.menu:SetWidth(200) |
|
113 | 14 | Seerah-7 | znb.menu.scrollChild = znb.menu:GetNamedChild("ScrollChild") |
114 | 2 | Seerah-7 | |
115 | 10 | Seerah-7 | --page selected highlight |
116 | 14 | Seerah-7 | znb.selectedHL = wm:CreateControl(nil, znb.menu.scrollChild, CT_TEXTURE) |
117 | 10 | Seerah-7 | local selectedHL = znb.selectedHL |
118 | Seerah-7 | selectedHL:SetTexture("EsoUI\\Art\\Buttons\\generic_highlight.dds") |
|
119 | Seerah-7 | selectedHL:SetHidden(true) |
|
120 | Seerah-7 | ||
121 | 2 | Seerah-7 | --divider between menu and notebook editbox |
122 | Seerah-7 | znb.divider = wm:CreateControl("ZAM_NotebookDivider", znb, CT_TEXTURE) |
|
123 | Seerah-7 | znb.divider:SetAnchor(TOPLEFT, znb.menu, TOPRIGHT, 15, -15) |
|
124 | Seerah-7 | znb.divider:SetAnchor(BOTTOMLEFT, znb.menu, BOTTOMRIGHT) |
|
125 | Seerah-7 | znb.divider:SetWidth(4) |
|
126 | Seerah-7 | znb.divider:SetTexture("EsoUI\\Art\\Miscellaneous\\window_edge.dds") |
|
127 | Seerah-7 | ||
128 | Seerah-7 | --page title editbox bg |
|
129 | Seerah-7 | znb.titleEditbg = wm:CreateControlFromVirtual("ZAM_NotebookTitleEditBG", znb, "ZO_EditBackdrop") |
|
130 | Seerah-7 | znb.titleEditbg:SetDimensions(250, 28) |
|
131 | Seerah-7 | znb.titleEditbg:SetAnchor(TOPLEFT, znb.divider, TOPRIGHT, 15, 15) |
|
132 | Seerah-7 | ||
133 | Seerah-7 | --page title editbox |
|
134 | Seerah-7 | znb.titleEdit = wm:CreateControlFromVirtual("ZAM_NotebookTitleEdit", znb.titleEditbg, "ZO_DefaultEditForBackdrop") |
|
135 | 4 | Seerah-7 | znb.titleEdit:SetHandler("OnTab", function() znb.edit:TakeFocus() end) |
136 | Seerah-7 | znb.titleEdit:SetHandler("OnEscape", znb.titleEdit.LoseFocus) |
|
137 | 2 | Seerah-7 | |
138 | Seerah-7 | --editbox bg |
|
139 | Seerah-7 | znb.editbg = wm:CreateControlFromVirtual("ZAM_NotebookEditBG", znb, "ZO_EditBackdrop") |
|
140 | Seerah-7 | znb.editbg:SetDimensions(450, 350) |
|
141 | Seerah-7 | znb.editbg:SetAnchor(TOPLEFT, znb.titleEditbg, BOTTOMLEFT, 0, 15) |
|
142 | Seerah-7 | ||
143 | Seerah-7 | --editbox |
|
144 | Seerah-7 | znb.edit = wm:CreateControlFromVirtual("ZAM_NotebookEdit", znb.editbg, "ZO_DefaultEditMultiLineForBackdrop") |
|
145 | Seerah-7 | znb.edit:SetMaxInputChars(3000) |
|
146 | 4 | Seerah-7 | znb.edit:SetHandler("OnTab", function() if IsShiftKeyDown() then znb.titleEdit:TakeFocus() end end) |
147 | Seerah-7 | znb.edit:SetHandler("OnEscape", znb.edit.LoseFocus) |
|
148 | 11 | Seerah-7 | znb.edit:SetHandler("OnMouseWheel", function(self, delta) |
149 | Seerah-7 | if self:HasFocus() then --only set focus to new spots if the editbox is currently in use |
|
150 | Seerah-7 | local cursorPos = self:GetCursorPosition() |
|
151 | Seerah-7 | local text = self:GetText() |
|
152 | Seerah-7 | local textLen = text:len() |
|
153 | Seerah-7 | local newPos |
|
154 | Seerah-7 | if delta > 0 then --scrolling up |
|
155 | Seerah-7 | local reverseText = text:reverse() |
|
156 | Seerah-7 | local revCursorPos = textLen - cursorPos |
|
157 | Seerah-7 | local revPos = reverseText:find("\n", revCursorPos+1) |
|
158 | Seerah-7 | newPos = revPos and textLen - revPos |
|
159 | Seerah-7 | else --scrolling down |
|
160 | Seerah-7 | newPos = text:find("\n", cursorPos+1) |
|
161 | Seerah-7 | end |
|
162 | Seerah-7 | if newPos then --if we found a new line, then scroll, otherwise don't |
|
163 | Seerah-7 | self:SetCursorPosition(newPos) |
|
164 | Seerah-7 | end |
|
165 | Seerah-7 | end |
|
166 | Seerah-7 | end) |
|
167 | 2 | Seerah-7 | |
168 | Seerah-7 | --run script button |
|
169 | Seerah-7 | znb.run = wm:CreateControl("ZAM_NotebookRun", znb, CT_BUTTON) |
|
170 | Seerah-7 | znb.run:SetDimensions(34, 34) |
|
171 | Seerah-7 | znb.run:SetAnchor(TOPLEFT, znb.editbg, BOTTOMLEFT, 0, 12) |
|
172 | Seerah-7 | znb.run:SetNormalTexture("EsoUI\\Art\\Buttons\\edit_up.dds") |
|
173 | Seerah-7 | znb.run:SetPressedTexture("EsoUI\\Art\\Buttons\\edit_down.dds") |
|
174 | Seerah-7 | znb.run:SetMouseOverTexture("EsoUI\\Art\\Buttons\\edit_over.dds") |
|
175 | 14 | Seerah-7 | znb.run.data = {tooltipText = "Run this page as a Lua script."} |
176 | 2 | Seerah-7 | znb.run:SetHandler("OnMouseEnter", ZO_Options_OnMouseEnter) |
177 | Seerah-7 | znb.run:SetHandler("OnMouseExit", ZO_Options_OnMouseExit) |
|
178 | Seerah-7 | --setting to run at startup? |
|
179 | Seerah-7 | znb.run:SetHandler("OnClicked", function() |
|
180 | Seerah-7 | local znbScript = zo_loadstring(znb.edit:GetText()) |
|
181 | Seerah-7 | if znbScript then |
|
182 | Seerah-7 | znbScript() |
|
183 | Seerah-7 | end |
|
184 | Seerah-7 | end) |
|
185 | Seerah-7 | ||
186 | Seerah-7 | --undo changes button |
|
187 | Seerah-7 | znb.undo = wm:CreateControl("ZAM_NotebookUndo", znb, CT_BUTTON) |
|
188 | Seerah-7 | znb.undo:SetDimensions(30, 30) |
|
189 | Seerah-7 | znb.undo:SetAnchor(LEFT, znb.run, RIGHT, 15, 1) |
|
190 | Seerah-7 | znb.undo:SetNormalTexture("EsoUI\\Art\\Buttons\\decline_up.dds") |
|
191 | Seerah-7 | znb.undo:SetPressedTexture("EsoUI\\Art\\Buttons\\decline_down.dds") |
|
192 | Seerah-7 | znb.undo:SetMouseOverTexture("EsoUI\\Art\\Buttons\\decline_over.dds") |
|
193 | 14 | Seerah-7 | znb.undo.data = {tooltipText = "Undo changes made to this page."} |
194 | 2 | Seerah-7 | znb.undo:SetHandler("OnMouseEnter", ZO_Options_OnMouseEnter) |
195 | Seerah-7 | znb.undo:SetHandler("OnMouseExit", ZO_Options_OnMouseExit) |
|
196 | Seerah-7 | znb.undo:SetHandler("OnClicked", function() |
|
197 | Seerah-7 | if currentlyViewing then |
|
198 | Seerah-7 | znb.titleEdit:SetText(db.pages[currentlyViewing].title) |
|
199 | Seerah-7 | znb.edit:SetText(db.pages[currentlyViewing].text) |
|
200 | Seerah-7 | end |
|
201 | Seerah-7 | end) |
|
202 | Seerah-7 | ||
203 | Seerah-7 | --save changes button |
|
204 | Seerah-7 | znb.save = wm:CreateControl("ZAM_NotebookSave", znb, CT_BUTTON) |
|
205 | Seerah-7 | znb.save.highlight = wm:CreateControl("ZAM_NotebookSaveHL", znb.save, CT_TEXTURE) |
|
206 | Seerah-7 | local highlight = znb.save.highlight |
|
207 | Seerah-7 | znb.save:SetDimensions(30, 30) |
|
208 | Seerah-7 | znb.save:SetAnchor(LEFT, znb.undo, RIGHT, 15, 1) |
|
209 | Seerah-7 | znb.save:SetNormalTexture("EsoUI\\Art\\Buttons\\accept_up.dds") |
|
210 | Seerah-7 | znb.save:SetPressedTexture("EsoUI\\Art\\Buttons\\accept_down.dds") |
|
211 | Seerah-7 | znb.save:SetMouseOverTexture("EsoUI\\Art\\Buttons\\accept_over.dds") |
|
212 | 14 | Seerah-7 | znb.save.data = {tooltipText = "Save changes made to this page."} |
213 | 2 | Seerah-7 | znb.save:SetHandler("OnMouseEnter", ZO_Options_OnMouseEnter) |
214 | Seerah-7 | znb.save:SetHandler("OnMouseExit", ZO_Options_OnMouseExit) |
|
215 | 11 | Seerah-7 | znb.save:SetHandler("OnClicked", function(self) |
216 | 2 | Seerah-7 | local titleText = znb.titleEdit:GetText() |
217 | 4 | Seerah-7 | if titleText == "" then |
218 | Seerah-7 | znb.titleEdit:SetText("New Page "..#db.pages+1) |
|
219 | Seerah-7 | titleText = znb.titleEdit:GetText() |
|
220 | Seerah-7 | end |
|
221 | 2 | Seerah-7 | local pageText = znb.edit:GetText() |
222 | 9 | Seerah-7 | --with the changes to how text is stored in saved variables, literal strings work again. |
223 | Seerah-7 | --if pageText:find("%[%[") then |
|
224 | Seerah-7 | -- error([=[ZAM_Notebook does not support literal strings. |
|
225 | Seerah-7 | -- |
|
226 | Seerah-7 | -- This would cause a nested literal string error and erase your saved variables data. |
|
227 | Seerah-7 | -- Please edit your page text before saving to remove the literal string. ( [[...]] )]=], 0) |
|
228 | Seerah-7 | -- return |
|
229 | Seerah-7 | --end]] |
|
230 | 11 | Seerah-7 | --so now we need to prevent escaped quotes instead... |
231 | Seerah-7 | --if pageText:find("%\\\"") then |
|
232 | Seerah-7 | -- error([=[ZAM_Notebook does not support escaped double-quotes. |
|
233 | Seerah-7 | -- |
|
234 | Seerah-7 | -- Because ESO saved variables currently escape any double-quotes found in their contents, |
|
235 | Seerah-7 | -- this would cause a malformed table error and erase your saved variables data. |
|
236 | Seerah-7 | -- |
|
237 | Seerah-7 | -- Please edit your page text before saving to remove the escaped double-quote ( \" ). |
|
238 | Seerah-7 | -- You may use a single quote instead ( \' ) or change to use a literal string. ( [[ "quote" ]] )]=], 0) |
|
239 | Seerah-7 | -- return |
|
240 | Seerah-7 | --end |
|
241 | Seerah-7 | local safe_pageText = ProtectText(pageText) |
|
242 | Seerah-7 | local safe_titleText = ProtectText(titleText) |
|
243 | 2 | Seerah-7 | if currentlyViewing == nil then --if this was a new page |
244 | 11 | Seerah-7 | tinsert(db.pages, {["title"] = safe_titleText, ["text"]=safe_pageText}) |
245 | 2 | Seerah-7 | currentlyViewing = #db.pages |
246 | 10 | Seerah-7 | znb.selectedHL:SetHidden(false) |
247 | Seerah-7 | znb.selectedHL:ClearAnchors() |
|
248 | 11 | Seerah-7 | self.new = true |
249 | 2 | Seerah-7 | else |
250 | 11 | Seerah-7 | db.pages[currentlyViewing].title = safe_titleText |
251 | Seerah-7 | db.pages[currentlyViewing].text = safe_pageText |
|
252 | Seerah-7 | self.new = false |
|
253 | 2 | Seerah-7 | end |
254 | Seerah-7 | PopulateScrollList() |
|
255 | 11 | Seerah-7 | if self.new then |
256 | Seerah-7 | znb.selectedHL:SetAnchorFill(_G["ZAM_NotebookIndex"..currentlyViewing]) |
|
257 | Seerah-7 | end |
|
258 | 2 | Seerah-7 | highlight:SetHidden(true) |
259 | Seerah-7 | end) |
|
260 | Seerah-7 | highlight:SetAnchor(TOPLEFT, znb.save, TOPLEFT, -15, -15) |
|
261 | Seerah-7 | highlight:SetAnchor(BOTTOMRIGHT, znb.save, BOTTOMRIGHT, 15, 15) |
|
262 | Seerah-7 | highlight:SetTexture("EsoUI\\Art\\Miscellaneous\\icon_highlight_pulse.dds") |
|
263 | Seerah-7 | highlight:SetAlpha(.75) |
|
264 | Seerah-7 | highlight:SetHidden(true) |
|
265 | Seerah-7 | znb.titleEdit:SetHandler("OnTextChanged", function(self) |
|
266 | Seerah-7 | local page = db.pages[currentlyViewing] |
|
267 | Seerah-7 | if not page or self:GetText() ~= page.title or self:GetText() then |
|
268 | Seerah-7 | highlight:SetHidden(false) |
|
269 | Seerah-7 | else |
|
270 | Seerah-7 | highlight:SetHidden(true) |
|
271 | Seerah-7 | end |
|
272 | Seerah-7 | end) |
|
273 | Seerah-7 | znb.edit:SetHandler("OnTextChanged", function(self) |
|
274 | Seerah-7 | local page = db.pages[currentlyViewing] |
|
275 | 8 | Seerah-7 | if not page or self:GetText() ~= page.text or self:GetText() then |
276 | 2 | Seerah-7 | highlight:SetHidden(false) |
277 | Seerah-7 | else |
|
278 | Seerah-7 | highlight:SetHidden(true) |
|
279 | Seerah-7 | end |
|
280 | Seerah-7 | end) |
|
281 | Seerah-7 | ||
282 | Seerah-7 | --close window button |
|
283 | Seerah-7 | znb.close = wm:CreateControlFromVirtual("ZAM_NotebookClose", znb, "ZO_DefaultTextButton") |
|
284 | Seerah-7 | znb.close:SetText("Close") |
|
285 | Seerah-7 | znb.close:SetAnchor(TOPRIGHT, znb.editbg, BOTTOMRIGHT, 0, 15) |
|
286 | Seerah-7 | znb.close:SetWidth(75) |
|
287 | Seerah-7 | znb.close:SetHandler("OnClicked", function() znb:SetHidden(true) end) |
|
288 | Seerah-7 | ||
289 | Seerah-7 | --new page button |
|
290 | Seerah-7 | znb.new = wm:CreateControl("ZAM_NotebookNew", znb, CT_BUTTON) |
|
291 | Seerah-7 | znb.new:SetDimensions(30, 30) |
|
292 | Seerah-7 | znb.new:SetAnchor(LEFT, znb.titleEditbg, RIGHT, 15, 0) |
|
293 | Seerah-7 | znb.new:SetNormalTexture("EsoUI\\Art\\Buttons\\pointsplus_up.dds") |
|
294 | Seerah-7 | znb.new:SetPressedTexture("EsoUI\\Art\\Buttons\\pointsplus_down.dds") |
|
295 | Seerah-7 | znb.new:SetMouseOverTexture("EsoUI\\Art\\Buttons\\pointsplus_over.dds") |
|
296 | 14 | Seerah-7 | znb.new.data = {tooltipText = "Create a new page."} |
297 | 2 | Seerah-7 | znb.new:SetHandler("OnMouseEnter", ZO_Options_OnMouseEnter) |
298 | Seerah-7 | znb.new:SetHandler("OnMouseExit", ZO_Options_OnMouseExit) |
|
299 | Seerah-7 | znb.new:SetHandler("OnClicked", function() |
|
300 | Seerah-7 | currentlyViewing = nil |
|
301 | Seerah-7 | znb.titleEdit:SetText("New Page "..#db.pages+1) |
|
302 | Seerah-7 | znb.titleEdit:SelectAll() |
|
303 | Seerah-7 | znb.titleEdit:TakeFocus() |
|
304 | Seerah-7 | znb.edit:Clear() |
|
305 | Seerah-7 | end) |
|
306 | Seerah-7 | ||
307 | Seerah-7 | --delete page button |
|
308 | Seerah-7 | znb.delete = wm:CreateControl("ZAM_NotebookDelete", znb, CT_BUTTON) |
|
309 | Seerah-7 | znb.delete:SetDimensions(32, 32) |
|
310 | Seerah-7 | znb.delete:SetAnchor(LEFT, znb.new, RIGHT, 15, 0) |
|
311 | Seerah-7 | znb.delete:SetNormalTexture("EsoUI\\Art\\Buttons\\minus_up.dds") |
|
312 | Seerah-7 | znb.delete:SetPressedTexture("EsoUI\\Art\\Buttons\\minus_down.dds") |
|
313 | Seerah-7 | znb.delete:SetMouseOverTexture("EsoUI\\Art\\Buttons\\minus_over.dds") |
|
314 | 14 | Seerah-7 | znb.delete.data = {tooltipText = "Delete this page."} |
315 | 2 | Seerah-7 | znb.delete:SetHandler("OnMouseEnter", ZO_Options_OnMouseEnter) |
316 | Seerah-7 | znb.delete:SetHandler("OnMouseExit", ZO_Options_OnMouseExit) |
|
317 | Seerah-7 | znb.delete:SetHandler("OnClicked", function() |
|
318 | Seerah-7 | if currentlyViewing then |
|
319 | Seerah-7 | tremove(db.pages, currentlyViewing) |
|
320 | Seerah-7 | currentlyViewing = nil |
|
321 | Seerah-7 | PopulateScrollList() |
|
322 | Seerah-7 | znb.save.highlight:SetHidden(true) |
|
323 | 10 | Seerah-7 | znb.selectedHL:SetHidden(true) |
324 | 2 | Seerah-7 | end |
325 | 4 | Seerah-7 | znb.titleEdit:Clear() |
326 | Seerah-7 | znb.edit:Clear() |
|
327 | Seerah-7 | highlight:SetHidden(true) |
|
328 | 2 | Seerah-7 | end) |
329 | Seerah-7 | ||
330 | Seerah-7 | znb:SetHidden(true) |
|
331 | Seerah-7 | end |
|
332 | Seerah-7 | ||
333 | 5 | Seerah-7 | --global for keybind |
334 | Seerah-7 | function ZAMNotebookToggleVisibility() |
|
335 | Seerah-7 | if znb:IsHidden() then |
|
336 | Seerah-7 | znb:SetHidden(false) |
|
337 | Seerah-7 | if not SCENE_MANAGER:IsInUIMode() then |
|
338 | Seerah-7 | SCENE_MANAGER:SetInUIMode(true) |
|
339 | Seerah-7 | end |
|
340 | Seerah-7 | else |
|
341 | Seerah-7 | znb:SetHidden(true) |
|
342 | Seerah-7 | end |
|
343 | Seerah-7 | end |
|
344 | Seerah-7 | ||
345 | 2 | Seerah-7 | local function Initialize() |
346 | Seerah-7 | ZAM_NotebookDB = ZAM_NotebookDB or {} |
|
347 | Seerah-7 | for k,v in pairs(defaults) do |
|
348 | Seerah-7 | if type(ZAM_NotebookDB[k]) == "nil" then |
|
349 | Seerah-7 | ZAM_NotebookDB[k] = v |
|
350 | Seerah-7 | end |
|
351 | Seerah-7 | end |
|
352 | Seerah-7 | ZAM_NotebookDB.pages = ZAM_NotebookDB.pages or {} |
|
353 | Seerah-7 | db = ZAM_NotebookDB |
|
354 | Seerah-7 | ||
355 | Seerah-7 | indexPool = ZO_ObjectPool:New(CreateIndexButton, RemoveIndexButton) |
|
356 | Seerah-7 | ||
357 | 5 | Seerah-7 | ZO_CreateStringId("SI_BINDING_NAME_ZAM_NOTEBOOK_TOGGLE", "Toggle ZAM Notebook") |
358 | Seerah-7 | SLASH_COMMANDS["/znb"] = ZAMNotebookToggleVisibility |
|
359 | 2 | Seerah-7 | end |
360 | Seerah-7 | ||
361 | Seerah-7 | ||
362 | Seerah-7 | em:RegisterForEvent("ZAM_Notebook", EVENT_ADD_ON_LOADED, function(event, addon) |
|
363 | Seerah-7 | --em:RegisterForEvent("ZAM_Notebook", EVENT_PLAYER_ACTIVATED, function(event, addon) |
|
364 | Seerah-7 | if addon == "ZAM_Notebook" then |
|
365 | Seerah-7 | Initialize() |
|
366 | Seerah-7 | CreateNotebook() |
|
367 | Seerah-7 | PopulateScrollList() |
|
368 | Seerah-7 | end |
|
369 | Seerah-7 | end) |