LagMonitor = LibStub("AceAddon-3.0"):NewAddon("LagMonitor", "AceConsole-3.0", "AceEvent-3.0")

local options = {
    name = "Lag Monitor 1.5",
    handler = LagMonitor,
    type = 'group',
    args = {
	
        showColText = {
            type = "toggle",
            name = "Set Colors",
			order = 1,
            desc = "Toggles the display of the message in the chat window.",
            get = "IsShowColText",
            set = "ToggleShowColText",
        },
        closed = {
            type = "toggle",
            name = "Close",
			order = 2,
            desc = "Toggles the display of the message on the screen.",
            get = "IsClosed",
            set = "ToggleIsClosed"
        },
    },
}

function LagMonitor:IsShowColText(info)
    return self.db.profile.showColText
end

function LagMonitor:ToggleShowColText(info, value)
    self.db.profile.showColText = value
end

function LagMonitor:IsClosed(info)
    return self.db.profile.closed
end

function LagMonitor:ToggleIsClosed(info, value)
    self.db.profile.closed = value
end

local defaults = {
    profile = {
        showColText = false,
        closed = false,
    },
}

function LagMonitor:OnInitialize()
    -- Called when the addon is loaded
	self:Print("v1.5 Loaded!")
	self.db = LibStub("AceDB-3.0"):New("LagMonitorDB", defaults, true)
    LibStub("AceConfig-3.0"):RegisterOptionsTable("LagMonitor", options)
    self.optionsFrame = LibStub("AceConfigDialog-3.0"):AddToBlizOptions("LagMonitor", "LagMonitor")
    self:RegisterChatCommand("lm", "ChatCommand")
    self:RegisterChatCommand("lagmonitor", "ChatCommand")
end

function LagMonitor:ChatCommand(input)
    if not input or input:trim() == "" then
        InterfaceOptionsFrame_OpenToCategory(self.optionsFrame)
    else
        LibStub("AceConfigCmd-3.0"):HandleCommand("lm", "LagMonitor", input)
    end
end