Ejemplo n.º 1
0
        private void AddBorderCorner(int cornerIndex, Int64 borderKey)
        {
            BorderCorner bc;

            if (!borderCorners.TryGetValue(cornerIndex, out bc))
            {
                borderCorners[cornerIndex] = new BorderCorner();
            }
            borderCorners[cornerIndex].borderIndices.Add(borderKey);
        }
Ejemplo n.º 2
0
        public void DrawBorder(bool ExtendUp, bool ExtendDown, bool ExtendLeft, bool ExtendRight)
        {
            Console.SetCursorPosition(X, Y);

            //Draw the outline top and bottom
            for (int k = X; k < (Width + X); k++)
            {
                Console.SetCursorPosition(k, Y);
                System.Console.Write('\u2500');

                Console.SetCursorPosition(k, Y + Height);
                System.Console.Write('\u2500');
            }

            //Draw the outline left and right
            for (int k = Y; k < (Height + Y); k++)
            {
                Console.SetCursorPosition(X, k);
                System.Console.Write('\u2502');

                Console.SetCursorPosition(X + Width, k);
                System.Console.Write('\u2502');
            }

            BorderCorner TopLeft     = new BorderCorner(),
                         TopRight    = new BorderCorner(),
                         BottomLeft  = new BorderCorner(),
                         BottomRight = new BorderCorner();

            TopLeft.East        = true;
            TopLeft.South       = true;
            TopLeft.UnicodeChar = '\u250C';

            TopRight.West        = true;
            TopRight.South       = true;
            TopRight.UnicodeChar = '\u2510';

            BottomLeft.North       = true;
            BottomLeft.East        = true;
            BottomLeft.UnicodeChar = '\u2514';

            BottomRight.West        = true;
            BottomRight.North       = true;
            BottomRight.UnicodeChar = '\u2518';

            if (ExtendUp)
            {
                TopLeft.North  = true;
                TopRight.North = true;
            }

            if (ExtendDown)
            {
                BottomRight.South = true;
                BottomLeft.South  = true;
            }

            if (ExtendLeft)
            {
                TopLeft.West    = true;
                BottomLeft.West = true;
            }

            if (ExtendRight)
            {
                TopRight.East    = true;
                BottomRight.East = true;
            }

            /**
             * \u251C - ├
             *
             * \u252C - ┬
             *
             * \u2524 - ┤
             *
             * \u2434 - ┴
             *
             * \u253C - ┼
             **/

            TopLeft.UnicodeChar = (TopLeft.North) ? '\u251C' : TopLeft.UnicodeChar;
            TopLeft.UnicodeChar = (TopLeft.West) ? '\u252C' : TopLeft.UnicodeChar;
            TopLeft.UnicodeChar = (TopLeft.North && TopLeft.West) ? '\u253C' : TopLeft.UnicodeChar;

            TopRight.UnicodeChar = (TopRight.North) ? '\u2524' : TopRight.UnicodeChar;
            TopRight.UnicodeChar = (TopRight.East) ? '\u252C' : TopRight.UnicodeChar;
            TopRight.UnicodeChar = (TopRight.North && TopRight.East) ? '\u253C' : TopRight.UnicodeChar;

            BottomLeft.UnicodeChar = (BottomLeft.South) ? '\u251C' : BottomLeft.UnicodeChar;
            BottomLeft.UnicodeChar = (BottomLeft.West) ? '\u2534' : BottomLeft.UnicodeChar;
            BottomLeft.UnicodeChar = (BottomLeft.South && BottomLeft.West) ? '\u253C' : BottomLeft.UnicodeChar;

            BottomRight.UnicodeChar = (BottomRight.South) ? '\u2524' : BottomRight.UnicodeChar;
            BottomRight.UnicodeChar = (BottomRight.East) ? '\u2534' : BottomRight.UnicodeChar;
            BottomRight.UnicodeChar = (BottomRight.South && BottomRight.East) ? '\u253C' : BottomRight.UnicodeChar;

            //Replace the corners
            //Top left
            Console.SetCursorPosition(X, Y);
            System.Console.Write(TopLeft.UnicodeChar);
            //Bottom right
            Console.SetCursorPosition(X + Width, Y + Height);
            System.Console.Write(BottomRight.UnicodeChar);
            //Top right
            Console.SetCursorPosition(X + Width, Y);
            System.Console.Write(TopRight.UnicodeChar);
            //Bottom left
            Console.SetCursorPosition(X, Y + Height);
            System.Console.Write(BottomLeft.UnicodeChar);
        }