diff options
Diffstat (limited to 'sugargame/event.py')
-rw-r--r-- | sugargame/event.py | 45 |
1 files changed, 23 insertions, 22 deletions
diff --git a/sugargame/event.py b/sugargame/event.py index 4cc3be8..431a600 100644 --- a/sugargame/event.py +++ b/sugargame/event.py @@ -1,5 +1,6 @@ -import gtk -import gobject +from gi.repository import Gtk +from gi.repository import Gdk +from gi.repository import GObject import pygame import pygame.event import logging @@ -46,20 +47,20 @@ class Translator(object): # Enable events # (add instead of set here because the main window is already realized) self._mainwindow.add_events( - gtk.gdk.KEY_PRESS_MASK | \ - gtk.gdk.KEY_RELEASE_MASK \ + Gdk.EventMask.KEY_PRESS_MASK | \ + Gdk.EventMask.KEY_RELEASE_MASK \ ) self._inner_evb.set_events( - gtk.gdk.POINTER_MOTION_MASK | \ - gtk.gdk.POINTER_MOTION_HINT_MASK | \ - gtk.gdk.BUTTON_MOTION_MASK | \ - gtk.gdk.BUTTON_PRESS_MASK | \ - gtk.gdk.BUTTON_RELEASE_MASK + 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_flags(gtk.CAN_FOCUS) - self._inner_evb.set_flags(gtk.CAN_FOCUS) + 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) @@ -68,7 +69,7 @@ class Translator(object): 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('expose-event', self._expose_cb) + self._inner_evb.connect('draw', self._draw_cb) self._inner_evb.connect('configure-event', self._resize_cb) # Internal data @@ -88,7 +89,7 @@ class Translator(object): pygame.mouse.get_pressed = self._get_mouse_pressed pygame.mouse.get_pos = self._get_mouse_pos - def _expose_cb(self, event, widget): + def _draw_cb(self, widget, event): if pygame.display.get_init(): pygame.event.post(pygame.event.Event(pygame.VIDEOEXPOSE)) return True @@ -133,7 +134,7 @@ class Translator(object): return mod def _keyevent(self, widget, event, type): - key = gtk.gdk.keyval_name(event.keyval) + key = Gdk.keyval_name(event.keyval) if key is None: # No idea what this key is. return False @@ -157,7 +158,7 @@ class Translator(object): self.__keystate[keycode] = type == pygame.KEYDOWN if type == pygame.KEYUP: mod = self._keymods() - ukey = unichr(gtk.gdk.keyval_to_unicode(event.keyval)) + ukey = unichr(Gdk.keyval_to_unicode(event.keyval)) if ukey == '\000': ukey = '' evt = pygame.event.Event(type, key=keycode, unicode=ukey, mod=mod) @@ -189,19 +190,19 @@ class Translator(object): # if this is a hint, then let's get all the necessary # information, if not it's all we need. if event.is_hint: - x, y, state = event.window.get_pointer() + win, x, y, state = event.window.get_device_position(event.device) else: x = event.x y = event.y - state = event.state + state = event.get_state() rel = (x - self.__mouse_pos[0], y - self.__mouse_pos[1]) self.__mouse_pos = (x, y) self.__button_state = [ - state & gtk.gdk.BUTTON1_MASK and 1 or 0, - state & gtk.gdk.BUTTON2_MASK and 1 or 0, - state & gtk.gdk.BUTTON3_MASK and 1 or 0, + state & Gdk.ModifierType.BUTTON1_MASK and 1 or 0, + state & Gdk.ModifierType.BUTTON2_MASK and 1 or 0, + state & Gdk.ModifierType.BUTTON3_MASK and 1 or 0, ] evt = pygame.event.Event(pygame.MOUSEMOTION, @@ -224,9 +225,9 @@ class Translator(object): def _set_repeat(self, delay=None, interval=None): if delay is not None and self.__repeat[0] is None: - self.__tick_id = gobject.timeout_add(10, self._tick_cb) + self.__tick_id = GObject.timeout_add(10, self._tick_cb) elif delay is None and self.__repeat[0] is not None: - gobject.source_remove(self.__tick_id) + GObject.source_remove(self.__tick_id) self.__repeat = (delay, interval) def _get_mouse_pos(self): |