Я разрабатываю текстовый редактор для редактирования сценариев фильма, чтобы развлечься и попытаться узнать кое-что о дизайне пользовательского интерфейса низкого уровня. Формат сценария довольно прост и по давним стандартам написан исключительно в 12pt курьером. Поэтому у меня сложилось впечатление, что разработка редактора была бы довольно простой, имея только один шрифт и размер шрифта без специального форматирования.
Я заинтересован в сохранении семантической информации - например, я хочу, чтобы заголовок сцены сохранялся как заголовок сцены, а не только как текст, отформатированный как заголовок сцены.
Приложение дополнительно усложняется отслеживанием изменений, требуемым в сценариях. Дополнительные страницы должны иметь информацию о редакции вверху, поэтому документ должен храниться в виде набора страниц с соответствующей информацией, идентифицирующей редакции.
Кажется, имеет смысл сохранить документ как отдельный объект от представления, а затем вызвать методы объекта документа для добавления текста и т. Д. На основе ввода в представление. Однако какой объект отвечает за нумерацию страниц? На первый взгляд, я бы сказал, что документ, но нумерация страниц выглядит как презентация. Для документа также не имеет смысла использовать API графического текста для измерения строк и определения того, сколько места они занимают. Однако, если это зависело от представления, это теоретически может вступить в конфликт с тем, как оно было сохранено в документе. Так что будет лучшим решением?
У меня большой опыт в программировании, но я не имел ничего общего с мелочами рисования собственных пользовательских элементов управления с нуля. Я также сознательно избегал привязывать это к определенному языку, но я бы, скорее всего, писал на C # или C ++.
Спасибо за ваше время.