vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:
--The Options Page variables and functions

--Event and Damage option values
local SCTOptionsFrameEventFrames = { };
SCTOptionsFrameEventFrames [SCT_OPTION_EVENT1.name] = { index = 1, tooltipText = SCT_OPTION_EVENT1.tooltipText, SCTVar = "SHOWHIT"};
SCTOptionsFrameEventFrames [SCT_OPTION_EVENT2.name] = { index = 2, tooltipText = SCT_OPTION_EVENT2.tooltipText, SCTVar = "SHOWMISS"};
SCTOptionsFrameEventFrames [SCT_OPTION_EVENT3.name] = { index = 3, tooltipText = SCT_OPTION_EVENT3.tooltipText, SCTVar = "SHOWDODGE"};
SCTOptionsFrameEventFrames [SCT_OPTION_EVENT4.name] = { index = 4, tooltipText = SCT_OPTION_EVENT4.tooltipText, SCTVar = "SHOWPARRY"};
SCTOptionsFrameEventFrames [SCT_OPTION_EVENT5.name] = { index = 5, tooltipText = SCT_OPTION_EVENT5.tooltipText, SCTVar = "SHOWBLOCK"};
SCTOptionsFrameEventFrames [SCT_OPTION_EVENT6.name] = { index = 6, tooltipText = SCT_OPTION_EVENT6.tooltipText, SCTVar = "SHOWSPELL"};
SCTOptionsFrameEventFrames [SCT_OPTION_EVENT7.name] = { index = 7, tooltipText = SCT_OPTION_EVENT7.tooltipText, SCTVar = "SHOWHEAL"};
SCTOptionsFrameEventFrames [SCT_OPTION_EVENT8.name] = { index = 8, tooltipText = SCT_OPTION_EVENT8.tooltipText, SCTVar = "SHOWRESIST"};
SCTOptionsFrameEventFrames [SCT_OPTION_EVENT9.name] = { index = 9, tooltipText = SCT_OPTION_EVENT9.tooltipText, SCTVar = "SHOWDEBUFF"};
SCTOptionsFrameEventFrames [SCT_OPTION_EVENT10.name] = { index = 10, tooltipText = SCT_OPTION_EVENT10.tooltipText, SCTVar = "SHOWABSORB"};
SCTOptionsFrameEventFrames [SCT_OPTION_EVENT11.name] = { index = 11, tooltipText = SCT_OPTION_EVENT11.tooltipText, SCTVar = "SHOWLOWHP"};
SCTOptionsFrameEventFrames [SCT_OPTION_EVENT12.name] = { index = 12, tooltipText = SCT_OPTION_EVENT12.tooltipText, SCTVar = "SHOWLOWMANA"};
SCTOptionsFrameEventFrames [SCT_OPTION_EVENT13.name] = { index = 13, tooltipText = SCT_OPTION_EVENT13.tooltipText, SCTVar = "SHOWPOWER"};
SCTOptionsFrameEventFrames [SCT_OPTION_EVENT14.name] = { index = 14, tooltipText = SCT_OPTION_EVENT14.tooltipText, SCTVar = "SHOWCOMBAT"};
SCTOptionsFrameEventFrames [SCT_OPTION_EVENT15.name] = { index = 15, tooltipText = SCT_OPTION_EVENT15.tooltipText, SCTVar = "SHOWCOMBOPOINTS"};
SCTOptionsFrameEventFrames [SCT_OPTION_EVENT16.name] = { index = 16, tooltipText = SCT_OPTION_EVENT16.tooltipText, SCTVar = "SHOWHONOR"};
SCTOptionsFrameEventFrames [SCT_OPTION_EVENT17.name] = { index = 17, tooltipText = SCT_OPTION_EVENT17.tooltipText, SCTVar = "SHOWBUFF"};
SCTOptionsFrameEventFrames [SCT_OPTION_EVENT18.name] = { index = 18, tooltipText = SCT_OPTION_EVENT18.tooltipText, SCTVar = "SHOWFADE"};
SCTOptionsFrameEventFrames [SCT_OPTION_EVENT19.name] = { index = 19, tooltipText = SCT_OPTION_EVENT19.tooltipText, SCTVar = "SHOWEXECUTE"};
SCTOptionsFrameEventFrames [SCT_OPTION_EVENT20.name] = { index = 20, tooltipText = SCT_OPTION_EVENT20.tooltipText, SCTVar = "SHOWREP"};
SCTOptionsFrameEventFrames [SCT_OPTION_EVENT21.name] = { index = 21, tooltipText = SCT_OPTION_EVENT21.tooltipText, SCTVar = "SHOWSELFHEAL"};
SCTOptionsFrameEventFrames [SCT_OPTION_EVENT22.name] = { index = 22, tooltipText = SCT_OPTION_EVENT22.tooltipText, SCTVar = "SHOWSKILL"};

