Re[3]: Какова логика Undo?
От: orangy Россия
Дата: 27.05.05 08:49
Оценка: 12 (1)
Здравствуйте, VladD2, Вы писали:

S>>В редакторе Турбо Паскаля, когда ввели собсно Undo/Redo, была такая фича, как group together similar actions.

S>>Идея ее проста как грабли: все действия раскладываются по определенным группам (тайпинг, навигация, вставка, удаление); действия из одной группы, идущие подряд, трактуются как атом undo/redo. Имхо, ворд использует подобную технику.

VD>А как тогда понять, что Ворд при разбиении строк иногда склеивает анду (видимо когда строки короткие), а иногда нет?

Я думаю, что есть ряд правил, которые заставляют прервать накопление группы. Такими правилами могут быть:
1. В группе уже больше N команд
2. Пользователь сохранил файл
3. Пользователь ничего не делал 3 секунды (by Cyberax)
4. Нажатие специальных клавиш (ентер для разделения строк, пробел и знаки препинания для разделения слов), активация меню, манипуляции мышкой, переключение приложения и т.п.

Т.е. пока фокус пользователя (всмысле мозговой, а не клавиатурный) находится в приложении — группируем. Как только фокус пользователя потеряли — завершаем группу и начинаем новую. При этом для каждого типа действия могут быть свои правила "прерывания". Соответственно, в зависимости от своего приложения стоит разбить действия на типы, понять как пользователь ожидает undo/redo для данного типа, сформировать правила группировки и разбиения и реализовать

Если конкретно про Word — не знаю, но сами группы можно посмотреть в выпадающем меню кнопки undo, хотя уверен ты это знаешь
... << RSDN@Home 1.1.4 beta 7 rev. 456>>
"Develop with pleasure!"
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.