Fixed reports to Battle.net friends; Fixes on Custom displays
This commit is contained in:
+79
-10
@@ -3,32 +3,101 @@ local DF = _G ["DetailsFramework"]
|
||||
local _
|
||||
|
||||
if (not DF or not DetailsFrameworkCanLoad) then
|
||||
return
|
||||
return
|
||||
end
|
||||
|
||||
function DF:CreateAddOn (name, global_saved, global_table, options_table, broker)
|
||||
--runs when the addon received addon_loaded
|
||||
local addonPreLoad = function(addonFrame, event, ...)
|
||||
--check if the saved variables table is created, if not create one
|
||||
_G[addonFrame.__savedVarsName] = _G[addonFrame.__savedVarsName] or {}
|
||||
|
||||
if (addonFrame.__savedVarsDefaultTemplate) then
|
||||
--load saved vars for this character
|
||||
DF.SavedVars.LoadSavedVarsForPlayer(addonFrame)
|
||||
end
|
||||
|
||||
if (addonFrame.OnLoad) then
|
||||
DF:Dispatch(addonFrame.OnLoad, addonFrame, ...)
|
||||
end
|
||||
end
|
||||
|
||||
--runs when the addon received player_login
|
||||
local addonInit = function(addonFrame, event, ...)
|
||||
if (addonFrame.OnInit) then
|
||||
DF:Dispatch(addonFrame.OnInit, addonFrame, ...)
|
||||
end
|
||||
end
|
||||
|
||||
--when the player logout or reloadUI
|
||||
local addonUnload = function(addonFrame, event, ...)
|
||||
--close saved tables
|
||||
|
||||
end
|
||||
|
||||
local addonEvents = {
|
||||
["ADDON_LOADED"] = addonPreLoad,
|
||||
["PLAYER_LOGIN"] = addonInit,
|
||||
["PLAYER_LOGOUT"] = addonUnload,
|
||||
}
|
||||
|
||||
local addonOnEvent = function(addonFrame, event, ...)
|
||||
local func = addonEvents[event]
|
||||
if (func) then
|
||||
func(addonFrame, event, ...)
|
||||
else
|
||||
--might be a registered event from the user
|
||||
if (addonFrame.event) then
|
||||
DF:CoreDispatch(addonFrame.__name, addonFrame.event, addonFrame, event, ...)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local getAddonName = function(addonFrame)
|
||||
return addonFrame:GetName()
|
||||
end
|
||||
|
||||
function DF:CreateNewAddOn(addonName, globalSavedVariablesName, savedVarsTemplate)
|
||||
local newAddon = CreateFrame("frame", addonName, UIParent)
|
||||
newAddon.__name = addonName
|
||||
newAddon.__savedVarsName = globalSavedVariablesName
|
||||
newAddon.__savedVarsDefaultTemplate = savedVarsTemplate
|
||||
|
||||
newAddon.GetAddonName = getAddonName
|
||||
|
||||
newAddon:RegisterEvent("ADDON_LOADED")
|
||||
newAddon:RegisterEvent("PLAYER_LOGIN")
|
||||
newAddon:SetScript("OnEvent", addonOnEvent)
|
||||
|
||||
return newAddon
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
--old create addon
|
||||
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", "AceComm-3.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
|
||||
@@ -37,7 +106,7 @@ function DF:CreateAddOn (name, global_saved, global_table, options_table, broker
|
||||
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]],
|
||||
@@ -45,12 +114,12 @@ function DF:CreateAddOn (name, global_saved, global_table, options_table, broker
|
||||
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
|
||||
|
||||
|
||||
if (addon.OnInit) then
|
||||
xpcall (addon.OnInit, geterrorhandler(), addon)
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user