Files
coa-bartender/Options/ButtonBar.lua
T
florian.berthold 57a5cdabdf ascension: 4.4.2 → vendored 4.4.2-2-g3b02ee4 (in-game AddOns dir)
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).
2026-05-08 03:45:58 +02:00

132 lines
3.4 KiB
Lua

--[[
Copyright (c) 2009, Hendrik "Nevcairiel" Leppkes < h.leppkes at gmail dot com >
All rights reserved.
]]
local L = LibStub("AceLocale-3.0"):GetLocale("Bartender4")
local Bar = Bartender4.Bar.prototype
local ButtonBar = Bartender4.ButtonBar.prototype
--[[===================================================================================
Bar Options
===================================================================================]]--
-- option utilty functions
local optGetter, optSetter
do
local getBar, optionMap, callFunc
local barregistry = Bartender4.Bar.barregistry
-- maps option keys to function names
optionMap = {
rows = "Rows",
padding = "Padding",
zoom = "Zoom",
macrotext = "HideMacroText",
hotkey = "HideHotkey",
vgrowth = "VGrowth",
hgrowth = "HGrowth",
}
-- retrieves a valid bar object from the barregistry table
function getBar(id)
local bar = barregistry[tostring(id)]
assert(bar, ("Invalid bar id in options table. (%s)"):format(id))
return bar
end
-- calls a function on the bar
function callFunc(bar, type, option, ...)
local func = type .. (optionMap[option] or option)
assert(bar[func], ("Invalid get/set function %s in bar %s."):format(func, bar.id))
return bar[func](bar, ...)
end
-- universal function to get a option
function optGetter(info)
local bar = getBar(info[2])
local option = info[#info]
return callFunc(bar, "Get", option)
end
-- universal function to set a option
function optSetter(info, ...)
local bar = getBar(info[2])
local option = info[#info]
return callFunc(bar, "Set", option, ...)
end
end
function ButtonBar:GetOptionObject()
local obj = Bar.GetOptionObject()
local otbl_general = {
padding = {
order = 40,
type = "range",
name = L["Padding"],
desc = L["Configure the padding of the buttons."],
softMin = -10, softMax = 20, bigStep = 1,
set = optSetter,
get = optGetter,
},
zoom = {
order = 59,
name = L["Zoom"],
type = "toggle",
desc = L["Toggle Button Zoom\nFor more style options you need to install ButtonFacade"],
get = optGetter,
set = optSetter,
hidden = function() return LibStub("LibButtonFacade", true) and true or false end,
},
rows = {
order = 70,
name = L["Rows"],
desc = L["Number of rows."],
type = "range",
min = 1, max = 12, step = 1,
set = optSetter,
get = optGetter,
},
vgrowth = {
order = 75,
name = L["Vertical Growth"],
desc = L["Vertical growth direction for this bar."],
type = "select",
values = {UP = L["Up"], DOWN = L["Down"]},
set = optSetter,
get = optGetter,
},
hgrowth = {
order = 76,
name = L["Horizontal Growth"],
desc = L["Horizontal growth direction for this bar."],
type = "select",
values = {LEFT = L["Left"], RIGHT = L["Right"]},
set = optSetter,
get = optGetter,
},
hidedesc = {
order = 80,
name = L["Button Look"],
type = "header",
},
macrotext = {
order = 81,
type = "toggle",
name = L["Hide Macro Text"],
desc = L["Hide the Macro Text on the buttons of this bar."],
set = optSetter,
get = optGetter,
},
hotkey = {
order = 82,
type = "toggle",
name = L["Hide Hotkey"],
desc = L["Hide the Hotkey on the buttons of this bar."],
set = optSetter,
get = optGetter,
},
}
obj:AddElementGroup("general", otbl_general)
return obj
end