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.

81 lines
2.7 KiB

local AS = unpack(AddOnSkins)
function AS:Blizzard_BattlefieldMap(event, addon)
if addon ~= 'Blizzard_BattlefieldMap' then return end
local function GetOpacity()
return 1 - (BattlefieldMapOptions and BattlefieldMapOptions.opacity or 1)
end
local oldAlpha = GetOpacity()
AS:SkinBackdropFrame(BattlefieldMapFrame)
AS:SetOutside(BattlefieldMapFrame.Backdrop, BattlefieldMapFrame.ScrollContainer)
BattlefieldMapFrame.Backdrop:SetBackdropColor(0, 0, 0, oldAlpha)
BattlefieldMapFrame:SetClampedToScreen(true)
BattlefieldMapFrame:EnableMouse(true)
BattlefieldMapFrame:SetMovable(true)
BattlefieldMapFrame:SetFrameStrata('LOW')
BattlefieldMapFrame.BorderFrame.CloseButton:SetFrameLevel(BattlefieldMapFrame.BorderFrame.CloseButton:GetFrameLevel()+1)
AS:SkinCloseButton(BattlefieldMapFrame.BorderFrame.CloseButton)
AS:Kill(BattlefieldMapTab)
local function InitializeOptionsDropDown()
BattlefieldMapTab:InitializeOptionsDropDown()
end
BattlefieldMapFrame.ScrollContainer:HookScript("OnMouseUp", function(_, btn)
if btn == "LeftButton" then
BattlefieldMapTab:StopMovingOrSizing()
BattlefieldMapTab:SetUserPlaced(true)
elseif btn == "RightButton" then
UIDropDownMenu_Initialize(BattlefieldMapTab.OptionsDropDown, InitializeOptionsDropDown, "MENU")
ToggleDropDownMenu(1, nil, BattlefieldMapTab.OptionsDropDown, BattlefieldMapFrame:GetName(), 0, -4)
end
if OpacityFrame:IsShown() then
OpacityFrame:Hide()
end
end)
BattlefieldMapFrame.ScrollContainer:HookScript("OnMouseDown", function(_, btn)
if btn == "LeftButton" and (BattlefieldMapOptions and not BattlefieldMapOptions.locked) then
BattlefieldMapTab:StartMoving()
end
end)
local function setBackdropAlpha()
if BattlefieldMapFrame.Backdrop then
BattlefieldMapFrame.Backdrop:SetBackdropColor(0, 0, 0, GetOpacity())
end
end
hooksecurefunc(BattlefieldMapFrame, "SetGlobalAlpha", setBackdropAlpha)
hooksecurefunc(BattlefieldMapFrame, "RefreshAlpha", function()
oldAlpha = GetOpacity()
end)
local function setOldAlpha()
if oldAlpha then
BattlefieldMapFrame:SetGlobalAlpha(oldAlpha)
oldAlpha = nil
end
end
local function setRealAlpha()
oldAlpha = GetOpacity()
BattlefieldMapFrame:SetGlobalAlpha(1)
end
BattlefieldMapFrame:HookScript('OnShow', setBackdropAlpha)
BattlefieldMapFrame.ScrollContainer:HookScript('OnLeave', setOldAlpha)
BattlefieldMapFrame.ScrollContainer:HookScript('OnEnter', setRealAlpha)
BattlefieldMapFrame.BorderFrame.CloseButton:HookScript('OnLeave', setOldAlpha)
BattlefieldMapFrame.BorderFrame.CloseButton:HookScript('OnEnter', setRealAlpha)
AS:UnregisterSkinEvent(addon, event)
end
AS:RegisterSkin("Blizzard_BattlefieldMap", AS.Blizzard_BattlefieldMap, 'ADDON_LOADED')