перетаскивание и шаблоны дизайна мыши? - PullRequest
2 голосов
/ 21 сентября 2009

Есть ли хорошо изученные шаблоны дизайна, связанные с перетаскиванием мышью и жестами? Рассмотрим холст, содержащий объекты в иерархии родитель-потомок с определенной компоновкой. Некоторые объекты можно перетаскивать на другие объекты с помощью мыши. Кроме того, объекты можно изменять и перемещать с помощью мыши.

Различные горячие точки на объектах ведут себя по-разному в зависимости от состояния пользователя (перетаскивание, выбор.) Для операции перетаскивания, некоторые элементы: 1) Визуальная обратная связь с пользователем для исходного объекта 2) Визуальная обратная связь с пользователем во время перетаскивания 3) Обнаружение области падения 4) Тесты на падение совместимости 5) Падение действия

Стандартные API имеют тенденцию объединять их в довольно монолитный код.

Кроме того, такие жесты, как перемещение и изменение размера, имеют определенные общие элементы: 1) Визуальная обратная связь с пользователем, когда мышь находится в области изменения размера / перемещения 2) Визуальная обратная связь во время операции перемещения / изменения размера 3) Завершение / отмена операции.

Вопрос в том, есть ли способ сделать это, который упростит код, разделит обязанности визуального уровня и уровня документа и, возможно, большую часть этого декларативного?

Например, для определения того, является ли точка под мышью целью выпадения, можно использовать некоторую форму тестирования попаданий в сочетании с шаблоном цепочки ответственности.

Я чувствую, что должны быть хорошие шаблоны проектирования, которые привносят дисциплину и организацию в эту, в противном случае, грязную проблему.

Приветствия

1 Ответ

1 голос
/ 22 сентября 2009

Чтобы ответить на мой собственный вопрос, во второй главе этой книги очень актуально обсуждение: http://www.amazon.com/gp/product/0596516258.

Однако, это все еще не так декларативно или хорошо продуманно, как хотелось бы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...