from gi.repository import Gdk, Gtk
from gaphas.cursor import cursor
from gaphas.tool.itemtool import find_item_and_handle_at_point
from gaphas.view import GtkView
def on_motion(ctrl, x, y):
view = ctrl.get_widget()
pos = (x, y)
item, handle = find_item_and_handle_at_point(view, pos)
view.selection.hovered_item = item
if item:
v2i = view.get_matrix_v2i(item)
pos = v2i.transform_point(x, y)
set_cursor(view, cursor(item, handle, pos))
def set_cursor(view, cursor_name):
if Gtk.get_major_version() == 3:
display = view.get_display()
cursor = Gdk.Cursor.new_from_name(display, cursor_name)
view.get_window().set_cursor(cursor)
else:
cursor = Gdk.Cursor.new_from_name(cursor_name)
view.set_cursor(cursor)