Utilisation :
- hériter de EventHandlerMixin
- décorer les méthodes gestionnaires d'événements avec le décorateur 'event_handler'
- en passant en paramètre le code d'événement pygame
+ en passant en paramètre un ou plusieurs codes d'événement pygame
Il n'existe aucune contrainte sur le nommage de la méthode décorée.
La méthode gestionnaire d'événement reçoit l'événement pygame comme unique paramètre.
from StringIO import StringIO
from logging import getLogger, basicConfig, DEBUG
import sys
+from events import TIMEOUT, COLOVER, eventNames
basicConfig(level=DEBUG, stream = sys.stdout)
-console = getLogger('minwii.eventutils')
+console = getLogger('minwii')
+eventLog = getLogger('minwii.events')
+
+hiddenEvents = {pygame.MOUSEMOTION:True,
+ TIMEOUT:True,
+ #COLOVER:True,
+ }
+from event_pprinters import pprinters
class _EventDispatcher :
def __init__(self) :
def dispatchEvents(self) :
events = pygame.event.get()
for event in events :
- #if event.type == pygame.MOUSEMOTION :
- # if hasattr(event, 'wiimoteid') :
- # console.info(event)
- # #return
-
listeners = self.registry.get(event.type, {})
+ if listeners and not hiddenEvents.has_key(event.type) :
+ eventLog.info(pprinters[event.type](event))
for listener in listeners.keys() :
listener(event)
+
def reset(self) :
self.registry = {}
class EventHandlerMixin(object) :
__metaclass__ = EventInitializer
-
- #def input(self) :
- # event = pygame.event.wait()
- # handler = getattr(self, 'eventHandler%s' % event.type, lambda e:None)
- # handler(event)