annotate pyntnclick/engine.py @ 619:d9d1a9c4b833 pyntnclick

Add ScreenEvents.
author Simon Cross <hodgestar+bzr@gmail.com>
date Sat, 11 Feb 2012 21:40:36 +0200
parents cfc16ded7b34
children 660ef5793886
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
596
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
1 """Game engine and top-level game loop."""
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
2
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
3 import pygame
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
4 import pygame.event
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
5 import pygame.display
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
6 import pygame.time
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
7 from pygame.locals import QUIT, USEREVENT
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
8
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
9
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
10 class Engine(object):
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
11 def __init__(self, game_description):
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
12 self._screen = None
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
13 self._game_description = game_description
608
a25cd1c6335a Pass screens through engine by name
Neil Muller <neil@dip.sun.ac.za>
parents: 607
diff changeset
14 self.screens = {}
596
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
15
608
a25cd1c6335a Pass screens through engine by name
Neil Muller <neil@dip.sun.ac.za>
parents: 607
diff changeset
16 def set_screen(self, screen_name):
596
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
17 if self._screen is not None:
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
18 self._screen.on_exit()
612
cfc16ded7b34 Fix scene/screen confusion
Neil Muller <neil@dip.sun.ac.za>
parents: 608
diff changeset
19 self._screen = self.screens[screen_name]
596
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
20 if self._screen is not None:
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
21 self._screen.on_enter()
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
22
608
a25cd1c6335a Pass screens through engine by name
Neil Muller <neil@dip.sun.ac.za>
parents: 607
diff changeset
23 def add_screen(self, name, screen):
a25cd1c6335a Pass screens through engine by name
Neil Muller <neil@dip.sun.ac.za>
parents: 607
diff changeset
24 self.screens[name] = screen
a25cd1c6335a Pass screens through engine by name
Neil Muller <neil@dip.sun.ac.za>
parents: 607
diff changeset
25
596
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
26 def run(self):
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
27 """Game loop."""
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
28
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
29 get_events = pygame.event.get
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
30 flip = pygame.display.flip
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
31 clock = pygame.time.Clock()
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
32 while True:
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
33 events = get_events()
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
34 for ev in events:
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
35 if ev.type == QUIT:
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
36 return
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
37 elif ScreenChangeEvent.matches(ev):
608
a25cd1c6335a Pass screens through engine by name
Neil Muller <neil@dip.sun.ac.za>
parents: 607
diff changeset
38 self.set_screen(ev.screen_name)
619
d9d1a9c4b833 Add ScreenEvents.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 612
diff changeset
39 elif ScreenEvent.matches(ev):
d9d1a9c4b833 Add ScreenEvents.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 612
diff changeset
40 self.screens[ev.screen_name].process_event(ev.event_name,
d9d1a9c4b833 Add ScreenEvents.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 612
diff changeset
41 ev.data)
596
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
42 else:
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
43 self._screen.dispatch(ev)
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
44 surface = pygame.display.get_surface()
600
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
45 self._screen.draw(surface)
596
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
46 flip()
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
47 self._fps = 1000.0 / clock.tick(
600
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
48 self._game_description.constants.frame_rate)
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
49
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
50
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
51 class Screen(object):
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
52 """A top level object for the screen being displayed"""
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
53
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
54 def __init__(self, game_description):
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
55 # Avoid import loop
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
56 from pyntnclick.widgets.base import Container
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
57
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
58 self.game_description = game_description
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
59 self.resource = game_description.resource
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
60
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
61 self.surface_size = game_description.constants.screen
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
62 self.surface = None
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
63 self.container = Container(pygame.Rect((0, 0), self.surface_size))
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
64 self.setup()
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
65
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
66 def on_enter(self):
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
67 """Called when this becomes the current screen."""
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
68 # Create the surface here as flipping between editor and
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
69 # other things kills pygame.display
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
70 self.surface = pygame.Surface(self.surface_size)
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
71
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
72 def on_exit(self):
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
73 """Called when this stops being the current screen."""
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
74 self.surface = None
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
75
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
76 def setup(self):
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
77 """Override for initialization"""
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
78 pass
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
79
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
80 def dispatch(self, ev):
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
81 self.container.event(ev)
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
82
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
83 def draw_background(self):
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
84 self.surface.fill(pygame.Color('gray'))
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
85
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
86 def draw(self, surface):
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
87 if self.surface:
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
88 self.draw_background()
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
89 self.container.draw(self.surface)
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
90 surface.blit(self.surface, self.surface.get_rect())
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
91
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
92 def display_dialog(self, dialog):
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
93 self.container.paused = True
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
94 self.container.add(dialog)
fabce47e542f Stop using albow (at least for the menu). Breaks the world. Please fix it, kthx
Stefano Rivera <stefano@rivera.za.net>
parents: 596
diff changeset
95 dialog.grab_focus()
596
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
96
608
a25cd1c6335a Pass screens through engine by name
Neil Muller <neil@dip.sun.ac.za>
parents: 607
diff changeset
97 def change_screen(self, new_screen_name):
a25cd1c6335a Pass screens through engine by name
Neil Muller <neil@dip.sun.ac.za>
parents: 607
diff changeset
98 ScreenChangeEvent.post(new_screen_name)
607
f2b1ddcc4986 Make menu and endscreen work.
Jeremy Thurgood <firxen@gmail.com>
parents: 600
diff changeset
99
619
d9d1a9c4b833 Add ScreenEvents.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 612
diff changeset
100 def screen_event(self, screen_name, event_name, data=None):
d9d1a9c4b833 Add ScreenEvents.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 612
diff changeset
101 ScreenEvent.post(screen_name, event_name, data)
d9d1a9c4b833 Add ScreenEvents.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 612
diff changeset
102
d9d1a9c4b833 Add ScreenEvents.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 612
diff changeset
103 def process_event(self, event_name, data):
d9d1a9c4b833 Add ScreenEvents.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 612
diff changeset
104 pass
d9d1a9c4b833 Add ScreenEvents.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 612
diff changeset
105
596
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
106
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
107 class UserEvent(object):
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
108 """A user event type allowing subclassing,
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
109 to provide an infinate number of user-defined events
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
110 """
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
111
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
112 TYPE = "UNKNOWN"
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
113
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
114 @classmethod
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
115 def post(cls, **kws):
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
116 ev = pygame.event.Event(USEREVENT, utype=cls.TYPE, **kws)
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
117 pygame.event.post(ev)
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
118
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
119 @classmethod
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
120 def matches(cls, ev):
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
121 return ev.type == USEREVENT and ev.utype == cls.TYPE
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
122
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
123
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
124 class ScreenChangeEvent(UserEvent):
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
125
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
126 TYPE = "SCREEN_CHANGE"
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
127
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
128 @classmethod
608
a25cd1c6335a Pass screens through engine by name
Neil Muller <neil@dip.sun.ac.za>
parents: 607
diff changeset
129 def post(cls, screen_name):
a25cd1c6335a Pass screens through engine by name
Neil Muller <neil@dip.sun.ac.za>
parents: 607
diff changeset
130 super(ScreenChangeEvent, cls).post(screen_name=screen_name)
619
d9d1a9c4b833 Add ScreenEvents.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 612
diff changeset
131
d9d1a9c4b833 Add ScreenEvents.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 612
diff changeset
132
d9d1a9c4b833 Add ScreenEvents.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 612
diff changeset
133 class ScreenEvent(UserEvent):
d9d1a9c4b833 Add ScreenEvents.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 612
diff changeset
134
d9d1a9c4b833 Add ScreenEvents.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 612
diff changeset
135 TYPE = "SCREEN_EVENT"
d9d1a9c4b833 Add ScreenEvents.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 612
diff changeset
136
d9d1a9c4b833 Add ScreenEvents.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 612
diff changeset
137 @classmethod
d9d1a9c4b833 Add ScreenEvents.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 612
diff changeset
138 def post(cls, screen_name, event_name, data):
d9d1a9c4b833 Add ScreenEvents.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 612
diff changeset
139 super(ScreenEvent, cls).post(screen_name=screen_name,
d9d1a9c4b833 Add ScreenEvents.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 612
diff changeset
140 event_name=event_name, data=data)