--Check Button option values
local SCTOptionsFrameCheckButtons = { };
SCTOptionsFrameCheckButtons [SCT_OPTION_CHECK1.name] = { index = 1, tooltipText = SCT_OPTION_CHECK1.tooltipText, SCTVar = "ENABLED"};
SCTOptionsFrameCheckButtons [SCT_OPTION_CHECK2.name] = { index = 2, tooltipText = SCT_OPTION_CHECK2.tooltipText, SCTVar = "SHOWSELF"};
SCTOptionsFrameCheckButtons [SCT_OPTION_CHECK3.name] = { index = 3, tooltipText = SCT_OPTION_CHECK3.tooltipText, SCTVar = "SHOWTARGETS"};
SCTOptionsFrameCheckButtons [SCT_OPTION_CHECK4.name] = { index = 4, tooltipText = SCT_OPTION_CHECK4.tooltipText, SCTVar = "DIRECTION"};
SCTOptionsFrameCheckButtons [SCT_OPTION_CHECK5.name] = { index = 5, tooltipText = SCT_OPTION_CHECK5.tooltipText, SCTVar = "STICKYCRIT"}
SCTOptionsFrameCheckButtons [SCT_OPTION_CHECK6.name] = { index = 6, tooltipText = SCT_OPTION_CHECK6.tooltipText, SCTVar = "SPELLTYPE"};
SCTOptionsFrameCheckButtons [SCT_OPTION_CHECK7.name] = { index = 7, tooltipText = SCT_OPTION_CHECK7.tooltipText, SCTVar = "DMGFONT"};
SCTOptionsFrameCheckButtons [SCT_OPTION_CHECK8.name] = { index = 8, tooltipText = SCT_OPTION_CHECK8.tooltipText, SCTVar = "SHOWALLPOWER"};
SCTOptionsFrameCheckButtons [SCT_OPTION_CHECK9.name] = { index = 9, tooltipText = SCT_OPTION_CHECK9.tooltipText, SCTVar = "FPSMODE"};
SCTOptionsFrameCheckButtons [SCT_OPTION_CHECK10.name] = { index = 10, tooltipText = SCT_OPTION_CHECK10.tooltipText, SCTVar = "SHOWOVERHEAL"};

