Mercurial > wow > buffalo2
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 |