annotate Modules/TalkingHead.lua @ 111:1196c2bad31c

- obtain World Quest AP via WorldPlan - artifact button text adjustments - removed from UISpecialFrames to fix hiding on map open
author Nick@Zahhak
date Tue, 21 Mar 2017 16:33:51 -0400
parents 8df154a2bfd6
children 1f68c46bc4de
rev   line source
Nenue@90 1 -- Veneer
Nenue@90 2 -- TalkingHead.lua
Nenue@90 3 -- Created: 10/23/2016 5:18 AM
Nenue@90 4 -- %file-revision%
Nenue@90 5 --
Nenue@90 6
Nenue@90 7 local print = DEVIAN_WORKSPACE and function(...) print('VnTalkingHead', ...) end or nop
Nenue@90 8
Nenue@90 9 VeneerTalkingHeadMixin = {
Nenue@90 10
Nenue@90 11 anchorPoint = 'BOTTOMLEFT',
Nenue@90 12 anchorFrom = 'TOPLEFT',
Nenue@90 13 anchorX = -4,
Nenue@102 14 anchorY = 96,
Nenue@90 15 anchorFrame = 'ChatFrame1',
Nenue@90 16 addonTrigger = 'Blizzard_TalkingHeadUI'
Nenue@90 17
Nenue@90 18 }
Nenue@93 19
Nenue@93 20 local qf = {}
Nenue@93 21
Nenue@93 22
Nenue@90 23 function VeneerTalkingHeadMixin:OnLoad()
Nenue@90 24 Veneer:AddHandler(self, self.anchorPoint)
Nenue@90 25 end
Nenue@90 26
Nenue@90 27 function VeneerTalkingHeadMixin:Setup()
Nenue@90 28 print('|cFF00AAFF'..self:GetName()..'|r:Setup()', TalkingHeadFrame:IsShown(), self:IsShown())
Nenue@90 29
Nenue@90 30 self:SetSize(TalkingHeadFrame:GetSize())
Nenue@90 31 self:SetParent(TalkingHeadFrame)
Nenue@90 32
Nenue@90 33 hooksecurefunc(TalkingHeadFrame, 'SetPoint', function(...)
Nenue@90 34 print('SetPoint', ...)
Nenue@90 35 print(debugstack())
Nenue@90 36 end)
Nenue@90 37
Nenue@90 38 self:SetShown(true)
Nenue@90 39 self:ClearAnchor()
Nenue@90 40 end
Nenue@90 41
Nenue@90 42 function VeneerTalkingHeadMixin:ClearAnchor()
Nenue@90 43
Nenue@90 44 UIPARENT_MANAGED_FRAME_POSITIONS["TalkingHeadFrame"] = nil
Nenue@90 45 for i, alertSubSystem in pairs(AlertFrame.alertFrameSubSystems) do
Nenue@90 46 if alertSubSystem.anchorFrame == TalkingHeadFrame then
Nenue@90 47 tremove(AlertFrame.alertFrameSubSystems, i)
Nenue@90 48 return
Nenue@90 49 end
Nenue@90 50 end
Nenue@90 51 end
Nenue@90 52
Nenue@90 53 function VeneerTalkingHeadMixin:OnShow()
Nenue@90 54 if TalkingHeadFrame then
Nenue@90 55 print('|cFF00AAFF'..self:GetName()..'|r:OnShow()', TalkingHeadFrame:IsShown(), self:IsShown())
Nenue@90 56 print(debugstack())
Nenue@90 57 self:Update()
Nenue@90 58 end
Nenue@90 59 end
Nenue@90 60
Nenue@90 61 function VeneerTalkingHeadMixin:Reanchor()
Nenue@90 62 self:ClearAllPoints()
Nenue@90 63 self:SetPoint('BOTTOMLEFT', _G[self.anchorFrame], 'TOPLEFT', -4, 24)
Nenue@90 64 self:SetPoint('RIGHT', _G[self.anchorFrame], 'RIGHT', 2, 0)
Nenue@90 65 -- independent module,
Nenue@90 66 end
Nenue@90 67
Nenue@90 68 function VeneerTalkingHeadMixin:OnHide()
Nenue@90 69 if TalkingHeadFrame then
Nenue@90 70 print('|cFF00AAFF'..self:GetName()..'|r:OnHide()', TalkingHeadFrame:IsShown(), self:IsShown())
Nenue@90 71 end
Nenue@90 72 Veneer:Reanchor()
Nenue@90 73 end
Nenue@90 74
Nenue@90 75 function VeneerTalkingHeadMixin:Update()
Nenue@90 76
Nenue@90 77 print('|cFF00AAFF'..self:GetName()..'|r:OnShow()', TalkingHeadFrame:IsShown(), self:IsShown())
Nenue@90 78 TalkingHeadFrame:ClearAllPoints()
Nenue@90 79 TalkingHeadFrame:SetAllPoints(self)
Nenue@90 80
Nenue@90 81 Veneer:InternalReanchor(self)
Nenue@90 82 end