LibDBIcon-1.0
Please support my work on Patreon/GitHub
LibDBIcon-1.0 is a small library you can throw in your addon that will create a minimap icon.
Simply get a reference to the library in your addon like so:
local icon = LibStub("LibDBIcon-1.0")
This library REQUIRES you use a separate library called LibDataBroker (LDB). After you've registered your LDB object called "MyLDB", you can do:
icon:Register("MyLDB", myLDB, savedVarTable)
Where myLDB is a object reference to your LDB display and savedVarTable is a table where the library can store data like minimap position, radius, etc.
When you create the display, the library will automatically hide or show the icon based on the "hide = true/false" key in savedVarTable. If you want to add an option to hide or show the display, you can hide or show the icon manually during play with:
icon:Hide("MyLDB")
icon:Show("MyLDB")
So in conclusion, here is a complete example (using Ace3) of how to use this library:
local addon = LibStub("AceAddon-3.0"):NewAddon("Bunnies")
local bunnyLDB = LibStub("LibDataBroker-1.1"):NewDataObject("Bunnies", {
type = "data source",
text = "Bunnies!",
icon = "Interface\\Icons\\INV_Chest_Cloth_17",
OnClick = function() print("BUNNIES ARE TAKING OVER THE WORLD") end,
})
local icon = LibStub("LibDBIcon-1.0")
function addon:OnInitialize()
-- Assuming you have a ## SavedVariables: BunniesDB line in your TOC
self.db = LibStub("AceDB-3.0"):New("BunniesDB", {
profile = {
minimap = {
hide = false,
},
},
})
icon:Register("Bunnies", bunnyLDB, self.db.profile.minimap)
end