Дескрипторы графического преобразования в Haskell

Я экспериментирую с созданием графических и графических приложений в Haskell, используя gtk2hs и cairo. В настоящее время я работаю над программой, в которой пользователь может создавать и манипулировать простыми геометрическими фигурами на экране.

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

введите здесь описание изображения

(т.е. когда объект можно перемещать, перетаскивая куда-нибудь внутри него, масштабировать, перетаскивая соответствующий белый прямоугольник, и поворачивать, щелкая и перетаскивая в направлении вращения за пределы поля объекта)

Я не могу найти простой способ сделать это «из коробки» ни в документации gtk, ни в документации cairo, и не смог найти подходящую библиотеку, выполнив поиск в google. Кто-нибудь знает о Haskell API, который позволил бы мне манипулировать графикой таким образом, или, в противном случае, знает, как я буду реализовывать свою собственную версию этого типа функций в Haskell?


person Craig Innes    schedule 15.07.2013    source источник


Ответы (1)


Для этого нет встроенных виджетов; вам придется построить его самостоятельно, нарисовав все соответствующие элементы (например, фактическую форму, ограничивающую рамку или что-то подобное, прямоугольники на углах и краях ограничивающей рамки и т. д.) и обработав события мыши, проверив, падают ли события на эти элементы или нет. Это не должно быть сложно... хотя это может быть немного утомительно.

person Daniel Wagner    schedule 15.07.2013