/// <summary>
        /// Constructor for no Input.
        /// </summary>
        /// <param name="animatedProperty">The animated property.</param>
        /// <param name="control">The control.</param>
        public AtomicAnimatorInput(ZeroitAtomEdit.PropertyAnimated animatedProperty,
                                   Control control
                                   ) :
            this(
                ZeroitAtomEdit.PropertyAnimated.None,
                0.5f,
                0.0f,
                0.5f,
                1.0f,
                0.5f,
                0.5f,
                1.0f,
                0.0f,
                "text",
                new System.Drawing.Size(100, 100),
                new System.Drawing.Point(447, 356),
                Color.Black,
                Color.LightBlue,
                true,
                2f,
                ZeroitAtomEdit.Animations.EaseInEaseOut,
                ""

                )
        {
            this.animatedProperty = animatedProperty;
            this.control          = control;
        }
        /// <summary>
        ///     Paint a representation of the simple filler (usually in designer).
        /// </summary>
        /// <param name="e">A <c>PaintValueEventArgs</c> that indicates what to paint and where to paint it.</param>
        public override void PaintValue(PaintValueEventArgs e)
        {
            //e.Graphics.FillRectangle(new SolidBrush(Color.Blue), e.Bounds /*r*/);

            ////if (e.Value is Filler)
            ////{
            ////    Brush br = ((Filler)e.Value).GetUITypeEditorBrush(e.Bounds);
            ////    if (br != null)
            ////    {
            ////        e.Graphics.FillRectangle(br, e.Bounds /*r*/);
            ////    }
            ////}


            if (e.Value is AtomicAnimatorInput)
            {
                ZeroitAtomEdit.PropertyAnimated animationType =
                    ((AtomicAnimatorInput)e.Value).AnimatedProperty;

                switch (animationType)
                {
                case ZeroitAtomEdit.PropertyAnimated.BackColor:
                    e.Graphics.FillRectangle(new SolidBrush(((AtomicAnimatorInput)e.Value).ControlBackColor),
                                             e.Bounds);
                    //e.Graphics.DrawString("BC", new Font("Segoe UI", 9), new SolidBrush(Color.Cyan),
                    //    new Point(1, 1));
                    break;

                case ZeroitAtomEdit.PropertyAnimated.ForeColor:
                    e.Graphics.DrawString("FC", new Font("Microsoft Sans Serif", 9), new SolidBrush(Color.Cyan),
                                          new Point(1, 1));
                    break;

                case ZeroitAtomEdit.PropertyAnimated.Location:
                    e.Graphics.DrawString("ↈ", new Font("Microsoft Sans Serif", 10), new SolidBrush(Color.Cyan),
                                          new Point(1, 1));
                    break;

                case ZeroitAtomEdit.PropertyAnimated.Size:
                    e.Graphics.DrawString("⤱", new Font("Microsoft Sans Serif", 12), new SolidBrush(Color.Cyan),
                                          new Point(3, 0));
                    break;

                case ZeroitAtomEdit.PropertyAnimated.None:
                    e.Graphics.DrawString("Φ", new Font("Microsoft Sans Serif", 10), new SolidBrush(Color.Cyan),
                                          new Point(3, 1));
                    break;
                }
            }
        }
        /// <summary>
        /// Constructor for BackColor Animation.
        /// </summary>
        /// <param name="animatedProperty">The animated property.</param>
        /// <param name="point1X">The point1 x.</param>
        /// <param name="point1Y">The point1 y.</param>
        /// <param name="point2X">The point2 x.</param>
        /// <param name="point2Y">The point2 y.</param>
        /// <param name="point3X">The point3 x.</param>
        /// <param name="point3Y">The point3 y.</param>
        /// <param name="point4X">The point4 x.</param>
        /// <param name="point4Y">The point4 y.</param>
        /// <param name="backcolorForProperty">The backcolor for property.</param>
        /// <param name="reverse">if set to <c>true</c> [reverse].</param>
        /// <param name="duration">The duration.</param>
        /// <param name="animations">The animations.</param>
        /// <param name="control">The control.</param>
        public AtomicAnimatorInput(
            ZeroitAtomEdit.PropertyAnimated animatedProperty,
            float point1X, float point1Y,
            float point2X, float point2Y,
            float point3X, float point3Y,
            float point4X, float point4Y,
            System.Drawing.Color backcolorForProperty,
            bool reverse, float duration,
            ZeroitAtomEdit.Animations animations,
            Control control) :
            this(
                ZeroitAtomEdit.PropertyAnimated.BackColor,
                0.5f,
                0.0f,
                0.5f,
                1.0f,
                0.5f,
                0.5f,
                1.0f,
                0.0f,
                "text",
                new System.Drawing.Size(100, 100),
                new System.Drawing.Point(447, 356),
                Color.Black,
                Color.LightBlue,
                true,
                2f,
                ZeroitAtomEdit.Animations.EaseInEaseOut,
                ""

                )
        {
            this.point1X = point1X;
            this.point1Y = point1Y;
            this.point2X = point2X;
            this.point2Y = point2Y;
            this.point3X = point3X;
            this.point3Y = point3Y;
            this.point4X = point4X;
            this.point4Y = point4Y;

            this.backcolorForProperty = backcolorForProperty;
            this.animatedProperty     = animatedProperty;
            this.reverse    = reverse;
            this.duration   = duration;
            this.animations = animations;
        }
 // Internal constructor
 /// <summary>
 /// Initializes a new instance of the <see cref="AtomicAnimatorInput"/> class.
 /// </summary>
 /// <param name="animatedProperty">The animated property.</param>
 /// <param name="point1X">The point1 x.</param>
 /// <param name="point1Y">The point1 y.</param>
 /// <param name="point2X">The point2 x.</param>
 /// <param name="point2Y">The point2 y.</param>
 /// <param name="point3X">The point3 x.</param>
 /// <param name="point3Y">The point3 y.</param>
 /// <param name="point4X">The point4 x.</param>
 /// <param name="point4Y">The point4 y.</param>
 /// <param name="controlAnimationText">The control animation text.</param>
 /// <param name="controlAnimationSize">Size of the control animation.</param>
 /// <param name="controlLocation">The control location.</param>
 /// <param name="forecolorForProperty">The forecolor for property.</param>
 /// <param name="backcolorForProperty">The backcolor for property.</param>
 /// <param name="reverse">if set to <c>true</c> [reverse].</param>
 /// <param name="duration">The duration.</param>
 /// <param name="animations">The animations.</param>
 /// <param name="animationString">The animation string.</param>
 public AtomicAnimatorInput
 (
     ZeroitAtomEdit.PropertyAnimated animatedProperty,
     float point1X,
     float point1Y,
     float point2X,
     float point2Y,
     float point3X,
     float point3Y,
     float point4X,
     float point4Y,
     string controlAnimationText,
     System.Drawing.Size controlAnimationSize,
     System.Drawing.Point controlLocation,
     Color forecolorForProperty,
     Color backcolorForProperty,
     bool reverse,
     float duration,
     ZeroitAtomEdit.Animations animations,
     string animationString
 )
 {
     this.point1X = point1X;
     this.point1Y = point1Y;
     this.point2X = point2X;
     this.point2Y = point2Y;
     this.point3X = point3X;
     this.point3Y = point3Y;
     this.point4X = point4X;
     this.point4Y = point4Y;
     this.controlAnimationText = controlAnimationText;
     this.controlAnimationSize = controlAnimationSize;
     this.controlLocation      = controlLocation;
     this.forecolorForProperty = forecolorForProperty;
     this.backcolorForProperty = backcolorForProperty;
     this.animatedProperty     = animatedProperty;
     this.reverse         = reverse;
     this.duration        = duration;
     this.animations      = animations;
     this.animationString = animationString;
 }