コード例 #1
0
        private static void Main(string[] args)
        {
            ConsoleColorsHelper helper = new ConsoleColorsHelper();

            //helper.ReplaceConsoleColor(ConsoleColor.DarkCyan, Color.Salmon);
            helper.ReplaceConsoleColors(
                new Tuple <ConsoleColor, Color>(ConsoleColor.DarkCyan, Color.Chocolate),
                new Tuple <ConsoleColor, Color>(ConsoleColor.Blue, Color.DodgerBlue),
                new Tuple <ConsoleColor, Color>(ConsoleColor.Yellow, Color.Gold),
                new Tuple <ConsoleColor, Color>(ConsoleColor.DarkBlue, Color.MidnightBlue)
                );

            IConsole          console = new SystemConsole(helper);
            ConsoleOperations ops     = new ConsoleOperations(console);

            console.WriteText(0, 0, "test message", Color.Red, Color.Black);
            console.WriteText(0, 1, "test message 2", Color.Cyan, Color.YellowGreen);
            console.WriteText(0, 2, "test message 3d ds sfsdfsad ", Color.Orange, Color.Plum);
            console.WriteText(0, 3, "test messaf sdf s sfsdfsad ", Color.DarkOliveGreen, Color.Silver);
            console.WriteText(0, 4, "tsd fsfsd fds fsd f fa fas fad ", Color.AliceBlue, Color.PaleVioletRed);
            console.WriteText(0, 5, "tsd fsfsd fds fsd f fa fas fad ", Color.Blue, Color.CadetBlue);
            console.WriteText(0, 6, "tsd fsdfsdfsd fds fa fas fad ", Color.Maroon, Color.ForestGreen);

            // lol: http://stackoverflow.com/questions/3811973/why-is-darkgray-lighter-than-gray
            console.WriteText(0, 10, "test message", Color.Gray, Color.Black);
            console.WriteText(0, 11, "test message 2", Color.DarkGray, Color.Black);
            console.WriteText(0, 12, "test message 3d ds sfsdfsad ", Color.DimGray, Color.Black);
            console.WriteText(0, 20, "", Color.Gray, Color.Black); // reset

            var props = typeof(Color).GetProperties(BindingFlags.Static | BindingFlags.Public).Where(p => p.PropertyType == typeof(Color));

            foreach (var propertyInfo in props)
            {
                Color        c  = (Color)propertyInfo.GetValue(null);
                ConsoleColor cc = helper.FindClosestColor(c);
                Console.ForegroundColor = cc;
                Console.WriteLine("{0,-25} {1,-18} #{2,-8}", propertyInfo.Name, Enum.GetName(typeof(ConsoleColor), cc), c.ToArgb().ToString("X"));
            }

            var             text1Colors          = new ConsoleFontColor(Color.Gold, Color.Black);
            var             text2Colors          = new ConsoleFontColor(Color.Brown, Color.Black);
            var             text3Colors          = new ConsoleFontColor(Color.Black, Color.Silver);
            var             frame2Colors         = new ConsoleFontColor(Color.Silver, Color.Black);
            var             solidFrameTextColors = new ConsoleFontColor(Color.Red, Color.Yellow);
            var             solidFrameColors     = new ConsoleFontColor(Color.Yellow, Color.Black);
            FrameDefinition block3Frame          = new FrameDefinition(frame2Colors, text3Colors, @"┌─┐││└─┘", '░');
            FrameDefinition doubleFrame          = new FrameDefinition(frame2Colors, text3Colors, @"╔═╗║║╚═╝", '▒');
            FrameDefinition solidFrame           = new FrameDefinition(solidFrameColors, solidFrameTextColors, @"▄▄▄██▀▀▀", '▓');

            //console.Clear();
            ops.WriteTextBox(5, 5, 50, 7, @"Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada elit lectus felis, malesuada ultricies. Curabitur et ligula. Ut molestie a, ultricies porta urna. Vestibulum commodo volutpat a, convallis ac, laoreet enim. Phasellus fermentum in, dolor.", text1Colors);
            ops.WriteTextBox(25, 15, 80, 37, @"Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada elit lectus felis, malesuada ultricies. Curabitur et ligula. Ut molestie a, ultricies porta urna. Vestibulum commodo volutpat a, convallis ac, laoreet enim. Phasellus fermentum in, dolor. Pellentesque facilisis. Nulla imperdiet sit amet magna. Vestibulum dapibus, mauris nec malesuada fames ac turpis velit, rhoncus eu, luctus et interdum adipiscing wisi. Aliquam erat ac ipsum. Integer aliquam purus. Quisque lorem tortor fringilla sed, vestibulum id, eleifend justo vel bibendum sapien massa ac turpis faucibus orci luctus non, consectetuer lobortis quis, varius in, purus.", text2Colors);

            ops.WriteTextBox(new Rectangle(26, 26, 60, 20),
                             @"Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis. Maecenas malesuada elit lectus felis, malesuada ultricies. Curabitur et ligula. Ut molestie a, ultricies porta urna. Vestibulum commodo volutpat a, convallis ac, laoreet enim. Phasellus fermentum in, dolor. Pellentesque facilisis. Nulla imperdiet sit amet magna. Vestibulum dapibus, mauris nec malesuada fames ac turpis velit, rhoncus eu, luctus et interdum adipiscing wisi. Aliquam erat ac ipsum. Integer aliquam purus. Quisque lorem tortor fringilla sed, vestibulum id, eleifend justo vel bibendum sapien massa ac turpis faucibus orci luctus non, consectetuer lobortis quis, varius in, purus.",
                             block3Frame);
            ops.WriteTextBox(new Rectangle(80, 10, 30, 7),
                             @"Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis.",
                             doubleFrame);
            ops.WriteTextBox(new Rectangle(100, 20, 25, 7),
                             @"Lorem ipsum dolor sit amet enim. Etiam ullamcorper. Suspendisse a pellentesque dui, non felis.",
                             solidFrame);

            console.WriteText(0, 20, "", Color.Gray, Color.Black); // reset


            Console.ReadLine();
        }