--Slider options values
local SCTOptionsFrameSliders = { };
SCTOptionsFrameSliders [SCT_OPTION_SLIDER1.name] = { index = 1, SCTVar = "ANIMATIONSPEED", minValue = .005, maxValue = .025, valueStep = .005, minText=SCT_OPTION_SLIDER1.minText, maxText=SCT_OPTION_SLIDER1.maxText, tooltipText = SCT_OPTION_SLIDER1.tooltipText};
SCTOptionsFrameSliders [SCT_OPTION_SLIDER2.name] = { index = 2, SCTVar = "TEXTSIZE", minValue = 12, maxValue = 36, valueStep = 3, minText=SCT_OPTION_SLIDER2.minText, maxText=SCT_OPTION_SLIDER2.maxText, tooltipText = SCT_OPTION_SLIDER2.tooltipText};
SCTOptionsFrameSliders [SCT_OPTION_SLIDER3.name] = { index = 3, SCTVar = "LOWHP", minValue = .1, maxValue = .9, valueStep = .1, minText=SCT_OPTION_SLIDER3.minText, maxText=SCT_OPTION_SLIDER3.maxText, tooltipText = SCT_OPTION_SLIDER3.tooltipText};
SCTOptionsFrameSliders [SCT_OPTION_SLIDER4.name] = { index = 4, SCTVar = "LOWMANA", minValue = .1, maxValue = .9, valueStep = .1, minText=SCT_OPTION_SLIDER4.minText, maxText=SCT_OPTION_SLIDER4.maxText, tooltipText = SCT_OPTION_SLIDER4.tooltipText};
SCTOptionsFrameSliders [SCT_OPTION_SLIDER5.name] = { index = 5, SCTVar = "ALPHA", minValue = .1, maxValue = 1, valueStep = .1, minText=SCT_OPTION_SLIDER5.minText, maxText=SCT_OPTION_SLIDER5.maxText, tooltipText = SCT_OPTION_SLIDER5.tooltipText};
SCTOptionsFrameSliders [SCT_OPTION_SLIDER6.name] = { index = 6, SCTVar = "MOVEMENT", minValue = 1, maxValue = 5, valueStep = 1, minText=SCT_OPTION_SLIDER6.minText, maxText=SCT_OPTION_SLIDER6.maxText, tooltipText = SCT_OPTION_SLIDER6.tooltipText};
SCTOptionsFrameSliders [SCT_OPTION_SLIDER7.name] = { index = 7, SCTVar = "XOFFSET", minValue = -300, maxValue = 300, valueStep = 10, minText=SCT_OPTION_SLIDER7.minText, maxText=SCT_OPTION_SLIDER7.maxText, tooltipText = SCT_OPTION_SLIDER7.tooltipText};
SCTOptionsFrameSliders [SCT_OPTION_SLIDER8.name] = { index = 8, SCTVar = "YOFFSET", minValue = -300, maxValue = 300, valueStep = 10, minText=SCT_OPTION_SLIDER8.minText, maxText=SCT_OPTION_SLIDER8.maxText, tooltipText = SCT_OPTION_SLIDER8.tooltipText};
SCTOptionsFrameSliders [SCT_OPTION_SLIDER9.name] = { index = 9, SCTVar = "MSGXOFFSET", minValue = -600, maxValue = 600, valueStep = 10, minText=SCT_OPTION_SLIDER9.minText, maxText=SCT_OPTION_SLIDER9.maxText, tooltipText = SCT_OPTION_SLIDER9.tooltipText};
SCTOptionsFrameSliders [SCT_OPTION_SLIDER10.name] = { index = 10, SCTVar = "MSGYOFFSET", minValue = -600, maxValue = 600, valueStep = 10, minText=SCT_OPTION_SLIDER10.minText, maxText=SCT_OPTION_SLIDER10.maxText, tooltipText = SCT_OPTION_SLIDER10.tooltipText};
SCTOptionsFrameSliders [SCT_OPTION_SLIDER11.name] = { index = 11, SCTVar = "MSGFADE", minValue = 1, maxValue = 3, valueStep = .5, minText=SCT_OPTION_SLIDER11.minText, maxText=SCT_OPTION_SLIDER11.maxText, tooltipText = SCT_OPTION_SLIDER11.tooltipText};
SCTOptionsFrameSliders [SCT_OPTION_SLIDER12.name] = { index = 12, SCTVar = "MSGSIZE", minValue = 12, maxValue = 36, valueStep = 3, minText=SCT_OPTION_SLIDER12.minText, maxText=SCT_OPTION_SLIDER12.maxText, tooltipText = SCT_OPTION_SLIDER12.tooltipText};

--Selection Boxes
local SCTOptionsFrameSelections = {};
SCTOptionsFrameSelections [SCT_OPTION_SELECTION1.name] = { index = 1, SCTVar = "ANITYPE", tooltipText = SCT_OPTION_SELECTION1.tooltipText, table = SCT_OPTION_SELECTION1.table};
SCTOptionsFrameSelections [SCT_OPTION_SELECTION2.name] = { index = 2, SCTVar = "ANISIDETYPE", tooltipText = SCT_OPTION_SELECTION2.tooltipText, table = SCT_OPTION_SELECTION2.table};
SCTOptionsFrameSelections [SCT_OPTION_SELECTION3.name] = { index = 3, SCTVar = "FONT", tooltipText = SCT_OPTION_SELECTION3.tooltipText, table = SCT_OPTION_SELECTION3.table};
SCTOptionsFrameSelections [SCT_OPTION_SELECTION4.name] = { index = 4, SCTVar = "FONTSHADOW", tooltipText = SCT_OPTION_SELECTION4.tooltipText, table = SCT_OPTION_SELECTION4.table};
SCTOptionsFrameSelections [SCT_OPTION_SELECTION5.name] = { index = 5, SCTVar = "MSGFONT", tooltipText = SCT_OPTION_SELECTION5.tooltipText, table = SCT_OPTION_SELECTION5.table};
SCTOptionsFrameSelections [SCT_OPTION_SELECTION6.name] = { index = 6, SCTVar = "MSGFONTSHADOW", tooltipText = SCT_OPTION_SELECTION6.tooltipText, table = SCT_OPTION_SELECTION6.table};

