vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:
simpleMinimap_Pings = simpleMinimap:NewModule("pings")
local L = AceLibrary("AceLocale-2.1"):GetInstance("simpleMinimap_Pings", true)
--
function simpleMinimap_Pings:OnInitialize()
        self.db = simpleMinimap:AcquireDBNamespace("pings")
        self.positions = {
                { "BOTTOM", "BOTTOM" },
                { "TOP", "BOTTOM" },
                { "TOP", "TOP" },
                { "BOTTOM", "TOP" }
        }
        self.defaults = { enabled=true, position=3, alpha=0.9, scale=0.85 }
        self.options = {
                type="group", name=L.pings, desc=L.pings_desc,
                args={
                        title = {
                                type="header", order=1, name="simpleMinimap |cFFFFFFCC"..L.pings
                        },
                        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 smmPingFrame:SetAlpha(x) end
                        },
                        position = {
                                type="group", order=11, 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
                                        }
                                }
                        },
                        scale={
                                type= "range", order=12, 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 smmPingFrame:SetScale(x) end
                        }
                }
        }
        simpleMinimap.options.args.modules.args.pings = self.options
        simpleMinimap:RegisterDefaults("pings", "profile", self.defaults)
        smmPingFrame:SetScale(self.db.profile.scale)
        smmPingFrame:SetAlpha(self.db.profile.alpha)
        self:UpdateScreen()
end
--
function simpleMinimap_Pings:OnEnable()
        if(self.db.profile.enabled) then
                self:RegisterEvent("MINIMAP_PING")
        else
                simpleMinimap:ToggleModuleActive(self, false)
        end
end
--
function simpleMinimap_Pings:OnDisable()
end
--
function simpleMinimap_Pings:UpdateScreen()
        smmPingFrame:ClearAllPoints()
        smmPingFrame:SetPoint(self.positions[self.db.profile.position][1], "Minimap", self.positions[self.db.profile.position][2])
end
--
function simpleMinimap_Pings:MINIMAP_PING()
        if(not UnitIsUnit(arg1, "player")) then
                smmPingFrameText:SetText(L.ping_by.." |cFFFFFFCC"..UnitName(arg1))
                smmPingFrame:SetWidth(smmPingFrameText:GetWidth() + 16)
                smmPingFrame:SetHeight(smmPingFrameText:GetHeight() + 12)
                smmPingFrame:Show()
        else
                smmPingFrame:Hide()
        end
end