diff --git a/2/3/4/5/6/7/ElvUI/Modules/Blizzard/AlertFrame.lua b/2/3/4/5/6/7/ElvUI/Modules/Blizzard/AlertFrame.lua new file mode 100644 index 0000000..827be95 --- /dev/null +++ b/2/3/4/5/6/7/ElvUI/Modules/Blizzard/AlertFrame.lua @@ -0,0 +1,83 @@ +local E, L, DF = unpack(ElvUI); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB +local B = E:GetModule("Blizzard"); + +--Cache global variables +--Lua functions +local _G = _G +local pairs = pairs +--WoW API / Variables +local NUM_GROUP_LOOT_FRAMES = NUM_GROUP_LOOT_FRAMES + +local AlertFrameHolder = CreateFrame("Frame", "AlertFrameHolder", E.UIParent) +AlertFrameHolder:SetWidth(250) +AlertFrameHolder:SetHeight(20) +AlertFrameHolder:SetPoint("TOP", E.UIParent, "TOP", 0, -18) + +function E:PostAlertMove() + local position = "TOP" + local _, y = AlertFrameMover:GetCenter() + local screenHeight = E.UIParent:GetTop() + if y > (screenHeight / 2) then + position = "TOP" + AlertFrameMover:SetText(AlertFrameMover.textString .. " [Grow Down]") + else + position = "BOTTOM" + AlertFrameMover:SetText(AlertFrameMover.textString .. " [Grow Up]") + end + + local rollBars = E:GetModule("Misc").RollBars + if E.private.general.lootRoll then + local lastframe, lastShownFrame + for i, frame in pairs(rollBars) do + frame:ClearAllPoints() + if i ~= 1 then + if position == "TOP" then + frame:SetPoint("TOP", lastframe, "BOTTOM", 0, -4) + else + frame:SetPoint("BOTTOM", lastframe, "TOP", 0, 4) + end + else + if position == "TOP" then + frame:SetPoint("TOP", AlertFrameHolder, "BOTTOM", 0, -4) + else + frame:SetPoint("BOTTOM", AlertFrameHolder, "TOP", 0, 4) + end + end + lastframe = frame + + if frame:IsShown() then + lastShownFrame = frame + end + 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:SetPoint("TOP", lastframe, "BOTTOM", 0, -4) + else + frame:SetPoint("BOTTOM", lastframe, "TOP", 0, 4) + end + else + if position == "TOP" then + frame:SetPoint("TOP", AlertFrameHolder, "BOTTOM", 0, -4) + else + frame:SetPoint("BOTTOM", AlertFrameHolder, "TOP", 0, 4) + end + end + lastframe = frame + + if frame:IsShown() then + lastShownFrame = frame + end + end + end + end +end + +function B:AlertMovers() + E:CreateMover(AlertFrameHolder, "AlertFrameMover", L["Loot / Alert Frames"], nil, nil, E.PostAlertMove) +end \ No newline at end of file diff --git a/2/3/4/5/6/7/ElvUI/Modules/Blizzard/Blizzard.lua b/2/3/4/5/6/7/ElvUI/Modules/Blizzard/Blizzard.lua index e9fd2cb..1b7bc67 100644 --- a/2/3/4/5/6/7/ElvUI/Modules/Blizzard/Blizzard.lua +++ b/2/3/4/5/6/7/ElvUI/Modules/Blizzard/Blizzard.lua @@ -13,7 +13,7 @@ local GetRewardSpell = GetRewardSpell E.Blizzard = B function B:Initialize() - -- self:AlertMovers() + self:AlertMovers() self:EnhanceColorPicker() -- self:KillBlizzard() self:PositionCaptureBar() diff --git a/2/3/4/5/6/7/ElvUI/Modules/Blizzard/Load_Blizzard.xml b/2/3/4/5/6/7/ElvUI/Modules/Blizzard/Load_Blizzard.xml index 6482cab..c042531 100644 --- a/2/3/4/5/6/7/ElvUI/Modules/Blizzard/Load_Blizzard.xml +++ b/2/3/4/5/6/7/ElvUI/Modules/Blizzard/Load_Blizzard.xml @@ -1,5 +1,6 @@