|
|
|
@ -1,5 +1,6 @@
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.IO.Compression;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
@ -50,6 +51,11 @@ namespace ConsoleApp.Menu.Core
|
|
|
|
|
if (!WriteMode && cki.Key == ConsoleKey.R)
|
|
|
|
|
{
|
|
|
|
|
EnableWriteMode();
|
|
|
|
|
if (CurrentSelected is null)
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
InputStr.Append(CurrentSelected.Input);
|
|
|
|
|
CurrentSelected.Input = "";
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -66,9 +72,9 @@ namespace ConsoleApp.Menu.Core
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (cki.Key == ConsoleKey.Backspace && InputStr.Length > 0)
|
|
|
|
|
if (cki.Key == ConsoleKey.Backspace)
|
|
|
|
|
{
|
|
|
|
|
InputStr.Remove(InputStr.Length - 1, 1);
|
|
|
|
|
if (InputStr.Length > 0) InputStr.Remove(InputStr.Length - 1, 1);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -88,6 +94,9 @@ namespace ConsoleApp.Menu.Core
|
|
|
|
|
|
|
|
|
|
public override void Display()
|
|
|
|
|
{
|
|
|
|
|
StringBuilder displayItem = new StringBuilder();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
_screenDisplay.Clear();
|
|
|
|
|
Console.Clear();
|
|
|
|
|
|
|
|
|
@ -96,27 +105,45 @@ namespace ConsoleApp.Menu.Core
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < _selectList.Count; i++)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
if (_selectList[i].Item.Hidden)
|
|
|
|
|
for (int _ = 0; _ < _selectList[i].Item.Input.Length; _++)
|
|
|
|
|
displayItem.Append('*');
|
|
|
|
|
else
|
|
|
|
|
displayItem.Append(_selectList[i].Item.Input);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (CurrentLine == i)
|
|
|
|
|
{
|
|
|
|
|
if (WriteMode)
|
|
|
|
|
_screenDisplay.Append($"W ");
|
|
|
|
|
else
|
|
|
|
|
_screenDisplay.Append($"> ");
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
_screenDisplay.Append($" ");
|
|
|
|
|
|
|
|
|
|
_screenDisplay.Append($"{_selectList[i].Line} {_selectList[i].Item.Input}");
|
|
|
|
|
_screenDisplay.Append($"{_selectList[i].Line} {displayItem}");
|
|
|
|
|
|
|
|
|
|
if (CurrentLine == i && WriteMode)
|
|
|
|
|
_screenDisplay.Append(InputStr);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (CurrentLine == i && WriteMode)
|
|
|
|
|
{
|
|
|
|
|
if (_selectList[i].Item.Hidden)
|
|
|
|
|
for (int _ = 0; _ < InputStr.Length; _++) _screenDisplay.Append('*');
|
|
|
|
|
else
|
|
|
|
|
_screenDisplay.Append(InputStr);
|
|
|
|
|
}
|
|
|
|
|
_screenDisplay.AppendLine();
|
|
|
|
|
displayItem.Clear();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (_selectList.Count == 0)
|
|
|
|
|
_screenDisplay.AppendLine("Empty...");
|
|
|
|
|
|
|
|
|
|
_screenDisplay.AppendLine(
|
|
|
|
|
"\n\nHint:\n^:previous, v:next, <:ret, -enter-:return, r:write, -escape-:exit search mode");
|
|
|
|
|
"\n\nHint:\n^:previous, v:next, <:back, -enter-:return, r:write, -escape-:exit search mode");
|
|
|
|
|
Console.WriteLine(_screenDisplay);
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|