protected override void InputTemplate(OffscreenBuffer screenBuffer) { screenBuffer.WritePrompt(_options.Message); screenBuffer.Write(new string('*', _inputBuffer.Length)); screenBuffer.SetCursorPosition(); }
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); } }
public FormRenderer(IConsoleDriver consoleDriver, bool cursorVisible = true) { _consoleDriver = consoleDriver; _cursorVisible = cursorVisible; _offscreenBuffer = new OffscreenBuffer(_consoleDriver); }
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(); } }
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()); }
protected override void FinishTemplate(OffscreenBuffer screenBuffer, T result) { screenBuffer.WriteFinish(_message); if (result != null) { screenBuffer.Write(result.ToString(), Prompt.ColorSchema.Answer); } }
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); }
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(); }
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)); }
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++; } } }
protected override void FinishTemplate(OffscreenBuffer screenBuffer, string result) { screenBuffer.WriteFinish(_options.Message); screenBuffer.Write(new string('*', _inputBuffer.Length), Prompt.ColorSchema.Answer); }
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); }
public static void ReleaseOffscreenBuffer() { OffscreenBuffer.ReleaseOffscreenBuffer(ref _offScreenBmp, ref _offScreenGraphics); }
private static void TryReAllocateOffsceenBuffer() { OffscreenBuffer.TryReAllocateOffsceenBuffer(ref _offScreenBmp, ref _offScreenGraphics, Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height); }
public FormRenderer(IConsoleDriver consoleDriver) { _offscreenBuffer = new OffscreenBuffer(consoleDriver); }
public static void WriteAnswer(this OffscreenBuffer offscreenBuffer, string message) { offscreenBuffer.Write(message, Prompt.ColorSchema.Answer); }
protected abstract void FinishTemplate(OffscreenBuffer screenBuffer, T result);
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); }