changeset 73:95ed343c3a42

- VeneerBuffTemplate and members
author Nenue
date Tue, 23 Aug 2016 16:15:09 -0400
parents d80db9a9b7e4
children cd6e78091b04
files Modules/BuffFrame.lua Modules/ObjectiveTracker.lua Veneer.lua Veneer.xml
diffstat 4 files changed, 53 insertions(+), 70 deletions(-) [+]
line wrap: on
line diff
--- a/Modules/BuffFrame.lua	Tue Aug 23 14:53:38 2016 -0400
+++ b/Modules/BuffFrame.lua	Tue Aug 23 16:15:09 2016 -0400
@@ -72,7 +72,7 @@
   local name = frame:GetName()
   if not (_G[name..'Veneer']) then
     print('|cFF88FF00Creating', name,'Veneer')
-    local veneer = vn.GetVeneer(frame)
+    local veneer = vn.GetVeneer(frame, 'VeneerBuffTemplate')
     local id = frame:GetID()
 
     local position = tonumber(name:match("%d"))
@@ -80,66 +80,28 @@
       veneer:Show()
     end
 
-    veneer.progress = CreateFrame('Frame', name .. 'VeneerProgress', veneer)
-    veneer.progress:Hide()
     veneer.progress:SetPoint('BOTTOMLEFT', veneer, 'BOTTOMLEFT', 0, -6)
     veneer.progress:SetPoint('TOPRIGHT', veneer, 'BOTTOMRIGHT', 0, -1)
     veneer.progress:SetHeight(BUFF_PROGRESS_SIZE + (BUFF_PROGRESS_INSET * 2))
 
-    veneer.progress.bg = veneer.progress:CreateTexture(nil, 'BACKGROUND')
-    veneer.progress.bg:SetColorTexture(0,0,0,1)
-    veneer.progress.bg:SetAllPoints(veneer.progress)
-
-    veneer.progress.fg = veneer.progress:CreateTexture(nil, 'ARTWORK')
     veneer.progress.fg:SetColorTexture(0,1,0,1)
     veneer.progress.fg:SetPoint('BOTTOMLEFT', BUFF_PROGRESS_INSET,BUFF_PROGRESS_INSET)
     veneer.progress.fg:SetPoint('TOP', 0, -BUFF_PROGRESS_INSET)
 
-    veneer.progress.status = veneer.progress:CreateFontString()
-    veneer.progress.status:SetFontObject(VeneerNumberFont)
-    veneer.progress.status:SetPoint('TOP')
+    veneer.duration:SetFontObject(VeneerNumberFont)
+    veneer.duration:SetPoint('TOP', veneer, 'BOTTOM', 0, -2)
 
-
-    veneer.cooldown = CreateFrame('Cooldown', name ..'VeneerCooldown', veneer, 'CooldownFrameTemplate')
-    veneer.cooldown:SetAllPoints(frame)
-    veneer.cooldown:SetReverse(true)
-
-    local overlay = CreateFrame('Frame', name .. 'VeneerOverlay', UIParent)
-
-    overlay:Show()
-    overlay:SetFrameStrata('MEDIUM')
-    local n = frame:GetNumPoints()
-    for i = 1, n do
-      overlay:SetPoint(frame:GetPoint(n))
-    end
-
-
-    local underlay = CreateFrame('Frame', name..'VeneerUnderlay', UIParent)
-    underlay:Show()
-    underlay:SetFrameStrata('BACKGROUND')
-    local n = frame:GetNumPoints()
-    for i = 1, n do
-      underlay:SetPoint(frame:GetPoint(n))
-    end
-
-    veneer.duration = overlay:CreateFontString(name..'VeneerDuration', 'OVERLAY')
-    veneer.duration:SetFontObject(VeneerNumberFont)
-    veneer.duration:SetPoint('TOP', frame, 'BOTTOM', 0, -8)
-
-    veneer.count = overlay:CreateFontString(name..'VeneerCount', 'OVERLAY')
     veneer.count:SetFontObject(VeneerNumberFont)
     veneer.count:SetPoint('BOTTOMRIGHT', frame, 'BOTTOMRIGHT', -3, 3)
 
-
-
-    veneer.border = underlay:CreateTexture(name..'VeneerBorder', 'BACKGROUND')
+    veneer.underlay:SetParent(UIParent)
+    veneer.underlay:SetFrameStrata('BACKGROUND')
+    veneer.border:SetColorTexture(0,0,0,1)
     veneer.border:SetPoint('TOPLEFT', veneer, 'TOPLEFT', -BORDER_SIZE_L, BORDER_SIZE_U)
     veneer.border:SetPoint('BOTTOMRIGHT', veneer, 'BOTTOMRIGHT', BORDER_SIZE_R, -BORDER_SIZE_D)
     veneer.border:Show()
 
 
-    veneer.overlay = overlay
-    veneer.underlay = underlay
   end
 
 
@@ -160,10 +122,7 @@
   local border = _G[name .. 'Border']
   local count = _G[name .. 'Count']
   local duration = _G[name .. 'Duration']
-  local slot = frame:GetID() or 0
   local veneer = GetVeneer(frame)
-  local underlay = veneer.underlay
-  local overlay = veneer.overlay
 
   skinnedFrames[frame] = frame
   frame:SetSize(BUFF_BUTTON_SIZE,BUFF_BUTTON_SIZE)
@@ -184,6 +143,7 @@
     end
 
     veneer.progress.fg:SetColorTexture(color.r,color.g,color.b)
+    veneer.border:SetColorTexture(color.r,color.g,color.b)
   end
   if duration then
     duration:ClearAllPoints()
