vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:
--[[
        BCustomScript
                Allows bar scripts to be executed at runtime.
--]]

local function AddScript(barID, event, action, runNow)
        local funct = assert(loadstring("return function(bar,event)\n" .. action .. "\nend"));
        BScript.AddBarEventAction(barID, event, funct(), runNow);
end

BCustomScript = {       
        Save = function(barID, event, action, runNow)
                if not(barID and barID ~= "" and event and event ~= "") then return; end
                
                if not BongosCustomScripts then
                        BongosCustomScripts = {};
                end
                if not BongosCustomScripts[barID] then
                        BongosCustomScripts[barID] = {};
                end
                assert(loadstring(action));
                
                BongosCustomScripts[barID][event] = {script = action};

                if runNow then
                        BongosCustomScripts[barID][event].runNow = 1;
                        AddScript(barID, event, action, runNow)
                end
        end,
        
        Delete = function(barID, event)
                if not(barID and barID ~= "" and event and event ~= "") then return; end
                
                if BongosCustomScripts then
                        if BongosCustomScripts[barID] then
                                if BongosCustomScripts[barID][event] then
                                        BScript.RemoveEventForBar(event, barID);
                                        
                                        BongosCustomScripts[barID][event] = nil;                                
                                        for i in BongosCustomScripts[barID] do return; end
                                        BongosCustomScripts[barID] = nil;
                                        for i in BongosCustomScripts do return; end
                                        BongosCustomScripts = nil;
                                end
                        end
                end
        end,
        
        Load = function(barID, event)
                if not(barID and barID ~= "" and event and event ~= "") then return; end
                
                if BongosCustomScripts then
                        if BongosCustomScripts[barID] then      
                                local data = BongosCustomScripts[barID][event];
                                if data then
                                        AddScript(barID, event, data.script, data.runNow)
                                end
                        end     
                end
        end,
        
        LoadAll = function()
                if BongosCustomScripts then
                        for barID in BongosCustomScripts do
                                for event, data in pairs(BongosCustomScripts[barID]) do
                                        AddScript(barID, event, data.script, data.runNow)
                                end
                        end
                end
        end,
}

Generated by GNU Enscript 1.6.5.90.