vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:
local RangeColorOptions_SetColorFunc = {
        [1] = function(x) RangeColorOptions_SetColor(1) end,
        [2] = function(x) RangeColorOptions_SetColor(2) end,
        [3] = function(x) RangeColorOptions_SetColor(3) end,
        [4] = function(x) RangeColorOptions_SetColor(4) end,
        [5] = function(x) RangeColorOptions_SetColor(5) end,
        [6] = function(x) RangeColorOptions_SetColor(6) end,
        [7] = function(x) RangeColorOptions_SetColor(7) end,
        [8] = function(x) RangeColorOptions_SetColor(8) end,
        [9] = function(x) RangeColorOptions_SetColor(9) end,
        [10] = function(x) RangeColorOptions_SetColor(10) end,
        [11] = function(x) RangeColorOptions_SetColor(11) end,
        [12] = function(x) RangeColorOptions_SetColor(12) end,
};

local RangeColorOptions_CancelColorFunc = {
        [1] = function(x) RangeColorOptions_CancelColor(1,x) end,
        [2] = function(x) RangeColorOptions_CancelColor(2,x) end,
        [3] = function(x) RangeColorOptions_CancelColor(3,x) end,
        [4] = function(x) RangeColorOptions_CancelColor(4,x) end,
        [5] = function(x) RangeColorOptions_CancelColor(5,x) end,
        [6] = function(x) RangeColorOptions_CancelColor(6,x) end,
        [7] = function(x) RangeColorOptions_CancelColor(7,x) end,
        [8] = function(x) RangeColorOptions_CancelColor(8,x) end,
        [9] = function(x) RangeColorOptions_CancelColor(9,x) end,
        [10] = function(x) RangeColorOptions_CancelColor(10,x) end,
        [11] = function(x) RangeColorOptions_CancelColor(11,x) end,
        [12] = function(x) RangeColorOptions_CancelColor(12,x) end,
};

RangeColorOptionsFrameColorSwatch = { };
RangeColorOptionsFrameColorSwatch [RANGECOLOROPTIONS_COLORWATCH1.name] = { index = 1, text = RANGECOLOROPTIONS_COLORWATCH1.text, tooltipText = RANGECOLOROPTIONS_COLORWATCH1.tooltipText};
RangeColorOptionsFrameColorSwatch [RANGECOLOROPTIONS_COLORWATCH2.name] = { index = 2, text = RANGECOLOROPTIONS_COLORWATCH2.text, tooltipText = RANGECOLOROPTIONS_COLORWATCH2.tooltipText};
RangeColorOptionsFrameColorSwatch [RANGECOLOROPTIONS_COLORWATCH3.name] = { index = 3, text = RANGECOLOROPTIONS_COLORWATCH3.text, tooltipText = RANGECOLOROPTIONS_COLORWATCH3.tooltipText};
RangeColorOptionsFrameColorSwatch [RANGECOLOROPTIONS_COLORWATCH4.name] = { index = 4, text = RANGECOLOROPTIONS_COLORWATCH4.text, tooltipText = RANGECOLOROPTIONS_COLORWATCH4.tooltipText};
RangeColorOptionsFrameColorSwatch [RANGECOLOROPTIONS_COLORWATCH5.name] = { index = 5, text = RANGECOLOROPTIONS_COLORWATCH5.text, tooltipText = RANGECOLOROPTIONS_COLORWATCH5.tooltipText};
RangeColorOptionsFrameColorSwatch [RANGECOLOROPTIONS_COLORWATCH6.name] = { index = 6, text = RANGECOLOROPTIONS_COLORWATCH6.text, tooltipText = RANGECOLOROPTIONS_COLORWATCH6.tooltipText};
RangeColorOptionsFrameColorSwatch [RANGECOLOROPTIONS_COLORWATCH7.name] = { index = 7, text = RANGECOLOROPTIONS_COLORWATCH7.text, tooltipText = RANGECOLOROPTIONS_COLORWATCH7.tooltipText};
RangeColorOptionsFrameColorSwatch [RANGECOLOROPTIONS_COLORWATCH8.name] = { index = 8, text = RANGECOLOROPTIONS_COLORWATCH8.text, tooltipText = RANGECOLOROPTIONS_COLORWATCH8.tooltipText};
RangeColorOptionsFrameColorSwatch [RANGECOLOROPTIONS_COLORWATCH9.name] = { index = 9, text = RANGECOLOROPTIONS_COLORWATCH9.text, tooltipText = RANGECOLOROPTIONS_COLORWATCH9.tooltipText};
RangeColorOptionsFrameColorSwatch [RANGECOLOROPTIONS_COLORWATCH10.name] = { index = 10, text = RANGECOLOROPTIONS_COLORWATCH10.text, tooltipText = RANGECOLOROPTIONS_COLORWATCH10.tooltipText};
RangeColorOptionsFrameColorSwatch [RANGECOLOROPTIONS_COLORWATCH11.name] = { index = 11, text = RANGECOLOROPTIONS_COLORWATCH11.text, tooltipText = RANGECOLOROPTIONS_COLORWATCH11.tooltipText};
RangeColorOptionsFrameColorSwatch [RANGECOLOROPTIONS_COLORWATCH12.name] = { index = 12, text = RANGECOLOROPTIONS_COLORWATCH12.text, tooltipText = RANGECOLOROPTIONS_COLORWATCH12.tooltipText};

