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

Added an Options Panel.
author Tercio
date Mon, 20 Apr 2015 16:34:18 -0300
parents
children 0c160948ac5e
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Libs/DF/addon.lua	Mon Apr 20 16:34:18 2015 -0300
@@ -0,0 +1,58 @@
+
+
+
+local DF = _G ["DetailsFramework"]
+local _
+
+function DF:CreateAddOn (name, global_saved, global_table, options_table, broker)
+	
+	local addon = LibStub ("AceAddon-3.0"):NewAddon (name, "AceConsole-3.0", "AceEvent-3.0", "AceTimer-3.0", "DetailsFramework-1.0")
+	_G [name] = addon
+	addon.__name = name
+	
+	function addon:OnInitialize()
+		
+		if (global_saved) then
+			if (broker and broker.Minimap and not global_table.Minimap) then
+				DF:Msg (name, "broker.Minimap is true but no global.Minimap declared.")
+			end
+			self.db = LibStub ("AceDB-3.0"):New (global_saved, global_table or {}, true)
+		end
+		
+		if (options_table) then
+			LibStub ("AceConfig-3.0"):RegisterOptionsTable (name, options_table)
+			addon.OptionsFrame1 = LibStub ("AceConfigDialog-3.0"):AddToBlizOptions (name, name)
+			
+			LibStub ("AceConfig-3.0"):RegisterOptionsTable (name .. "-Profiles", LibStub ("AceDBOptions-3.0"):GetOptionsTable (self.db))
+			addon.OptionsFrame2 = LibStub ("AceConfigDialog-3.0"):AddToBlizOptions (name .. "-Profiles", "Profiles", name)
+		end
+		
+		if (broker) then
+			
+			local broker_click_function = broker.OnClick
+			if (not broker_click_function and options_table) then
+				broker_click_function = function()
+					InterfaceOptionsFrame_OpenToCategory (name)
+					InterfaceOptionsFrame_OpenToCategory (name)
+				end
+			end
+			
+			local databroker = LibStub ("LibDataBroker-1.1"):NewDataObject (name, {
+				type = broker.type or "launcher",
+				icon = broker.icon or [[Interface\PvPRankBadges\PvPRank15]],
+				text = broker.text or "",
+				OnTooltipShow = broker.OnTooltipShow,
+				OnClick = broker_click_function
+			})
+			
+			if (databroker and broker.Minimap and global_table.Minimap) then
+				LibStub ("LibDBIcon-1.0"):Register (name, databroker, addon.db.profile.Minimap)
+			end
+			
+		end
+		
+	end
+	
+	return addon
+	
+end
\ No newline at end of file