--Other Options
local SCTOptionsFrameMisc = {};
SCTOptionsFrameMisc [SCT_OPTION_MISC1.name] = {index = 1, tooltipText = SCT_OPTION_MISC1.tooltipText}
SCTOptionsFrameMisc [SCT_OPTION_MISC2.name] = {index = 2, tooltipText = SCT_OPTION_MISC2.tooltipText}
SCTOptionsFrameMisc [SCT_OPTION_MISC3.name] = {index = 3, tooltipText = SCT_OPTION_MISC3.tooltipText}
SCTOptionsFrameMisc [SCT_OPTION_MISC4.name] = {index = 4, tooltipText = SCT_OPTION_MISC4.tooltipText}
SCTOptionsFrameMisc [SCT_OPTION_MISC5.name] = {index = 5, tooltipText = SCT_OPTION_MISC5.tooltipText}
SCTOptionsFrameMisc [SCT_OPTION_MISC6.name] = {index = 6, tooltipText = SCT_OPTION_MISC6.tooltipText}
SCTOptionsFrameMisc [SCT_OPTION_MISC7.name] = {index = 7, tooltipText = SCT_OPTION_MISC7.tooltipText}
SCTOptionsFrameMisc [SCT_OPTION_MISC8.name] = {index = 8, tooltipText = SCT_OPTION_MISC8.tooltipText}
SCTOptionsFrameMisc [SCT_OPTION_MISC9.name] = {index = 9, tooltipText = SCT_OPTION_MISC9.tooltipText}
SCTOptionsFrameMisc [SCT_OPTION_MISC10.name] = {index = 10, tooltipText = SCT_OPTION_MISC10.tooltipText}
SCTOptionsFrameMisc [SCT_OPTION_MISC11.name] = {index = 11, tooltipText = SCT_OPTION_MISC11.tooltipText}
SCTOptionsFrameMisc [SCT_OPTION_MISC12.name] = {index = 12, tooltipText = SCT_OPTION_MISC12.tooltipText}
SCTOptionsFrameMisc [SCT_OPTION_MISC13.name] = {index = 13, tooltipText = SCT_OPTION_MISC13.tooltipText}
SCTOptionsFrameMisc [SCT_OPTION_MISC14.name] = {index = 14, tooltipText = SCT_OPTION_MISC14.tooltipText}
SCTOptionsFrameMisc [SCT_OPTION_MISC15.name] = {index = 15, tooltipText = SCT_OPTION_MISC15.tooltipText}
SCTOptionsFrameMisc [SCT_OPTION_MISC16.name] = {index = 16, tooltipText = SCT_OPTION_MISC16.tooltipText}
SCTOptionsFrameMisc [SCT_OPTION_MISC17.name] = {index = 17, tooltipText = SCT_OPTION_MISC17.tooltipText}
SCTOptionsFrameMisc [SCT_OPTION_MISC18.name] = {index = 18, tooltipText = SCT_OPTION_MISC18.tooltipText}
SCTOptionsFrameMisc [SCT_OPTION_MISC19.name] = {index = 19, tooltipText = SCT_OPTION_MISC19.tooltipText}

