def __init__(self, mainwindow, inner_evb):
'''Initialise the Translator with the windows to which to listen'''
self._mainwindow = mainwindow
self._inner_evb = inner_evb
# Enable events
# (add instead of set here because the main window is already realized)
self._mainwindow.add_events(
Gdk.EventMask.KEY_PRESS_MASK | \
Gdk.EventMask.KEY_RELEASE_MASK \
)
self._inner_evb.set_events(
Gdk.EventMask.POINTER_MOTION_MASK | \
Gdk.EventMask.POINTER_MOTION_HINT_MASK | \
Gdk.EventMask.BUTTON_MOTION_MASK | \
Gdk.EventMask.BUTTON_PRESS_MASK | \
Gdk.EventMask.BUTTON_RELEASE_MASK
)
self._mainwindow.set_can_focus(True)
self._inner_evb.set_can_focus(True)
# Callback functions to link the event systems
self._mainwindow.connect('unrealize', self._quit_cb)
self._inner_evb.connect('key_press_event', self._keydown_cb)
self._inner_evb.connect('key_release_event', self._keyup_cb)
self._inner_evb.connect('button_press_event', self._mousedown_cb)
self._inner_evb.connect('button_release_event', self._mouseup_cb)
self._inner_evb.connect('motion-notify-event', self._mousemove_cb)
self._inner_evb.connect('draw', self._draw_cb)
self._inner_evb.connect('configure-event', self._resize_cb)
# Internal data
self.__stopped = False
self.__keystate = [0] * 323
self.__button_state = [0,0,0]
self.__mouse_pos = (0,0)
self.__repeat = (None, None)
self.__held = set()
self.__held_time_left = {}
self.__held_last_time = {}
self.__tick_id = None
评论列表
文章目录