event.py 文件源码

python
阅读 39 收藏 0 点赞 0 评论 0

项目:math-hurdler 作者: craigcabrey 项目源码 文件源码
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
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号