vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:
--[[
        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.