RangeColorOptionsFrameSliders = { };
RangeColorOptionsFrameSliders [RANGECOLOROPTIONS_SLIDER1.name] = { index = 1, RangeColorVar = "Mode", minValue = 1, maxValue = 3, valueStep = 1, minText=RANGECOLOROPTIONS_SLIDER1.minText, maxText=RANGECOLOROPTIONS_SLIDER1.maxText, tooltipText = RANGECOLOROPTIONS_SLIDER1.tooltipText};

RangeColorOptionsFrameEvents = { };
RangeColorOptionsFrameEvents [RANGECOLOROPTIONS_CHECK1.name]  = { index = 1, tooltipText = RANGECOLOROPTIONS_CHECK1.tooltipText, RangeColorVar = "Filter"};
RangeColorOptionsFrameEvents [RANGECOLOROPTIONS_CHECK2.name]  = { index = 2, tooltipText = RANGECOLOROPTIONS_CHECK2.tooltipText, RangeColorVar = "Dash"};


function RangeColorOptions_OnLoad()
        UIPanelWindows["RangeColorOptionsFrame"] = {area = "center", pushable = 0};
end

function RangeColorOptions_OnShow()
        local button, string, checked;
        
        for key, value in RangeColorOptionsFrameEvents do
                local string = getglobal("RangeColorOptionsFrame_CheckButton"..value.index.."Text");
                local button = getglobal("RangeColorOptionsFrame_CheckButton"..value.index);
                checked = nil;
                button.disabled = nil;          
                if ( value.RangeColorVar ) then
                        if ( RangeColor_Get(value.RangeColorVar) == 1 ) then
                                checked = 1;
                        else
                                checked = 0;
                        end
                else
                        checked = 0;
                end
                OptionsFrame_EnableCheckBox(button);
                button:SetChecked(checked);
                string:SetText(key);
                button.tooltipText = value.tooltipText;
        end
        
        if ( not RangeColorOptionsFrame_CheckButton1:GetChecked() ) then
                OptionsFrame_DisableCheckBox(RangeColorOptionsFrame_CheckButton2);
        else
                OptionsFrame_EnableCheckBox(RangeColorOptionsFrame_CheckButton2, RangeColor_Get("Dash"));
        end

        for key, value in RangeColorOptionsFrameColorSwatch do
                string = getglobal("RangeColorSwatchFrame"..value.index.."_ColorSwatchText");
                
                string:SetText(value.text);
                
                local frame,swatch,sRed,sGreen,sBlue,sColor;
                
                frame = getglobal("RangeColorSwatchFrame"..value.index);
                swatch = getglobal("RangeColorSwatchFrame"..value.index.."_ColorSwatchNormalTexture");

                frame.tooltipText = value.tooltipText;
                
                sColor = RangeColor_GetColor(value.index);
                sRed = sColor.r;
                sGreen = sColor.g;
                sBlue = sColor.b;

                frame.r = sRed;
                frame.g = sGreen;
                frame.b = sBlue;
                frame.swatchFunc = RangeColorOptions_SetColorFunc[value.index];
                frame.cancelFunc = RangeColorOptions_CancelColorFunc[value.index];
                swatch:SetVertexColor(sRed,sGreen,sBlue);
        end

        local slider, low, high, getvalue
        for key, value in RangeColorOptionsFrameSliders do
                slider = getglobal("RangeColorOptionsFrame_Slider"..value.index);
                string = getglobal("RangeColorOptionsFrame_Slider"..value.index.."Text");
                low = getglobal("RangeColorOptionsFrame_Slider"..value.index.."Low");
                high = getglobal("RangeColorOptionsFrame_Slider"..value.index.."High");
                getvalue = RangeColor_Get(value.RangeColorVar);
                OptionsFrame_EnableSlider(slider);
                slider:SetMinMaxValues(value.minValue, value.maxValue);
                slider:SetValueStep(value.valueStep);
                slider:SetValue(getvalue);
                string:SetText(key);
                low:SetText(value.minText);
                high:SetText(value.maxText);
                slider.tooltipText = value.tooltipText;
        end
