Code:
local addon = LibStub("AceAddon-3.0"):NewAddon("MyAddOn")
local icon = LibStub("LibDBIcon-1.0")
local defaults = {
profile = {
enableaddon = true,
},
global = { -- global setting because people hate setting the icon on every profile or character
minimap = {
hide = false,
lock = true,
-- radius = 90, -- how many pixels from 0 / top of minimap
-- minimapPos = 200 -- how far away from minimap center in pixels
}
}
}
local options = {
type = "group",
childgroups = "tab",
name = "MyAddOn",
desc = L["My AddOn which does stuff"],
args = {
enableaddon = {
order = 10,
name = ENABLE,
type = "toggle",
-- etc
end
},
hideminimapbutton = {
order = 20,
name = L["Hide Minimap Button"],
desc = L["Toggle hiding the button"],
type = "toggle",
get = function() return db.minimap.hide end,
set = function(info, value)
MyAddOnDB.db.minimap.hide = value
if value then
icon:Hide("MyAddOn")
else
icon:Show("MyAddOn")
end
end
}
}
}
function addon:OnInitialize()
self.db = LibStub("AceDB-3.0"):New("MyAddOnDB", defaults, true)
-- other setup here including registering options table
local ldb = LibStub:GetLibrary("LibDataBroker-1.1")
local dataobj = ldb:NewDataObject(addon, {
type = "data source",
icon = "Interface\\Addons\\MyAddOn\\icon.tga",
label = "MyAddOn",
OnClick = function(object, button)
-- open configuration
end,
OnTooltipShow = function(tip)
tip:AddLine(L["Click to open configuration."], NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b)
tip:Show()
end
})
icon:Register("MyAddOn", dataobj, self.db.global.minimap)
end