vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:
-- Thanks Flaye for teaching me how to use xml

UIPanelWindows["BGInviteUI"] = { area = "left", pushable = 3 };

function BGInviteUI_OnLoad()
        tinsert(UISpecialFrames,"BGInviteUI"); 
end

function BGInviteUI_OnShow()
        UIDropDownMenu_SetSelectedID(BGInviteOptionsFrameChannelDropDown, BGInvite_Config.MsgChannelId, BGINVITE_CHANNELS);     
        UIDropDownMenu_SetText(BGINVITE_CHANNELS[BGInvite_Config.MsgChannelId].name, BGInviteOptionsFrameChannelDropDown);
end

function BGInviteOptionsFrame_AutoInvite_CheckBt_Update(whatValue)
        if (whatValue == nil ) then
                whatValue = 0;
        end
        BGInvite_Config.AutoInvite = whatValue;
end
function BGInviteOptionsFrame_AutoPurge_CheckBt_Update(whatValue)
        if (whatValue == nil ) then
                whatValue = 0;
        end
        BGInvite_Config.AutoPurge = whatValue;
end
function BGInviteOptionsFrame_SendWhisper_CheckBt_Update(whatValue)
        if (whatValue == nil ) then
                whatValue = 0;
        end
        BGInvite_Config.SendWhisper = whatValue;
end
function BGInviteOptionsFrame_Disable_CheckBt_Update(whatValue)
        if (whatValue == nil ) then
                whatValue = 0;
        end
        BGInvite_Config.Disable = whatValue;
end

function BGInvite_CheckBoxCommand (command)
    if (command == nil) then
        return;
    end  
    if (command == "autoinvite") then
        if (BGvar_save.auto == "enabled") then
            BGvar_save.auto = "disabled"
                        BGinvite_print(BGlocal_NOT_AUTO_INVITING)
        else
            BGvar_save.auto = "enabled"
                        BGinvite_print(BGlocal_AUTO_INVITING)
        end
    elseif (command == "autopurge") then
        if (BGvar_save.purge == "enabled") then
            BGvar_save.purge = "disabled"
                        BGinvite_print(BGlocal_NOT_PURGING)
        else
            BGvar_save.purge = "enabled"
                        BGinvite_print(BGlocal_NOW_PURGING)
        end
    end
end

function BGInvite_GetNumber (boolean)
    if (boolean == "enabled") then
        return 1;
    else
        return 0;
    end
end

function BGinvite_CopyBlacklist()
        BGvar_CopiedBlacklist = {}
        table.foreach(BGvar_blacklist, BGinvite_CheckBlacklistNames)
end

function BGinvite_CheckBlacklistNames(name)
        if BGvar_blacklist[name] == 1 then
                table.insert(BGvar_CopiedBlacklist, name)
        end
end



function BGinviteScrollBar_Update()
        BGinvite_CopyBlacklist()
        local line; -- 1 through 5 of our window to scroll
        local lineplusoffset; -- an index into our data calculated from the scroll offset
        FauxScrollFrame_Update(BGInviteScrollBar,table.getn(BGvar_CopiedBlacklist),7,40);
        for line=1,7 do
                local lineplusoffset = line + FauxScrollFrame_GetOffset(BGInviteScrollBar);
                if lineplusoffset <= table.getn(BGvar_CopiedBlacklist) then
                        getglobal("BGInviteEntry"..line.."Text"):SetText(BGvar_CopiedBlacklist[lineplusoffset])
                        getglobal("BGInviteEntry"..line):Show()
                else
                        getglobal("BGInviteEntry"..line):Hide()
                end
        end
end

function BGInvite_RetryCooldown_Slider_Update(value)
        BGInvite_Config.RetryTimeout = value;
end
function BGInvite_PurgeCooldown_Slider_Update(value)
        BGInvite_Config.PurgeTimeout = value;
end
function BGInvite_MaxInvites_Slider_Update(value)
        BGInvite_Config.MaxRetries = value;
end
function BGInvite_AutoInviteTimeout_Slider_Update(value)
        BGInvite_Config.AutoInviteTimeout = value;
end

--[[
=============================================================================
Callback methods for the DropDown Menu
=============================================================================
]]
local function BGInviteOptionsFrameChannelDropDown_Initialize()
        local info;
        for i = 1, getn(BGINVITE_CHANNELS), 1 do
                info = { };
                info.text = BGINVITE_CHANNELS[i].name;
                info.func = BGInvite_ChannelDropDownButton_OnClick;
                UIDropDownMenu_AddButton(info);
        end
end

function BGInvite_ChannelDropDown_OnLoad()
        UIDropDownMenu_Initialize(BGInviteOptionsFrameChannelDropDown, BGInviteOptionsFrameChannelDropDown_Initialize);
        UIDropDownMenu_SetWidth(150);
        UIDropDownMenu_SetButtonWidth(48);
        UIDropDownMenu_JustifyText("RIGHT", BGInviteOptionsFrameChannelDropDown)
end

function BGInvite_ChannelDropDownButton_OnClick()
        UIDropDownMenu_SetSelectedID(BGInviteOptionsFrameChannelDropDown, this:GetID());
        BGInvite_Config.MsgChannelId = UIDropDownMenu_GetSelectedID(BGInviteOptionsFrameChannelDropDown);
end