@@ -219,15 +179,13 @@
       visibility[self] = isVisible
     end
     veneer:Hide()
-    veneer.count:Hide()
-    underlay:Hide()
+    veneer.underlay:Hide()
   end)
 
   hooksecurefunc(frame, 'Show', function(self)
     veneer:Show()
     veneer.count:Show()
     veneer.border:Show()
-    underlay:Show()
     local isVisible = self:IsVisible()
     if isVisible ~= visibility[self] then
       print('|cFFFFFF00SHOW|r', self:GetName())
@@ -323,11 +281,7 @@
   local frame = _G[bName]
   if frame and frame:IsVisible() then
     tickCounter[frame] = (tickCounter[frame] or 0) + 1
-
-
-
     local cacheDiff = CacheCheck(frame, UnitAura(frame.unit, frame:GetID(), frame.filter))
-
     -- if the name or expirationTime changed
     if (cacheDiff >= 1) then
       print('|cFFFF4400', frame:GetName(), 'diff:', cacheDiff)
@@ -337,8 +291,6 @@
       expirationCache[name] = frame.expirationTime
       print(unpack(aurasCache[frame]))
 
-
-
       UpdateVeneer(frame, aurasCache[frame][6], aurasCache[frame][7])
     end
 
--- a/Modules/ObjectiveTracker.lua	Tue Aug 23 14:53:38 2016 -0400
+++ b/Modules/ObjectiveTracker.lua	Tue Aug 23 16:15:09 2016 -0400
@@ -9,7 +9,9 @@
 local ot
 local otvn
 
-local ResetObjectiveTrackerAnchor = function()
+local INSET_V = -20
+
+local GetVeneer = function()
 
   print('|cFFFF4400ObjectiveTracker_Initialize|r')
   otvn = vn.GetVeneer(ot)
@@ -21,11 +23,7 @@
   end
   ot:ClearAllPoints()
   ot:SetPoint('TOPRIGHT', UIParent, 'TOPRIGHT', -5, -140)
-  print(ot:GetHeight(), ot:GetWidth())
-  local width, height = ot:GetSize()
-  ot:SetSize(width, height)
 
-  print(ot:GetHeight(), ot:GetWidth())
   --vn.GetVeneer(ot):SetAllPoints(ot)
 end
 
@@ -36,17 +34,14 @@
 
 
 
-  print(ot:GetPoint(1),ot:GetPoint(2), ot:GetSize())
-  print(ot:GetTop(), ot:GetLeft())
-  print(ot:GetBottom(), ot:GetRight())
-  print(otvn:GetTop(), otvn:GetLeft())
-  print(otvn:GetBottom(), otvn:GetRight())
-  otvn:Show()
+  ot:ClearAllPoints()
+  ot:SetPoint('TOPRIGHT', UIParent, 'TOPRIGHT', -5, -140)
+
 end
 
 local CreateVeneer = function()
   ot = ObjectiveTrackerFrame
-  hooksecurefunc('ObjectiveTracker_Initialize', ResetObjectiveTrackerAnchor)
+  hooksecurefunc('ObjectiveTracker_Initialize', GetVeneer)
   hooksecurefunc('ObjectiveTracker_Update', UpdateVeneer)
 end
 
--- a/Veneer.lua	Tue Aug 23 14:53:38 2016 -0400
+++ b/Veneer.lua	Tue Aug 23 16:15:09 2016 -0400
@@ -129,7 +129,7 @@
   VeneerButton_Update(self)
 end
 
-vn.GetVeneer = function(frame)
+vn.GetVeneer = function(frame, template)
   if not frame then
     print('|cFFFF4400Unable to acquire frame...|r')
     return
@@ -141,7 +141,7 @@
   end
 
   local name = (frame:GetName() or AnonymousName())..'Veneer'
-  local veneer = CreateFrame('Frame', name, frame, 'VeneerTemplate')
+  local veneer = CreateFrame('Frame', name, frame, template or 'VeneerTemplate')
   print('+veneer', name)
 
   veneer:SetAllPoints(frame)
--- a/Veneer.xml	Tue Aug 23 14:53:38 2016 -0400
+++ b/Veneer.xml	Tue Aug 23 16:15:09 2016 -0400
@@ -115,6 +115,42 @@
   </Frame>
 
 
+  <Frame name="VeneerBuffTemplate" virtual="true" inherits="VeneerTemplate">
+    <Scripts>
+      <OnLoad>
+        self.duration = self.progress.duration
+        self.count = self.progress.count
+        self.border = self.underlay.bg
+      </OnLoad>
+    </Scripts>
+    <Frames>
+      <Frame name="$parentUnderlay" parentKey="underlay" frameStrata="BACKGROUND">
+        <Layers>
+          <Layer level="BACKGROUND">
+            <Texture parentKey="bg" setAllPoints="true" />
+          </Layer>
+        </Layers>
+      </Frame>
+      <Cooldown name="$parentCooldown" parentKey="cooldown" inherits="CooldownFrameTemplate" reverse="true" setAllPoints="true">
+
+      </Cooldown>
+      <Frame name="$parentProgress" parentKey="progress">
+        <Layers>
+          <Layer level="BACKGROUND">
+            <Texture parentKey="bg" />
+          </Layer>
+          <Layer level="ARTWORK">
+            <Texture parentKey="fg" />
+          </Layer>
+          <Layer level="OVERLAY">
+            <FontString parentKey="duration" inherits="VeneerNumberFont" />
+            <FontString parentKey="count" inherits="VeneerNumberFont" />
+          </Layer>
+        </Layers>
+      </Frame>
+    </Frames>
+  </Frame>
+
   <Script file="Veneer.lua" />
 
 </Ui>
\ No newline at end of file