Exemplo n.º 1
0
        public void CopyTo(PatternPoint pp, SliderTypeEnum sliderType)
        {
            switch (sliderType)
            {
            case SliderTypeEnum.RGB:
                pp.H          = H;
                pp.S          = S;
                pp.L          = L;
                pp.InitialL   = InitialL;
                pp.Lightness  = Lightness;
                pp.PointColor = PointColor;
                break;

            case SliderTypeEnum.WT:
                pp.WhiteD        = WhiteD;
                pp.InitialWhiteD = InitialWhiteD;
                pp.Temp          = Temp;
                break;

            case SliderTypeEnum.W:
                pp.WhiteD        = WhiteD;
                pp.InitialWhiteD = InitialWhiteD;
                break;

            case SliderTypeEnum.Warm:
                pp.WarmD        = WarmD;
                pp.InitialWarmD = InitialWarmD;
                break;

            case SliderTypeEnum.Cold:
                pp.ColdD        = ColdD;
                pp.InitialColdD = InitialColdD;
                break;
            }
        }
Exemplo n.º 2
0
        public void ClearPoint(SliderTypeEnum sliderType)
        {
            switch (sliderType)
            {
            case SliderTypeEnum.RGB:
                SetPoint_HSL(0.0, 0.0, 0.0);
                break;

            case SliderTypeEnum.WT:
                WhiteD = 0.0;
                Temp   = 0.0;
                break;

            case SliderTypeEnum.W:
                WhiteD = 0.0;
                break;

            case SliderTypeEnum.Warm:
                WarmD = 0.0;
                break;

            case SliderTypeEnum.Cold:
                ColdD = 0.0;
                break;
            }
        }
Exemplo n.º 3
0
 /// <summary>
 /// 移除列表滑动事件
 /// </summary>
 /// <param name="sliderType">滑动类型</param>
 /// <param name="action">回调事件</param>
 public void RemoveSliderEvent(SliderTypeEnum sliderType, Action action)
 {
     if (sliderAction.ContainsKey(sliderType))
     {
         sliderAction[sliderType] -= action;
         if (sliderAction[sliderType] == null)
         {
             sliderAction.Remove(sliderType);
         }
     }
 }
Exemplo n.º 4
0
 /// <summary>
 /// 注册列表滑动事件
 /// </summary>
 /// <param name="sliderType">滑动类型</param>
 /// <param name="action">回调事件</param>
 public void RegisterSliderEvent(SliderTypeEnum sliderType, Action action)
 {
     if (!sliderAction.ContainsKey(sliderType))
     {
         sliderAction.Add(sliderType, action);
     }
     else
     {
         sliderAction[sliderType] += action;
     }
 }
Exemplo n.º 5
0
        public void RestorePoint(SliderTypeEnum sliderType)
        {
            switch (sliderType)
            {
            case SliderTypeEnum.RGB:
                L = InitialL;
                break;

            case SliderTypeEnum.WT:
            case SliderTypeEnum.W:
                WhiteD = InitialWhiteD;
                break;

            case SliderTypeEnum.Warm:
                WarmD = InitialWarmD;
                break;

            case SliderTypeEnum.Cold:
                ColdD = InitialColdD;
                break;
            }
        }
Exemplo n.º 6
0
        void CreateSliderList(XElement root, List <SliderItem> sliderList)
        {
            SliderTypeEnum sliderType = SliderTypeEnum.RGB;
            int            ix         = 0;

            if (root != null)
            {
                foreach (XElement basePoint in root.Elements("BasePoint"))
                {
                    int          Pos = int.Parse(basePoint.Attribute("Pos").Value);
                    PatternPoint pp  = Pattern[Pos - 1];
                    switch (root.Name.ToString())
                    {
                    case "RGB":
                        System.Drawing.Color color = System.Drawing.Color.FromArgb
                                                         (0,
                                                         int.Parse(basePoint.Attribute("R").Value),
                                                         int.Parse(basePoint.Attribute("G").Value),
                                                         int.Parse(basePoint.Attribute("B").Value)
                                                         );

                        pp   = Pattern[Pos - 1];
                        pp.H = color.GetHue();
                        pp.S = color.GetSaturation();
                        pp.L = color.GetBrightness();
                        pp.SaveLightness();
                        pp.PointColor = Color.FromRgb(color.R, color.G, color.B);
                        pp.Lightness  = Convert.ToInt32(pp.L * 255.0);
                        sliderType    = SliderTypeEnum.RGB;
                        break;

                    case "White":
                        pp.WhiteD        = double.Parse(basePoint.Attribute("W").Value);
                        pp.InitialWhiteD = pp.WhiteD;
                        sliderType       = SliderTypeEnum.W;
                        break;

                    case "WhiteTemp":
                        pp.WhiteD        = double.Parse(basePoint.Attribute("W").Value);
                        pp.InitialWhiteD = pp.WhiteD;
                        pp.Temp          = double.Parse(basePoint.Attribute("T").Value);
                        sliderType       = SliderTypeEnum.WT;
                        break;

                    case "Warm":
                        pp.WarmD        = double.Parse(basePoint.Attribute("W").Value);
                        pp.InitialWarmD = pp.WarmD;
                        sliderType      = SliderTypeEnum.Warm;
                        break;

                    case "Cold":
                        pp.ColdD        = double.Parse(basePoint.Attribute("W").Value);
                        pp.InitialColdD = pp.ColdD;
                        sliderType      = SliderTypeEnum.Cold;
                        break;
                    }

                    sliderList.Add(CreateSlider(sliderList, ix, Pos, (PointVariant)int.Parse(basePoint.Attribute("Variant").Value), sliderType));
                    ix++;
                }
            }
        }
