vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:
--ColorPicker ID
local num;

local function outline2int(key)
        if (SAVars[key].outline == "THICKOUTLINE") then
                return 3;
        elseif (SAVars[key].outline == "OUTLINE") then
                return 2;
        else
                return 1;
        end
end

local function int2outline(int)
        if (int == 3) then
                return "THICKOUTLINE";
        elseif (int == 2) then
                return "OUTLINE";
        else
                return "";
        end
end

local function int2outlinetext(int)
        if (int == 3) then
                return "Thick";
        elseif (int == 2) then
                return "Normal";
        else
                return "None";
        end
end

local function checked2bool(int)
        if (int) then
                return true;
        else
                return false;
        end
end

function SAO_MainFrame_OnLoad()
        tinsert(UISpecialFrames,"SAO_MainFrame");

        PanelTemplates_SetNumTabs(SAO_MainFrame, 4);
        SAO_MainFrame.selectedTab=1;
        PanelTemplates_UpdateTabs(SAO_MainFrame);

        SAO_OptionFrame1:Show();
end

function SAO_CheckButton_OnLoad(str)
        local buttonText = getglobal(this:GetName().."Text");
        buttonText:SetText(str);
--      buttonText:SetWidth(buttonText:GetStringWidth() + 5);
end

function SAO_CheckButton_OnClick()
        if ( this:GetChecked() ) then
                PlaySound("igMainMenuOptionCheckBoxOn");
        else
                PlaySound("igMainMenuOptionCheckBoxOff");
        end
end

function SAO_MainFrame_OnShow()
        PlaySound("igMainMenuClose");
end

function SAO_MainFrame_OnHide()
        PlaySound("igMainMenuClose");
end

local function HideAllOptionFrames()
        SAO_OptionFrame1:Hide();
        SAO_OptionFrame2:Hide();
        SAO_OptionFrame3:Hide();
        SAO_OptionFrame4:Hide();
end

function SAO_MainFrameTab_OnClick()
        HideAllOptionFrames();
        getglobal("SAO_OptionFrame"..this:GetID()):Show();
        PlaySound("igCharacterInfoTab");
end

function SAO_OptionFrame_OnShow()
        local frame = this:GetName();
        if (frame == "SAO_OptionFrame1") then
                SAO_CheckButtonOn:SetChecked(SAVars.on);
                SAO_CheckButtonOffOnRest:SetChecked(SAVars.offonrest);
                for i = 0, 9 do
                        getglobal("SAO_CheckButton"..i):SetChecked(SAVars[i].on);
                        getglobal("SAO_CheckButton"..i.."TO"):SetChecked(SAVars[i].to);
                        getglobal("SAO_CheckButton"..i.."Short"):SetChecked(SAVars[i].short);
                        getglobal("SAO_CheckButton"..i.."Color"):SetID(i);
                        getglobal("SAO_CheckButton"..i.."ColorTexture"):SetVertexColor(SAVars[i].r, SAVars[i].g, SAVars[i].b);
                end
        else
                local key = "alert"..this:GetID()-1;
                getglobal(frame.."EditBox1"):SetText(SAVars[key].size);
                getglobal(frame.."EditBox2"):SetText(SAVars[key].holdTime);
                getglobal(frame.."EditBox3"):SetText(SAVars[key].fadeTime);
                getglobal(frame.."EditBox4"):SetText(SAVars[key].lines);
                getglobal(frame.."EditBox5"):SetText(SAVars[key].space);

                getglobal(frame.."Slider1Text"):SetText(SAO_STR_ALPHA);
                getglobal(frame.."Slider1Low"):SetText("0");
                getglobal(frame.."Slider1High"):SetText("1");
                getglobal(frame.."Slider1"):SetMinMaxValues(0, 1);
                getglobal(frame.."Slider1"):SetValueStep(0.01);
                getglobal(frame.."Slider1"):SetValue(SAVars[key].alpha);

                getglobal(frame.."Slider2Text"):SetText(SAO_STR_OUTLINE);
                getglobal(frame.."Slider2Low"):SetText("1");
                getglobal(frame.."Slider2High"):SetText("3");
                getglobal(frame.."Slider2"):SetMinMaxValues(1, 3);
                getglobal(frame.."Slider2"):SetValueStep(1);
                getglobal(frame.."Slider2"):SetValue(outline2int(key));

                local num = this:GetID()-1;
                for i = 0, 9 do
                        getglobal(frame.."CheckButton"..i):SetChecked(false);
                        if (SAVars[i].alert == num) then
                                getglobal(frame.."CheckButton"..i):SetChecked(true);
                        end
                end
        end
