21.02.2013, 23:26
|
|
блогер
Регистрация: Feb 2006
Сообщений: 1,474
|
По идее, перед применением надо
- найти и запомнить все _концы_ и _начала_ применений стилей внутри изменяемого отрезка текста (стиль, индекс)
При применении
- запомнить куда вставили новые _начала_ и _концы_ стилей
При отмене
- удалить концы и начала по запомненным индексам
- вставить запомненные старые _концы_ и _начала_.
Проблема в том что, я не работал с TextArea и не знаю, как там обращаются со стилями и вообще бывают ли они вложенными, т.е. может там что-то другое нужно.
Если говорить о простом TextField и TextFormat - то там, похоже, при применении сканировать посимвольно, сравнивать форматы - если одинаковые для соседних символов - запоминать в виде [(format1, количество символов), (format2, ...],
а перед откатом заменить все null-вые поля объектов TextFormat на дефолтные - иначе не перетрут существующие.
Последний раз редактировалось expl; 21.02.2013 в 23:42.
|