Exemplo n.º 7
0
        //XElement whitePoint(SliderItem si)
        //{

        //    //< BasePoint Pos = "1" W = "0"  Variant = "0" />
        //    XElement xe = new XElement("BasePoint",
        //            new XAttribute("Pos", ((int)si.Value).ToString()),
        //            new XAttribute("W", (si.PatternPoint.WhiteD).ToString()),
        //            new XAttribute("Variant", ((int)si.Variant).ToString())
        //        );
        //    return xe;
        //}

        #endregion

        SliderItem CreateSlider(List <SliderItem> sList, int ix, int pos, PointVariant pVariant, SliderTypeEnum sliderType)
        {
            SliderItem si = new SliderItem();

            si.Ix             = ix;
            si.Owner          = sList;
            si.PatternPoint   = Pattern[pos - 1];
            si.Variant        = pVariant;
            si.Minimum        = 1;
            si.Maximum        = PointCount;
            si.SelectionStart = 1;
            si.SelectionEnd   = si.Maximum;
            si.Value          = pos;
            si.SliderType     = sliderType;
            return(si);
        }
Exemplo n.º 8
0
        /****************************************************************************/

        #region Base methods


        // Метод вызывает EffectUC
        public void SetPanel(SliderTypeEnum variant)
        {
            switch (variant)
            {
            case SliderTypeEnum.RGB:
                rangePointer.Visibility  = Visibility.Visible;
                colorSelector.Visibility = Visibility.Visible;
                huePart.Visibility       = Visibility.Visible;
                satPart.Visibility       = Visibility.Visible;
                lightPart.Visibility     = Visibility.Visible;
                whitePart.Visibility     = Visibility.Collapsed;
                tempPart.Visibility      = Visibility.Collapsed;
                coldPart.Visibility      = Visibility.Collapsed;
                warmPart.Visibility      = Visibility.Collapsed;
                break;

            case SliderTypeEnum.W:
                rangePointer.Visibility  = Visibility.Collapsed;
                colorSelector.Visibility = Visibility.Collapsed;
                huePart.Visibility       = Visibility.Collapsed;
                satPart.Visibility       = Visibility.Collapsed;
                lightPart.Visibility     = Visibility.Collapsed;
                whitePart.Visibility     = Visibility.Visible;
                tempPart.Visibility      = Visibility.Collapsed;
                coldPart.Visibility      = Visibility.Collapsed;
                warmPart.Visibility      = Visibility.Collapsed;
                break;

            case SliderTypeEnum.WT:
                rangePointer.Visibility  = Visibility.Collapsed;
                colorSelector.Visibility = Visibility.Collapsed;
                huePart.Visibility       = Visibility.Collapsed;
                satPart.Visibility       = Visibility.Collapsed;
                lightPart.Visibility     = Visibility.Collapsed;
                whitePart.Visibility     = Visibility.Visible;
                tempPart.Visibility      = Visibility.Visible;
                coldPart.Visibility      = Visibility.Collapsed;
                warmPart.Visibility      = Visibility.Collapsed;
                break;

            case SliderTypeEnum.Cold:
                rangePointer.Visibility  = Visibility.Collapsed;
                colorSelector.Visibility = Visibility.Collapsed;
                huePart.Visibility       = Visibility.Collapsed;
                satPart.Visibility       = Visibility.Collapsed;
                lightPart.Visibility     = Visibility.Collapsed;
                whitePart.Visibility     = Visibility.Collapsed;
                tempPart.Visibility      = Visibility.Collapsed;
                coldPart.Visibility      = Visibility.Visible;
                warmPart.Visibility      = Visibility.Collapsed;
                break;

            case SliderTypeEnum.Warm:
                rangePointer.Visibility  = Visibility.Collapsed;
                colorSelector.Visibility = Visibility.Collapsed;
                huePart.Visibility       = Visibility.Collapsed;
                satPart.Visibility       = Visibility.Collapsed;
                lightPart.Visibility     = Visibility.Collapsed;
                whitePart.Visibility     = Visibility.Collapsed;
                tempPart.Visibility      = Visibility.Collapsed;
                coldPart.Visibility      = Visibility.Collapsed;
                warmPart.Visibility      = Visibility.Visible;
                break;
            }
        }