end

function SAO_OptionFrame_OnHide()
        local frame = this:GetName();
        if (frame == "SAO_OptionFrame1") then
                SAVars.on = checked2bool(SAO_CheckButtonOn:GetChecked());
                SAVars.offonrest = checked2bool(SAO_CheckButtonOffOnRest:GetChecked());
                for i = 0, 9 do
                        SAVars[i].on = checked2bool(getglobal("SAO_CheckButton"..i):GetChecked());
                        SAVars[i].to = checked2bool(getglobal("SAO_CheckButton"..i.."TO"):GetChecked());
                        SAVars[i].short = checked2bool(getglobal("SAO_CheckButton"..i.."Short"):GetChecked());
                end
        else
                local num = this:GetID()-1;
                for i = 0, 9 do
                        if (getglobal(frame.."CheckButton"..i):GetChecked()) then
                                SAVars[i].alert = num;
                        end
                        getglobal(frame.."CheckButton"..i):SetChecked(false);
                end
        end
end

function SAO_EditBox_OnEditFocusLost(key)
        this:HighlightText(0, 0);

        local num = (this:GetParent()):GetID()-1;
        local val = tonumber(this:GetText());

        if (not key) then
                return;
        elseif (type(val) ~= "number") then
                message(SAO_STR_NAN);
        elseif ((val < SALimits[key].min) or (val > SALimits[key].max)) then
                this:SetText(SAVars["alert"..num][key]);
                message(SAO_STR_MIN..SALimits[key].min..SAO_STR_MAX..SALimits[key].max);

        else
                SAVars["alert"..num][key] = val;
                SA_SMF_UpdateLook(num);
        end
end

function SAO_CheckButtonColor_OnClick()
        num = this:GetID();

        ColorPickerFrame.hasOpacity = false;
        ColorPickerFrame.previousValues = { SAVars[num].r, SAVars[num].g, SAVars[num].b };
        ColorPickerFrame.func = SAO_ColorPickerFrame_Func;
        ColorPickerFrame.cancelFunc = SAO_ColorPickerFrame_CancelFunc;

        ColorPickerFrame:SetColorRGB(SAVars[num].r, SAVars[num].g, SAVars[num].b);
        ColorPickerFrame:Show();
end

function SAO_ColorPickerFrame_Func()
        local red, green, blue = ColorPickerFrame:GetColorRGB();
        getglobal("SAO_CheckButton"..num.."ColorTexture"):SetVertexColor(red, green, blue);
        SAVars[num].r = red;
        SAVars[num].g = green;
        SAVars[num].b = blue;
end

function SAO_ColorPickerFrame_CancelFunc(prevvals)
        SAVars[num].r, SAVars[num].g, SAVars[num].b = unpack(prevvals);
        getglobal("SAO_CheckButton"..num.."ColorTexture"):SetVertexColor(SAVars[num].r, SAVars[num].g, SAVars[num].b);
end

function SAO_Button_OnClick(k)
        local saDrag = getglobal("SA_Drag"..k);
        if (saDrag:IsVisible()) then
                SAVars["alert"..k].top = saDrag:GetTop();
                SAVars["alert"..k].left = saDrag:GetLeft();
                saDrag:Hide();
        else
                saDrag:Show();
        end
end

function SAO_Slider1_OnValueChanged()
        local num = (this:GetParent()):GetID()-1;

        getglobal(this:GetName().."Value"):SetText(this:GetValue());
        SAVars["alert"..num].alpha = this:GetValue();
        getglobal("SA_SMF"..num):SetAlpha(this:GetValue());
end

function SAO_Slider2_OnValueChanged()
        local num = (this:GetParent()):GetID()-1;

        getglobal(this:GetName().."Value"):SetText(int2outlinetext(this:GetValue()));
        SAVars["alert"..num].outline = int2outline(this:GetValue());
        SA_SMF_UpdateLook(num);
end

Generated by GNU Enscript 1.6.5.90.