vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:
function tradeDispenser_Banlist_OnShow()
        tradeDispenser_Banlist_Update()
        if (UnitIsPlayer("target") and UnitIsFriend("target", "player")) then
                tradeDispenserBanlistName:SetText(UnitName("target"));
        else
                tradeDispenserBanlistName:SetText("");
        end
        if (GetNumIgnores()>0) then
                local i;
                local New = false;
                for     i=1,GetNumIgnores() do
                        local j;
                        local found = false;
                        for j=1,table.getn(tD_GlobalDatas.Bannlist) do
                                if (strlower(tD_GlobalDatas.Bannlist[j])==strlower(GetIgnoreName(i))) then
                                        found=true;
                                end
                        end
                        if (not found) then New=true end
                end
                if (New) then
                        tradeDispenserBanlistImport:Enable();
                else
                        tradeDispenserBanlistImport:Disable();
                end
        else
                tradeDispenserBanlistImport:Disable();
        end
        tradeDispenserBanlistAdd:Disable();
        tradeDispenserBanlistRemove:Disable();
        tradeDispenser_Banlist_Edit(tradeDispenserBanlistName);
end


function tradeDispenser_Banlist_Update()
        local H = 0;
        if (tradeDispenserSettings and tradeDispenserSettings:IsVisible()) then
                H = 2+tradeDispenserSettingsText:GetHeight()
        end
        tradeDispenserBanlist:SetHeight(346+H);
        tradeDispenserBanlistScrollBkg:SetHeight(206+H);
        tradeDispenserBanlistScrollBar:SetHeight(206+H);
        tD_Temp.Scroll.maxlines = math.floor((206+H)/12.25);
        if (tD_GlobalDatas.Bannlist) then table.sort(tD_GlobalDatas.Bannlist) end
        tradeDispenser_Banlist_Scroll()
end


function tradeDispenser_Banlist_Scroll()
        if (not tD_Temp.Scroll.maxlines) then return end
        if (not tD_GlobalDatas.Bannlist) then 
                tradeDispenserBanlistScrollText:SetText("");
                tradeDispenserBanlistScrollBar:Hide();
                return 
        end
        tD_Temp.Scroll.start = tradeDispenserBanlistScrollBar:GetValue();
        tD_Temp.Scroll.ende = table.getn(tD_GlobalDatas.Bannlist);
        if (tD_Temp.Scroll.ende > tD_Temp.Scroll.maxlines) then
                tradeDispenserBanlistScrollBar:Show();
                tradeDispenserBanlistScrollBar:SetMinMaxValues(1, table.getn(tD_GlobalDatas.Bannlist)-tD_Temp.Scroll.maxlines+1);               
                tD_Temp.Scroll.ende = tD_Temp.Scroll.start + tD_Temp.Scroll.maxlines-1;
        else
                tD_Temp.Scroll.start=1;
                tradeDispenserBanlistScrollBar:Hide();
        end
        
        local temp="";  
        local i;
        for i = tD_Temp.Scroll.start,tD_Temp.Scroll.ende do
                temp=temp.." \n "..tD_GlobalDatas.Bannlist[i];
        end
        tradeDispenserBanlistScrollText:SetText(temp);
        
end


function tradeDispenser_Banlist_Edit(Editbox)
        if (not Editbox) then return end
        if (not tD_Temp.BanListStatus) then tD_Temp.BanListStatus="inactive"; end
        local name = strlower( Editbox:GetText() );
        string.gsub(name," ","");
        if (strlen(name)<1) then
                tradeDispenserBanlistAdd:Disable();
                tradeDispenserBanlistRemove:Disable();
                tD_Temp.BanListStatus="inactive";
        else
                tradeDispenserBanlistAdd:Enable();
                tradeDispenserBanlistRemove:Disable();
                tD_Temp.BanListStatus="add";
                
                if (tD_GlobalDatas.Bannlist) then 
                        local j;
                        local found = false;
                        for j=1,table.getn(tD_GlobalDatas.Bannlist) do
                                if (strlower(tD_GlobalDatas.Bannlist[j])==name) then
                                        found=true;
                                end
                        end
                        if (found) then
                                tradeDispenserBanlistAdd:Disable();
                                tradeDispenserBanlistRemove:Enable();
                                tD_Temp.BanListStatus="remove";
                        end
                end
        end
end


function tradeDispenser_Banlist_Remove(name)
        local j;
        local found = 0;
        for j=1,table.getn(tD_GlobalDatas.Bannlist) do
                if (strlower(tD_GlobalDatas.Bannlist[j])==strlower(name)) then
                        found=j;
                end
        end
        if (found>0) then
                table.remove(tD_GlobalDatas.Bannlist,found);
                tradeDispenserVerbose(1,"remove index "..found..": Name="..name);
        else
                tradeDispenserVerbose(1,"Name "..name.."  not found");
        end
        tradeDispenserBanlistName:SetText("");
        tradeDispenserBanlistRemove:Disable();
        tradeDispenserBanlistAdd:Disable();
        tD_Temp.BanListStatus="inactive";
        tradeDispenser_Banlist_Scroll()
end

function tradeDispenser_Banlist_Add(name)
        --tradeDispenserVerbose(0,"Add");
        if (name) then
                table.insert(tD_GlobalDatas.Bannlist,name);
                tradeDispenserVerbose(1,"Added Name "..name.." to Banlist");
        end
        table.sort(tD_GlobalDatas.Bannlist)
        tradeDispenserBanlistRemove:Enable();
        tradeDispenserBanlistAdd:Disable();
        tD_Temp.BanListStatus="remove";
        tradeDispenser_Banlist_Scroll()
end


function tradeDispenser_Banlist_Import()
        if (GetNumIgnores()>0) then
                local i;
                for     i=1,GetNumIgnores() do
                        local j;
                        local found = false;
                        for j=1,table.getn(tD_GlobalDatas.Bannlist) do
                                if (strlower(tD_GlobalDatas.Bannlist[j])==strlower(GetIgnoreName(i))) then
                                        found=true;
                                end
                        end
                        if (not found) then 
                                table.insert(tD_GlobalDatas.Bannlist,GetIgnoreName(i));
                                tradeDispenserVerbose(1,"Added Name "..GetIgnoreName(i).." to Banlist");
                        end
                end
        end
        table.sort(tD_GlobalDatas.Bannlist)     
        tradeDispenserBanlistImport:Disable();
        tradeDispenser_Banlist_Scroll()
end