private static bool InterpretorOnCursorMove(IInterpretor sender, ICursorInformation args) { var orgPosition = (Console.CursorLeft, Console.CursorTop); if (args.OldCursorPosition.HasValue && args.OldCursorPosition.Value >= 0) { Console.SetCursorPosition(0, args.OldCursorPosition.Value); WriteMenuItem(' ' + sender.GetMenu().ElementAt(args.OldCursorPosition.Value)?.TrimStart(), sender as Interpretor); } if (args.NewCursorPosition.HasValue && args.NewCursorPosition.Value >= 0) { Console.SetCursorPosition(0, args.NewCursorPosition.Value); WriteMenuItem('>' + sender.GetMenu().ElementAt(args.NewCursorPosition.Value)?.TrimStart(), sender as Interpretor); } Console.SetCursorPosition(orgPosition.CursorLeft, orgPosition.CursorTop); return(false); //handled }
public ICursorNavigation CreateCursorNavigation(ICursorInformation information) => new CursorNavigation(information, this._consoleInformation);