Bugfix.
git-svn-id: https://svn.cri.ensmp.fr/svn/minwii/trunk@166
fe552daf-6dbe-4428-90eb-
1537e0879342
import pygame
from sys import modules
import pygame
from sys import modules
-events = ['TIMEOUT',
- 'NOTEON',
'NOTEOFF',
'NOTEEND',
'COLDOWN',
'NOTEOFF',
'NOTEEND',
'COLDOWN',
self = modules[__name__]
for i, name in enumerate(events) :
self = modules[__name__]
for i, name in enumerate(events) :
- eventType = pygame.USEREVENT+i
+ eventType = pygame.USEREVENT + 1 + i
eventNames[eventType] = name
setattr(self, name, eventType)
eventNames[eventType] = name
setattr(self, name, eventType)
-from events import TIMEOUT, COLOVER, eventNames
+from events import COLOVER, eventNames
from event_pprinters import pprinters
import sys
import pygame
from event_pprinters import pprinters
import sys
import pygame
hiddenEvents = {pygame.MOUSEMOTION:True,
pygame.MOUSEBUTTONDOWN:True,
pygame.MOUSEBUTTONUP:True,
hiddenEvents = {pygame.MOUSEMOTION:True,
pygame.MOUSEBUTTONDOWN:True,
pygame.MOUSEBUTTONUP:True,
\ No newline at end of file
\ No newline at end of file
+from threading import Thread
+import time
from eventutils import EventHandlerMixin, event_handler
from eventutils import EventHandlerMixin, event_handler
-from events import TIMEOUT
from itertools import cycle
class WarpingCursor(pygame.sprite.DirtySprite, EventHandlerMixin):
from itertools import cycle
class WarpingCursor(pygame.sprite.DirtySprite, EventHandlerMixin):
self.blinkMode = blinkMode
self._startBlink()
self.blinkMode = blinkMode
self._startBlink()
+ def __del__(self) :
+ if hasattr(self, 'timer') :
+ try : self.timer.stop()
+ except : pass
+
def _startBlink(self) :
if self.blinkMode :
self._blinking = True
def _startBlink(self) :
if self.blinkMode :
self._blinking = True
- pygame.time.set_timer(TIMEOUT, self.duration)
self.iterator = self.iterImages()
self.iterator = self.iterImages()
+ self.timer = ForeverTimer(self.duration, self.loadNext)
+ self.timer.start()
def _stopBlink(self) :
if self.blinkMode :
def _stopBlink(self) :
if self.blinkMode :
- pygame.time.set_timer(TIMEOUT, 0)
def iterImages(self) :
for img in cycle(self.images) :
yield img
def iterImages(self) :
for img in cycle(self.images) :
yield img
- @event_handler(TIMEOUT)
- def loadNext(self, event) :
if self._blinking :
self.dirty = 1
self.image = self.iterator.next()
if self._blinking :
self.dirty = 1
self.image = self.iterator.next()
self.dirty = 1
if self.blinkMode :
self._blinking = True
self.dirty = 1
if self.blinkMode :
self._blinking = True
else :
self.image = self.images[0]
else :
self.image = self.images[0]
x, y = pos
rx, ry = self.rect.centerx, self.rect.centery
self.rect.move_ip(x-rx, y-ry)
x, y = pos
rx, ry = self.rect.centerx, self.rect.centery
self.rect.move_ip(x-rx, y-ry)
+
+
+class ForeverTimer(Thread) :
+ def __init__(self, duration, func, *args, **kw) :
+ Thread.__init__(self)
+ self.duration = duration / 1000.
+ self.func = func
+ self.args = args
+ self.kw = kw
+ self.running = True
+
+ def run(self) :
+ while self.running :
+ self.func(*self.args, **self.kw)
+ time.sleep(self.duration)
+
+ def stop(self) :
+ self.running = False
\ No newline at end of file
EventDispatcher.dispatchEvents()
dirty = self.draw(pygame.display.get_surface())
pygame.display.update(dirty)
EventDispatcher.dispatchEvents()
dirty = self.draw(pygame.display.get_surface())
pygame.display.update(dirty)
def stop(self) :
self._running = False
def stop(self) :
self._running = False