Files
2022-12-14 10:58:37 -07:00

84 lines
2.2 KiB
Lua

local E, L, V, P, G = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
local mod = E:GetModule("DataBars")
function mod.OnLeave(self)
if (self == ElvUI_ExperienceBar and mod.db.experience.mouseover)
or (self == ElvUI_ReputationBar and mod.db.reputation.mouseover)
then
E:UIFrameFadeOut(self, 1, self:GetAlpha(), 0)
end
GameTooltip:Hide()
end
function mod:CreateBar(name, onEnter, onClick, ...)
local bar = CreateFrame("Button", name, E.UIParent)
bar:Point(...)
bar:SetScript("OnEnter", onEnter)
bar:SetScript("OnLeave", mod.OnLeave)
bar:SetScript("OnClick", onClick)
bar:SetFrameStrata("LOW")
bar:SetTemplate("Transparent")
bar:Hide()
bar.statusBar = CreateFrame("StatusBar", nil, bar)
bar.statusBar:SetInside()
bar.statusBar:SetStatusBarTexture(E.media.normTex)
E:RegisterStatusBar(bar.statusBar)
bar.text = bar.statusBar:CreateFontString(nil, "OVERLAY")
bar.text:FontTemplate()
bar.text:Point("CENTER")
return bar
end
function mod:CreateBarBubbles(bar)
local bubbles = CreateFrame("Frame", "$parent_Bubbles", bar)
bubbles:SetAllPoints()
bubbles.textures = {}
for i = 1, 19 do
bubbles.textures[i] = bubbles:CreateTexture(nil, "OVERLAY")
bubbles.textures[i]:SetTexture(0, 0, 0, 1)
end
bar.bubbles = bubbles
return bubbles
end
function mod:UpdateBarBubbles(bar, db)
if db.showBubbles then
local vertical = db.orientation ~= "HORIZONTAL"
local width = vertical and db.width or 1
local height = not vertical and db.height or 1
local offset = (vertical and db.height or db.width) / 20
for i, texture in ipairs(bar.bubbles.textures) do
texture:Size(width, height)
texture:Point("TOPLEFT", bar, "TOPLEFT", vertical and 0 or offset * i, vertical and -offset * i or 0)
texture:Show()
end
else
for _, texture in ipairs(bar.bubbles.textures) do
texture:Hide()
end
end
end
function mod:UpdateDataBarDimensions()
self:ExperienceBar_UpdateDimensions()
self:ReputationBar_UpdateDimensions()
end
function mod:Initialize()
self.db = E.db.databars
self.maxExpansionLevel = MAX_PLAYER_LEVEL_TABLE[GetAccountExpansionLevel()]
self:ExperienceBar_Load()
self:ReputationBar_Load()
end
local function InitializeCallback()
mod:Initialize()
end
E:RegisterModule(mod:GetName(), InitializeCallback)