diff --git a/ActionBarPrototype.lua b/ActionBarPrototype.lua index 8c269f4..8908e28 100644 --- a/ActionBarPrototype.lua +++ b/ActionBarPrototype.lua @@ -65,15 +65,17 @@ function module:GetOptionsObject() if not self.baroptions then local obj = Bar.GetOptionObject(self) - local cat_general = { - enabled = { - order = 1, + local cat_general_visibility_en = { + order = 4, name = "Enabled", desc = "Enable/Disable the bar.", type = "toggle", set = optSetter, get = optGetter, - }, + } + obj:AddElement("general", "enabled", cat_general_visibility_en, "visibility") + + local cat_general = { padding = { order = 40, type = "range", @@ -83,8 +85,13 @@ function module:GetOptionsObject() set = optSetter, get = optGetter, }, + desc = { + order = 50, + type = "header", + name = "Button Configuration", + }, grid = { - order = 15, + order = 55, type = "toggle", name = "Button Grid", desc = "Toggle the button grid.", @@ -92,13 +99,8 @@ function module:GetOptionsObject() get = optGetter, width = "full", }, - layout_header = { - order = 101, - type = "header", - name = "Layout Options", - }, buttons = { - order = 110, + order = 60, name = "Buttons", desc = "Number of buttons.", type = "range", @@ -107,7 +109,7 @@ function module:GetOptionsObject() get = optGetter, }, rows = { - order = 120, + order = 70, name = "Rows", desc = "Number of rows.", type = "range", @@ -116,7 +118,7 @@ function module:GetOptionsObject() get = optGetter, }, } - obj:AddElementGroup("general", "ActionBar", cat_general) + obj:AddElementGroup("general", cat_general) local swap = { type = "group", diff --git a/Bar.lua b/Bar.lua index fbf35cb..23fddf1 100644 --- a/Bar.lua +++ b/Bar.lua @@ -125,18 +125,26 @@ function Bar:GetOptionObject() name = "General Settings", order = 1, args = { - show = { - order = 3, - type = "toggle", - name = "Show", - desc = "Show/Hide the bar.", - get = optGetter, - set = optSetter, + visibility = { + order = 5, + type = "group", + inline = true, + name = "", + args = { + show = { + order = 5, + type = "toggle", + name = "Show", + desc = "Show/Hide the bar.", + get = optGetter, + set = optSetter, + }, + }, }, styleheader = { order = 10, type = "header", - name = "Style Options", + name = "Bar Style & Layout", }, alpha = { order = 20, diff --git a/Options.lua b/Options.lua index 8442db8..a96fdc5 100644 --- a/Options.lua +++ b/Options.lua @@ -170,12 +170,13 @@ function optionParent:NewCategory(category, data) self.table[category] = data end +local ov = nil function optionParent:AddElement(category, element, data, ...) local lvl = self.table[category] for i = 1, select('#', ...) do local key = select(i, ...) if not (lvl.args[key] and lvl.args[key].args) then - error(("Sub-Level Key %s does not exist in options group or is no sub-group."):format(key), 2) + error(("Sub-Level Key %s does not exist in options group or is no sub-group."):format(key), ov and 3 or 2) end lvl = lvl.args[key] end @@ -183,20 +184,12 @@ function optionParent:AddElement(category, element, data, ...) lvl.args[element] = data end -function optionParent:AddElementGroup(category, group_desc, data, ...) - local lvl = self.table[category] - for i = 1, select('#', ...) do - local key = select(i, ...) - if not (lvl.args[key] and lvl.args[key].args) then - error(("Sub-Level Key %s does not exist in options group or is no sub-group."):format(key), 2) - end - lvl = lvl.args[key] +function optionParent:AddElementGroup(category, data, ...) + ov = true + for k,v in pairs(data) do + self:AddElement(category, k, v, ...) end - - if not lvl.plugins then - lvl.plugins = {} - end - lvl.plugins[group_desc] = data + ov = nil end function Bartender4:NewOptionObject(otbl)