Я пытаюсь создать полноэкранный минималистичный текстовый редактор (под минималистическим я подразумеваю наличие только мигающей каретки, черного фона, управления клавиатурой с помощью стрелок для перемещения по тексту, удаления клавиши Backspace и т. Д. И все). Я создал RenderWindow, у меня есть глобальный строковый буфер для текста, и я использую класс String2D для визуализации его на экране (я разрабатываю его в C # с использованием VC2010 и SFML .NET package).
По сути, я занимаюсь отловом нажатий клавиш, проверкой их нахождения букв, цифр или любых других письменных символов, полезных при написании, и добавлением или вычитанием их из строкового буфера, который постоянно отображается на экране с помощью отрисовки RenderWindow.
Теперь проблема в том, как мне реализовать правильное движение каретки, управляемое стрелками. Если кто-то хотел бы перемещаться по всему экрану текста, используя стрелки вниз / вверх / влево / вправо. Для перемещения влево / вправо в одной строке текста легко реализовать счетчик, чтобы узнать, после какого символа я должен повторить каретку. Тем не менее, в конечном итоге мне придется разбивать строки в тех местах, где заканчивается экран, и что тогда, как я могу правильно «обнаружить», где визуализировать каретку, если кто-то хочет пойти вниз или вверх, и как узнать, какая позиция в строке, потому что кто-то может добавить или удалить часть текста впоследствии. Или, может быть, мой подход совершенно не так? Пожалуйста, сообщите.