end

function RangeColorOptions_CheckButtonOnClick()
        local button;
        for key, value in RangeColorOptionsFrameEvents do
                if (this:GetName() == "RangeColorOptionsFrame_CheckButton"..value.index) then
                        local enable = nil;
                        button = getglobal("RangeColorOptionsFrame_CheckButton"..value.index);
                        if ( button:GetChecked() ) then
                                enable = 1;
                        else
                                enable = 0;
                        end
                        if ( value.RangeColorVar ) then
                                RangeColor_Set(value.RangeColorVar, enable);
                        end
                end
        end
        if ( not RangeColorOptionsFrame_CheckButton1:GetChecked() ) then
                OptionsFrame_DisableCheckBox(RangeColorOptionsFrame_CheckButton2);
        else
                OptionsFrame_EnableCheckBox(RangeColorOptionsFrame_CheckButton2, RangeColor_Get("Dash"));
        end
end

function RangeColorOptions_SliderOnValueChanged()
        local slider;
        for key, value in RangeColorOptionsFrameSliders do
                if (this:GetName() == "RangeColorOptionsFrame_Slider"..value.index) then
                        if ( value.RangeColorVar ) then
                                RangeColor_Set(value.RangeColorVar,this:GetValue());
                        end
                end
        end
end

function RangeColorOptions_SetColor(key)
        local r,g,b = ColorPickerFrame:GetColorRGB();
        local swatch,frame;
        swatch = getglobal("RangeColorSwatchFrame"..key.."_ColorSwatchNormalTexture");
        frame = getglobal("RangeColorSwatchFrame"..key);
        swatch:SetVertexColor(r,g,b);
        frame.r = r;
        frame.g = g;
        frame.b = b;
        RangeColor_SetColor(key, r, g, b)
end

function RangeColorOptions_CancelColor(key, prev)
        local r = prev.r;
        local g = prev.g;
        local b = prev.b;
        local swatch, frame;
        swatch = getglobal("RangeColorSwatchFrame"..key.."_ColorSwatchNormalTexture");
        frame = getglobal("RangeColorSwatchFrame"..key);
        swatch:SetVertexColor(r, g, b);
        frame.r = r;
        frame.g = g;
        frame.b = b;
        RangeColor_SetColor(key, r, g, b)
end

function RangeColorOptions_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