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 |
