local parent = SexyMap local modName = "AutoZoom" local mod = SexyMap:NewModule(modName, "AceTimer-3.0", "AceHook-3.0") local L = LibStub("AceLocale-3.0"):GetLocale("SexyMap") local db local options = { type = "group", name = modName, args = { show = { type = "range", name = L["Autozoom out after..."], desc = L["Number of seconds to autozoom out after. Set to 0 to turn off Autozoom."], min = 0, width = "double", max = 60, step = 1, bigStep = 1, get = function() return db.autoZoom end, set = function(info, v) db.autoZoom = v end } } } local defaults = { profile = { autoZoom = 5 } } function mod:OnInitialize() self.db = parent.db:RegisterNamespace(modName, defaults) db = self.db.profile parent:RegisterModuleOptions(modName, options, modName) end function mod:OnEnable() db = self.db.profile self:SecureHook(Minimap, "SetZoom") end function mod:SetZoom() if db.autoZoom > 0 then self:CancelTimer(self.timer, true) self.timer = self:ScheduleTimer("ZoomOut", db.autoZoom) end end function mod:ZoomOut() if Minimap:GetZoom() > 0 then Minimap:SetZoom(0) MinimapZoomOut:Disable() MinimapZoomIn:Enable() end end