vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:
function Tetris_CF_Toggle()
        if(Tetris_CF:IsVisible()) then
                Tetris_CF:Hide();
        else
                Tetris_CF_Show();
                Tetris_CF:Show();
        end
end

function Tetris_CF_Show()
        --variablen holen und setzen
        local x = Tetris["options"]["breite"];
        local y = Tetris["options"]["hohe"];
        local t_y = Tetris_UBE_CF_Text_hohe;
        local t_x = Tetris_UBE_CF_Text_breite;
        local viel = Tetris_UBE_CF_s_Text_viel;
        local wenig = Tetris_UBE_CF_s_Text_wenig;
        local r_on = Tetris_UBE_CF_Text_r_lines_on;
        local r_off = Tetris_UBE_CF_Text_r_lines_off;
        local r_lines = Tetris["options"]["r_lines"];
        local r_act = Tetris["options"]["r_lines_activ"];
        local gametyp = Tetris["options"]["gametyp"];

        --slider höhe
        Tetris_CF_s_Text_hohe:SetText(t_y.." "..y);
        Tetris_CF_s_hohe:SetMinMaxValues(8, 50);
        Tetris_CF_s_hohe:SetValueStep(1);
        Tetris_CF_s_hohe:SetValue(y);
        getglobal("Tetris_CF_s_hoheHigh"):SetText(viel);
        getglobal("Tetris_CF_s_hoheLow"):SetText(wenig);                
        --slider breite
        Tetris_CF_s_Text_breite:SetText(t_x.." "..x);
        Tetris_CF_s_breite:SetMinMaxValues(4, 50);
        Tetris_CF_s_breite:SetValueStep(1);
        Tetris_CF_s_breite:SetValue(x);
        getglobal("Tetris_CF_s_breiteHigh"):SetText(viel);
        getglobal("Tetris_CF_s_breiteLow"):SetText(wenig);
        --slider r_linien und checkbox
        --falls r_linien abgeschaltet ist
        if (r_act==0) then
                Tetris_CF_s_Text_r_lines:SetText(r_off);        
                Tetris_CF_c_r_lines:SetChecked(0);
        else
                Tetris_CF_s_Text_r_lines:SetText(r_on.." "..r_lines);
                Tetris_CF_c_r_lines:SetChecked(1);
        end
        Tetris_CF_s_r_lines:SetMinMaxValues(1, y-5);
        Tetris_CF_s_r_lines:SetValueStep(1);
        Tetris_CF_s_r_lines:SetValue(r_lines);
        getglobal("Tetris_CF_s_r_linesHigh"):SetText(viel);
        getglobal("Tetris_CF_s_r_linesLow"):SetText(wenig);
        --dropdownmenu
        UIDropDownMenu_Initialize(Tetris_CF_dropdown, Tetris_CF_dropdown_Initialize);
        UIDropDownMenu_SetSelectedID(Tetris_CF_dropdown, gametyp);
        UIDropDownMenu_SetWidth(170, Tetris_CF_dropdown);
end

function Tetris_CF_dropdown_Initialize()
        local info;
        Tetris_gametyp_list_create();
        for i = 1, getn(Tetris_gametyp_list), 1 do
                info = {
                        text = Tetris_gametyp_list[i];
                        func = Tetris_CF_dropdown_OnClick;
                };
                UIDropDownMenu_AddButton(info);
        end
end

function Tetris_CF_dropdown_OnClick()
        i = this:GetID();
        UIDropDownMenu_SetSelectedID(Tetris_CF_dropdown, i);
end

function Tetris_CF_Update()
        --variablen holen und setzen
        local t_y = Tetris_UBE_CF_Text_hohe;
        local t_x = Tetris_UBE_CF_Text_breite;
        local r_on = Tetris_UBE_CF_Text_r_lines_on;
        local r_off = Tetris_UBE_CF_Text_r_lines_off;
        local s_name = this:GetName();
        --name des veränderten slider updaten
        if (s_name == "Tetris_CF_s_hohe") then
                local z = getglobal(s_name):GetValue();
                getglobal ("Tetris_CF_s_Text_hohe"):SetText(t_y.." "..z);
                --höhe hat sich geändert, ist die einstellung von r_lines zuläsig?
                if      (Tetris_CF_s_r_lines:GetValue()>(z-5)) then
                        Tetris_CF_s_r_lines:SetValue(z-5);
                end
                Tetris_CF_s_r_lines:SetMinMaxValues(1, z-5);
        end
        if (s_name == "Tetris_CF_s_breite") then
                local z = getglobal(s_name):GetValue();
                getglobal ("Tetris_CF_s_Text_breite"):SetText(t_x.." "..z);
        end
        if (s_name == "Tetris_CF_s_r_lines") then
                local z = getglobal(s_name):GetValue();
                local checkstatus = Tetris_CF_c_r_lines:GetChecked();
                if (checkstatus == 1) then
                        Tetris_CF_s_Text_r_lines:SetText(r_on.." "..z);
                end
        end     
        --wenn c_r_lines geändert wurde
        if (s_name == "Tetris_CF_c_r_lines") then
                local checkstatus = Tetris_CF_c_r_lines:GetChecked();
                if (checkstatus == 1) then
                        local value = Tetris_CF_s_r_lines:GetValue();
                        Tetris_CF_s_Text_r_lines:SetText(r_on.." "..value);
                else
                        Tetris_CF_s_Text_r_lines:SetText(r_off);
                end
        end     
end

function Tetris_CF_b_Click()
        --variablen holen und setzen
        local b_name = this:GetName();
        
        --saven und spiel starten
        if (b_name == "Tetris_CF_b_Ok") then
                Tetris_CF_Save();
                Tetris_newgame_custom();
                Tetris_CF_Toggle();
                Tetris_GF_Toggle();
        end
        --exit ohne save
        if (b_name == "Tetris_CF_b_Exit") then
                Tetris_CF_Toggle();
                Tetris_MF_Toggle();     
        end
        --stone menu anzeigen
        if (b_name == "Tetris_CF_b_StoneSetup") then
                Tetris_CF_Save();
                Tetris_CF_Toggle();
                Tetris_SOF_Toggle();            
        end
        
end

function Tetris_CF_Save()
        --variablen vom frame holen und saven
        Tetris["options"]["hohe"] = Tetris_CF_s_hohe:GetValue();
        Tetris["options"]["breite"] = Tetris_CF_s_breite:GetValue();
        Tetris["options"]["r_lines"] = Tetris_CF_s_r_lines:GetValue();
        if (Tetris_CF_c_r_lines:GetChecked() == 1) then
                Tetris["options"]["r_lines_activ"] = 1;
        else
                Tetris["options"]["r_lines_activ"] = 0;
        end     
        Tetris["options"]["gametyp"] = UIDropDownMenu_GetSelectedID(Tetris_CF_dropdown);
end