コード例 #1
0
        // ReSharper disable once UnusedParameter.Local
        private static Control <char, Color, Keyboard.Key> CreatePage4(RenderWindow renderWindow)
        {
            var borderTheme = new BorderTheme <char>('*', '-', '*', '|', '*', '-', '*', '|');
            var colorTheme1 = new ColorTheme <Color>(Color.Black, Color.Transparent);
            var colorTheme2 = new ColorTheme <Color>(Color.Black, Color.White);
            var grid        = new Grid <char, Color, Keyboard.Key>
            {
                Left   = 1,
                Top    = 1,
                Width  = 30,
                Height = 20
            };

            grid.Columns.Add(1);
            grid.Columns.Add(2);
            grid.Rows.Add(1);
            grid.Rows.Add(1);
            grid.OnKeyboardInput += (control, args) =>
            {
                if (args.Input == Keyboard.Key.Escape)
                {
                    ControlUtils <char, Color, Keyboard.Key> .FindParent <Pages <char, Color, Keyboard.Key> >(control).Page = 0;
                }
            };

            var border = new Border <char, Color, Keyboard.Key> {
                BorderTheme = borderTheme, ColorTheme = colorTheme1
            };

            border.OnFocusChanged += (s, a) => s.ColorTheme = a.NewValue ? colorTheme2 : colorTheme1;
            grid.Controls.Add(border);

            border = new Border <char, Color, Keyboard.Key> {
                BorderTheme = borderTheme, ColorTheme = colorTheme1
            };
            border.OnFocusChanged += (s, a) => s.ColorTheme = a.NewValue ? colorTheme2 : colorTheme1;
            grid.Controls.Add(border);

            border = new Border <char, Color, Keyboard.Key> {
                BorderTheme = borderTheme, ColorTheme = colorTheme1
            };
            border.OnFocusChanged += (s, a) => s.ColorTheme = a.NewValue ? colorTheme2 : colorTheme1;
            grid.Controls.Add(border);

            var label = new Label <char, Color, Keyboard.Key>
            {
                Delimiter = Environment.NewLine,
                Text      = "Press escape to return to page #1."
            };

            border = new Border <char, Color, Keyboard.Key> {
                BorderTheme = borderTheme, ColorTheme = colorTheme1
            };
            border.Controls.Add(label);
            border.OnFocusChanged += (s, a) => s.ColorTheme = a.NewValue ? colorTheme2 : colorTheme1;
            grid.Controls.Add(border);

            return(grid);
        }
コード例 #2
0
 public ConsoleGlyphProvider()
 {
     CrateGlyph          = '¤';
     TargetGlyph         = '·';
     WallGlyph           = '█';
     PlayerGlyph         = '@';
     EllipsisGlyph       = '~';
     SelectionGlyph      = '>';
     Delimiter           = Environment.NewLine.ToArray();
     MainMenuBorderTheme = new BorderTheme <char>('╔', '═', '╗', '║', '╝', '═', '╚', '║');
 }
コード例 #3
0
 public SfmlGlyphProvider()
 {
     CrateGlyph          = new Glyph(15, 15);
     TargetGlyph         = new Glyph(9, 15);
     WallGlyph           = new Glyph(8, 0);
     PlayerGlyph         = new Glyph(2, 0);
     EllipsisGlyph       = new Glyph(14, 7);
     SelectionGlyph      = new ColorAwareGlyph(14, 3, Color.White, Color.Transparent);
     Delimiter           = new[] { new Glyph(-1, -1) };
     MainMenuBorderTheme = new BorderTheme <Glyph>(
         new Glyph(9, 12), new Glyph(13, 12), new Glyph(11, 11), new Glyph(10, 11),
         new Glyph(12, 11), new Glyph(13, 12), new Glyph(8, 12), new Glyph(10, 11));
 }
コード例 #4
0
        private static void Drawing(ITerminal <TGlyph, TColor> terminal, int left, int top, int width, int height,
                                    BorderTheme <TGlyph> borderTheme, ColorTheme <TColor> colorTheme)
        {
            terminal.Draw(left, top, borderTheme.TopLeft, colorTheme.Foreground, colorTheme.Background);
            terminal.DrawLine(left + 1, top, left + width - 2, top, borderTheme.Top, colorTheme.Foreground, colorTheme.Background);

            terminal.Draw(left + width - 1, top, borderTheme.TopRight, colorTheme.Foreground, colorTheme.Background);
            terminal.DrawLine(left + width - 1, top + 1, left + width - 1, top + height - 2, borderTheme.Right,
                              colorTheme.Foreground, colorTheme.Background);

            terminal.Draw(left + width - 1, top + height - 1, borderTheme.BottomRight, colorTheme.Foreground,
                          colorTheme.Background);
            terminal.DrawLine(left + width - 2, top + height - 1, left + 1, top + height - 1, borderTheme.Bottom,
                              colorTheme.Foreground, colorTheme.Background);

            terminal.Draw(left, top + height - 1, borderTheme.BottomLeft, colorTheme.Foreground, colorTheme.Background);
            terminal.DrawLine(left, top + height - 2, left, top + 1, borderTheme.Left, colorTheme.Foreground,
                              colorTheme.Background);
        }