Mercurial > wow > buffalo2
comparison Veneer.lua @ 122:ea2c616a3b4f
Standardize anchor variables
- anchorGroup sets general position, defers to anchorPoint
- anchorPoint and anchorFrom are used in SetPoint, deferring to anchorGroup and its inverse
Artifact Power:
- scan and update triggers trimmed down
BuffFrame:
- extra values can be right clicked to hide for particular auras
LFG:
- Desolate Host link placed above Sisters when searching for best cheevos
TalkingHead
- Re-enable TalkingHeadFrame click behaviour
| author | Nenue |
|---|---|
| date | Mon, 21 Aug 2017 22:15:46 -0400 |
| parents | 1f68c46bc4de |
| children | b3c0258b419d |
comparison
equal
deleted
inserted
replaced
| 121:1f68c46bc4de | 122:ea2c616a3b4f |
|---|---|
| 2 -- 1. vn OnLoad | 2 -- 1. vn OnLoad |
| 3 -- 2. OnEvent where IsLoggedIn() == true | 3 -- 2. OnEvent where IsLoggedIn() == true |
| 4 -- 3. Setup() where (not self.initialized) | 4 -- 3. Setup() where (not self.initialized) |
| 5 -- 4. Update() | 5 -- 4. Update() |
| 6 -- 5. Reanchor() | 6 -- 5. Reanchor() |
| 7 local ADDON, Veneer = ... | 7 local ADDON, addon = ... |
| 8 local VENEER_VERSION = 703 | 8 local VENEER_VERSION = 703 |
| 9 local LE_FREE_FRAMES_GROUP = 1 | 9 local LE_FREE_FRAMES_GROUP = 1 |
| 10 local type, strrep, ipairs, tinsert, tostring, select = type, string.rep, ipairs, tinsert, tostring, select | 10 local type, strrep, ipairs, tinsert, tostring, select = type, string.rep, ipairs, tinsert, tostring, select |
| 11 local pairs, tremove = pairs, tremove | 11 local pairs, tremove = pairs, tremove |
| 12 local print = DEVIAN_WORKSPACE and function(...) _G.print('Veneer', ...) end or nop | 12 local print = DEVIAN_WORKSPACE and function(...) _G.print('Veneer', ...) end or nop |
| 13 local eprint = DEVIAN_WORKSPACE and function(...) _G.print('VeneerEvent', ...) end or nop | 13 local eprint = DEVIAN_WORKSPACE and function(...) _G.print('VeneerEvent', ...) end or nop |
| 14 local wipe = table.wipe | 14 local wipe = table.wipe |
| 15 VeneerCore = {} | |
| 16 local Veneer = VeneerCore | |
| 15 | 17 |
| 16 SLASH_VENEER1 = "/veneer" | 18 SLASH_VENEER1 = "/veneer" |
| 17 SLASH_VENEER2 = "/vn" | 19 SLASH_VENEER2 = "/vn" |
| 18 SlashCmdList.VENEER = function(cmd) | 20 SlashCmdList.VENEER = function(cmd) |
| 19 if Veneer.ConfigMode then | 21 _G.Veneer:print(_G.Veneer.ConfigMode) |
| 20 Veneer.ConfigMode = false | 22 if _G.Veneer.ConfigMode == true then |
| 23 _G.Veneer.ConfigMode = false | |
| 21 else | 24 else |
| 22 Veneer.ConfigMode = true | 25 _G.Veneer.ConfigMode = true |
| 23 end | 26 end |
| 24 Veneer:UpdateConfigLayers() | 27 _G.Veneer:UpdateConfigLayers() |
| 25 end | 28 end |
| 29 | |
| 26 | 30 |
| 27 Veneer.modules = {} | 31 Veneer.modules = {} |
| 28 Veneer.Frames = {} | 32 Veneer.Frames = {} |
| 29 Veneer.ConfigLayers = {} | 33 Veneer.ConfigLayers = {} |
| 30 Veneer.FrameClusters = { | 34 Veneer.FrameClusters = { |
| 174 end | 178 end |
| 175 end | 179 end |
| 176 | 180 |
| 177 function Veneer:Setup () | 181 function Veneer:Setup () |
| 178 print('|cFFFF0088Setup()|r') | 182 print('|cFFFF0088Setup()|r') |
| 179 local resetConfig = (not VeneerData) | |
| 180 if (not VeneerData) then | 183 if (not VeneerData) then |
| 184 print('|cFF00FFFFresetting defaults|r') | |
| 181 VeneerData = defaults | 185 VeneerData = defaults |
| 182 VeneerData.version = VENEER_VERSION | 186 VeneerData.version = VENEER_VERSION |
| 183 end | 187 end |
| 184 self.data = VeneerData | 188 self.data = VeneerData |
| 185 self:ExecuteOnClusters(nil, VeneerModule_Setup) | 189 self:ExecuteOnClusters(nil, VeneerModule_Setup) |
| 186 | 190 |
| 187 self.ConfigMode = VeneerData.ConfigMode | 191 self.ConfigMode = VeneerData.ConfigMode |
| 192 print('|cFF00FF88configMode =', self.ConfigMode) | |
| 188 self:UpdateConfigLayers() | 193 self:UpdateConfigLayers() |
| 189 self:Reanchor() | 194 self:Reanchor() |
| 190 self:Update() | 195 self:Update() |
| 191 end | 196 end |
| 192 | 197 |
| 193 function Veneer:UpdateConfigLayers() | 198 function Veneer:UpdateConfigLayers() |
| 194 if VeneerData then | 199 if VeneerData then |
| 195 | |
| 196 VeneerData.ConfigMode = self.ConfigMode | 200 VeneerData.ConfigMode = self.ConfigMode |
| 197 end | 201 end |
| 198 | 202 |
| 199 self:print('Config mode '..(self.ConfigMode and '|cFF00FF00ON|r' or '|cFFFF0000OFF|r')..'.') | 203 self:print('Config mode '..(self.ConfigMode and '|cFF00FF00ON|r' or '|cFFFF0000OFF|r')..'. ', tostring(self.ConfigMode)) |
| 200 self:ExecuteOnClusters(nil, function(frame) | 204 self:ExecuteOnClusters(nil, function(frame) |
| 201 if frame.UpdateConfigLayers then | 205 if frame.UpdateConfigLayers then |
| 202 frame:UpdateConfigLayers(self.ConfigMode) | 206 frame:UpdateConfigLayers(self.ConfigMode) |
| 203 end | 207 end |
| 204 | 208 |
| 244 | 248 |
| 245 self.modules[handler] = handler | 249 self.modules[handler] = handler |
| 246 | 250 |
| 247 if not handler.anchorFrame then | 251 if not handler.anchorFrame then |
| 248 | 252 |
| 249 local primaryAnchor = handler.anchorPoint or 'CENTER' | 253 local clusterAnchor = handler.anchorGroup or handler.anchorPoint or 'CENTER' |
| 250 local clusterPriority = handler.anchorPriority | 254 local clusterPriority = handler.anchorPriority |
| 251 self.FrameClusters[primaryAnchor] = self.FrameClusters[primaryAnchor] or {} | 255 print('panel group =', clusterAnchor) |
| 252 local clusterTable = self.FrameClusters[primaryAnchor] | 256 |
| 257 self.FrameClusters[clusterAnchor] = self.FrameClusters[clusterAnchor] or {} | |
| 258 local clusterTable = self.FrameClusters[clusterAnchor] | |
| 253 local clusterIndex | 259 local clusterIndex |
| 254 | 260 |
| 255 if clusterPriority then | 261 if clusterPriority then |
| 256 for i = 1, #clusterTable do | 262 for i = 1, #clusterTable do |
| 257 | 263 |
| 273 clusterIndex = #clusterTable + 1 | 279 clusterIndex = #clusterTable + 1 |
| 274 end | 280 end |
| 275 | 281 |
| 276 | 282 |
| 277 tinsert(clusterTable, clusterIndex, handler) | 283 tinsert(clusterTable, clusterIndex, handler) |
| 278 print(' cluster', (clusterDepth or 1) .. '.' .. primaryAnchor, clusterTable, 'priority', clusterPriority, 'position', clusterIndex) | 284 print(' cluster', clusterAnchor, clusterTable, 'priority', clusterPriority, 'position', clusterIndex) |
| 279 | 285 |
| 280 handler.anchorCluster = clusterTable | 286 handler.anchorCluster = clusterTable |
| 281 handler.anchorIndex = clusterIndex | 287 handler.anchorIndex = clusterIndex |
| 282 else | 288 else |
| 283 local clusterTable = self.FrameClusters[LE_FREE_FRAMES_GROUP] | 289 local clusterTable = self.FrameClusters[LE_FREE_FRAMES_GROUP] |
| 335 -- Recursives updates frame group anchors | 341 -- Recursives updates frame group anchors |
| 336 function Veneer:EvaluateAnchors(parent) | 342 function Veneer:EvaluateAnchors(parent) |
| 337 parent = parent or self | 343 parent = parent or self |
| 338 local print = eprint | 344 local print = eprint |
| 339 print('|cFF88FF00DynamicReanchor()') | 345 print('|cFF88FF00DynamicReanchor()') |
| 340 for anchorPoint, cluster in pairs(parent.FrameClusters) do | 346 for clusterPoint, cluster in pairs(parent.FrameClusters) do |
| 341 if anchorPoint ~= LE_FREE_FRAMES_GROUP then | 347 print(clusterPoint) |
| 348 if clusterPoint ~= LE_FREE_FRAMES_GROUP then | |
| 342 local lastFrame | 349 local lastFrame |
| 343 for index, frame in ipairs(cluster) do | 350 for index, frame in ipairs(cluster) do |
| 344 print(' |cFF00FF00'..index, frame:GetName(), frame:IsShown(), (lastFrame and ('|cFFFFFF00'..lastFrame:GetName()..'|r') or '|cFF00FFFFUIParent')) | 351 print(' |cFF00FF00'..index, frame:GetName(), frame:IsShown(), (lastFrame and ('|cFFFFFF00'..lastFrame:GetName()..'|r') or '|cFF00FFFFUIParent')) |
| 345 if frame:IsShown() then | 352 if frame:IsShown() then |
| 346 | 353 |
| 347 if frame.anchorFrame then | 354 if frame.anchorFrame then |
| 348 print(frame.anchorPoint) | 355 print(frame.anchorPoint) |
| 349 frame:SetPoint(frame.anchorPoint, frame.anchorFrame, frame.anchorFrom, frame.anchorX, frame.anchorY) | 356 frame:SetPoint(frame.anchorPoint, frame.anchorFrame, frame.anchorFrom, frame.anchorX, frame.anchorY) |
| 350 print('anchored to', frame.anchorFrame,frame:GetTop(), frame:GetRight()) | 357 print('anchored to', frame.anchorFrame,frame:GetTop(), frame:GetRight()) |
| 351 else | 358 else |
| 352 anchorPoint = frame.anchorPoint or anchorPoint | 359 local anchorPoint = frame.anchorPoint or clusterPoint |
| 360 local anchorFrom = frame.anchorFrom or ANCHOR_OFFSET_POINT[clusterPoint] | |
| 353 frame:ClearAllPoints() | 361 frame:ClearAllPoints() |
| 354 if lastFrame then | 362 if lastFrame then |
| 355 frame:SetPoint(anchorPoint, lastFrame, ANCHOR_OFFSET_POINT[anchorPoint], 0, 0) | 363 frame:SetPoint(anchorPoint, lastFrame, anchorFrom, 0, 0) |
| 356 | 364 |
| 357 print('moved after', lastFrame,frame:GetTop(), frame:GetRight()) | 365 print(' fixing to', lastFrame, anchorPoint, anchorFrom, frame:GetTop(), frame:GetRight()) |
| 358 else | 366 else |
| 359 frame:SetPoint(anchorPoint, UIParent, anchorPoint, frame.anchorX, frame.anchorY) | 367 frame:SetPoint(anchorPoint, UIParent, clusterPoint, frame.anchorX, frame.anchorY) |
| 360 print('stub', anchorPoint, frame.anchorX, frame.anchorY) | 368 print('NEW', clusterPoint, anchorPoint, anchorFrom, frame.anchorX, frame.anchorY) |
| 361 end | 369 end |
| 362 lastFrame = frame | 370 lastFrame = frame |
| 363 end | 371 end |
| 364 | 372 |
| 365 end | 373 end |
| 505 veneer.currentTop = frame:GetTop() | 513 veneer.currentTop = frame:GetTop() |
| 506 self.Frames[frame] = veneer | 514 self.Frames[frame] = veneer |
| 507 end | 515 end |
| 508 return veneer | 516 return veneer |
| 509 end | 517 end |
| 510 | |
| 511 VeneerCore = Veneer |
