projects
/
naja.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
e85dd79
)
The world is invalid (sometimes, when desirable)
author
Neil
<neil@dip.sun.ac.za>
Sun, 11 May 2014 19:52:20 +0000
(21:52 +0200)
committer
Neil
<neil@dip.sun.ac.za>
Sun, 11 May 2014 19:52:20 +0000
(21:52 +0200)
naja/events.py
patch
|
blob
|
history
naja/widgets/base.py
patch
|
blob
|
history
diff --git
a/naja/events.py
b/naja/events.py
index 4d3fb07f80a94bc5502edfa048b3e0e017c80393..0e102edf9229d0de4fbdc327514e0b08046144c8 100644
(file)
--- a/
naja/events.py
+++ b/
naja/events.py
@@
-35,3
+35,13
@@
class QuitGameEvent(NajaEvent):
@classmethod
def post(cls):
super(QuitGameEvent, cls).post()
@classmethod
def post(cls):
super(QuitGameEvent, cls).post()
+
+
+class InvalidateTheWorld(NajaEvent):
+ # This is used to signal to all the widgets that the world has changed
+ # and cached state may need to be recreated
+ TYPE = "INVALIDATE"
+
+ @classmethod
+ def post(cls):
+ super(InvalidateTheWorld, cls).post()
diff --git
a/naja/widgets/base.py
b/naja/widgets/base.py
index bda00a4b755a4c91b8738096a003b6e40f65aac9..133cc532c2ae8fb0886117255decbba65f1e374c 100644
(file)
--- a/
naja/widgets/base.py
+++ b/
naja/widgets/base.py
@@
-1,4
+1,5
@@
import pygame
import pygame
+from naja.events import InvalidateTheWorld
class Widget(object):
class Widget(object):
@@
-27,6
+28,11
@@
class Widget(object):
def handle_event(self, ev):
'''Return True if the event has been handled'''
def handle_event(self, ev):
'''Return True if the event has been handled'''
+ if InvalidateTheWorld.matches(ev):
+ # Invalidate has special handling. Widgets should never return
+ # True for for this event
+ self._prepared = False
+ return False
return False
return False