Esempio n. 1
0
        private static bool Execute_XLOG_Command(DataStream <int> ParameterStream)
        {
            /* Currently we are only emulating color codes. */
            /* XXX: Implement emulation for other codes such as the cursor controls */
            XLOG_CODE Code = (XLOG_CODE)Int32.MinValue;

            if (!ParameterStream.atEnd)
            {
                Code = (XLOG_CODE)ParameterStream.Consume();
            }

            switch (Code)
            {
            case XLOG_CODE.PUSH_FG:
                Color_Stack_FG.Push(ANSI.Color_Console_To_ANSI(Console.ForegroundColor));
                break;

            case XLOG_CODE.POP_FG:
            {
                if (Color_Stack_FG.Count == 0)
                {
                    break;
                }
                ANSI_COLOR clr = Color_Stack_FG.Pop();
                Console.ForegroundColor = ANSI.Color_ANSI_To_Console(clr);
            }
            break;

            case XLOG_CODE.PUSH_BG:
                Color_Stack_BG.Push(ANSI.Color_Console_To_ANSI(Console.BackgroundColor));
                break;

            case XLOG_CODE.POP_BG:
            {
                if (Color_Stack_BG.Count == 0)
                {
                    break;
                }
                ANSI_COLOR clr = Color_Stack_BG.Pop();
                Console.BackgroundColor = ANSI.Color_ANSI_To_Console(clr);
            }
            break;

            default:
            {
                throw new ArgumentException($"Unrecognized xLOG code: {(XLOG_CODE)Code}");
            }
            }

            return(true);
        }
Esempio n. 2
0
 private static void Set_BG(ANSI_COLOR Color) => Console.BackgroundColor = ANSI.Color_ANSI_To_Console(Color);
Esempio n. 3
0
 private static void Set_FG(ANSI_COLOR Color) => Console.ForegroundColor = ANSI.Color_ANSI_To_Console(Color);