Refactor the fade-out option to use the new state functionality
This commit is contained in:
@@ -27,7 +27,7 @@ local defaults = {
|
|||||||
local Sticky = LibStub("LibSimpleSticky-1.0")
|
local Sticky = LibStub("LibSimpleSticky-1.0")
|
||||||
local snapBars = { WorldFrame, UIParent }
|
local snapBars = { WorldFrame, UIParent }
|
||||||
|
|
||||||
local barOnEnter, barOnLeave, barOnDragStart, barOnDragStop, barOnClick, barOnUpdateFunc
|
local barOnEnter, barOnLeave, barOnDragStart, barOnDragStop, barOnClick, barOnUpdateFunc, barOnAttributeChanged
|
||||||
do
|
do
|
||||||
function barOnEnter(self)
|
function barOnEnter(self)
|
||||||
self:SetBackdropBorderColor(0.5, 0.5, 0, 1)
|
self:SetBackdropBorderColor(0.5, 0.5, 0, 1)
|
||||||
@@ -66,6 +66,19 @@ do
|
|||||||
self.elapsed = 0
|
self.elapsed = 0
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function barOnAttributeChanged(self, attribute, value)
|
||||||
|
if attribute == "fade" then
|
||||||
|
if value then
|
||||||
|
self:SetScript("OnUpdate", barOnUpdateFunc)
|
||||||
|
self:ControlFadeOut()
|
||||||
|
else
|
||||||
|
self:SetScript("OnUpdate", nil)
|
||||||
|
self.faded = nil
|
||||||
|
self:SetConfigAlpha()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local barregistry = {}
|
local barregistry = {}
|
||||||
@@ -84,6 +97,7 @@ function Bartender4.Bar:Create(id, config, name)
|
|||||||
bar.id = id
|
bar.id = id
|
||||||
bar.name = name or id
|
bar.name = name or id
|
||||||
bar:SetMovable(true)
|
bar:SetMovable(true)
|
||||||
|
bar:HookScript("OnAttributeChanged", barOnAttributeChanged)
|
||||||
|
|
||||||
local overlay = CreateFrame("Button", bar:GetName() .. "Overlay", bar)
|
local overlay = CreateFrame("Button", bar:GetName() .. "Overlay", bar)
|
||||||
bar.overlay = overlay
|
bar.overlay = overlay
|
||||||
@@ -151,7 +165,6 @@ function Bar:ApplyConfig(config)
|
|||||||
self:LoadPosition()
|
self:LoadPosition()
|
||||||
self:SetConfigScale()
|
self:SetConfigScale()
|
||||||
self:SetConfigAlpha()
|
self:SetConfigAlpha()
|
||||||
self:SetFadeOut()
|
|
||||||
self:InitVisibilityDriver()
|
self:InitVisibilityDriver()
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -166,11 +179,6 @@ function Bar:Unlock()
|
|||||||
else
|
else
|
||||||
self.overlay:SetBackdropColor(0, 1, 0, 0.5)
|
self.overlay:SetBackdropColor(0, 1, 0, 0.5)
|
||||||
end
|
end
|
||||||
if self.config.fadeout then
|
|
||||||
self:SetScript("OnUpdate", nil)
|
|
||||||
self.faded = nil
|
|
||||||
self:SetConfigAlpha()
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function Bar:Lock()
|
function Bar:Lock()
|
||||||
@@ -181,8 +189,6 @@ function Bar:Lock()
|
|||||||
self:ApplyVisibilityDriver()
|
self:ApplyVisibilityDriver()
|
||||||
|
|
||||||
self.overlay:Hide()
|
self.overlay:Hide()
|
||||||
|
|
||||||
self:SetFadeOut()
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function Bar:LoadPosition()
|
function Bar:LoadPosition()
|
||||||
@@ -241,14 +247,7 @@ end
|
|||||||
function Bar:SetFadeOut(fadeout)
|
function Bar:SetFadeOut(fadeout)
|
||||||
if fadeout ~= nil then
|
if fadeout ~= nil then
|
||||||
self.config.fadeout = fadeout
|
self.config.fadeout = fadeout
|
||||||
end
|
self:InitVisibilityDriver()
|
||||||
if self.config.fadeout then
|
|
||||||
self:SetScript("OnUpdate", barOnUpdateFunc)
|
|
||||||
self:ControlFadeOut()
|
|
||||||
else
|
|
||||||
self:SetScript("OnUpdate", nil)
|
|
||||||
self.faded = nil
|
|
||||||
self:SetConfigAlpha()
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -276,14 +275,12 @@ function Bar:SetFadeOutDelay(delay)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function Bar:ControlFadeOut()
|
function Bar:ControlFadeOut()
|
||||||
if self.config.fadeout then
|
if self.faded and MouseIsOver(self) then
|
||||||
if self.faded and MouseIsOver(self) then
|
self:SetAlpha(self.config.alpha)
|
||||||
self:SetAlpha(self.config.alpha)
|
self.faded = nil
|
||||||
self.faded = nil
|
elseif not self.faded and not MouseIsOver(self) then
|
||||||
elseif not self.faded and not MouseIsOver(self) then
|
self:SetAlpha(self.config.fadeoutalpha)
|
||||||
self:SetAlpha(self.config.fadeoutalpha)
|
self.faded = true
|
||||||
self.faded = true
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -332,7 +329,7 @@ function Bar:InitVisibilityDriver()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
table_insert(self.hidedriver, "show")
|
table_insert(self.hidedriver, self.config.fadeout and "fade" or "show")
|
||||||
self:ApplyVisibilityDriver()
|
self:ApplyVisibilityDriver()
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -345,6 +342,9 @@ end
|
|||||||
function Bar:DisableVisibilityDriver()
|
function Bar:DisableVisibilityDriver()
|
||||||
UnregisterStateDriver(self, "vis")
|
UnregisterStateDriver(self, "vis")
|
||||||
self:Show()
|
self:Show()
|
||||||
|
self:SetScript("OnUpdate", nil)
|
||||||
|
self.faded = nil
|
||||||
|
self:SetConfigAlpha()
|
||||||
end
|
end
|
||||||
|
|
||||||
function Bar:GetVisibilityOption(option, index)
|
function Bar:GetVisibilityOption(option, index)
|
||||||
|
|||||||
Reference in New Issue
Block a user