private void OnItemSelect(object sender)
        {
            SimpleDirection s   = (SimpleDirection)sender;
            Direction       dir = s.ToDirection();

            nValue = new Vector2(dir.X, dir.Y);
        }
        /// <summary>
        /// Convert to <see cref="Direction"/>.
        /// </summary>
        /// <param name="simpleDirection"></param>
        /// <returns></returns>
        public static Direction ToDirection(this SimpleDirection simpleDirection)
        {
            switch (simpleDirection)
            {
            case Empty: return(Direction.Empty);

            case Up: return(Direction.Up);

            case Down: return(Direction.Down);

            case Left: return(Direction.Left);

            case Right: return(Direction.Right);

            case LeftUp: return(Direction.LeftUp);

            case LeftDown: return(Direction.LeftDown);

            case RightUp: return(Direction.RightUp);

            case RightDown: return(Direction.RightDown);

            default: throw new ArgumentException("uknown argument", nameof(simpleDirection));
            }
            ;
        }
        /// <summary>
        /// It returns true if argument is <see cref="SimpleDirection.Down"/> or <see cref="SimpleDirection.Up"/>.
        /// </summary>
        /// <param name="dir"></param>
        /// <returns></returns>
        public static bool IsConnectedWithY(this SimpleDirection dir)
        {
            switch (dir)
            {
            case Up:
            case Down: return(true);

            default: return(false);
            }
        }
Ejemplo n.º 4
0
 public SimpleRelativeDirection Minus2ndDirection(SimpleDirection bd)
 {
     Direct = Direct - (int)bd;
     return(this);
 }
Ejemplo n.º 5
0
 public SimpleRelativeDirection Minus1stDirection(SimpleDirection bd)
 {
     Direct = Direct - (int)bd * 0x10;
     return(this);
 }
Ejemplo n.º 6
0
 public SimpleRelativeDirection Add2ndDirection(SimpleDirection bd)
 {
     Direct = Direct + (int)bd;
     return(this);
 }
Ejemplo n.º 7
0
 public SimpleRelativeDirection Add1stDirection(SimpleDirection bd)
 {
     Direct = Direct + (int)bd * 0x10;
     return(this);
 }
Ejemplo n.º 8
0
 public bool Is2ndDirection(SimpleDirection bd)
 {
     return((Direct & (int)bd) == (int)bd);
 }
Ejemplo n.º 9
0
 public bool Is1stDirection(SimpleDirection bd)
 {
     return((Direct & (int)bd * 0x10) == (int)bd * 0x10);
 }
Ejemplo n.º 10
0
 public static void FillRectGradient(Rectangle rect, Graphics graf, Color color1, Color color2, SimpleDirection direction)
 {
     FillRectGradient(rect, graf, color1, color2, direction, 0);
 }
Ejemplo n.º 11
0
        public static void FillRectGradient(Rectangle rect, Graphics graf, Color color1, Color color2, SimpleDirection direction, int cornerRadius)
        {
            Point p1;

            switch (direction)
            {
            case SimpleDirection.Vertical:
                p1 = new Point(rect.X + rect.Width / 2, rect.Y);
                break;

            case SimpleDirection.Diagonal2:
                p1 = new Point(rect.Right - cornerRadius, rect.Y + cornerRadius);
                break;

            case SimpleDirection.Diagonal:
                p1 = new Point(rect.X + cornerRadius, rect.Y + cornerRadius);
                break;

            default:
                p1 = new Point(rect.X - 1, rect.Y + rect.Height / 2);
                break;
            }

            Point p2;

            switch (direction)
            {
            case SimpleDirection.Vertical:
                p2 = new Point(rect.X + rect.Width / 2, rect.Y + rect.Height);
                break;

            case SimpleDirection.Diagonal2:
                p2 = new Point(rect.X + cornerRadius, rect.Bottom - cornerRadius);
                break;

            case SimpleDirection.Diagonal:
                p2 = new Point(rect.Right - cornerRadius, rect.Bottom - cornerRadius);
                break;

            default:
                p2 = new Point(rect.Right + 1, rect.Y + rect.Height / 2);
                break;
            }

            if (cornerRadius <= 0)
            {
                if (p1 != p2)
                {
                    graf.FillRectangle(new LinearGradientBrush(p1, p2, color1, color2), rect);
                }
                else
                {
                    graf.FillRectangle(new SolidBrush(color1), rect);
                }
            }
            else
            {
                GraphicsPath gfxPath = DrawPath.RoundCorner(rect, cornerRadius);
                gfxPath.CloseAllFigures();

                if (p1 != p2)
                {
                    graf.FillPath(new LinearGradientBrush(p1, p2, color1, color2), gfxPath);
                }
                else
                {
                    graf.FillPath(new SolidBrush(color1), gfxPath);
                }
            }
        }
 /// <summary>
 /// It returns true if argument is <see cref="SimpleDirection.Left"/> or <see cref="SimpleDirection.Right"/>
 /// </summary>
 /// <param name="dir"></param>
 /// <returns></returns>
 public static bool IsConnectedWithX(this SimpleDirection dir)
 {
     return(!IsConnectedWithY(dir));
 }