# HG changeset patch
# User Nenue
# Date 1471978418 14400
# Node ID d80db9a9b7e430c6dcf0a7e72d0b8c7c50313b6a
# Parent 6f86610946437418151b964b65180a0618a65205
- created 'VeneerTemplate' xml
- implement drag drop parent re-anchoring
diff -r 6f8661094643 -r d80db9a9b7e4 Modules/ObjectiveTracker.lua
--- a/Modules/ObjectiveTracker.lua Tue Aug 23 06:35:08 2016 -0400
+++ b/Modules/ObjectiveTracker.lua Tue Aug 23 14:53:38 2016 -0400
@@ -12,23 +12,36 @@
local ResetObjectiveTrackerAnchor = function()
print('|cFFFF4400ObjectiveTracker_Initialize|r')
- otvn = vn.GetVeneer(ot.BlocksFrame)
+ otvn = vn.GetVeneer(ot)
print(otvn:GetHeight())
- vn:print(ot:GetHeight(), ot:GetWidth())
for i = 1, #ot.MODULES do
print(i, ot.MODULES[i])
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
local UpdateVeneer = function()
- if not ot.initialized then
+ if not ot.initialized or not otvn then
return
end
- ot:ClearAllPoints()
- ot:SetPoint('TOPRIGHT', UIParent, 'TOPRIGHT', -5, -140)
+
+
+ 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()
end
local CreateVeneer = function()
diff -r 6f8661094643 -r d80db9a9b7e4 Modules/PaperDoll.lua
--- a/Modules/PaperDoll.lua Tue Aug 23 06:35:08 2016 -0400
+++ b/Modules/PaperDoll.lua Tue Aug 23 14:53:38 2016 -0400
@@ -205,9 +205,9 @@
end
-plugin:SetScript('OnEvent', plugin.event)
+--plugin:SetScript('OnEvent', plugin.event)
plugin:RegisterEvent('PLAYER_EQUIPMENT_CHANGED')
plugin:RegisterEvent('PLAYER_ENTERING_WORLD')
-hooksecurefunc("PaperDollItemSlotButton_Update", PaperDollItemSlotButton_Update)
+--hooksecurefunc("PaperDollItemSlotButton_Update", PaperDollItemSlotButton_Update)
diff -r 6f8661094643 -r d80db9a9b7e4 Veneer.lua
--- a/Veneer.lua Tue Aug 23 06:35:08 2016 -0400
+++ b/Veneer.lua Tue Aug 23 14:53:38 2016 -0400
@@ -25,16 +25,74 @@
end
end
+local anchor_coefficients = {
+ ['TOP'] = function(x, y) return x, y end,
+ ['BOTTOM'] = function(x, y) return x,y end,
+ ['LEFT'] = function(x, y) return x,y end,
+ ['RIGHT'] = function(x,y) return x,y end,
+}
+
+local VeneerButton_OnDragStart = function(self)
+ self.startingLeft = self:GetLeft()
+ self.startingBottom = self:GetBottom()
+ self.anchors = self.anchors or {}
+ table.wipe(self.anchors)
+
+ local frame = self:GetParent()
+ local n = frame:GetNumPoints()
+ for i = 1, n do
+ local anchor, parent, relative, x, y = frame:GetPoint(i)
+ self.anchors[i] = {
+ anchor = anchor,
+ parent = parent,
+ relative = relative,
+ x = x,
+ y = y
+ }
+ end
+
+ print(self:GetName(), 'start moving', self.startingLeft, self.startingBottom)
+ self:StartMoving()
+end
+
+local VeneerButton_OnDragStop = function(self)
+ self:StopMovingOrSizing()
+ if self.OnDragStop then
+ self.OnDragStop(self)
+ else
+ local frame = self:GetParent()
+ local dx = self:GetLeft() - self.startingLeft
+ local dy = self:GetBottom() - self.startingBottom
+
+ frame:ClearAllPoints()
+ for i, point in ipairs(self.anchors) do
+ frame:SetPoint(point.anchor, point.parent, point.relative, point.x + dx, point.y + dy)
+ print('adjusting anchor', point.anchor, point.parent, point.relative, point.x + dx, point.y + dy)
+ end
+ end
+end
+
+local Veneer_FixMovers = function()
+ for frame, veneer in pairs(veneers) do
+ if veneer:IsMoving() then
+ VeneerButton_OnDragStop(veneer)
+ end
+ end
+end
local VeneerButton_Update = function(self)
if configMode then
- self:SetScript('OnDragStart', self.StartMoving)
- self:SetScript('OnDragStop', self.StopMovingOrSizing)
- self:SetMovable(false)
- self:EnableMouse(false)
+ self:SetScript('OnDragStart', VeneerButton_OnDragStart)
+ self:SetScript('OnDragStop', VeneerButton_OnDragStop)
+ self:SetMovable(true)
+ self:EnableMouse(true)
self:RegisterForDrag('LeftButton')
self.bg:SetColorTexture(0,1,0,0.5)
+ for i, region in ipairs(self.configLayers) do
+ region:Show()
+ end
+ self:Show()
else
self:SetScript('OnDragStart', self.StartMoving)
@@ -43,6 +101,13 @@
self:EnableMouse(false)
self.bg:SetColorTexture(0,1,0,0)
+ for i, region in ipairs(self.configLayers) do
+ region:Hide()
+ end
+ if self.isHidden then
+ self:Hide()
+ end
+
end
end
@@ -75,14 +140,14 @@
return veneers[frame]
end
- local veneer = CreateFrame('Frame', (frame:GetName() or AnonymousName())..'Veneer', UIParent)
+ local name = (frame:GetName() or AnonymousName())..'Veneer'
+ local veneer = CreateFrame('Frame', name, frame, 'VeneerTemplate')
+ print('+veneer', name)
veneer:SetAllPoints(frame)
veneer:SetParent(frame)
- veneer.bg = veneer:CreateTexture()
+ veneer.label:SetText(name)
veneer.bg:SetColorTexture(1,1,1,0)
- veneer.bg:SetAllPoints(veneer)
- veneer.bg:Show()
veneer:Hide()
veneer:EnableMouse(false)
@@ -92,6 +157,7 @@
veneer.currentLeft = frame:GetLeft()
veneer.currentTop = frame:GetTop()
+
veneers[frame] = veneer
return veneers[frame]
end
diff -r 6f8661094643 -r d80db9a9b7e4 Veneer.xml
--- a/Veneer.xml Tue Aug 23 06:35:08 2016 -0400
+++ b/Veneer.xml Tue Aug 23 14:53:38 2016 -0400
@@ -85,6 +85,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+