----------------------
--Called when option page loads
function SCTOptionsFrame_OnShow()
        -- Initial Values
        local button, button2, button3, string, checked;
        
        --Misc Options
        for key, value in SCTOptionsFrameMisc do
                string = getglobal("SCTOptionsFrame_Misc"..value.index);
                string:SetText(key);
                if (value.tooltipText) then
                        string.tooltipText = value.tooltipText;
                end
        end
        
        -- Set Options values
        for key, value in SCTOptionsFrameEventFrames do
                button = getglobal("SCTOptionsFrame"..value.index.."_CheckButton");
                button2 = getglobal("SCTOptionsFrame"..value.index.."_CritCheckButton");
                button3 = getglobal("SCTOptionsFrame"..value.index.."_MsgCheckButton");
                string = getglobal("SCTOptionsFrame"..value.index.."_CheckButtonText");

                button:SetChecked(SCT_Get(value.SCTVar));
                button.tooltipText = value.tooltipText;
                button2:SetChecked(SCT_GetTable(SCT_CRITS_TABLE, value.SCTVar));
                button2.tooltipText = SCT_Option_Crit_Tip;
                button3:SetChecked(SCT_GetTable(SCT_MSGS_TABLE, value.SCTVar));
                button3.tooltipText = SCT_Option_Msg_Tip;
                string:SetText(key);
                
                --Color Swatch
                local frame,swatch,sRed,sGreen,sBlue,sColor,sfunc,cfunc,index,key;
                
                frame = getglobal("SCTOptionsFrame"..value.index);
                swatch = getglobal("SCTOptionsFrame"..value.index.."_ColorSwatchNormalTexture");
                
                sColor = SCT_GetTable(SCT_COLORS_TABLE, value.SCTVar);
                sRed = sColor.r;
                sGreen = sColor.g;
                sBlue = sColor.b;

                frame.r = sRed;
                frame.g = sGreen;
                frame.b = sBlue;

                index = value.index;
                key = value.SCTVar;
                sfunc = function(x) SCTOptionsFrame_SetColor(index, key) end;
                cfunc = function(x) SCTOptionsFrame_CancelColor(index, key, x) end;
                frame.swatchFunc = sfunc;
                frame.cancelFunc = cfunc;
                swatch:SetVertexColor(sRed,sGreen,sBlue);
        end
        
        -- Set CheckButton states
        for key, value in SCTOptionsFrameCheckButtons do
                button = getglobal("SCTOptionsFrame_CheckButton"..value.index);
                string = getglobal("SCTOptionsFrame_CheckButton"..value.index.."Text");

                button:SetChecked(SCT_Get(value.SCTVar));
                button.tooltipText = value.tooltipText;
                string:SetText(key);

        end
        
        local slider, string, low, high, getvalue       

        --Set Sliders
        for key, value in SCTOptionsFrameSliders do
                slider = getglobal("SCTOptionsFrame_Slider"..value.index);
                string = getglobal("SCTOptionsFrame_Slider"..value.index.."Text");
                low = getglobal("SCTOptionsFrame_Slider"..value.index.."Low");
                high = getglobal("SCTOptionsFrame_Slider"..value.index.."High");
                getvalue = SCT_Get(value.SCTVar);
                slider:SetMinMaxValues(value.minValue, value.maxValue);
                slider:SetValueStep(value.valueStep);
                slider.tooltipText = value.tooltipText;
                slider:SetValue(getvalue);
                string:SetText(key..": "..SCT_Format_Number(getvalue));
                low:SetText(value.minText);
                high:SetText(value.maxText);
        end
        
        local label, ddl, selected
        
        --Dropdowns
        for key, value in SCTOptionsFrameSelections do
                selected = SCT_Get(value.SCTVar);
                ddl = getglobal("SCTOptionsFrame_Selection"..value.index);
                UIDropDownMenu_SetSelectedID(ddl, selected);
                --not sure why I have to do this, but only way to make it show correctly
                UIDropDownMenu_SetText(value.table[selected], ddl);
                ddl.tooltipText = value.tooltipText;
                label = getglobal("SCTOptionsFrame_Selection"..value.index.."Label");
                label:SetText(key);
                
                --show hide text options
                if (value.index == 1) then
                        SCT_UpdateAnimationOptions(selected);
                end
        end
        
        --Update Profiles       
        SCT_UpdateProfileList();        
end

----------------------
--Sets the colors of the config from a color swatch
function SCTOptionsFrame_SetColor(index,key)
        local r,g,b = ColorPickerFrame:GetColorRGB();
        local swatch,frame;
        local color={};
        swatch = getglobal("SCTOptionsFrame"..index.."_ColorSwatchNormalTexture");
        frame = getglobal("SCTOptionsFrame"..index);
        swatch:SetVertexColor(r,g,b);
        frame.r = r;
        frame.g = g;
        frame.b = b;
        color.r = r;
        color.g = g;
        color.b = b;
        --update back to config
        SCT_SetTable(SCT_COLORS_TABLE, key, color);
end

