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