vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:
simpleMinimap_Coords = simpleMinimap:NewModule("coords")
local L = AceLibrary("AceLocale-2.1"):GetInstance("simpleMinimap_Coords", true)
--
function simpleMinimap_Coords:OnInitialize()
        self.db = simpleMinimap:AcquireDBNamespace("coords")
        self.positions = {
                { "BOTTOM", "BOTTOM" },
                { "TOP", "BOTTOM" },
                { "TOP", "TOP" },
                { "BOTTOM", "TOP" },
                { "TOPLEFT", "TOPLEFT" },
                { "BOTTOMLEFT", "BOTTOMLEFT" },
                { "TOPRIGHT", "TOPRIGHT" },
                { "BOTTOMRIGHT", "BOTTOMRIGHT" }
        }
        
        self.defaults = { enabled=true, position=6, backdrop=true, border=true, scale=0.9, alpha=0.8, fontR=0.8, fontG=0.8, fontB=0.6, time=1 }
        self.options = {
                type="group", name=L.coords, desc=L.coords_desc,
                args={
                        title={
                                type="header", order=1, name="simpleMinimap |cFFFFFFCC"..L.coords
                        },
                        spacer1={
                                type="header", order=2
                        },
                        enabled={
                                type="toggle", order=3, name=L.enabled, desc=L.enabled_desc,
                                get=function() return(self.db.profile.enabled) end,
                                set=function(x) self.db.profile.enabled=x simpleMinimap:ToggleModuleActive(self,x) end
                        },
                        spacer2={
                                type="header", order=4, name="---"
                        },
                        alpha={
                                type="range", order=10, name=L.alpha, desc=L.alpha_desc,
                                min=0, max=1, step=0.05, isPercent=true,
                                get=function() return(self.db.profile.alpha) end,
                                set=function(x) self.db.profile.alpha=x self:UpdateScreen() end
                        },
                        backdrop={
                                type="toggle", order=11, name=L.backdrop, desc=L.backdrop_desc,
                                get=function() return(self.db.profile.backdrop) end,
                                set=function(x) self.db.profile.backdrop=x self:UpdateScreen() end
                        },
                        border={
                                type="toggle", order=12, name=L.border, desc=L.border_desc,
                                get=function() return(self.db.profile.border) end,
                                set=function(x) self.db.profile.border=x self:UpdateScreen() end
                        },
                        fontColor={
                                type="color", order=13, name=L.fontColor, desc=L.fontColor_desc,
                                get = function() return self.db.profile.fontR, self.db.profile.fontG, self.db.profile.fontB end,
                                set = function(r, g, b) self.db.profile.fontR=r self.db.profile.fontG=g self.db.profile.fontB=b self:UpdateScreen() end
                        },
                        position = {
                                type="group", order=14, name=L.position, desc=L.position_desc,
                                args = {
                                        ["1"]={
                                                type="toggle", order=1, name=L.position1, desc=L.position1_desc,
                                                get=function() return(self.db.profile.position==1) end,
                                                set=function() self.db.profile.position=1 self:UpdateScreen() end
                                        },
                                        ["2"]={
                                                type="toggle", order=2, name=L.position2, desc=L.position2_desc,
                                                get=function() return(self.db.profile.position==2) end,
                                                set=function() self.db.profile.position=2 self:UpdateScreen() end
                                        },
                                        ["3"]={
                                                type="toggle", order=3, name=L.position3, desc=L.position3_desc,
                                                get=function() return(self.db.profile.position==3) end,
                                                set=function() self.db.profile.position=3 self:UpdateScreen() end
                                        },
                                        ["4"]={
                                                type="toggle", order=4, name=L.position4, desc=L.position4_desc,
                                                get=function() return(self.db.profile.position==4) end,
                                                set=function() self.db.profile.position=4 self:UpdateScreen() end
                                        },
                                        ["5"]={
                                                type="toggle", order=5, name=L.position5, desc=L.position5_desc,
                                                get=function() return(self.db.profile.position==5) end,
                                                set=function() self.db.profile.position=5 self:UpdateScreen() end
                                        },
                                        ["6"]={
                                                type="toggle", order=6, name=L.position6, desc=L.position6_desc,
                                                get=function() return(self.db.profile.position==6) end,
                                                set=function() self.db.profile.position=6 self:UpdateScreen() end
                                        },
                                        ["7"]={
                                                type="toggle", order=7, name = L.position7, desc = L.position7_desc,
                                                get=function() return(self.db.profile.position==7) end,
                                                set=function() self.db.profile.position=7 self:UpdateScreen() end
                                        },
                                        ["8"]={
                                                type="toggle", order=8, name=L.position8, desc=L.position8_desc,
                                                get=function() return(self.db.profile.position==8) end,
                                                set=function() self.db.profile.position=8 self:UpdateScreen() end
                                        }
                                }
                        },
                        scale={
                                type="range", order=15, name=L.scale, desc=L.scale_desc,
                                min=0.5, max=2, step=0.05,
                                get=function() return(self.db.profile.scale) end,
                                set=function(x) self.db.profile.scale=x self:UpdateScreen() end
                        },
                        time={
                                type="range", order=16, name=L.time, desc=L.time_desc,
                                min=0, max=5, step=1,
                                get=function() return(self.db.profile.time) end,
                                set=function(x) self.db.profile.time=x self:UpdateEvent() end
                        },
                }
        }
        simpleMinimap.options.args.modules.args.coords = self.options
        simpleMinimap:RegisterDefaults("coords", "profile", self.defaults)
        smmCoordsFrameText:SetText("00, 00")
        smmCoordsFrame:SetWidth(smmCoordsFrameText:GetWidth() + 16)
        smmCoordsFrame:SetHeight(smmCoordsFrameText:GetHeight() + 12)
