init
This commit is contained in:
@@ -0,0 +1,138 @@
|
||||
local E, L = unpack(select(2, ...)); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
||||
local B = E:GetModule("Blizzard")
|
||||
local Misc = E:GetModule("Misc")
|
||||
|
||||
--Lua functions
|
||||
local _G = _G
|
||||
local pairs = pairs
|
||||
--WoW API / Variables
|
||||
local NUM_GROUP_LOOT_FRAMES = NUM_GROUP_LOOT_FRAMES
|
||||
|
||||
local POSITION, ANCHOR_POINT, YOFFSET = "TOP", "BOTTOM", -10
|
||||
|
||||
function E:PostAlertMove()
|
||||
local _, y = AlertFrameMover:GetCenter()
|
||||
local screenHeight = E.UIParent:GetTop()
|
||||
if y > (screenHeight / 2) then
|
||||
POSITION = "TOP"
|
||||
ANCHOR_POINT = "BOTTOM"
|
||||
YOFFSET = -10
|
||||
AlertFrameMover:SetText(AlertFrameMover.textString.." [Grow Down]")
|
||||
else
|
||||
POSITION = "BOTTOM"
|
||||
ANCHOR_POINT = "TOP"
|
||||
YOFFSET = 10
|
||||
AlertFrameMover:SetText(AlertFrameMover.textString.." [Grow Up]")
|
||||
end
|
||||
|
||||
if E.private.general.lootRoll then
|
||||
local lastframe, lastShownFrame
|
||||
for i, frame in pairs(Misc.RollBars) do
|
||||
frame:ClearAllPoints()
|
||||
if i ~= 1 then
|
||||
if POSITION == "TOP" then
|
||||
frame:Point("TOP", lastframe, "BOTTOM", 0, -4)
|
||||
else
|
||||
frame:Point("BOTTOM", lastframe, "TOP", 0, 4)
|
||||
end
|
||||
else
|
||||
if POSITION == "TOP" then
|
||||
frame:Point("TOP", AlertFrameHolder, "BOTTOM", 0, -4)
|
||||
else
|
||||
frame:Point("BOTTOM", AlertFrameHolder, "TOP", 0, 4)
|
||||
end
|
||||
end
|
||||
lastframe = frame
|
||||
|
||||
if frame:IsShown() then
|
||||
lastShownFrame = frame
|
||||
end
|
||||
end
|
||||
|
||||
AlertFrame:ClearAllPoints()
|
||||
if lastShownFrame then
|
||||
AlertFrame:SetAllPoints(lastShownFrame)
|
||||
else
|
||||
AlertFrame:SetAllPoints(AlertFrameHolder)
|
||||
end
|
||||
elseif E.private.skins.blizzard.enable and E.private.skins.blizzard.lootRoll then
|
||||
local lastframe, lastShownFrame
|
||||
for i = 1, NUM_GROUP_LOOT_FRAMES do
|
||||
local frame = _G["GroupLootFrame"..i]
|
||||
if frame then
|
||||
frame:ClearAllPoints()
|
||||
if i ~= 1 then
|
||||
if POSITION == "TOP" then
|
||||
frame:Point("TOP", lastframe, "BOTTOM", 0, -4)
|
||||
else
|
||||
frame:Point("BOTTOM", lastframe, "TOP", 0, 4)
|
||||
end
|
||||
else
|
||||
if POSITION == "TOP" then
|
||||
frame:Point("TOP", AlertFrameHolder, "BOTTOM", 0, -4)
|
||||
else
|
||||
frame:Point("BOTTOM", AlertFrameHolder, "TOP", 0, 4)
|
||||
end
|
||||
end
|
||||
lastframe = frame
|
||||
|
||||
if frame:IsShown() then
|
||||
lastShownFrame = frame
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
AlertFrame:ClearAllPoints()
|
||||
if lastShownFrame then
|
||||
AlertFrame:SetAllPoints(lastShownFrame)
|
||||
else
|
||||
AlertFrame:SetAllPoints(AlertFrameHolder)
|
||||
end
|
||||
else
|
||||
AlertFrame:ClearAllPoints()
|
||||
AlertFrame:SetAllPoints(AlertFrameHolder)
|
||||
end
|
||||
end
|
||||
|
||||
function B:AchievementAlertFrame_FixAnchors()
|
||||
local alertAnchor
|
||||
for i = 1, MAX_ACHIEVEMENT_ALERTS do
|
||||
local frame = _G["AchievementAlertFrame"..i]
|
||||
if frame then
|
||||
frame:ClearAllPoints()
|
||||
if alertAnchor and alertAnchor:IsShown() then
|
||||
frame:Point(POSITION, alertAnchor, ANCHOR_POINT, 0, YOFFSET)
|
||||
else
|
||||
frame:Point(POSITION, AlertFrame, ANCHOR_POINT)
|
||||
end
|
||||
|
||||
alertAnchor = frame
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function B:DungeonCompletionAlertFrame_FixAnchors()
|
||||
for i = MAX_ACHIEVEMENT_ALERTS, 1, -1 do
|
||||
local frame = _G["AchievementAlertFrame"..i]
|
||||
if frame and frame:IsShown() then
|
||||
DungeonCompletionAlertFrame1:ClearAllPoints()
|
||||
DungeonCompletionAlertFrame1:Point(POSITION, frame, ANCHOR_POINT, 0, YOFFSET)
|
||||
return
|
||||
end
|
||||
|
||||
DungeonCompletionAlertFrame1:ClearAllPoints()
|
||||
DungeonCompletionAlertFrame1:Point(POSITION, AlertFrame, ANCHOR_POINT)
|
||||
end
|
||||
end
|
||||
|
||||
function B:AlertMovers()
|
||||
local AlertFrameHolder = CreateFrame("Frame", "AlertFrameHolder", E.UIParent)
|
||||
AlertFrameHolder:Size(250, 20)
|
||||
AlertFrameHolder:Point("TOP", E.UIParent, "TOP", 0, -18)
|
||||
|
||||
self:SecureHook("AlertFrame_FixAnchors", E.PostAlertMove)
|
||||
self:SecureHook("AchievementAlertFrame_FixAnchors")
|
||||
self:SecureHook("DungeonCompletionAlertFrame_FixAnchors")
|
||||
|
||||
E:CreateMover(AlertFrameHolder, "AlertFrameMover", L["Loot / Alert Frames"], nil, nil, E.PostAlertMove, nil, nil, "general,blizzUIImprovements")
|
||||
end
|
||||
Reference in New Issue
Block a user