Ejemplo n.º 1
0
        protected override void InputTemplate(OffscreenBuffer screenBuffer)
        {
            screenBuffer.WritePrompt(_options.Message);
            screenBuffer.Write(new string('*', _inputBuffer.Length));

            screenBuffer.SetCursorPosition();
        }
Ejemplo n.º 2
0
        protected override void InputTemplate(OffscreenBuffer screenBuffer)
        {
            screenBuffer.WritePrompt(_message);
            screenBuffer.Write(_paginator.FilterTerm);

            if (string.IsNullOrEmpty(_paginator.FilterTerm))
            {
                screenBuffer.Write(" Hit space to select", Prompt.ColorSchema.Answer);
            }

            var subset = _paginator.ToSubset();

            foreach (var item in subset)
            {
                var value = _textSelector(item);

                screenBuffer.WriteLine();

                if (_paginator.TryGetSelectedItem(out var selectedItem) && EqualityComparer <T> .Default.Equals(item, selectedItem))
                {
                    if (_selectedItems.Contains(item))
                    {
                        screenBuffer.Write($"{Prompt.Symbols.Selector} {Prompt.Symbols.Selected} {value}", Prompt.ColorSchema.Select);
                    }
                    else
                    {
                        screenBuffer.Write($"{Prompt.Symbols.Selector} {Prompt.Symbols.NotSelect} {value}", Prompt.ColorSchema.Select);
                    }
                }
Ejemplo n.º 3
0
        public FormRenderer(IConsoleDriver consoleDriver, bool cursorVisible = true)
        {
            _consoleDriver = consoleDriver;
            _cursorVisible = cursorVisible;

            _offscreenBuffer = new OffscreenBuffer(_consoleDriver);
        }
Ejemplo n.º 4
0
        protected override void OnResize(EventArgs e)
        {
            OffscreenBuffer.TryReAllocateOffsceenBuffer();
            base.OnResize(e);

            if (BackgroundIImage != null)
            {
                BackgroundIImage = BackgroundIImage;
            }

            if (Canvas.Children.Count == 0)
            {
                return;
            }

            // resize is called whenever the control is moved or resized
            Size size = Size;

            if (size == _oldViewSize)
            {
                // the control was moved
                // this should mean that it was repositioned by the host
                // if the control has transparencies, invalidate it.
                //if (BackColor == Color.Transparent)
                //	Canvas.inva Invalidate();
            }
            else
            {
                _oldViewSize = size;

                // the control was resized for whatever reason
                // we must repaint everything.
                //sInvalidate();
            }
        }
Ejemplo n.º 5
0
        protected override void OnDeactivate(EventArgs e)
        {
            Text = SystemConfiguration.ApplicationName;

            base.OnDeactivate(e);

            OffscreenBuffer.ReleaseOffscreenBuffer();
        }
        public static void WriteInput(this OffscreenBuffer offscreenBuffer, TextInputBuffer textInputBuffer)
        {
            offscreenBuffer.Write(textInputBuffer.ToBackwardString());

            offscreenBuffer.PushCursor();

            offscreenBuffer.Write(textInputBuffer.ToForwardString());
        }
Ejemplo n.º 7
0
        protected override void FinishTemplate(OffscreenBuffer screenBuffer, T result)
        {
            screenBuffer.WriteFinish(_message);

            if (result != null)
            {
                screenBuffer.Write(result.ToString(), Prompt.ColorSchema.Answer);
            }
        }
Ejemplo n.º 8
0
        protected override void InputTemplate(OffscreenBuffer screenBuffer)
        {
            screenBuffer.WritePrompt(_message);
            screenBuffer.Write(_paginator.FilterTerm);

            var subset = _paginator.ToSubset();

            foreach (var item in subset)
            {
                var value = _valueSelector(item);

                screenBuffer.WriteLine();

                if (_paginator.TryGetSelectedItem(out var selectedItem) && EqualityComparer <T> .Default.Equals(item, selectedItem))
                {
                    screenBuffer.Write($"{Prompt.Symbols.Selector} {value}", Prompt.ColorSchema.Select);
                }
Ejemplo n.º 9
0
        protected override void InputTemplate(OffscreenBuffer screenBuffer)
        {
            screenBuffer.WritePrompt(_options.Message);

            if (_options.DefaultValue == null)
            {
                screenBuffer.Write("(y/n) ");
            }
            else if (_options.DefaultValue.Value)
            {
                screenBuffer.Write("(Y/n) ");
            }
            else
            {
                screenBuffer.Write("(y/N) ");
            }

            screenBuffer.SetCursorPosition();
        }
Ejemplo n.º 10
0
        protected override void InputTemplate(OffscreenBuffer screenBuffer)
        {
            screenBuffer.WritePrompt(_message);

            if (_defaultValue.HasValue)
            {
                screenBuffer.Write($"({_defaultValue.Value}) ");
            }

            var(left, top) = screenBuffer.GetCursorPosition();

            var input = _inputBuffer.ToString();

            screenBuffer.Write(input);

            var width = EastAsianWidth.GetWidth(input.Take(_startIndex)) + left;

            screenBuffer.SetCursorPosition(width % screenBuffer.BufferWidth, top + (width / screenBuffer.BufferWidth));
        }
Ejemplo n.º 11
0
        public override void Render(OffscreenBuffer buffer)
        {
            var p = 0;

            for (int y = 0; y < buffer.Height; y++)
            {
                for (int x = 0; x < buffer.Width; x++)
                {
                    buffer.Memory[p] = 255;
                    p++;

                    buffer.Memory[p] = 255;
                    p++;

                    buffer.Memory[p] = 0;
                    p++;

                    buffer.Memory[p] = 0;
                    p++;
                }
            }
        }
Ejemplo n.º 12
0
 protected override void FinishTemplate(OffscreenBuffer screenBuffer, string result)
 {
     screenBuffer.WriteFinish(_options.Message);
     screenBuffer.Write(new string('*', _inputBuffer.Length), Prompt.ColorSchema.Answer);
 }
Ejemplo n.º 13
0
 protected override void FinishTemplate(OffscreenBuffer screenBuffer, bool result)
 {
     screenBuffer.WriteFinish(_options.Message);
     screenBuffer.Write(result ? "Yes" : "No", Prompt.ColorSchema.Answer);
 }
 public static void WriteError(this OffscreenBuffer offscreenBuffer, string message)
 {
     offscreenBuffer.Write($"{Prompt.Symbols.Error} {message}", Prompt.ColorSchema.Error);
 }
Ejemplo n.º 15
0
 public static void ReleaseOffscreenBuffer()
 {
     OffscreenBuffer.ReleaseOffscreenBuffer(ref _offScreenBmp, ref _offScreenGraphics);
 }
Ejemplo n.º 16
0
 private static void TryReAllocateOffsceenBuffer()
 {
     OffscreenBuffer.TryReAllocateOffsceenBuffer(ref _offScreenBmp, ref _offScreenGraphics, Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
 }
Ejemplo n.º 17
0
 public FormRenderer(IConsoleDriver consoleDriver)
 {
     _offscreenBuffer = new OffscreenBuffer(consoleDriver);
 }
 public static void WriteAnswer(this OffscreenBuffer offscreenBuffer, string message)
 {
     offscreenBuffer.Write(message, Prompt.ColorSchema.Answer);
 }
Ejemplo n.º 19
0
 protected abstract void FinishTemplate(OffscreenBuffer screenBuffer, T result);
Ejemplo n.º 20
0
 protected abstract void InputTemplate(OffscreenBuffer screenBuffer);
 public static void WritePrompt(this OffscreenBuffer offscreenBuffer, string message)
 {
     offscreenBuffer.Write(Prompt.Symbols.Prompt, Prompt.ColorSchema.PromptSymbol);
     offscreenBuffer.Write($" {message}: ");
 }
 public static void WriteHint(this OffscreenBuffer offscreenBuffer, string message)
 {
     offscreenBuffer.Write(message, Prompt.ColorSchema.Hint);
 }