Mercurial > wow > pvpscan
diff Libs/AceConfig-3.0/AceConfigRegistry-3.0/AceConfigRegistry-3.0.lua @ 18:a0dcdcaec1ea v7.3.0.018
- toc update.
- libs update.
| author | Tercio |
|---|---|
| date | Tue, 17 Oct 2017 10:02:01 -0200 |
| parents | ce416064d8a1 |
| children | fedcd7c21db9 |
line wrap: on
line diff
--- a/Libs/AceConfig-3.0/AceConfigRegistry-3.0/AceConfigRegistry-3.0.lua Thu Jun 01 11:19:42 2017 -0300 +++ b/Libs/AceConfig-3.0/AceConfigRegistry-3.0/AceConfigRegistry-3.0.lua Tue Oct 17 10:02:01 2017 -0200 @@ -8,16 +8,16 @@ -- :IterateOptionsTables() (and :GetOptionsTable() if only given one argument) return a function reference that the requesting config handling addon must call with valid "uiType", "uiName". -- @class file -- @name AceConfigRegistry-3.0 --- @release $Id: AceConfigRegistry-3.0.lua 1045 2011-12-09 17:58:40Z nevcairiel $ -local MAJOR, MINOR = "AceConfigRegistry-3.0", 14 +-- @release $Id: AceConfigRegistry-3.0.lua 1161 2017-08-12 14:30:16Z funkydude $ +local CallbackHandler = LibStub("CallbackHandler-1.0") + +local MAJOR, MINOR = "AceConfigRegistry-3.0", 17 local AceConfigRegistry = LibStub:NewLibrary(MAJOR, MINOR) if not AceConfigRegistry then return end AceConfigRegistry.tables = AceConfigRegistry.tables or {} -local CallbackHandler = LibStub:GetLibrary("CallbackHandler-1.0") - if not AceConfigRegistry.callbacks then AceConfigRegistry.callbacks = CallbackHandler:New(AceConfigRegistry) end @@ -57,6 +57,7 @@ local ismethodtable={["table"]=true,["string"]=true,["function"]=true, _="methodname, funcref or table"} local optstring={["nil"]=true,["string"]=true, _="string"} local optstringfunc={["nil"]=true,["string"]=true,["function"]=true, _="string or funcref"} +local optstringnumberfunc={["nil"]=true,["string"]=true,["number"]=true,["function"]=true, _="string, number or funcref"} local optnumber={["nil"]=true,["number"]=true, _="number"} local optmethod={["nil"]=true,["string"]=true,["function"]=true, _="methodname or funcref"} local optmethodfalse={["nil"]=true,["string"]=true,["function"]=true,["boolean"]={[false]=true}, _="methodname, funcref or false"} @@ -82,7 +83,7 @@ dialogHidden=optmethodbool, dropdownHidden=optmethodbool, cmdHidden=optmethodbool, - icon=optstringfunc, + icon=optstringnumberfunc, iconCoords=optmethodtable, handler=opttable, get=optmethodfalse, @@ -95,7 +96,7 @@ local typedkeys={ header={}, description={ - image=optstringfunc, + image=optstringnumberfunc, imageCoords=optmethodtable, imageHeight=optnumber, imageWidth=optnumber, @@ -112,7 +113,7 @@ childGroups=optstring, }, execute={ - image=optstringfunc, + image=optstringnumberfunc, imageCoords=optmethodtable, imageHeight=optnumber, imageWidth=optnumber, @@ -127,7 +128,7 @@ }, toggle={ tristate=optbool, - image=optstringfunc, + image=optstringnumberfunc, imageCoords=optmethodtable, }, tristate={ @@ -288,7 +289,8 @@ -- @param appName The application name as given to `:RegisterOptionsTable()` -- @param options The options table, OR a function reference that generates it on demand. \\ -- See the top of the page for info on arguments passed to such functions. -function AceConfigRegistry:RegisterOptionsTable(appName, options) +-- @param skipValidation Skip options table validation (primarily useful for extremely huge options, with a noticeable slowdown) +function AceConfigRegistry:RegisterOptionsTable(appName, options, skipValidation) if type(options)=="table" then if options.type~="group" then -- quick sanity checker error(MAJOR..": RegisterOptionsTable(appName, options): 'options' - missing type='group' member in root group", 2) @@ -296,7 +298,7 @@ AceConfigRegistry.tables[appName] = function(uiType, uiName, errlvl) errlvl=(errlvl or 0)+1 validateGetterArgs(uiType, uiName, errlvl) - if not AceConfigRegistry.validated[uiType][appName] then + if not AceConfigRegistry.validated[uiType][appName] and not skipValidation then AceConfigRegistry:ValidateOptionsTable(options, appName, errlvl) -- upgradable AceConfigRegistry.validated[uiType][appName] = true end @@ -307,7 +309,7 @@ errlvl=(errlvl or 0)+1 validateGetterArgs(uiType, uiName, errlvl) local tab = assert(options(uiType, uiName, appName)) - if not AceConfigRegistry.validated[uiType][appName] then + if not AceConfigRegistry.validated[uiType][appName] and not skipValidation then AceConfigRegistry:ValidateOptionsTable(tab, appName, errlvl) -- upgradable AceConfigRegistry.validated[uiType][appName] = true end
