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