annotate pyntnclick/engine.py @ 800:374d96e0b55e pyntnclick

pep8/pyflakes fixes.
author Jeremy Thurgood <firxen@gmail.com>
date Sun, 27 Jan 2013 13:42:58 +0200
parents 363b603794f5
children bcc9277a23e6
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
629
660ef5793886 Remove albow from sound
Neil Muller <neil@dip.sun.ac.za>
parents: 619
diff changeset
9 # We can't do this via our usual UserEvent trickey
660ef5793886 Remove albow from sound
Neil Muller <neil@dip.sun.ac.za>
parents: 619
diff changeset
10 # as it gets generated by pygame.music, which only
660ef5793886 Remove albow from sound
Neil Muller <neil@dip.sun.ac.za>
parents: 619
diff changeset
11 # takes an event type
660ef5793886 Remove albow from sound
Neil Muller <neil@dip.sun.ac.za>
parents: 619
diff changeset
12 MUSIC_ENDED = USEREVENT + 1
660ef5793886 Remove albow from sound
Neil Muller <neil@dip.sun.ac.za>
parents: 619
diff changeset
13
596
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
14
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
15 class Engine(object):
639
fdc63049b08c Add game_description to the widgets,, since it looks a useful thing to do
Neil Muller <neil@dip.sun.ac.za>
parents: 629
diff changeset
16 def __init__(self, gd):
596
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
17 self._screen = None
639
fdc63049b08c Add game_description to the widgets,, since it looks a useful thing to do
Neil Muller <neil@dip.sun.ac.za>
parents: 629
diff changeset
18 self._gd = gd
608
a25cd1c6335a Pass screens through engine by name
Neil Muller <neil@dip.sun.ac.za>
parents: 607
diff changeset
19 self.screens = {}
596
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
20
608
a25cd1c6335a Pass screens through engine by name
Neil Muller <neil@dip.sun.ac.za>
parents: 607
diff changeset
21 def set_screen(self, screen_name):
596
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
22 if self._screen is not None:
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
23 self._screen.on_exit()
612
cfc16ded7b34 Fix scene/screen confusion
Neil Muller <neil@dip.sun.ac.za>
parents: 608
diff changeset
24 self._screen = self.screens[screen_name]
596
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
25 if self._screen is not None:
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
26 self._screen.on_enter()
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
27
608
a25cd1c6335a Pass screens through engine by name
Neil Muller <neil@dip.sun.ac.za>
parents: 607
diff changeset
28 def add_screen(self, name, screen):
a25cd1c6335a Pass screens through engine by name
Neil Muller <neil@dip.sun.ac.za>
parents: 607
diff changeset
29 self.screens[name] = screen
a25cd1c6335a Pass screens through engine by name
Neil Muller <neil@dip.sun.ac.za>
parents: 607
diff changeset
30
596
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
31 def run(self):
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
32 """Game loop."""
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
33
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
34 get_events = pygame.event.get
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
35 flip = pygame.display.flip
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
36 clock = pygame.time.Clock()
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
37 while True:
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
38 events = get_events()
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
39 for ev in events:
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
40 if ev.type == QUIT:
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
41 return
629
660ef5793886 Remove albow from sound
Neil Muller <neil@dip.sun.ac.za>
parents: 619
diff changeset
42 elif ev.type == MUSIC_ENDED:
639
fdc63049b08c Add game_description to the widgets,, since it looks a useful thing to do
Neil Muller <neil@dip.sun.ac.za>
parents: 629
diff changeset
43 self._gd.sound.music_ended()
596
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
44 elif ScreenChangeEvent.matches(ev):
608
a25cd1c6335a Pass screens through engine by name
Neil Muller <neil@dip.sun.ac.za>
parents: 607
diff changeset
45 self.set_screen(ev.screen_name)
619
d9d1a9c4b833 Add ScreenEvents.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 612
diff changeset
46 elif ScreenEvent.matches(ev):
d9d1a9c4b833 Add ScreenEvents.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 612
diff changeset
47 self.screens[ev.screen_name].process_event(ev.event_name,
d9d1a9c4b833 Add ScreenEvents.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 612
diff changeset
48 ev.data)
596
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
49 else:
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
50 self._screen.dispatch(ev)
659
363b603794f5 Re-add animations (and also fix some enter/leave event stuff)
Neil Muller <neil@dip.sun.ac.za>
parents: 639
diff changeset
51 # Ping the screen / scene
363b603794f5 Re-add animations (and also fix some enter/leave event stuff)
Neil Muller <neil@dip.sun.ac.za>
parents: 639
diff changeset
52 self._screen.animate()
596
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
53 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
54 self._screen.draw(surface)
596
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
55 flip()
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
56 self._fps = 1000.0 / clock.tick(
639
fdc63049b08c Add game_description to the widgets,, since it looks a useful thing to do
Neil Muller <neil@dip.sun.ac.za>
parents: 629
diff changeset
57 self._gd.constants.frame_rate)
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
58
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
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 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
61 """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
62
639
fdc63049b08c Add game_description to the widgets,, since it looks a useful thing to do
Neil Muller <neil@dip.sun.ac.za>
parents: 629
diff changeset
63 def __init__(self, gd):
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
64 # 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
65 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
66
639
fdc63049b08c Add game_description to the widgets,, since it looks a useful thing to do
Neil Muller <neil@dip.sun.ac.za>
parents: 629
diff changeset
67 self.gd = gd
fdc63049b08c Add game_description to the widgets,, since it looks a useful thing to do
Neil Muller <neil@dip.sun.ac.za>
parents: 629
diff changeset
68 self.resource = gd.resource
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
69
639
fdc63049b08c Add game_description to the widgets,, since it looks a useful thing to do
Neil Muller <neil@dip.sun.ac.za>
parents: 629
diff changeset
70 self.surface_size = gd.constants.screen
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
71 self.surface = None
800
374d96e0b55e pep8/pyflakes fixes.
Jeremy Thurgood <firxen@gmail.com>
parents: 659
diff changeset
72 self.container = Container(pygame.Rect((0, 0), self.surface_size),
639
fdc63049b08c Add game_description to the widgets,, since it looks a useful thing to do
Neil Muller <neil@dip.sun.ac.za>
parents: 629
diff changeset
73 self.gd)
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
74 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
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 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
77 """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
78 # 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
79 # 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
80 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
81
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 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
83 """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
84 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
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 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
87 """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
88 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
89
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 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
91 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
92
659
363b603794f5 Re-add animations (and also fix some enter/leave event stuff)
Neil Muller <neil@dip.sun.ac.za>
parents: 639
diff changeset
93 def animate(self):
363b603794f5 Re-add animations (and also fix some enter/leave event stuff)
Neil Muller <neil@dip.sun.ac.za>
parents: 639
diff changeset
94 """Called every tick - used for peroidic events, etc.
363b603794f5 Re-add animations (and also fix some enter/leave event stuff)
Neil Muller <neil@dip.sun.ac.za>
parents: 639
diff changeset
95
363b603794f5 Re-add animations (and also fix some enter/leave event stuff)
Neil Muller <neil@dip.sun.ac.za>
parents: 639
diff changeset
96 Interested classes are expected to override this"""
363b603794f5 Re-add animations (and also fix some enter/leave event stuff)
Neil Muller <neil@dip.sun.ac.za>
parents: 639
diff changeset
97 pass
363b603794f5 Re-add animations (and also fix some enter/leave event stuff)
Neil Muller <neil@dip.sun.ac.za>
parents: 639
diff changeset
98
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
99 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
100 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
101
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
102 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
103 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
104 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
105 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
106 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
107
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
108 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
109 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
110 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
111 dialog.grab_focus()
596
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
112
608
a25cd1c6335a Pass screens through engine by name
Neil Muller <neil@dip.sun.ac.za>
parents: 607
diff changeset
113 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
114 ScreenChangeEvent.post(new_screen_name)
607
f2b1ddcc4986 Make menu and endscreen work.
Jeremy Thurgood <firxen@gmail.com>
parents: 600
diff changeset
115
619
d9d1a9c4b833 Add ScreenEvents.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 612
diff changeset
116 def screen_event(self, screen_name, event_name, data=None):
d9d1a9c4b833 Add ScreenEvents.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 612
diff changeset
117 ScreenEvent.post(screen_name, event_name, data)
d9d1a9c4b833 Add ScreenEvents.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 612
diff changeset
118
d9d1a9c4b833 Add ScreenEvents.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 612
diff changeset
119 def process_event(self, event_name, data):
d9d1a9c4b833 Add ScreenEvents.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 612
diff changeset
120 pass
d9d1a9c4b833 Add ScreenEvents.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 612
diff changeset
121
596
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 class UserEvent(object):
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
124 """A user event type allowing subclassing,
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
125 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
126 """
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 TYPE = "UNKNOWN"
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
129
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
130 @classmethod
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
131 def post(cls, **kws):
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
132 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
133 pygame.event.post(ev)
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
134
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
135 @classmethod
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
136 def matches(cls, ev):
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
137 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
138
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
139
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
140 class ScreenChangeEvent(UserEvent):
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
141
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
142 TYPE = "SCREEN_CHANGE"
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
143
5496dcd16a84 Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
144 @classmethod
608
a25cd1c6335a Pass screens through engine by name
Neil Muller <neil@dip.sun.ac.za>
parents: 607
diff changeset
145 def post(cls, screen_name):
a25cd1c6335a Pass screens through engine by name
Neil Muller <neil@dip.sun.ac.za>
parents: 607
diff changeset
146 super(ScreenChangeEvent, cls).post(screen_name=screen_name)
619
d9d1a9c4b833 Add ScreenEvents.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 612
diff changeset
147
d9d1a9c4b833 Add ScreenEvents.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 612
diff changeset
148
d9d1a9c4b833 Add ScreenEvents.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 612
diff changeset
149 class ScreenEvent(UserEvent):
d9d1a9c4b833 Add ScreenEvents.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 612
diff changeset
150
d9d1a9c4b833 Add ScreenEvents.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 612
diff changeset
151 TYPE = "SCREEN_EVENT"
d9d1a9c4b833 Add ScreenEvents.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 612
diff changeset
152
d9d1a9c4b833 Add ScreenEvents.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 612
diff changeset
153 @classmethod
d9d1a9c4b833 Add ScreenEvents.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 612
diff changeset
154 def post(cls, screen_name, event_name, data):
d9d1a9c4b833 Add ScreenEvents.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 612
diff changeset
155 super(ScreenEvent, cls).post(screen_name=screen_name,
d9d1a9c4b833 Add ScreenEvents.
Simon Cross <hodgestar+bzr@gmail.com>
parents: 612
diff changeset
156 event_name=event_name, data=data)