Tercio@11: Tercio@11: local DF = _G ["DetailsFramework"] Tercio@11: local _ Tercio@11: Tercio@20: if (not DF or not DetailsFrameworkCanLoad) then Tercio@18: return Tercio@18: end Tercio@18: Tercio@11: function DF:CreateAddOn (name, global_saved, global_table, options_table, broker) Tercio@11: Tercio@17: local addon = LibStub ("AceAddon-3.0"):NewAddon (name, "AceConsole-3.0", "AceEvent-3.0", "AceTimer-3.0", "DetailsFramework-1.0", "AceComm-3.0") Tercio@11: _G [name] = addon Tercio@11: addon.__name = name Tercio@11: Tercio@11: function addon:OnInitialize() Tercio@11: Tercio@11: if (global_saved) then Tercio@11: if (broker and broker.Minimap and not global_table.Minimap) then Tercio@11: DF:Msg (name, "broker.Minimap is true but no global.Minimap declared.") Tercio@11: end Tercio@11: self.db = LibStub ("AceDB-3.0"):New (global_saved, global_table or {}, true) Tercio@11: end Tercio@11: Tercio@11: if (options_table) then Tercio@11: LibStub ("AceConfig-3.0"):RegisterOptionsTable (name, options_table) Tercio@11: addon.OptionsFrame1 = LibStub ("AceConfigDialog-3.0"):AddToBlizOptions (name, name) Tercio@11: Tercio@11: LibStub ("AceConfig-3.0"):RegisterOptionsTable (name .. "-Profiles", LibStub ("AceDBOptions-3.0"):GetOptionsTable (self.db)) Tercio@11: addon.OptionsFrame2 = LibStub ("AceConfigDialog-3.0"):AddToBlizOptions (name .. "-Profiles", "Profiles", name) Tercio@11: end Tercio@11: Tercio@11: if (broker) then Tercio@11: local broker_click_function = broker.OnClick Tercio@11: if (not broker_click_function and options_table) then Tercio@11: broker_click_function = function() Tercio@11: InterfaceOptionsFrame_OpenToCategory (name) Tercio@11: InterfaceOptionsFrame_OpenToCategory (name) Tercio@11: end Tercio@11: end Tercio@11: Tercio@11: local databroker = LibStub ("LibDataBroker-1.1"):NewDataObject (name, { Tercio@11: type = broker.type or "launcher", Tercio@11: icon = broker.icon or [[Interface\PvPRankBadges\PvPRank15]], Tercio@11: text = broker.text or "", Tercio@11: OnTooltipShow = broker.OnTooltipShow, Tercio@11: OnClick = broker_click_function Tercio@11: }) Tercio@11: Tercio@11: if (databroker and broker.Minimap and global_table.Minimap) then Tercio@11: LibStub ("LibDBIcon-1.0"):Register (name, databroker, addon.db.profile.Minimap) Tercio@11: end Tercio@20: end Tercio@20: Tercio@20: if (addon.OnInit) then Tercio@20: xpcall (addon.OnInit, geterrorhandler(), addon) Tercio@11: end Tercio@11: Tercio@11: end Tercio@11: Tercio@11: return addon Tercio@11: Tercio@11: end