diff --git a/modules/corelib/settings.lua b/modules/corelib/settings.lua index 6ef5e43c..11aa29eb 100644 --- a/modules/corelib/settings.lua +++ b/modules/corelib/settings.lua @@ -1,82 +1,47 @@ --- @docclass -g_settings = { - impl = g_configs.getSettings() -} +local config = g_configs.getSettings() -function g_settings.save() - g_settings.impl:save() -end - -function g_settings.setList(key, list) - g_settings.impl:setList(key, list) -end - -function g_settings.getList(key) - g_settings.impl:getList(key) -end - -function g_settings.exists(key) - g_settings.impl:exists(key) -end - -function g_settings.remove(key) - g_settings.impl:remove(key) -end - -function g_settings.setNode(key, node) - g_settings.impl:setNode(key, node) -end - -function g_settings.getNode(key) - g_settings.impl:getNode(key) -end - -function g_settings.mergeNode(key, node) - g_settings.impl:mergeNode(key, node) -end - --- convenience methods +g_settings = makesingleton(config) function g_settings.set(key, value) - g_settings.impl:set(key, value) + config:set(key, value) end function g_settings.setDefault(key, value) - return g_settings.impl:setDefault(key, value) + return config:setDefault(key, value) end function g_settings.get(key, default) - return g_settings.impl:get(key, default) + return config:get(key, default) end function g_settings.getString(key, default) - return g_settings.impl:getString(key, default) + return config:getString(key, default) end function g_settings.getInteger(key, default) - return g_settings.impl:getInteger(key, default) + return config:getInteger(key, default) end function g_settings.getNumber(key, default) - return g_settings.impl:getNumber(key, default) + return config:getNumber(key, default) end function g_settings.getBoolean(key, default) - return g_settings.impl:getBoolean(key, default) + return config:getBoolean(key, default) end function g_settings.getPoint(key, default) - return g_settings.impl:getPoint(key, default) + return config:getPoint(key, default) end function g_settings.getRect(key, default) - return g_settings.impl:getRect(key, default) + return config:getRect(key, default) end function g_settings.getSize(key, default) - return g_settings.impl:getSize(key, default) + return config:getSize(key, default) end function g_settings.getColor(key, default) - return g_settings.impl:getColor(key, default) -end + return config:getColor(key, default) +end \ No newline at end of file diff --git a/modules/corelib/util.lua b/modules/corelib/util.lua index ad59811f..04a4857f 100644 --- a/modules/corelib/util.lua +++ b/modules/corelib/util.lua @@ -332,4 +332,16 @@ function getOppositeAnchor(anchor) return anchor end +function makesingleton(obj) + local singleton = {} + if obj.getClassName then + for key,value in pairs(_G[obj:getClassName()]) do + if type(value) == 'function' then + singleton[key] = function(...) value(obj, ...) end + end + end + end + return singleton +end + -- @} \ No newline at end of file