----------------------
-- Cancels the color selection
function SCTOptionsFrame_CancelColor(index, key, prev)
        local r = prev.r;
        local g = prev.g;
        local b = prev.b;
        local swatch, frame;
        local color={};
        swatch = getglobal("SCTOptionsFrame"..index.."_ColorSwatchNormalTexture");
        frame = getglobal("SCTOptionsFrame"..index);
        swatch:SetVertexColor(r, g, b);
        frame.r = r;
        frame.g = g;
        frame.b = b;
        color.r = r;
        color.g = g;
        color.b = b;
        -- Update back to config
        SCT_SetTable(SCT_COLORS_TABLE, key, color);
end

----------------------
--Sets the silder values in the config
function SCT_OptionsSliderOnValueChanged()
        local string;
        --loop thru slider array to find current one, then update its value     
        for key, value in SCTOptionsFrameSliders do
                if (this:GetName() == "SCTOptionsFrame_Slider"..value.index) then
                        string = getglobal("SCTOptionsFrame_Slider"..value.index.."Text");
                        string:SetText(key..": "..SCT_Format_Number(this:GetValue()));
                        SCT_Set(value.SCTVar,this:GetValue());
                        break;
                end
        end
        --update Example
        SCT_ShowExample();
end

----------------------
--Sets the checkbox values in the config
function SCT_OptionsCheckButtonOnClick()
        local button, chkvalue;
        --loop thru event checkbox array to find current one, then update its value
        for index, value in SCTOptionsFrameEventFrames do
                if (this:GetName() == "SCTOptionsFrame"..value.index.."_CheckButton") then
                        button = getglobal("SCTOptionsFrame"..value.index.."_CheckButton");
                        SCT_Set(value.SCTVar,button:GetChecked());
                        break;
                --is it a crit checkbox
                elseif (this:GetName() == "SCTOptionsFrame"..value.index.."_CritCheckButton") then
                        button = getglobal("SCTOptionsFrame"..value.index.."_CritCheckButton");
                        SCT_SetTable(SCT_CRITS_TABLE, value.SCTVar,button:GetChecked());
                        break;
                --is it a msg checkbox
                elseif (this:GetName() == "SCTOptionsFrame"..value.index.."_MsgCheckButton") then
                        button = getglobal("SCTOptionsFrame"..value.index.."_MsgCheckButton");
                        SCT_SetTable(SCT_MSGS_TABLE, value.SCTVar,button:GetChecked());
                        break;
                end
        end
        --loop thru checkbox array to find current one, then update its value
        for index, value in SCTOptionsFrameCheckButtons do
                if (this:GetName() == "SCTOptionsFrame_CheckButton"..value.index) then
                        button = getglobal("SCTOptionsFrame_CheckButton"..value.index);
                        SCT_Set(value.SCTVar,button:GetChecked());
                        break;
                end
        end
        --update Example
        SCT_ShowExample();
end

---------------------
--Save current settings, mainly to catch when they load a profile
function SCTSaveCurrentSettings()
        SCT_CONFIG[SCT_PlayerName] = SCT_clone(SCTPlayer);
        SCTPlayer = SCT_Config_GetPlayer();
end

----------------------
--Open the color selector using show/hide
function SCTSaveList_OnClick()
        local id = this:GetName();
        local profile = getglobal(id.."_Name"):GetText();
        local editbox = getglobal("SCTOptionsProfileEditBox");
        editbox:SetText(profile);
        SCTOptions_SaveLoadFrame:Hide();
end

-----------------------
--Load a profile
function SCTLoadProfile()
        local editbox = getglobal("SCTOptionsProfileEditBox");
        local profile = editbox:GetText();
        if (SCT_CONFIG[profile]) then
                SCTPlayer = SCT_clone(SCT_CONFIG[profile]);
                editbox:SetText("");
                SCT_hideMenu();
                SCT_showMenu();
                SCT_Chat_Message(SCT_PROFILE..profile);
        end
end

-----------------------
--Delete a profile
function SCTDeleteProfile()
        local editbox = getglobal("SCTOptionsProfileEditBox");
        local profile = editbox:GetText();
        if (SCT_CONFIG[profile]) then
                if (profile == SCT_PlayerName) then
                        SCT_Reset();
                else
                        SCT_CONFIG[profile] = nil;
                end
                editbox:SetText("");
                SCT_UpdateProfileList()
                SCT_hideMenu();
                SCT_showMenu();
                SCT_Chat_Message(SCT_PROFILE_DELETE..profile);
        end