Exemplo n.º 9
0
        void UpdateLuminosityGradient(SliderItem leftSlider, SliderItem rightSlider)
        {
            double         delta;
            SliderTypeEnum sliderType = leftSlider.SliderType;
            int            stepCount  = rightSlider.Pos - leftSlider.Pos;

            switch (leftSlider.SliderType)
            {
            case SliderTypeEnum.RGB:
                leftSlider.PatternPoint.RestorePoint(sliderType);
                leftSlider.PatternPoint.UpdatePoint_RGB();
                rightSlider.PatternPoint.RestorePoint(sliderType);
                rightSlider.PatternPoint.UpdatePoint_RGB();
                break;

            default:
                leftSlider.PatternPoint.RestorePoint(sliderType);
                rightSlider.PatternPoint.RestorePoint(sliderType);
                break;
                //case SliderTypeEnum.WT:
                //case SliderTypeEnum.W:
                //    leftSlider.PatternPoint.RestorePoint(sliderType);
                //    rightSlider.PatternPoint.RestorePoint(sliderType);
                //    break;
                //case SliderTypeEnum.Cold:
                //    leftSlider.PatternPoint.RestorePoint(sliderType);
                //    rightSlider.PatternPoint.RestorePoint(sliderType);
                //    break;
                //case SliderTypeEnum.Warm:
                //    leftSlider.PatternPoint.RestorePoint(sliderType);
                //    rightSlider.PatternPoint.RestorePoint(sliderType);
                //    break;
            }

            if (stepCount > 0)
            {
                switch (leftSlider.SliderType)
                {
                case SliderTypeEnum.RGB:
                    delta = (rightSlider.PatternPoint.L - leftSlider.PatternPoint.L) / stepCount;
                    for (int i = 0; i < stepCount - 1; i++)
                    {
                        double prevLight = Pattern[leftSlider.Pos - 1 + i].L;
                        Pattern[leftSlider.Pos + i].SetPoint_HSL(Pattern[leftSlider.Pos + i].H, Pattern[leftSlider.Pos + i].S, prevLight + delta);
                    }
                    break;

                case SliderTypeEnum.WT:
                case SliderTypeEnum.W:
                    delta = (rightSlider.PatternPoint.WhiteD - leftSlider.PatternPoint.WhiteD) / stepCount;
                    for (int i = 0; i < stepCount - 1; i++)
                    {
                        double prevWhiteD = Pattern[leftSlider.Pos - 1 + i].WhiteD;
                        Pattern[leftSlider.Pos + i].WhiteD = prevWhiteD + delta;
                    }
                    break;

                case SliderTypeEnum.Warm:
                    delta = (rightSlider.PatternPoint.WarmD - leftSlider.PatternPoint.WarmD) / stepCount;
                    for (int i = 0; i < stepCount - 1; i++)
                    {
                        double prevWarmD = Pattern[leftSlider.Pos - 1 + i].WarmD;
                        Pattern[leftSlider.Pos + i].WarmD = prevWarmD + delta;
                    }
                    break;

                case SliderTypeEnum.Cold:
                    delta = (rightSlider.PatternPoint.ColdD - leftSlider.PatternPoint.ColdD) / stepCount;
                    for (int i = 0; i < stepCount - 1; i++)
                    {
                        double prevColdD = Pattern[leftSlider.Pos - 1 + i].ColdD;
                        Pattern[leftSlider.Pos + i].ColdD = prevColdD + delta;
                    }
                    break;
                }
            }
        }