end
--
function simpleMinimap_Coords:OnEnable()
        if(self.db.profile.enabled) then
                self:RegisterEvent("ZONE_CHANGED_NEW_AREA")
                self:UpdateEvent()
                self:UpdateScreen()
        else
                simpleMinimap:ToggleModuleActive(self, false)
        end
end
--
function simpleMinimap_Coords:OnDisable()
        self:CancelAllScheduledEvents()
        smmCoordsFrame:SetScript("OnUpdate", nil)
        self:UpdateScreen()
end
--
function simpleMinimap_Coords:UpdateScreen()
        if(simpleMinimap:IsModuleActive(self)) then
                smmCoordsFrame:Show()
                smmCoordsFrame:ClearAllPoints()
                smmCoordsFrame:SetPoint(self.positions[self.db.profile.position][1], "Minimap", self.positions[self.db.profile.position][2])
                smmCoordsFrame:SetAlpha(self.db.profile.alpha)
                smmCoordsFrame:SetScale(self.db.profile.scale)
                smmCoordsFrameText:SetTextColor(self.db.profile.fontR, self.db.profile.fontG, self.db.profile.fontB)
                if(self.db.profile.backdrop) then
                        smmCoordsFrame:SetBackdropColor(TOOLTIP_DEFAULT_BACKGROUND_COLOR.r, TOOLTIP_DEFAULT_BACKGROUND_COLOR.g, TOOLTIP_DEFAULT_BACKGROUND_COLOR.b, 1)
                else
                        smmCoordsFrame:SetBackdropColor(TOOLTIP_DEFAULT_BACKGROUND_COLOR.r, TOOLTIP_DEFAULT_BACKGROUND_COLOR.g, TOOLTIP_DEFAULT_BACKGROUND_COLOR.b, 0)
                end
                if(self.db.profile.border) then
                        smmCoordsFrame:SetBackdropBorderColor(TOOLTIP_DEFAULT_COLOR.r, TOOLTIP_DEFAULT_COLOR.g, TOOLTIP_DEFAULT_COLOR.b, 1)
                else
                        smmCoordsFrame:SetBackdropBorderColor(TOOLTIP_DEFAULT_COLOR.r, TOOLTIP_DEFAULT_COLOR.g, TOOLTIP_DEFAULT_COLOR.b, 0)
                end
        else
                smmCoordsFrame:Hide()
        end
end
--
function simpleMinimap_Coords:UpdateEvent()
        if(self.db.profile.time > 0) then
                smmCoordsFrame:SetScript("OnUpdate", nil)
                self:ScheduleRepeatingEvent("smmCoordsUpdate", function()
                        local x, y = GetPlayerMapPosition("player")
                        smmCoordsFrameText:SetText(math.floor(x * 100)..", "..math.floor(y * 100))
                end, self.db.profile.time, self)
        else
                self:CancelAllScheduledEvents()
                smmCoordsFrame:SetScript("OnUpdate", function()
                        local x, y = GetPlayerMapPosition("player")
                        smmCoordsFrameText:SetText(math.floor(x * 100)..", "..math.floor(y * 100))
                end)
        end
end
--
function simpleMinimap_Coords:ZONE_CHANGED_NEW_AREA()
        SetMapToCurrentZone()
end

Generated by GNU Enscript 1.6.5.90.