end

-----------------------
--Update profile list
function SCT_UpdateProfileList()
        local loadprofile
        local i, j = 1;
        --update known profiles
        for key, value in SCT_CONFIG do
                if (i > 10) then
                        return;
                end
                loadprofile = getglobal("SCTList"..i.."_Name");
                loadprofile:SetText(key);
                i = i + 1;
        end
        --blank out non-updated list items
        for j = i, 10 do
                loadprofile = getglobal("SCTList"..j.."_Name");
                loadprofile:SetText("");
        end
end

----------------------
--Open the color selector using show/hide
function SCT_OpenColorPicker(button)
        CloseMenus();
        if ( not button ) then
                button = this;
        end
        ColorPickerFrame.func = button.swatchFunc;
        ColorPickerFrame:SetColorRGB(button.r, button.g, button.b);
        ColorPickerFrame.previousValues = {r = button.r, g = button.g, b = button.b, opacity = button.opacity};
        ColorPickerFrame.cancelFunc = button.cancelFunc;
        ColorPickerFrame:Show();
end

---------------------
--Init a Dropdown
function SCT_DropDown_Initialize()
        local info = {};
        for index, value in SCTOptionsFrameSelections do
                if (this:GetName() == "SCTOptionsFrame_Selection"..value.index.."Button") then
                        for key, name in value.table do
                                info = {};
                                info.text = name;
                                info.func = SCT_DropDown_OnClick;
                                info.arg1 = value.index;
                                UIDropDownMenu_AddButton(info);
                        end
                end
        end
end

---------------------
-- Dropdown Onclick
function SCT_DropDown_OnClick(list)
        local ddl, ddl2, chkbox;
        for index, value in SCTOptionsFrameSelections do
                if (list == value.index) then
                        ddl = getglobal("SCTOptionsFrame_Selection"..value.index);
                        UIDropDownMenu_SetSelectedID(ddl, this:GetID());
                        SCT_Set(value.SCTVar, this:GetID());
                        --show hide text options
                        if (value.index == 1) then
                                SCT_UpdateAnimationOptions(this:GetID());
                        end
                end
        end
        
        --update Example
        SCT_ShowExample();
end

----------------------
-- display ddl or chxbox based on type
function SCT_UpdateAnimationOptions(id)
        --get scroll down checkbox
                chkbox = getglobal("SCTOptionsFrame_CheckButton4");
                --get animside type dropdown
                ddl2 = getglobal("SCTOptionsFrame_Selection2");
                if (id == 1) then
                        chkbox:Show();
                        ddl2:Hide();
                else
                        chkbox:Hide();
                        ddl2:Show();
                end
end

---------------------
--Show SCT Example
function SCT_ShowExample()
        local example;
        SCT_UpdateGlobalPos();
        
        --show example frame
        SCT_EXAMPLETEXT:Show();
        --get object
        example = getglobal("SCTaniExampleData1");
        --set text size
        SCT_SetFont(example);
        --set the color
        example:SetTextColor(1, 1, 1);
        --set alpha
        example:SetAlpha(SCT_Get("ALPHA"));
        --Position
        example:SetPoint("CENTER", "UIParent", "CENTER", SCT_Get("XOFFSET"), SCT_Get("YOFFSET"));
        --Set the text to display
        example:SetText(SCT_EXAMPLE);
        
        --show msg frame
        SCT_EXAMPLEMSG:Show();
        --get object
        example = getglobal("SCTMsgExample1");
        --set text size
        SCT_SetMsgFont(example);
        --set the color
        example:SetTextColor(1, 1, 1);
        --set alpha
        example:SetAlpha(1);
        --Position
        example:SetPoint("CENTER", "UIParent", "CENTER", SCT_Get("MSGXOFFSET"), SCT_Get("MSGYOFFSET")-30);
        --Set the text to display
        example:SetText(SCT_MSG_EXAMPLE);
end

---------------
--format numbers
function SCT_Format_Number(number)
        if number > 0 and number < 1 then
                return format("%d",number * 100);
        else
                return number;
        end;
end

Generated by GNU Enscript 1.6.5.90.