Mercurial > wow > buffalo2
diff Modules/BuffFrame.lua @ 121:1f68c46bc4de
BuffFrame:
- Added interface framework for selectively hiding certain buff's auxiliary values.
author | Nenue |
---|---|
date | Mon, 17 Jul 2017 11:51:31 -0400 |
parents | 8c94bee4fdfc |
children | ea2c616a3b4f |
line wrap: on
line diff
--- a/Modules/BuffFrame.lua Sun Jun 04 18:20:40 2017 -0400 +++ b/Modules/BuffFrame.lua Mon Jul 17 11:51:31 2017 -0400 @@ -47,7 +47,8 @@ Buttons = {}, DetectedFrames = {}, - AuraCache = {} + AuraCache = {}, + ValueMasks = {} } VeneerBuffFrameButtonMixin = {} local Facade = VeneerBuffFrameButtonMixin @@ -70,6 +71,7 @@ local expirationCache = {} local visibility = {} local isHooked = {} +local valueMasks plugin.options = { nameString = 'Buff Frames', @@ -303,13 +305,32 @@ self:SetupButton('TempEnchant'..i) _G['TempEnchant'..i..'Border']:SetVertexColor(0.5,0,1,1) end + + VeneerData.BuffFrame = VeneerData.BuffFrame or {} + VeneerData.BuffFrame.ValueMasks = VeneerData.BuffFrame.ValueMasks or {} + valueMasks = VeneerData.BuffFrame.ValueMasks end function plugin:SetHidden(region) if not self.hiddenRegions[region] then self.hiddenRegions[region] = true region:SetShown(false) - hooksecurefunc(region) + + end +end + +local lastAuditName = '' +local lastAuditIndex = '' +local Audit_OnClick = function(self) + + local facade = self:GetParent() + local index = self.index + local name = facade.buffName + if name then + DEFAULT_CHAT_FRAME:AddMessage('|cFF00FFFFVeneer|r: Hiding |cFF00FF88'..name..' value'..index..'|r, type /vn buffs reset to undo.') + valueMasks[name] = valueMasks[name] or {} + valueMasks[name][index] = false + print('AuditClick', name, index, false) end end @@ -366,6 +387,16 @@ facade:SetShown(isShown) end) + facade.Audit = facade.Audit or {} + for i = 1, 3 do + local button = CreateFrame('Button', nil, facade, 'VeneerBuffAuditTemplate') + button.index = i + button:RegisterForClicks('AnyUp') + button:SetScript('OnClick', Audit_OnClick) + button:SetPoint('TOPLEFT', 0, (i-1) * 16 * -1) + facade.Audit[i] = button + end + facade.IsAcquired = true facade:SetParent(UIParent) facade:SetAllPoints(frame) @@ -374,6 +405,7 @@ --- Set widgets to reflect the passed parameters +local values = {} function plugin:UpdateButton (name, duration, expires) local frame = _G[name] local facade = self:Acquire(name) @@ -382,7 +414,6 @@ print('|cFFFF4400detected', name) self:SetupButton(name) end - print(facade:GetParent():GetName(), facade:GetPoint(1)) --[[ if frame.count then frame.count:SetText('test') @@ -391,8 +422,11 @@ --]] local name, rank, icon, count, dispelType, duration, expires, caster, isStealable, nameplateShowPersonal, spellID, canApplyAura, isBossDebuff, _, nameplateShowAll, timeMod, value1, value2, value3 = UnitAura(frame.unit, frame:GetID(), frame.filter) + values[1] = value1 + values[2] = value2 + values[3] = value3 - + facade.buffName = name if expires and duration then if duration ~= 0 then @@ -425,13 +459,13 @@ end) - facade.cooldown:Show() - facade.cooldown:SetCooldown(startTime, duration) + --facade.cooldown:Show() + --facade.cooldown:SetCooldown(startTime, duration) else print('|cFF00FF88'..frame:GetName()..'|r', 'duration zero') facade.progress:SetScript('OnUpdate', nil) facade.progress:Hide() - facade.cooldown:Hide() + --facade.cooldown:Hide() end if count and count > 1 then @@ -442,15 +476,22 @@ facade.count:Hide() end + for i, button in ipairs(facade.Audit) do + local isShown = (values[i] and true) + if valueMasks[name] and valueMasks[name][i] ~= nil then + print(':: use value mask', name, i) + isShown = (values[i] == 1) and true or false + end - facade.overlay.Value1:SetText(value1) - facade.overlay.Value2:SetText(value2) - facade.overlay.Value3:SetText(value3) + facade.Audit[i]:SetShown(isShown) + facade.Audit[i].Value:SetText(values[i]) + end + else facade.progress:Hide() - facade.cooldown:SetCooldown(0,0) - facade.cooldown:Hide() + --facade.cooldown:SetCooldown(0,0) + --facade.cooldown:Hide() print('|cFF88FF00'..frame:GetName()..'|r', 'nil duration') end facade:Show()