comparison Veneer.lua @ 71:6f8661094643

- obtains veneer objects through a common function and track them as a unified table.
author Nenue
date Tue, 23 Aug 2016 06:35:08 -0400
parents ef4116179e2f
children d80db9a9b7e4
comparison
equal deleted inserted replaced
70:1b0d7bcd252e 71:6f8661094643
1 -- Veneer 1 -- Veneer
2 -- Customization tool for the small bits and pieces 2 -- Base framework for making things draggable.
3
4 -- BuffFrame
5 -- Provides mechanisms for positioning and alter buff button parameters.
6 -- Mostly re-configures the blizzard UI frames due to limitations of SecureTemplate.
7 3
8 local vn, print = LibStub("LibKraken").register(VeneerController) 4 local vn, print = LibStub("LibKraken").register(VeneerController)
9 5
10 6
11 local defaults = { 7 local defaults = {
16 BuffFrame = { 12 BuffFrame = {
17 width = 48, 13 width = 48,
18 height = 48, 14 height = 48,
19 } 15 }
20 } 16 }
17 local configMode
18 local veneers = {}
19
20 do
21 local anonID = 0
22 local AnonymousName = function()
23 anonID = anonID + 1
24 return 'VN' .. anonID
25 end
26 end
27
28
29 local VeneerButton_Update = function(self)
30 if configMode then
31 self:SetScript('OnDragStart', self.StartMoving)
32 self:SetScript('OnDragStop', self.StopMovingOrSizing)
33 self:SetMovable(false)
34 self:EnableMouse(false)
35 self:RegisterForDrag('LeftButton')
36
37 self.bg:SetColorTexture(0,1,0,0.5)
38 else
39
40 self:SetScript('OnDragStart', self.StartMoving)
41 self:SetScript('OnDragStop', self.StopMovingOrSizing)
42 self:SetMovable(false)
43 self:EnableMouse(false)
44
45 self.bg:SetColorTexture(0,1,0,0)
46 end
47 end
48
49 local ToggleVeneerConfig = function()
50 if configMode then
51 configMode = false
52 vn:print('Config mode off.')
53 else
54 configMode = true
55 vn:print('Config mode on.')
56 end
57
58 for frame, veneer in pairs(veneers) do
59 VeneerButton_Update(veneer)
60 end
61 end
62
63 local VeneerButton_OnShow = function(self)
64 VeneerButton_Update(self)
65 end
66
67 vn.GetVeneer = function(frame)
68 if not frame then
69 print('|cFFFF4400Unable to acquire frame...|r')
70 return
71 end
72
73
74 if veneers[frame] then
75 return veneers[frame]
76 end
77
78 local veneer = CreateFrame('Frame', (frame:GetName() or AnonymousName())..'Veneer', UIParent)
79
80 veneer:SetAllPoints(frame)
81 veneer:SetParent(frame)
82 veneer.bg = veneer:CreateTexture()
83 veneer.bg:SetColorTexture(1,1,1,0)
84 veneer.bg:SetAllPoints(veneer)
85 veneer.bg:Show()
86 veneer:Hide()
87 veneer:EnableMouse(false)
88
89 veneer:SetScript('OnShow', VeneerButton_OnShow)
90
91 -- find current X/Y
92 veneer.currentLeft = frame:GetLeft()
93 veneer.currentTop = frame:GetTop()
94
95 veneers[frame] = veneer
96 return veneers[frame]
97 end
21 98
22 vn.init = function() 99 vn.init = function()
23 if (not VeneerData) or (not VeneerData.version) then 100 if (not VeneerData) or (not VeneerData.version) then
24 VeneerData = defaults 101 VeneerData = defaults
25 end 102 end
26 vn.db = VeneerData 103 vn.db = VeneerData
104 end
27 105
106
107 vn.wrap = function(module)
108 vn.modules = vn.modules or {}
109 tinsert(vn.modules, module)
28 end 110 end
111
112 SLASH_VENEER1 = "/veneer"
113 SLASH_VENEER2 = "/vn"
114
115 SlashCmdList.VENEER = function()
116 ToggleVeneerConfig()
117 end