コード例 #2
0
        private DefinitionBase CreateDefinition(FieldList source)
        {
            if (source == null)
            {
                return(null);
            }

            int   defID                   = source[MessageOutFieldID.DefinitionID].AsInteger() ?? 0;
            short primitiveType           = source[DefAgentFieldID.DefinitionType].AsShort() ?? 0;
            short secondaryCharacteristic = 0;

            DefinitionBase res = null;

            switch ((DefinitionType)primitiveType)
            {
            case DefinitionType.AtomicBlock:
            {
                FieldList firstStateData = (FieldList)source[DefAgentFieldID.DataPerComponentState];

                if (firstStateData != null)
                {
                    secondaryCharacteristic = firstStateData[DefAgentFieldID.LayoutType].AsByte() ?? 0;

                    switch ((LayoutType)secondaryCharacteristic)
                    {
                    case LayoutType.Table:
                        AtomicBlockDefinition ab = new AtomicBlockDefinition();
                        ab.Unpack(source);

                        res = ab;
                        break;

                    case LayoutType.SingleSlot:
                        SingleSlotBlockDefinition ssb = new SingleSlotBlockDefinition();
                        ssb.Unpack(source);

                        res = ssb;
                        break;

                    case LayoutType.ScrollingText:
                        ScrollingTextBlockDefinition stbd = new ScrollingTextBlockDefinition();
                        stbd.Unpack(source);

                        res = stbd;
                        break;

                    default:
                        DebugHelper.Out("Unsupported layout type for atomic: {0}", ((LayoutType)secondaryCharacteristic).ToString());
                        break;
                    }
                }

                break;
            }

            case DefinitionType.Container:
            {
                secondaryCharacteristic = source[DefAgentFieldID.LayoutType].AsByte() ?? 0;

                switch ((LayoutType)secondaryCharacteristic)
                {
                case LayoutType.Box:
                    BoxLayoutBlockDefinition bx = new BoxLayoutBlockDefinition();
                    bx.Unpack(source);

                    res = bx;
                    break;

                case LayoutType.Flow:
                    ListBlockDefinition fl = new ListBlockDefinition();
                    fl.Unpack(source);

                    res = fl;
                    break;

                case LayoutType.Grid:
                    GridBlockDefinition gr = new GridBlockDefinition();
                    gr.Unpack(source);

                    res = gr;
                    break;

                default:
                    DebugHelper.Out("Unsupported layout type for container: {0}", ((LayoutType)secondaryCharacteristic).ToString());
                    break;
                }

                break;
            }

            case DefinitionType.Frame:
            {
                FrameDefinition fd = new FrameDefinition();
                fd.Unpack(source);

                res = fd;
                break;
            }

            case DefinitionType.Plugin:
            {
                secondaryCharacteristic = source[DefAgentFieldID.PluginType].AsByte() ?? 0;

                switch ((PluginType)secondaryCharacteristic)
                {
                case PluginType.Map:
                    MapPluginBlockDefinition mpbd = new MapPluginBlockDefinition();
                    mpbd.Unpack(source);

                    res = mpbd;
                    break;

                default:
                    DebugHelper.Out("Unsupported plug-in type: {0}", ((PluginType)secondaryCharacteristic).ToString());
                    break;
                }

                break;
            }

            case DefinitionType.Palette:
            {
                PaletteDefinition palette = new PaletteDefinition();
                palette.Unpack(source);

                res = palette;
                break;
            }

            case DefinitionType.Font:
            {
                FontDefinition font = new FontDefinition();
                font.Unpack(source);

                res = font;
                break;
            }

            case DefinitionType.ApplicationEvents:
            {
                ApplicationEventsDefinition appEvents = new ApplicationEventsDefinition();
                appEvents.Unpack(source);

                res = appEvents;
                break;
            }

            default:
                DebugHelper.Out("Unsupported definition type: {0}", ((DefinitionType)primitiveType).ToString());
                break;
            }

            if ((res != null) && res.IsUnpacked)
            {
                return(res);
            }
            else
            {
                return(null);
            }
        }