comparison Libs/DF/addon.lua @ 11:2f09fe4be15c

Added an Options Panel.
author Tercio
date Mon, 20 Apr 2015 16:34:18 -0300
parents
children 0c160948ac5e
comparison
equal deleted inserted replaced
10:f1e32be6773e 11:2f09fe4be15c
1
2
3
4 local DF = _G ["DetailsFramework"]
5 local _
6
7 function DF:CreateAddOn (name, global_saved, global_table, options_table, broker)
8
9 local addon = LibStub ("AceAddon-3.0"):NewAddon (name, "AceConsole-3.0", "AceEvent-3.0", "AceTimer-3.0", "DetailsFramework-1.0")
10 _G [name] = addon
11 addon.__name = name
12
13 function addon:OnInitialize()
14
15 if (global_saved) then
16 if (broker and broker.Minimap and not global_table.Minimap) then
17 DF:Msg (name, "broker.Minimap is true but no global.Minimap declared.")
18 end
19 self.db = LibStub ("AceDB-3.0"):New (global_saved, global_table or {}, true)
20 end
21
22 if (options_table) then
23 LibStub ("AceConfig-3.0"):RegisterOptionsTable (name, options_table)
24 addon.OptionsFrame1 = LibStub ("AceConfigDialog-3.0"):AddToBlizOptions (name, name)
25
26 LibStub ("AceConfig-3.0"):RegisterOptionsTable (name .. "-Profiles", LibStub ("AceDBOptions-3.0"):GetOptionsTable (self.db))
27 addon.OptionsFrame2 = LibStub ("AceConfigDialog-3.0"):AddToBlizOptions (name .. "-Profiles", "Profiles", name)
28 end
29
30 if (broker) then
31
32 local broker_click_function = broker.OnClick
33 if (not broker_click_function and options_table) then
34 broker_click_function = function()
35 InterfaceOptionsFrame_OpenToCategory (name)
36 InterfaceOptionsFrame_OpenToCategory (name)
37 end
38 end
39
40 local databroker = LibStub ("LibDataBroker-1.1"):NewDataObject (name, {
41 type = broker.type or "launcher",
42 icon = broker.icon or [[Interface\PvPRankBadges\PvPRank15]],
43 text = broker.text or "",
44 OnTooltipShow = broker.OnTooltipShow,
45 OnClick = broker_click_function
46 })
47
48 if (databroker and broker.Minimap and global_table.Minimap) then
49 LibStub ("LibDBIcon-1.0"):Register (name, databroker, addon.db.profile.Minimap)
50 end
51
52 end
53
54 end
55
56 return addon
57
58 end