示例#1
0
        public override void HandleRepaint(ConsoleGui.Interfaces.Drawing.IDrawingContext context)
        {
            context.DrawThinBorder(this.Region);
            if (HasFocus)
            {
                context.DrawStringAlligned(context.Invert("<" + _text + ">"), this.Region.Interior, this.TextAllignment);
            }
            else
            {
                context.DrawStringAlligned("<" + _text + ">", this.Region.Interior, this.TextAllignment);
            }

            base.HandleRepaint(context);
        }
示例#2
0
        public override void HandleRepaint(ConsoleGui.Interfaces.Drawing.IDrawingContext context)
        {
            if (HasFocus)
            {
                context.DrawThinBorder(Region, Text);
            }

            var sbMenuUptions = new StringBuilder();

            for (int i = 0; i < _checkboxItems.Count; i++)
            {
                var    option = _checkboxItems [i];
                string c      = "";
                if (option.IsChecked)
                {
                    c = c + "✓";                   // Is this terminal friendly?
                }
                else
                {
                    c = c + " ";
                }
                if (i == _cursorPosition && HasFocus)
                {
                    sbMenuUptions.AppendLine(context.Invert($"[{c}] {option.Text}"));
                }
                else
                {
                    sbMenuUptions.AppendLine($"[{c}] {option.Text}");
                }
            }

            var upper = Math.Max(0, _cursorPosition - (Region.Bottom - Region.Top) / 2);

            context.DrawText(new ConsoleGui.Drawing.Rect(
                                 Region.Left + 1,
                                 Region.Top + 1,
                                 Region.Right - 1,
                                 Region.Bottom - 1), sbMenuUptions.ToString(), false, false, upper);

            base.HandleRepaint(context);
        }