vanilla-wow-addons – Rev 1
?pathlinks?
--[[
Bongos\core\profiles.lua
Code for saving and loading Bongos Settings
--]]
local savedList = {};
BProfile = {
Load = function(name)
if not BongosProfiles then
BMsg("No profiles saved yet.");
elseif not name then
BMsg("No profile name specified.");
elseif not BongosProfiles[name] then
BMsg("'" .. (name or "null") .. "' is an invalid profile.");
else
BBar.ForAllIDs(BBar.Delete);
for field, value in pairs(BongosProfiles[name]) do
setfield(field, tcopy(value));
local action = savedList[name];
if action and not tonumber(action) then
action();
end
end
BScript.CallStartup();
BMsg("Loaded profile '" .. name .. "'.");
end
end,
Save = function(name)
if not BongosProfiles then
BongosProfiles = {};
end
BongosProfiles[name] = {};
--save all bar and position information
for _, bar in pairs(BBar.GetAll()) do
BongosProfiles[name][bar.setsGlobal] = tcopy(bar.sets) or {};
BongosProfiles[name][bar.setsGlobal].x = bar:GetLeft();
BongosProfiles[name][bar.setsGlobal].y = bar:GetTop();
local scale = bar:GetScale();
if scale == 1 then
scale = nil;
end
BongosProfiles[name][bar.setsGlobal].scale = scale;
end
for var in savedList do
BongosProfiles[name][var] = tcopy(getfield(var));
end
BMsg("Saved your current configuration as the profile '" .. name .. "'.");
end,
Delete = function(name)
if not BongosProfiles then
BMsg("No profiles saved yet.");
elseif(not name) then
BMsg("No profile specified.");
elseif not BongosProfiles[name] then
BMsg("'" .. (name or "null") .. "' is an invalid profile.");
else
BongosProfiles[name] = nil;
BMsg("Deleted profile '" .. name .. "'.");
end
end,
SetDefault = function(name)
if not name then
if BongosProfiles then
BongosProfiles.default = nil;
BMsg("Default profile disabled.");
end
elseif BongosProfiles and BongosProfiles[name] then
BongosProfiles.default = name;
BMsg("'" .. name .. "' has been set as the default Bongos profile.");
else
BMsg("Invalid profile name.");
end
end,
GetDefault = function()
if BongosProfiles then
return BongosProfiles.default;
end
end,
RegisterForSave = function(varName, loadAction)
if not savedList[varName] then
savedList[varName] = (loadAction or 1);
end
end,
GetDefaultValue = function(varName)
if not (varName and BongosProfiles and BongosProfiles.default and BongosProfiles[BongosProfiles.default]) then
return nil;
end
local defaults = BongosProfiles[BongosProfiles.default][varName];
if defaults then
return tcopy(defaults);
end
end,
}
Generated by GNU Enscript 1.6.5.90.