movable frames

This commit is contained in:
Sumsebrum
2022-01-11 00:29:17 +01:00
parent adb06d0c7f
commit 59da6f34c6
14 changed files with 881 additions and 608 deletions

View File

@ -31,11 +31,9 @@ local BuffsDebuffs = Gladdy:NewModule("Buffs and Debuffs", nil, {
buffsFontScale = 1,
buffsFontColor = {r = 1, g = 1, b = 0, a = 1},
buffsDynamicColor = true,
buffsCooldownPos = "TOP",
buffsCooldownGrowDirection = "RIGHT",
buffsXOffset = 0,
buffsYOffset = 0,
buffsBuffsCooldownPos = "BOTTOM",
buffsBuffsCooldownGrowDirection = "RIGHT",
buffsBuffsXOffset = 0,
buffsBuffsYOffset = 0,
@ -51,7 +49,7 @@ local BuffsDebuffs = Gladdy:NewModule("Buffs and Debuffs", nil, {
buffsBorderColorImmune = Gladdy:GetAuraTypeColor()["immune"],
buffsBorderColorDisease = Gladdy:GetAuraTypeColor()["disease"],
buffsBorderColorForm = Gladdy:GetAuraTypeColor()["form"],
buffsBorderColorAura = Gladdy:GetAuraTypeColor()["aura"]
buffsBorderColorAura = Gladdy:GetAuraTypeColor()["aura"],
})
local spellSchoolToOptionValueTable
@ -233,18 +231,15 @@ end
---------------------------
function BuffsDebuffs:CreateFrame(unit)
local verticalMargin = (Gladdy.db.highlightInset and 0 or Gladdy.db.highlightBorderSize) + Gladdy.db.padding
local debuffFrame = CreateFrame("Frame", "GladdyDebuffs" .. unit, Gladdy.buttons[unit])
debuffFrame:SetMovable(true)
debuffFrame:SetHeight(Gladdy.db.buffsIconSize)
debuffFrame:SetWidth(1)
debuffFrame:SetPoint("BOTTOMLEFT", Gladdy.buttons[unit].healthBar, "TOPLEFT", 0, verticalMargin)
debuffFrame.unit = unit
local buffFrame = CreateFrame("Frame", "GladdyBuffs" .. unit, Gladdy.buttons[unit])
buffFrame:SetMovable(true)
buffFrame:SetHeight(Gladdy.db.buffsIconSize)
buffFrame:SetWidth(1)
buffFrame:SetPoint("BOTTOMLEFT", Gladdy.buttons[unit].healthBar, "TOPLEFT", 0, verticalMargin)
buffFrame.unit = unit
self.frames[unit] = {}
self.frames[unit].buffFrame = buffFrame
@ -285,156 +280,30 @@ local function styleIcon(aura, auraType)
end
function BuffsDebuffs:UpdateFrame(unit)
self.frames[unit].debuffFrame:SetHeight(Gladdy.db.buffsIconSize)
self.frames[unit].debuffFrame:ClearAllPoints()
--DEBUFFS
local powerBarHeight = Gladdy.db.powerBarEnabled and (Gladdy.db.powerBarHeight + 1) or 0
local horizontalMargin = (Gladdy.db.highlightInset and 0 or Gladdy.db.highlightBorderSize)
local verticalMargin = -(Gladdy.db.powerBarHeight)/2
if Gladdy.db.buffsCooldownPos == "TOP" then
verticalMargin = horizontalMargin + 1
if Gladdy.db.cooldownYPos == "TOP" and Gladdy.db.cooldown then
verticalMargin = verticalMargin + Gladdy.db.cooldownSize
end
if Gladdy.db.buffsCooldownGrowDirection == "LEFT" then
self.frames[unit].debuffFrame:SetPoint("BOTTOMLEFT", Gladdy.buttons[unit].healthBar, "TOPRIGHT", Gladdy.db.buffsXOffset, Gladdy.db.buffsYOffset + verticalMargin)
else
self.frames[unit].debuffFrame:SetPoint("BOTTOMRIGHT", Gladdy.buttons[unit].healthBar, "TOPLEFT", Gladdy.db.buffsXOffset, Gladdy.db.buffsYOffset + verticalMargin)
end
elseif Gladdy.db.buffsCooldownPos == "BOTTOM" then
verticalMargin = horizontalMargin + 1
if Gladdy.db.cooldownYPos == "BOTTOM" and Gladdy.db.cooldown then
verticalMargin = verticalMargin + Gladdy.db.cooldownSize
end
if Gladdy.db.buffsCooldownGrowDirection == "LEFT" then
self.frames[unit].debuffFrame:SetPoint("TOPLEFT", Gladdy.buttons[unit].healthBar, "BOTTOMRIGHT", Gladdy.db.buffsXOffset, Gladdy.db.buffsYOffset -verticalMargin - powerBarHeight)
else
self.frames[unit].debuffFrame:SetPoint("TOPRIGHT", Gladdy.buttons[unit].healthBar, "BOTTOMLEFT", Gladdy.db.buffsXOffset, Gladdy.db.buffsYOffset -verticalMargin - powerBarHeight)
end
elseif Gladdy.db.buffsCooldownPos == "LEFT" then
horizontalMargin = horizontalMargin - 1 + Gladdy.db.padding
local anchor = Gladdy:GetAnchor(unit, "LEFT")
if anchor == Gladdy.buttons[unit].healthBar then
self.frames[unit].debuffFrame:SetPoint("RIGHT", anchor, "LEFT", -horizontalMargin + Gladdy.db.buffsXOffset, Gladdy.db.buffsYOffset)
else
self.frames[unit].debuffFrame:SetPoint("RIGHT", anchor, "LEFT", -Gladdy.db.padding + Gladdy.db.buffsXOffset, Gladdy.db.buffsYOffset)
end
elseif Gladdy.db.buffsCooldownPos == "RIGHT" then
horizontalMargin = horizontalMargin - 1 + Gladdy.db.padding
local anchor = Gladdy:GetAnchor(unit, "RIGHT")
if anchor == Gladdy.buttons[unit].healthBar then
self.frames[unit].debuffFrame:SetPoint("LEFT", anchor, "RIGHT", horizontalMargin + Gladdy.db.buffsXOffset, Gladdy.db.buffsYOffset)
else
self.frames[unit].debuffFrame:SetPoint("LEFT", anchor, "RIGHT", horizontalMargin + Gladdy.db.buffsXOffset, Gladdy.db.buffsYOffset)
end
end
self.frames[unit].debuffFrame:SetHeight(Gladdy.db.buffsIconSize)
Gladdy:SetPosition(self.frames[unit].debuffFrame, unit, "buffsXOffset", "buffsYOffset", BuffsDebuffs:LegacySetPositionDebuffs(unit), BuffsDebuffs)
if (unit == "arena1") then
Gladdy:CreateMover(self.frames[unit].debuffFrame, "buffsXOffset", "buffsYOffset", L["Debuffs"],
Gladdy.db.buffsCooldownGrowDirection == "LEFT" and {"TOPRIGHT", "TOPRIGHT"} or {"TOPLEFT", "TOPLEFT"},
{"TOPRIGHT", "TOPRIGHT"},
Gladdy.db.buffsIconSize * Gladdy.db.buffsWidthFactor,
Gladdy.db.buffsIconSize, Gladdy.db.buffsCooldownGrowDirection == "LEFT"and -1 or 1, 0)
Gladdy.db.buffsIconSize, 0, 0)
if not Gladdy.db.buffsEnabled then
self.frames[unit].debuffFrame.mover:Hide()
end
end
--BUFFS
self.frames[unit].buffFrame:SetHeight(Gladdy.db.buffsBuffsIconSize)
self.frames[unit].buffFrame:ClearAllPoints()
horizontalMargin = (Gladdy.db.highlightInset and 0 or Gladdy.db.highlightBorderSize)
verticalMargin = -(Gladdy.db.powerBarHeight)/2
if Gladdy.db.buffsBuffsCooldownPos == "TOP" then
verticalMargin = horizontalMargin + 1
if Gladdy.db.cooldownYPos == "TOP" and Gladdy.db.cooldown then
verticalMargin = verticalMargin + Gladdy.db.cooldownSize
end
if Gladdy.db.buffsBuffsCooldownGrowDirection == "LEFT" then
self.frames[unit].buffFrame:SetPoint("BOTTOMLEFT", Gladdy.buttons[unit].healthBar, "TOPRIGHT", Gladdy.db.buffsXOffset, Gladdy.db.buffsBuffsYOffset + verticalMargin)
else
self.frames[unit].buffFrame:SetPoint("BOTTOMRIGHT", Gladdy.buttons[unit].healthBar, "TOPLEFT", Gladdy.db.buffsXOffset, Gladdy.db.buffsBuffsYOffset + verticalMargin)
end
elseif Gladdy.db.buffsBuffsCooldownPos == "BOTTOM" then
verticalMargin = horizontalMargin + 1
if Gladdy.db.cooldownYPos == "BOTTOM" and Gladdy.db.cooldown then
verticalMargin = verticalMargin + Gladdy.db.cooldownSize
end
if Gladdy.db.buffsBuffsCooldownGrowDirection == "LEFT" then
self.frames[unit].buffFrame:SetPoint("TOPLEFT", Gladdy.buttons[unit].healthBar, "BOTTOMRIGHT", Gladdy.db.buffsBuffsXOffset, Gladdy.db.buffsBuffsYOffset -verticalMargin - powerBarHeight)
else
self.frames[unit].buffFrame:SetPoint("TOPRIGHT", Gladdy.buttons[unit].healthBar, "BOTTOMLEFT", Gladdy.db.buffsBuffsXOffset, Gladdy.db.buffsBuffsYOffset -verticalMargin - powerBarHeight)
end
elseif Gladdy.db.buffsBuffsCooldownPos == "LEFT" then
horizontalMargin = horizontalMargin - 1 + Gladdy.db.padding
if (Gladdy.db.trinketPos == "LEFT" and Gladdy.db.trinketEnabled) then
horizontalMargin = horizontalMargin + (Gladdy.db.trinketSize * Gladdy.db.trinketWidthFactor) + Gladdy.db.padding
if (Gladdy.db.classIconPos == "LEFT") then
horizontalMargin = horizontalMargin + (Gladdy.db.classIconSize * Gladdy.db.classIconWidthFactor) + Gladdy.db.padding
end
elseif (Gladdy.db.classIconPos == "LEFT") then
horizontalMargin = horizontalMargin + (Gladdy.db.classIconSize * Gladdy.db.classIconWidthFactor) + Gladdy.db.padding
if (Gladdy.db.trinketPos == "LEFT" and Gladdy.db.trinketEnabled) then
horizontalMargin = horizontalMargin + (Gladdy.db.trinketSize * Gladdy.db.trinketWidthFactor) + Gladdy.db.padding
end
end
if (Gladdy.db.drCooldownPos == "LEFT" and Gladdy.db.drEnabled) then
verticalMargin = verticalMargin + Gladdy.db.drIconSize/2 + Gladdy.db.padding/2
end
if (Gladdy.db.castBarPos == "LEFT") then
verticalMargin = verticalMargin -
(((Gladdy.db.castBarHeight < Gladdy.db.castBarIconSize) and Gladdy.db.castBarIconSize
or Gladdy.db.castBarHeight)/2 + Gladdy.db.padding/2)
end
if (Gladdy.db.cooldownYPos == "LEFT" and Gladdy.db.cooldown) then
verticalMargin = verticalMargin + (Gladdy.db.buffsBuffsIconSize/2 + Gladdy.db.padding/2)
end
--self.frames[unit].buffFrame:SetPoint("RIGHT", Gladdy.buttons[unit].healthBar, "LEFT", -horizontalMargin + Gladdy.db.buffsBuffsXOffset, Gladdy.db.buffsBuffsYOffset + verticalMargin)
local anchor = Gladdy:GetAnchor(unit, "LEFT")
horizontalMargin = (Gladdy.db.highlightInset and 0 or Gladdy.db.highlightBorderSize) - 1 + Gladdy.db.padding
if anchor == Gladdy.buttons[unit].healthBar then
self.frames[unit].buffFrame:SetPoint("RIGHT", anchor, "LEFT", -horizontalMargin + Gladdy.db.buffsBuffsXOffset, Gladdy.db.buffsBuffsYOffset)
else
self.frames[unit].buffFrame:SetPoint("RIGHT", anchor, "LEFT", -Gladdy.db.padding + Gladdy.db.buffsBuffsXOffset, Gladdy.db.buffsBuffsYOffset)
end
elseif Gladdy.db.buffsBuffsCooldownPos == "RIGHT" then
horizontalMargin = horizontalMargin - 1 + Gladdy.db.padding
if (Gladdy.db.trinketPos == "RIGHT" and Gladdy.db.trinketEnabled) then
horizontalMargin = horizontalMargin + (Gladdy.db.trinketSize * Gladdy.db.trinketWidthFactor) + Gladdy.db.padding
if (Gladdy.db.classIconPos == "RIGHT") then
horizontalMargin = horizontalMargin + (Gladdy.db.classIconSize * Gladdy.db.classIconWidthFactor) + Gladdy.db.padding
end
elseif (Gladdy.db.classIconPos == "RIGHT") then
horizontalMargin = horizontalMargin + (Gladdy.db.classIconSize * Gladdy.db.classIconWidthFactor) + Gladdy.db.padding
if (Gladdy.db.trinketPos == "RIGHT" and Gladdy.db.trinketEnabled) then
horizontalMargin = horizontalMargin + (Gladdy.db.trinketSize * Gladdy.db.trinketWidthFactor) + Gladdy.db.padding
end
end
if (Gladdy.db.drCooldownPos == "RIGHT" and Gladdy.db.drEnabled) then
verticalMargin = verticalMargin + Gladdy.db.drIconSize/2 + Gladdy.db.padding/2
end
if (Gladdy.db.castBarPos == "RIGHT") then
verticalMargin = verticalMargin -
(((Gladdy.db.castBarHeight < Gladdy.db.castBarIconSize) and Gladdy.db.castBarIconSize
or Gladdy.db.castBarHeight)/2 + Gladdy.db.padding/2)
end
if (Gladdy.db.cooldownYPos == "RIGHT" and Gladdy.db.cooldown) then
verticalMargin = verticalMargin + (Gladdy.db.buffsBuffsIconSize/2 + Gladdy.db.padding/2)
end
--self.frames[unit].buffFrame:SetPoint("LEFT", Gladdy.buttons[unit].healthBar, "RIGHT", horizontalMargin + Gladdy.db.buffsBuffsXOffset, Gladdy.db.buffsBuffsYOffset + verticalMargin)
local anchor = Gladdy:GetAnchor(unit, "RIGHT")
horizontalMargin = (Gladdy.db.highlightInset and 0 or Gladdy.db.highlightBorderSize) - 1 + Gladdy.db.padding
if anchor == Gladdy.buttons[unit].healthBar then
self.frames[unit].buffFrame:SetPoint("LEFT", anchor, "RIGHT", horizontalMargin + Gladdy.db.buffsBuffsXOffset, Gladdy.db.buffsBuffsYOffset)
else
self.frames[unit].buffFrame:SetPoint("LEFT", anchor, "RIGHT", Gladdy.db.padding + Gladdy.db.buffsBuffsXOffset, Gladdy.db.buffsBuffsYOffset)
end
end
Gladdy:SetPosition(self.frames[unit].buffFrame, unit, "buffsBuffsXOffset", "buffsBuffsYOffset", BuffsDebuffs:LegacySetPositionBuffs(unit), BuffsDebuffs)
if (unit == "arena1") then
Gladdy:CreateMover(self.frames[unit].buffFrame, "buffsBuffsXOffset", "buffsBuffsYOffset", L["Buffs"],
Gladdy.db.buffsBuffsCooldownGrowDirection == "LEFT" and {"TOPRIGHT", "TOPRIGHT"} or {"TOPLEFT", "TOPLEFT"},
{"TOPRIGHT", "TOPRIGHT"},
Gladdy.db.buffsBuffsIconSize * Gladdy.db.buffsBuffsWidthFactor,
Gladdy.db.buffsBuffsIconSize, Gladdy.db.buffsBuffsCooldownGrowDirection == "LEFT"and -1 or 1, 0)
Gladdy.db.buffsBuffsIconSize, 0, 0)
if not Gladdy.db.buffsEnabled then
self.frames[unit].buffFrame.mover:Hide()
end
end
for i=1, #self.frames[unit].auras[AURA_TYPE_BUFF] do
@ -456,13 +325,8 @@ end
function BuffsDebuffs:UpdateAurasOnUnit(unit)
for i=1, #self.frames[unit].auras[AURA_TYPE_BUFF] do
if i == 1 then
if Gladdy.db.buffsBuffsCooldownGrowDirection == "LEFT" then
self.frames[unit].auras[AURA_TYPE_BUFF][i]:ClearAllPoints()
self.frames[unit].auras[AURA_TYPE_BUFF][i]:SetPoint("RIGHT", self.frames[unit].buffFrame, "LEFT")
else
self.frames[unit].auras[AURA_TYPE_BUFF][i]:ClearAllPoints()
self.frames[unit].auras[AURA_TYPE_BUFF][i]:SetPoint("LEFT", self.frames[unit].buffFrame, "RIGHT")
end
self.frames[unit].auras[AURA_TYPE_BUFF][i]:ClearAllPoints()
self.frames[unit].auras[AURA_TYPE_BUFF][i]:SetPoint("RIGHT", self.frames[unit].buffFrame, "LEFT")
else
if Gladdy.db.buffsBuffsCooldownGrowDirection == "LEFT" then
self.frames[unit].auras[AURA_TYPE_BUFF][i]:ClearAllPoints()
@ -475,13 +339,8 @@ function BuffsDebuffs:UpdateAurasOnUnit(unit)
end
for i=1, #self.frames[unit].auras[AURA_TYPE_DEBUFF] do
if i == 1 then
if Gladdy.db.buffsCooldownGrowDirection == "LEFT" then
self.frames[unit].auras[AURA_TYPE_DEBUFF][i]:ClearAllPoints()
self.frames[unit].auras[AURA_TYPE_DEBUFF][i]:SetPoint("RIGHT", self.frames[unit].debuffFrame, "LEFT")
else
self.frames[unit].auras[AURA_TYPE_DEBUFF][i]:ClearAllPoints()
self.frames[unit].auras[AURA_TYPE_DEBUFF][i]:SetPoint("LEFT", self.frames[unit].debuffFrame, "RIGHT")
end
self.frames[unit].auras[AURA_TYPE_DEBUFF][i]:ClearAllPoints()
self.frames[unit].auras[AURA_TYPE_DEBUFF][i]:SetPoint("RIGHT", self.frames[unit].debuffFrame, "LEFT")
else
if Gladdy.db.buffsCooldownGrowDirection == "LEFT" then
self.frames[unit].auras[AURA_TYPE_DEBUFF][i]:ClearAllPoints()
@ -602,36 +461,6 @@ end
-- OPTIONS
------------
local function option(params)
local defaults = {
get = function(info)
local key = info.arg or info[#info]
return Gladdy.dbi.profile[key]
end,
set = function(info, value)
local key = info.arg or info[#info]
Gladdy.dbi.profile[key] = value
if Gladdy.db.buffsCooldownPos == "LEFT" then
Gladdy.db.buffsCooldownGrowDirection = "LEFT"
elseif Gladdy.db.buffsCooldownPos == "RIGHT" then
Gladdy.db.buffsCooldownGrowDirection = "RIGHT"
end
if Gladdy.db.buffsBuffsCooldownPos == "LEFT" then
Gladdy.db.buffsBuffsCooldownGrowDirection = "LEFT"
elseif Gladdy.db.buffsBuffsCooldownPos == "RIGHT" then
Gladdy.db.buffsBuffsCooldownGrowDirection = "RIGHT"
end
Gladdy:UpdateFrame()
end,
}
for k, v in pairs(params) do
defaults[k] = v
end
return defaults
end
function BuffsDebuffs:GetOptions()
return {
headerBuffs = {
@ -714,18 +543,6 @@ function BuffsDebuffs:GetOptions()
name = L["Position"],
order = 5,
},
buffsBuffsCooldownPos = option({
type = "select",
name = L["Aura Position"],
desc = L["Position of the aura icons"],
order = 21,
values = {
["TOP"] = L["Top"],
["BOTTOM"] = L["Bottom"],
["LEFT"] = L["Left"],
["RIGHT"] = L["Right"],
},
}),
buffsBuffsCooldownGrowDirection = Gladdy:option({
type = "select",
name = L["Grow Direction"],
@ -836,18 +653,6 @@ function BuffsDebuffs:GetOptions()
name = L["Position"],
order = 5,
},
buffsCooldownPos = option({
type = "select",
name = L["Aura Position"],
desc = L["Position of the aura icons"],
order = 21,
values = {
["TOP"] = L["Top"],
["BOTTOM"] = L["Bottom"],
["LEFT"] = L["Left"],
["RIGHT"] = L["Right"],
},
}),
buffsCooldownGrowDirection = Gladdy:option({
type = "select",
name = L["Grow Direction"],
@ -1108,3 +913,168 @@ function BuffsDebuffs:GetOptions()
}
end
---------------------------
-- LAGACY HANDLER
---------------------------
function BuffsDebuffs:LegacySetPositionDebuffs(unit)
if Gladdy.db.newLayout then
return Gladdy.db.newLayout
end
self.frames[unit].debuffFrame:ClearAllPoints()
local powerBarHeight = Gladdy.db.powerBarEnabled and (Gladdy.db.powerBarHeight + 1) or 0
local horizontalMargin = (Gladdy.db.highlightInset and 0 or Gladdy.db.highlightBorderSize)
local verticalMargin = -(Gladdy.db.powerBarHeight)/2
local offset = 0
if (Gladdy.db.buffsCooldownGrowDirection == "RIGHT") then
offset = Gladdy.db.buffsIconSize * Gladdy.db.buffsWidthFactor
end
local pos = Gladdy.db.buffsCooldownPos
if pos == "TOP" then
verticalMargin = horizontalMargin + 1
if Gladdy.db.cooldownYPos == "TOP" and Gladdy.db.cooldown then
verticalMargin = verticalMargin + Gladdy.db.cooldownSize
end
if Gladdy.db.buffsCooldownGrowDirection == "LEFT" then
self.frames[unit].debuffFrame:SetPoint("BOTTOMLEFT", Gladdy.buttons[unit].healthBar, "TOPRIGHT", Gladdy.db.buffsXOffset + offset, Gladdy.db.buffsYOffset + verticalMargin)
else
self.frames[unit].debuffFrame:SetPoint("BOTTOMRIGHT", Gladdy.buttons[unit].healthBar, "TOPLEFT", Gladdy.db.buffsXOffset + offset, Gladdy.db.buffsYOffset + verticalMargin)
end
elseif pos == "BOTTOM" then
verticalMargin = horizontalMargin + 1
if Gladdy.db.cooldownYPos == "BOTTOM" and Gladdy.db.cooldown then
verticalMargin = verticalMargin + Gladdy.db.cooldownSize
end
if Gladdy.db.buffsCooldownGrowDirection == "LEFT" then
self.frames[unit].debuffFrame:SetPoint("TOPLEFT", Gladdy.buttons[unit].healthBar, "BOTTOMRIGHT", Gladdy.db.buffsXOffset + offset, Gladdy.db.buffsYOffset -verticalMargin - powerBarHeight)
else
self.frames[unit].debuffFrame:SetPoint("TOPRIGHT", Gladdy.buttons[unit].healthBar, "BOTTOMLEFT", Gladdy.db.buffsXOffset + offset, Gladdy.db.buffsYOffset -verticalMargin - powerBarHeight)
end
elseif pos == "LEFT" then
horizontalMargin = horizontalMargin - 1 + Gladdy.db.padding
local anchor = Gladdy:GetAnchor(unit, "LEFT")
if anchor == Gladdy.buttons[unit].healthBar then
self.frames[unit].debuffFrame:SetPoint("RIGHT", anchor, "LEFT", -horizontalMargin + Gladdy.db.buffsXOffset + offset, Gladdy.db.buffsYOffset)
else
self.frames[unit].debuffFrame:SetPoint("RIGHT", anchor, "LEFT", -Gladdy.db.padding + Gladdy.db.buffsXOffset + offset, Gladdy.db.buffsYOffset)
end
elseif pos == "RIGHT" then
horizontalMargin = horizontalMargin - 1 + Gladdy.db.padding
local anchor = Gladdy:GetAnchor(unit, "RIGHT")
if anchor == Gladdy.buttons[unit].healthBar then
self.frames[unit].debuffFrame:SetPoint("LEFT", anchor, "RIGHT", horizontalMargin + Gladdy.db.buffsXOffset + offset, Gladdy.db.buffsYOffset)
else
self.frames[unit].debuffFrame:SetPoint("LEFT", anchor, "RIGHT", horizontalMargin + Gladdy.db.buffsXOffset + offset, Gladdy.db.buffsYOffset)
end
end
return Gladdy.db.newLayout
end
function BuffsDebuffs:LegacySetPositionBuffs(unit)
if Gladdy.db.newLayout then
return Gladdy.db.newLayout
end
self.frames[unit].buffFrame:ClearAllPoints()
local horizontalMargin = (Gladdy.db.highlightInset and 0 or Gladdy.db.highlightBorderSize)
local verticalMargin = -(Gladdy.db.powerBarHeight)/2
local powerBarHeight = Gladdy.db.powerBarEnabled and (Gladdy.db.powerBarHeight + 1) or 0
local offset = 0
if (Gladdy.db.buffsBuffsCooldownGrowDirection == "RIGHT") then
offset = Gladdy.db.buffsBuffsIconSize * Gladdy.db.buffsBuffsWidthFactor
end
local pos = Gladdy.db.buffsBuffsCooldownPos
if pos == "TOP" then
verticalMargin = horizontalMargin + 1
if Gladdy.db.cooldownYPos == "TOP" and Gladdy.db.cooldown then
verticalMargin = verticalMargin + Gladdy.db.cooldownSize
end
if Gladdy.db.buffsBuffsCooldownGrowDirection == "LEFT" then
self.frames[unit].buffFrame:SetPoint("BOTTOMLEFT", Gladdy.buttons[unit].healthBar, "TOPRIGHT", Gladdy.db.buffsXOffset + offset, Gladdy.db.buffsBuffsYOffset + verticalMargin)
else
self.frames[unit].buffFrame:SetPoint("BOTTOMRIGHT", Gladdy.buttons[unit].healthBar, "TOPLEFT", Gladdy.db.buffsXOffset + offset, Gladdy.db.buffsBuffsYOffset + verticalMargin)
end
elseif pos == "BOTTOM" then
verticalMargin = horizontalMargin + 1
if Gladdy.db.cooldownYPos == "BOTTOM" and Gladdy.db.cooldown then
verticalMargin = verticalMargin + Gladdy.db.cooldownSize
end
if Gladdy.db.buffsBuffsCooldownGrowDirection == "LEFT" then
self.frames[unit].buffFrame:SetPoint("TOPLEFT", Gladdy.buttons[unit].healthBar, "BOTTOMRIGHT", Gladdy.db.buffsBuffsXOffset + offset, Gladdy.db.buffsBuffsYOffset -verticalMargin - powerBarHeight)
else
self.frames[unit].buffFrame:SetPoint("TOPRIGHT", Gladdy.buttons[unit].healthBar, "BOTTOMLEFT", Gladdy.db.buffsBuffsXOffset + offset, Gladdy.db.buffsBuffsYOffset -verticalMargin - powerBarHeight)
end
elseif pos == "LEFT" then
horizontalMargin = horizontalMargin - 1 + Gladdy.db.padding
if (Gladdy.db.trinketPos == "LEFT" and Gladdy.db.trinketEnabled) then
horizontalMargin = horizontalMargin + (Gladdy.db.trinketSize * Gladdy.db.trinketWidthFactor) + Gladdy.db.padding
if (Gladdy.db.classIconPos == "LEFT") then
horizontalMargin = horizontalMargin + (Gladdy.db.classIconSize * Gladdy.db.classIconWidthFactor) + Gladdy.db.padding
end
elseif (Gladdy.db.classIconPos == "LEFT") then
horizontalMargin = horizontalMargin + (Gladdy.db.classIconSize * Gladdy.db.classIconWidthFactor) + Gladdy.db.padding
if (Gladdy.db.trinketPos == "LEFT" and Gladdy.db.trinketEnabled) then
horizontalMargin = horizontalMargin + (Gladdy.db.trinketSize * Gladdy.db.trinketWidthFactor) + Gladdy.db.padding
end
end
if (Gladdy.db.drCooldownPos == "LEFT" and Gladdy.db.drEnabled) then
verticalMargin = verticalMargin + Gladdy.db.drIconSize/2 + Gladdy.db.padding/2
end
if (Gladdy.db.castBarPos == "LEFT") then
verticalMargin = verticalMargin -
(((Gladdy.db.castBarHeight < Gladdy.db.castBarIconSize) and Gladdy.db.castBarIconSize
or Gladdy.db.castBarHeight)/2 + Gladdy.db.padding/2)
end
if (Gladdy.db.cooldownYPos == "LEFT" and Gladdy.db.cooldown) then
verticalMargin = verticalMargin + (Gladdy.db.buffsBuffsIconSize/2 + Gladdy.db.padding/2)
end
--self.frames[unit].buffFrame:SetPoint("RIGHT", Gladdy.buttons[unit].healthBar, "LEFT", -horizontalMargin + Gladdy.db.buffsBuffsXOffset, Gladdy.db.buffsBuffsYOffset + verticalMargin)
local anchor = Gladdy:GetAnchor(unit, "LEFT")
horizontalMargin = (Gladdy.db.highlightInset and 0 or Gladdy.db.highlightBorderSize) - 1 + Gladdy.db.padding
if anchor == Gladdy.buttons[unit].healthBar then
self.frames[unit].buffFrame:SetPoint("RIGHT", anchor, "LEFT", -horizontalMargin + Gladdy.db.buffsBuffsXOffset + offset, Gladdy.db.buffsBuffsYOffset)
else
self.frames[unit].buffFrame:SetPoint("RIGHT", anchor, "LEFT", -Gladdy.db.padding + Gladdy.db.buffsBuffsXOffset + offset, Gladdy.db.buffsBuffsYOffset)
end
elseif pos == "RIGHT" then
horizontalMargin = horizontalMargin - 1 + Gladdy.db.padding
if (Gladdy.db.trinketPos == "RIGHT" and Gladdy.db.trinketEnabled) then
horizontalMargin = horizontalMargin + (Gladdy.db.trinketSize * Gladdy.db.trinketWidthFactor) + Gladdy.db.padding
if (Gladdy.db.classIconPos == "RIGHT") then
horizontalMargin = horizontalMargin + (Gladdy.db.classIconSize * Gladdy.db.classIconWidthFactor) + Gladdy.db.padding
end
elseif (Gladdy.db.classIconPos == "RIGHT") then
horizontalMargin = horizontalMargin + (Gladdy.db.classIconSize * Gladdy.db.classIconWidthFactor) + Gladdy.db.padding
if (Gladdy.db.trinketPos == "RIGHT" and Gladdy.db.trinketEnabled) then
horizontalMargin = horizontalMargin + (Gladdy.db.trinketSize * Gladdy.db.trinketWidthFactor) + Gladdy.db.padding
end
end
if (Gladdy.db.drCooldownPos == "RIGHT" and Gladdy.db.drEnabled) then
verticalMargin = verticalMargin + Gladdy.db.drIconSize/2 + Gladdy.db.padding/2
end
if (Gladdy.db.castBarPos == "RIGHT") then
verticalMargin = verticalMargin -
(((Gladdy.db.castBarHeight < Gladdy.db.castBarIconSize) and Gladdy.db.castBarIconSize
or Gladdy.db.castBarHeight)/2 + Gladdy.db.padding/2)
end
if (Gladdy.db.cooldownYPos == "RIGHT" and Gladdy.db.cooldown) then
verticalMargin = verticalMargin + (Gladdy.db.buffsBuffsIconSize/2 + Gladdy.db.padding/2)
end
--self.frames[unit].buffFrame:SetPoint("LEFT", Gladdy.buttons[unit].healthBar, "RIGHT", horizontalMargin + Gladdy.db.buffsBuffsXOffset, Gladdy.db.buffsBuffsYOffset + verticalMargin)
local anchor = Gladdy:GetAnchor(unit, "RIGHT")
horizontalMargin = (Gladdy.db.highlightInset and 0 or Gladdy.db.highlightBorderSize) - 1 + Gladdy.db.padding
if anchor == Gladdy.buttons[unit].healthBar then
self.frames[unit].buffFrame:SetPoint("LEFT", anchor, "RIGHT", horizontalMargin + Gladdy.db.buffsBuffsXOffset + offset, Gladdy.db.buffsBuffsYOffset)
else
self.frames[unit].buffFrame:SetPoint("LEFT", anchor, "RIGHT", Gladdy.db.padding + Gladdy.db.buffsBuffsXOffset + offset, Gladdy.db.buffsBuffsYOffset)
end
end
return Gladdy.db.newLayout
end