You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
108 lines
3.0 KiB
108 lines
3.0 KiB
local AS, L, S, R = unpack(AddOnSkins)
|
|
|
|
local _G = _G
|
|
local hooksecurefunc = hooksecurefunc
|
|
|
|
local function GetOpacity()
|
|
return 1 - (_G.BattlefieldMapOptions and _G.BattlefieldMapOptions.opacity or 1)
|
|
end
|
|
|
|
local function InitializeOptionsDropDown()
|
|
_G.BattlefieldMapTab:InitializeOptionsDropDown()
|
|
end
|
|
|
|
local function setBackdropAlpha()
|
|
if _G.BattlefieldMapFrame.backdrop then
|
|
_G.BattlefieldMapFrame.backdrop:SetBackdropColor(0, 0, 0, GetOpacity())
|
|
end
|
|
end
|
|
|
|
-- alpha stuff
|
|
local oldAlpha = 0
|
|
local function setOldAlpha()
|
|
_G.BattlefieldMapFrame.BorderFrame.CloseButton:SetAlpha(0.1)
|
|
|
|
if oldAlpha then
|
|
_G.BattlefieldMapFrame:SetGlobalAlpha(oldAlpha)
|
|
oldAlpha = nil
|
|
end
|
|
end
|
|
|
|
local function setRealAlpha()
|
|
_G.BattlefieldMapFrame.BorderFrame.CloseButton:SetAlpha(1)
|
|
|
|
oldAlpha = GetOpacity()
|
|
_G.BattlefieldMapFrame:SetGlobalAlpha(1)
|
|
end
|
|
|
|
local function refreshAlpha()
|
|
oldAlpha = GetOpacity()
|
|
end
|
|
|
|
function R:Blizzard_BattlefieldMap()
|
|
if not AS:IsSkinEnabled('Blizzard_BattlefieldMap', 'bgmap') then return end
|
|
|
|
refreshAlpha() -- will need this soon
|
|
|
|
local frame = _G.BattlefieldMapFrame
|
|
S:StripTextures(frame)
|
|
S:CreateBackdrop(frame)
|
|
frame:EnableMouse(true)
|
|
frame:SetMovable(true)
|
|
frame:SetClampedToScreen(true)
|
|
frame:SetFrameStrata('LOW')
|
|
frame:SetScript('OnUpdate', _G.MapCanvasMixin.OnUpdate) -- shut off the tab fading in, but keep the canvas updater
|
|
|
|
local border = frame.BorderFrame
|
|
S:StripTextures(border)
|
|
|
|
local close = border.CloseButton
|
|
close:SetAlpha(0.1)
|
|
close:SetIgnoreParentAlpha(1)
|
|
close:SetFrameLevel(close:GetFrameLevel()+1)
|
|
close:ClearAllPoints()
|
|
S:Point(close, 'TOPRIGHT', 3, 8)
|
|
S:HandleCloseButton(close)
|
|
|
|
local scroll = frame.ScrollContainer
|
|
S:SetOutside(frame.backdrop, scroll)
|
|
frame.backdrop:SetBackdropColor(0, 0, 0, oldAlpha)
|
|
|
|
local tab = _G.BattlefieldMapTab
|
|
local position = {}
|
|
|
|
scroll:HookScript('OnMouseUp', function(_, btn)
|
|
if btn == 'LeftButton' then
|
|
tab:StopMovingOrSizing()
|
|
position.x, position.y = tab:GetCenter()
|
|
elseif btn == 'RightButton' then
|
|
_G.UIDropDownMenu_Initialize(tab.OptionsDropDown, InitializeOptionsDropDown, 'MENU')
|
|
_G.ToggleDropDownMenu(1, nil, tab.OptionsDropDown, frame:GetName(), 0, -4)
|
|
end
|
|
|
|
if _G.OpacityFrame:IsShown() then
|
|
_G.OpacityFrame:Hide()
|
|
end
|
|
end)
|
|
|
|
scroll:HookScript('OnMouseDown', function(_, btn)
|
|
if btn == 'LeftButton' and (_G.BattlefieldMapOptions and not _G.BattlefieldMapOptions.locked) then
|
|
if _G.BattlefieldMapOptions.position ~= position then
|
|
_G.BattlefieldMapOptions.position = position
|
|
end
|
|
|
|
tab:StartMoving()
|
|
end
|
|
end)
|
|
|
|
hooksecurefunc(frame, 'SetGlobalAlpha', setBackdropAlpha)
|
|
hooksecurefunc(frame, 'RefreshAlpha', refreshAlpha)
|
|
|
|
scroll:HookScript('OnLeave', setOldAlpha)
|
|
scroll:HookScript('OnEnter', setRealAlpha)
|
|
frame:HookScript('OnShow', setBackdropAlpha)
|
|
close:HookScript('OnLeave', setOldAlpha)
|
|
close:HookScript('OnEnter', setRealAlpha)
|
|
end
|
|
|
|
AS:RegisterSkin('Blizzard_BattlefieldMap', nil, 'ADDON_LOADED')
|
|
|