57a5cdabdf
Imported from /srv/add01/wow-ascension/Interface/AddOns/Bartender4 — the build Ascension's WotLK 3.3.5 client ships. Single vendored drop: Ascension's build process bundles their custom patches with the standard CurseForge packager output (embedded libs), and the individual patches aren't published separately. Net delta vs Nevcairiel 4.4.2, excluding bundled libs and CRLF normalization: 21 files, 2213+/52- — the Ascension-specific adaptations for WotLK 3.3.5 hero classes / custom action systems. License: All rights reserved (per .toc).
58 lines
2.1 KiB
Lua
58 lines
2.1 KiB
Lua
--- AceConfig-3.0 wrapper library.
|
|
-- Provides an API to register an options table with the config registry,
|
|
-- as well as associate it with a slash command.
|
|
-- @class file
|
|
-- @name AceConfig-3.0
|
|
-- @release $Id: AceConfig-3.0.lua 877 2009-11-02 15:56:50Z nevcairiel $
|
|
|
|
--[[
|
|
AceConfig-3.0
|
|
|
|
Very light wrapper library that combines all the AceConfig subcomponents into one more easily used whole.
|
|
|
|
]]
|
|
|
|
local MAJOR, MINOR = "AceConfig-3.0", 2
|
|
local AceConfig = LibStub:NewLibrary(MAJOR, MINOR)
|
|
|
|
if not AceConfig then return end
|
|
|
|
local cfgreg = LibStub("AceConfigRegistry-3.0")
|
|
local cfgcmd = LibStub("AceConfigCmd-3.0")
|
|
local cfgdlg = LibStub("AceConfigDialog-3.0")
|
|
--TODO: local cfgdrp = LibStub("AceConfigDropdown-3.0")
|
|
|
|
-- Lua APIs
|
|
local pcall, error, type, pairs = pcall, error, type, pairs
|
|
|
|
-- -------------------------------------------------------------------
|
|
-- :RegisterOptionsTable(appName, options, slashcmd, persist)
|
|
--
|
|
-- - appName - (string) application name
|
|
-- - options - table or function ref, see AceConfigRegistry
|
|
-- - slashcmd - slash command (string) or table with commands, or nil to NOT create a slash command
|
|
|
|
--- Register a option table with the AceConfig registry.
|
|
-- You can supply a slash command (or a table of slash commands) to register with AceConfigCmd directly.
|
|
-- @paramsig appName, options [, slashcmd]
|
|
-- @param appName The application name for the config table.
|
|
-- @param options The option table (or a function to generate one on demand)
|
|
-- @param slashcmd A slash command to register for the option table, or a table of slash commands.
|
|
-- @usage
|
|
-- local AceConfig = LibStub("AceConfig-3.0")
|
|
-- AceConfig:RegisterOptionsTable("MyAddon", myOptions, {"/myslash", "/my"})
|
|
function AceConfig:RegisterOptionsTable(appName, options, slashcmd)
|
|
local ok,msg = pcall(cfgreg.RegisterOptionsTable, self, appName, options)
|
|
if not ok then error(msg, 2) end
|
|
|
|
if slashcmd then
|
|
if type(slashcmd) == "table" then
|
|
for _,cmd in pairs(slashcmd) do
|
|
cfgcmd:CreateChatCommand(cmd, appName)
|
|
end
|
|
else
|
|
cfgcmd:CreateChatCommand(slashcmd, appName)
|
|
end
|
|
end
|
|
end
|