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
4.0 KiB

local MDT = MDT
local db
local sizex, sizey
local canvasDrawLayer = "BORDER"
--Fullscreen the AddOn Window
function MDT:Maximize()
db = MDT:GetDB()
sizex, sizey = MDT:GetDefaultMapPanelSize()
local f = MDT.main_frame
local oldScrollH = f.scrollFrame:GetHorizontalScroll()
local oldScrollV = f.scrollFrame:GetVerticalScroll()
local oldSizeX = f.scrollFrame:GetWidth()
local oldSizeY = f.scrollFrame:GetHeight()
if not f.blackoutFrame then
f.blackoutFrame = CreateFrame("Frame", "MDTBlackoutFrame", f)
f.blackoutFrame:EnableMouse(true)
f.blackoutFrameTex = f.blackoutFrame:CreateTexture(nil, "BACKGROUND")
f.blackoutFrameTex:SetAllPoints()
f.blackoutFrameTex:SetDrawLayer(canvasDrawLayer, -6)
f.blackoutFrameTex:SetColorTexture(0.058823399245739,0.058823399245739,0.058823399245739,1)
f.blackoutFrame:ClearAllPoints()
f.blackoutFrame:SetAllPoints(UIParent)
end
f.blackoutFrame:Show()
f.topPanel:RegisterForDrag(nil)
f.bottomPanel:RegisterForDrag(nil)
local newSizex, newSizey, scale, isNarrow = MDT:GetFullScreenSizes()
db.scale = scale
f:ClearAllPoints()
if not isNarrow then
f:SetPoint("TOP", UIParent,"TOP", -(f.sidePanel:GetWidth()/2), -30)
else
f:SetPoint("LEFT", UIParent,"LEFT")
end
f:SetSize(newSizex,newSizey)
f.scrollFrame:SetSize(newSizex, newSizey)
f.mapPanelFrame:SetSize(newSizex, newSizey)
for i=1,12 do
f["mapPanelTile"..i]:SetSize((newSizex/4+5*db.scale),(newSizex/4+5*db.scale))
end
for i=1,10 do
for j=1,15 do
f["largeMapPanelTile"..i..j]:SetSize(newSizex/15,newSizex/15)
end
end
f.scrollFrame:SetVerticalScroll(oldScrollV * (newSizey / oldSizeY))
f.scrollFrame:SetHorizontalScroll(oldScrollH * (newSizex / oldSizeX))
f.scrollFrame.cursorY = f.scrollFrame.cursorY * (newSizey / oldSizeY)
f.scrollFrame.cursorX = f.scrollFrame.cursorX * (newSizex / oldSizeX)
MDT:ZoomMap(0)
MDT:UpdateEnemyInfoFrame()
MDT:UpdateMap()
if db.devMode then
f.devPanel:ClearAllPoints()
f.devPanel:SetPoint("TOPLEFT",f,"TOPLEFT",0,-45)
end
f.resizer:Hide()
MDT:CreateTutorialButton(MDT.main_frame)
db.maximized = true
end
---Restore normal AddOn Window
function MDT:Minimize()
db = MDT:GetDB()
sizex, sizey = MDT:GetDefaultMapPanelSize()
local f = MDT.main_frame
local oldScrollH = f.scrollFrame:GetHorizontalScroll()
local oldScrollV = f.scrollFrame:GetVerticalScroll()
local oldSizeX = f.scrollFrame:GetWidth()
local oldSizeY = f.scrollFrame:GetHeight()
if f.blackoutFrame then f.blackoutFrame:Hide() end
f.topPanel:RegisterForDrag("LeftButton")
f.bottomPanel:RegisterForDrag("LeftButton")
db.scale = db.nonFullscreenScale
local newSizex = sizex*db.scale
local newSizey = sizey*db.scale
f:ClearAllPoints()
f:SetPoint(db.anchorTo, UIParent,db.anchorFrom, db.xoffset, db.yoffset)
f:SetSize(newSizex,newSizey)
f.scrollFrame:SetSize(newSizex, newSizey)
f.mapPanelFrame:SetSize(newSizex, newSizey)
for i=1,12 do
f["mapPanelTile"..i]:SetSize(newSizex/4+(5*db.scale),newSizex/4+(5*db.scale))
end
for i=1,10 do
for j=1,15 do
f["largeMapPanelTile"..i..j]:SetSize(newSizex/15,newSizex/15)
end
end
f.scrollFrame:SetVerticalScroll(oldScrollV * (newSizey / oldSizeY))
f.scrollFrame:SetHorizontalScroll(oldScrollH * (newSizex / oldSizeX))
f.scrollFrame.cursorY = f.scrollFrame.cursorY * (newSizey / oldSizeY)
f.scrollFrame.cursorX = f.scrollFrame.cursorX * (newSizex / oldSizeX)
MDT:ZoomMap(0)
MDT:UpdateEnemyInfoFrame()
MDT:UpdateMap()
if db.devMode then
f.devPanel:ClearAllPoints()
f.devPanel:SetPoint("TOPRIGHT",f.topPanel,"TOPLEFT",0,0)
end
f.resizer:Show()
MDT:CreateTutorialButton(MDT.main_frame)
db.maximized = false
end