Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugargame/event.py
diff options
context:
space:
mode:
Diffstat (limited to 'sugargame/event.py')
-rw-r--r--sugargame/event.py69
1 files changed, 37 insertions, 32 deletions
diff --git a/sugargame/event.py b/sugargame/event.py
index f6a69b9..d4c84e4 100644
--- a/sugargame/event.py
+++ b/sugargame/event.py
@@ -1,13 +1,14 @@
-from gi.repository import Gtk
from gi.repository import Gdk
from gi.repository import GObject
import pygame
import pygame.event
+
class _MockEvent(object):
def __init__(self, keyval):
self.keyval = keyval
+
class Translator(object):
key_trans = {
'Alt_L': pygame.K_LALT,
@@ -18,14 +19,14 @@ class Translator(object):
'Shift_R': pygame.K_RSHIFT,
'Super_L': pygame.K_LSUPER,
'Super_R': pygame.K_RSUPER,
- 'KP_Page_Up' : pygame.K_KP9,
- 'KP_Page_Down' : pygame.K_KP3,
- 'KP_End' : pygame.K_KP1,
- 'KP_Home' : pygame.K_KP7,
- 'KP_Up' : pygame.K_KP8,
- 'KP_Down' : pygame.K_KP2,
- 'KP_Left' : pygame.K_KP4,
- 'KP_Right' : pygame.K_KP6,
+ 'KP_Page_Up': pygame.K_KP9,
+ 'KP_Page_Down': pygame.K_KP3,
+ 'KP_End': pygame.K_KP1,
+ 'KP_Home': pygame.K_KP7,
+ 'KP_Up': pygame.K_KP8,
+ 'KP_Down': pygame.K_KP2,
+ 'KP_Left': pygame.K_KP4,
+ 'KP_Right': pygame.K_KP6,
}
@@ -46,16 +47,16 @@ class Translator(object):
# 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 | \
+ Gdk.EventMask.KEY_PRESS_MASK |
+ Gdk.EventMask.KEY_RELEASE_MASK |
Gdk.EventMask.VISIBILITY_NOTIFY_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.POINTER_MOTION_MASK |
+ Gdk.EventMask.POINTER_MOTION_HINT_MASK |
+ Gdk.EventMask.BUTTON_MOTION_MASK |
+ Gdk.EventMask.BUTTON_PRESS_MASK |
Gdk.EventMask.BUTTON_RELEASE_MASK
)
@@ -77,8 +78,8 @@ class Translator(object):
# Internal data
self.__stopped = False
self.__keystate = [0] * 323
- self.__button_state = [0,0,0]
- self.__mouse_pos = (0,0)
+ self.__button_state = [0, 0, 0]
+ self.__mouse_pos = (0, 0)
self.__repeat = (None, None)
self.__held = set()
self.__held_time_left = {}
@@ -100,10 +101,11 @@ class Translator(object):
return True
def _resize_cb(self, widget, event):
- evt = pygame.event.Event(pygame.VIDEORESIZE,
- size=(event.width,event.height), width=event.width, height=event.height)
+ evt = pygame.event.Event(pygame.VIDEORESIZE,
+ size=(event.width, event.height),
+ width=event.width, height=event.height)
pygame.event.post(evt)
- return False # continue processing
+ return False # continue processing
def _screen_changed_cb(self, widget, previous_screen):
if pygame.display.get_init():
@@ -134,7 +136,8 @@ class Translator(object):
key = event.keyval
if self.__repeat[0] is not None:
if key in self.__held:
- # This is possibly false if set_repeat() is called with a key held
+ # This is possibly false if set_repeat()
+ # is called with a key held
del self.__held_time_left[key]
del self.__held_last_time[key]
self.__held.discard(key)
@@ -151,15 +154,15 @@ class Translator(object):
key = Gdk.keyval_name(event.keyval)
if key is None:
# No idea what this key is.
- return False
+ return False
keycode = None
if key in self.key_trans:
keycode = self.key_trans[key]
- elif hasattr(pygame, 'K_'+key.upper()):
- keycode = getattr(pygame, 'K_'+key.upper())
- elif hasattr(pygame, 'K_'+key.lower()):
- keycode = getattr(pygame, 'K_'+key.lower())
+ elif hasattr(pygame, 'K_' + key.upper()):
+ keycode = getattr(pygame, 'K_' + key.upper())
+ elif hasattr(pygame, 'K_' + key.lower()):
+ keycode = getattr(pygame, 'K_' + key.lower())
elif key == 'XF86Start':
# view source request, specially handled...
self._mainwindow.view_source()
@@ -187,21 +190,22 @@ class Translator(object):
return self.__button_state
def _mousedown_cb(self, widget, event):
- self.__button_state[event.button-1] = 1
+ self.__button_state[event.button - 1] = 1
return self._mouseevent(widget, event, pygame.MOUSEBUTTONDOWN)
def _mouseup_cb(self, widget, event):
- self.__button_state[event.button-1] = 0
+ self.__button_state[event.button - 1] = 0
return self._mouseevent(widget, event, pygame.MOUSEBUTTONUP)
def _mouseevent(self, widget, event, type):
- evt = pygame.event.Event(type, button=event.button, pos=(event.x, event.y))
+ evt = pygame.event.Event(type, button=event.button, pos=(event.x,
+ event.y))
self._post(evt)
return True
def _mousemove_cb(self, widget, event):
# From http://www.learningpython.com/2006/07/25/writing-a-custom-widget-using-pygtk/
- # if this is a hint, then let's get all the necessary
+ # if this is a hint, then let's get all the necessary
# information, if not it's all we need.
if event.is_hint:
win, x, y, state = event.window.get_device_position(event.device)
@@ -220,14 +224,15 @@ class Translator(object):
]
evt = pygame.event.Event(pygame.MOUSEMOTION,
- pos=self.__mouse_pos, rel=rel, buttons=self.__button_state)
+ pos=self.__mouse_pos, rel=rel,
+ buttons=self.__button_state)
self._post(evt)
return True
def _tick_cb(self):
cur_time = pygame.time.get_ticks()
for key in self.__held:
- delta = cur_time - self.__held_last_time[key]
+ delta = cur_time - self.__held_last_time[key]
self.__held_last_time[key] = cur_time
self.__held_time_left[key] -= delta