annotate Modules/TalkingHead.lua @ 96:bb38bc0e787f

- fix weapon slot anchors for paperdoll
author Nenue
date Tue, 03 Jan 2017 14:06:41 -0500
parents caded2668701
children 1e511e9aaca5
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
Nenue@90 8 local print = DEVIAN_WORKSPACE and function(...) print('VnTalkingHead', ...) end or nop
Nenue@90 9
Nenue@90 10 VeneerTalkingHeadMixin = {
Nenue@90 11
Nenue@90 12 anchorPoint = 'BOTTOMLEFT',
Nenue@90 13 anchorFrom = 'TOPLEFT',
Nenue@90 14 anchorX = -4,
Nenue@90 15 anchorY = 24,
Nenue@90 16 anchorFrame = 'ChatFrame1',
Nenue@90 17 addonTrigger = 'Blizzard_TalkingHeadUI'
Nenue@90 18
Nenue@90 19 }
Nenue@93 20
Nenue@93 21 local qf = {}
Nenue@93 22
Nenue@93 23
Nenue@90 24 function VeneerTalkingHeadMixin:OnLoad()
Nenue@90 25 Veneer:AddHandler(self, self.anchorPoint)
Nenue@90 26 end
Nenue@90 27
Nenue@90 28 function VeneerTalkingHeadMixin:Setup()
Nenue@90 29 print('|cFF00AAFF'..self:GetName()..'|r:Setup()', TalkingHeadFrame:IsShown(), self:IsShown())
Nenue@90 30
Nenue@90 31 self:SetSize(TalkingHeadFrame:GetSize())
Nenue@90 32 self:SetParent(TalkingHeadFrame)
Nenue@90 33
Nenue@90 34 hooksecurefunc(TalkingHeadFrame, 'SetPoint', function(...)
Nenue@90 35 print('SetPoint', ...)
Nenue@90 36 print(debugstack())
Nenue@90 37 end)
Nenue@90 38
Nenue@90 39 self:SetShown(true)
Nenue@90 40 self:ClearAnchor()
Nenue@90 41 end
Nenue@90 42
Nenue@90 43 function VeneerTalkingHeadMixin:ClearAnchor()
Nenue@90 44
Nenue@90 45 UIPARENT_MANAGED_FRAME_POSITIONS["TalkingHeadFrame"] = nil
Nenue@90 46 for i, alertSubSystem in pairs(AlertFrame.alertFrameSubSystems) do
Nenue@90 47 if alertSubSystem.anchorFrame == TalkingHeadFrame then
Nenue@90 48 tremove(AlertFrame.alertFrameSubSystems, i)
Nenue@90 49 return
Nenue@90 50 end
Nenue@90 51 end
Nenue@90 52 end
Nenue@90 53
Nenue@90 54 function VeneerTalkingHeadMixin:OnShow()
Nenue@90 55 if TalkingHeadFrame then
Nenue@90 56 print('|cFF00AAFF'..self:GetName()..'|r:OnShow()', TalkingHeadFrame:IsShown(), self:IsShown())
Nenue@90 57 print(debugstack())
Nenue@90 58 self:Update()
Nenue@90 59 end
Nenue@90 60 end
Nenue@90 61
Nenue@90 62 function VeneerTalkingHeadMixin:Reanchor()
Nenue@90 63 self:ClearAllPoints()
Nenue@90 64 self:SetPoint('BOTTOMLEFT', _G[self.anchorFrame], 'TOPLEFT', -4, 24)
Nenue@90 65 self:SetPoint('RIGHT', _G[self.anchorFrame], 'RIGHT', 2, 0)
Nenue@90 66 -- independent module,
Nenue@90 67 end
Nenue@90 68
Nenue@90 69 function VeneerTalkingHeadMixin:OnHide()
Nenue@90 70 if TalkingHeadFrame then
Nenue@90 71 print('|cFF00AAFF'..self:GetName()..'|r:OnHide()', TalkingHeadFrame:IsShown(), self:IsShown())
Nenue@90 72 end
Nenue@90 73 Veneer:Reanchor()
Nenue@90 74 end
Nenue@90 75
Nenue@90 76 function VeneerTalkingHeadMixin:Update()
Nenue@90 77
Nenue@90 78 print('|cFF00AAFF'..self:GetName()..'|r:OnShow()', TalkingHeadFrame:IsShown(), self:IsShown())
Nenue@90 79 TalkingHeadFrame:ClearAllPoints()
Nenue@90 80 TalkingHeadFrame:SetAllPoints(self)
Nenue@90 81
Nenue@90 82 Veneer:InternalReanchor(self)
Nenue@90 83 end
Nenue@90 84