예제 #1
0
 private void LineQueueEndOfSameLine()
 {
     CurrentLine.SpecialColor = false;
     ConsoleAccess.ResetColor();
     PreviousLine = CurrentLine;
     CurrentLine  = null;
 }
예제 #2
0
        private void LineQueueRestoreColor()
        {
            CurrentLine.SpecialColor = false;
            ConsoleAccess.ResetColor();
            CurrentLine.LineIndex++;

            if (CurrentLine.LineIndex < CurrentLine.Line.Length)
            {
                CurrentLine.LastCharForeground = ConsoleAccess.ForegroundColor;
                CurrentLine.LastCharBackground = ConsoleAccess.BackgroundColor;
            }
        }
예제 #3
0
        private void SameLineDot()
        {
            ConsoleAccess.Lock();
            var OrigConsolePos = new int[2] {
                Console.CursorLeft, Console.CursorTop
            };

            ConsoleAccess.ForegroundColor = PreviousLine.LastCharForeground;
            ConsoleAccess.BackgroundColor = PreviousLine.LastCharBackground;

            if (PreviousLine.DotCount < 3)
            {
                ConsoleAccess.SetCursorPosition(
                    PreviousLine.ConsolePos[0] + PreviousLine.RealCharLineIndex + PreviousLine.DotCount,
                    PreviousLine.ConsolePos[1]);
                PreviousLine.DotCount++;
                ConsoleAccess.Write(".");
            }
            else
            {
                ConsoleAccess.SetCursorPosition(
                    PreviousLine.ConsolePos[0] + PreviousLine.RealCharLineIndex,
                    PreviousLine.ConsolePos[1]);
                ConsoleAccess.Write(".  ");
                PreviousLine.DotCount = 1;
            }

            ConsoleAccess.ResetColor();

            ConsoleAccess.ConsolePosition = OrigConsolePos;
            CurrentLine = PreviousLine;
            LineQueueEndOfSameLine();
            ConsoleAccess.Unlock();

            FinishedTyping();
        }