|
Tercio@11
|
1
|
|
Tercio@11
|
2 local DF = _G ["DetailsFramework"]
|
|
Tercio@11
|
3 local _
|
|
Tercio@11
|
4
|
|
Tercio@20
|
5 if (not DF or not DetailsFrameworkCanLoad) then
|
|
Tercio@18
|
6 return
|
|
Tercio@18
|
7 end
|
|
Tercio@18
|
8
|
|
Tercio@11
|
9 function DF:CreateAddOn (name, global_saved, global_table, options_table, broker)
|
|
Tercio@11
|
10
|
|
Tercio@17
|
11 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
|
12 _G [name] = addon
|
|
Tercio@11
|
13 addon.__name = name
|
|
Tercio@11
|
14
|
|
Tercio@11
|
15 function addon:OnInitialize()
|
|
Tercio@11
|
16
|
|
Tercio@11
|
17 if (global_saved) then
|
|
Tercio@11
|
18 if (broker and broker.Minimap and not global_table.Minimap) then
|
|
Tercio@11
|
19 DF:Msg (name, "broker.Minimap is true but no global.Minimap declared.")
|
|
Tercio@11
|
20 end
|
|
Tercio@11
|
21 self.db = LibStub ("AceDB-3.0"):New (global_saved, global_table or {}, true)
|
|
Tercio@11
|
22 end
|
|
Tercio@11
|
23
|
|
Tercio@11
|
24 if (options_table) then
|
|
Tercio@11
|
25 LibStub ("AceConfig-3.0"):RegisterOptionsTable (name, options_table)
|
|
Tercio@11
|
26 addon.OptionsFrame1 = LibStub ("AceConfigDialog-3.0"):AddToBlizOptions (name, name)
|
|
Tercio@11
|
27
|
|
Tercio@11
|
28 LibStub ("AceConfig-3.0"):RegisterOptionsTable (name .. "-Profiles", LibStub ("AceDBOptions-3.0"):GetOptionsTable (self.db))
|
|
Tercio@11
|
29 addon.OptionsFrame2 = LibStub ("AceConfigDialog-3.0"):AddToBlizOptions (name .. "-Profiles", "Profiles", name)
|
|
Tercio@11
|
30 end
|
|
Tercio@11
|
31
|
|
Tercio@11
|
32 if (broker) then
|
|
Tercio@11
|
33 local broker_click_function = broker.OnClick
|
|
Tercio@11
|
34 if (not broker_click_function and options_table) then
|
|
Tercio@11
|
35 broker_click_function = function()
|
|
Tercio@11
|
36 InterfaceOptionsFrame_OpenToCategory (name)
|
|
Tercio@11
|
37 InterfaceOptionsFrame_OpenToCategory (name)
|
|
Tercio@11
|
38 end
|
|
Tercio@11
|
39 end
|
|
Tercio@11
|
40
|
|
Tercio@11
|
41 local databroker = LibStub ("LibDataBroker-1.1"):NewDataObject (name, {
|
|
Tercio@11
|
42 type = broker.type or "launcher",
|
|
Tercio@11
|
43 icon = broker.icon or [[Interface\PvPRankBadges\PvPRank15]],
|
|
Tercio@11
|
44 text = broker.text or "",
|
|
Tercio@11
|
45 OnTooltipShow = broker.OnTooltipShow,
|
|
Tercio@11
|
46 OnClick = broker_click_function
|
|
Tercio@11
|
47 })
|
|
Tercio@11
|
48
|
|
Tercio@11
|
49 if (databroker and broker.Minimap and global_table.Minimap) then
|
|
Tercio@11
|
50 LibStub ("LibDBIcon-1.0"):Register (name, databroker, addon.db.profile.Minimap)
|
|
Tercio@11
|
51 end
|
|
Tercio@20
|
52 end
|
|
Tercio@20
|
53
|
|
Tercio@20
|
54 if (addon.OnInit) then
|
|
Tercio@20
|
55 xpcall (addon.OnInit, geterrorhandler(), addon)
|
|
Tercio@11
|
56 end
|
|
Tercio@11
|
57
|
|
Tercio@11
|
58 end
|
|
Tercio@11
|
59
|
|
Tercio@11
|
60 return addon
|
|
Tercio@11
|
61
|
|
Tercio@11
|
62 end |