Ejemplo n.º 1
0
        static public Rectangle Edge(this Rectangle src, XCOMlike dir_code)
        {
            switch (dir_code)
            {
            case XCOMlike.N: return(new Rectangle(src.Left, src.Top, src.Width, 1));

            case XCOMlike.S: return(new Rectangle(src.Left, src.Bottom - 1, src.Width, 1));

            case XCOMlike.W: return(new Rectangle(src.Left, src.Top, 1, src.Height));

            case XCOMlike.E: return(new Rectangle(src.Right - 1, src.Top, 1, src.Height));

            default: throw new InvalidOperationException("direction code out of range");
            }
        }
Ejemplo n.º 2
0
        static public Point Anchor(this Rectangle src, XCOMlike dir_code)  // Tk/Tcl anchor point for aligning a rectangle
        {
            switch (dir_code)
            {
            case XCOMlike.N: return(new Point(src.Width / 2 + src.Left, src.Top));

            case XCOMlike.NE: return(new Point(src.Right - 1, src.Top));

            case XCOMlike.E: return(new Point(src.Right - 1, src.Height / 2 + src.Top));

            case XCOMlike.SE: return(new Point(src.Right - 1, src.Bottom - 1));

            case XCOMlike.S: return(new Point(src.Width / 2 + src.Left, src.Bottom - 1));

            case XCOMlike.SW: return(new Point(src.Left, src.Bottom - 1));

            case XCOMlike.W: return(new Point(src.Left, src.Height / 2 + src.Top));

            case XCOMlike.NW: return(new Point(src.Left, src.Top));

            default: throw new InvalidOperationException("direction code out of range");
            }
        }