LINUX.ORG.RU

Работа с курсором.


0

0

Есть графическое приложение. Пишется без использования каких-либо библиотек (ну кроме X-ов, конечно).

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

То-есть с точки зрения программы необходимо как-то "отвязать" логические координаты курсора от реальных на экране. Такое можно сделать стандартными средствами? Очень не хочется рисовать курсор в ручную.

★★★★

не совсем понятно.
если нужно внутри вашей программы иметь некие логические коордитаны. отличные от реальных, то зачем X-ы?

man Xcursor
?

anonymous
()

Несовсем ясно.

Чем не нравится стандартный подход - при MouseMove проверять координаты - пустить луч - искать пересечение с нужным логическим объектом - установить курсор на объект?

перемещать курсор - man XWarpPointer

burivuh
()
Ответ на: комментарий от burivuh

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

Не совсем понятно, существует-ли в Х-ах понятия логического и физического курсора и что именно перемещает XWarpPointer.

alexru ★★★★
() автор топика
Ответ на: комментарий от alexru

как-то ты сложно на вещи смотришь :)

Pi ★★★★★
()
Ответ на: комментарий от alexru

А не проще ли менять изображение курсора? По-моему, так все аналогичные программы и делают.

anonymous_incognito ★★★★★
()
Ответ на: комментарий от alexru

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

удачи!

lg ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.