Mercurial > pyntnclick
annotate pyntnclick/engine.py @ 803:bcc9277a23e6 pyntnclick
Refactor widget positioning API. Remove unused widgets
author | Stefano Rivera <stefano@rivera.za.net> |
---|---|
date | Sun, 27 Jan 2013 14:52:16 +0200 |
parents | 374d96e0b55e |
children |
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 | 9 # We can't do this via our usual UserEvent trickey |
10 # as it gets generated by pygame.music, which only | |
11 # takes an event type | |
12 MUSIC_ENDED = USEREVENT + 1 | |
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 | 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 | 46 elif ScreenEvent.matches(ev): |
47 self.screens[ev.screen_name].process_event(ev.event_name, | |
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 |
803
bcc9277a23e6
Refactor widget positioning API. Remove unused widgets
Stefano Rivera <stefano@rivera.za.net>
parents:
800
diff
changeset
|
72 self.container = Container((0, 0), self.gd, self.surface_size) |
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
|
73 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
|
74 |
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 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
|
76 """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
|
77 # 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
|
78 # 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
|
79 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
|
80 |
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 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
|
82 """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
|
83 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
|
84 |
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 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
|
86 """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
|
87 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
|
88 |
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 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
|
90 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
|
91 |
659
363b603794f5
Re-add animations (and also fix some enter/leave event stuff)
Neil Muller <neil@dip.sun.ac.za>
parents:
639
diff
changeset
|
92 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
|
93 """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
|
94 |
363b603794f5
Re-add animations (and also fix some enter/leave event stuff)
Neil Muller <neil@dip.sun.ac.za>
parents:
639
diff
changeset
|
95 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
|
96 pass |
363b603794f5
Re-add animations (and also fix some enter/leave event stuff)
Neil Muller <neil@dip.sun.ac.za>
parents:
639
diff
changeset
|
97 |
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
|
98 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
|
99 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
|
100 |
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 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
|
102 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
|
103 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
|
104 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
|
105 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
|
106 |
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 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
|
108 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
|
109 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
|
110 dialog.grab_focus() |
596
5496dcd16a84
Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff
changeset
|
111 |
608
a25cd1c6335a
Pass screens through engine by name
Neil Muller <neil@dip.sun.ac.za>
parents:
607
diff
changeset
|
112 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
|
113 ScreenChangeEvent.post(new_screen_name) |
607
f2b1ddcc4986
Make menu and endscreen work.
Jeremy Thurgood <firxen@gmail.com>
parents:
600
diff
changeset
|
114 |
619 | 115 def screen_event(self, screen_name, event_name, data=None): |
116 ScreenEvent.post(screen_name, event_name, data) | |
117 | |
118 def process_event(self, event_name, data): | |
119 pass | |
120 | |
596
5496dcd16a84
Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff
changeset
|
121 |
5496dcd16a84
Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff
changeset
|
122 class UserEvent(object): |
5496dcd16a84
Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff
changeset
|
123 """A user event type allowing subclassing, |
5496dcd16a84
Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff
changeset
|
124 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
|
125 """ |
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 TYPE = "UNKNOWN" |
5496dcd16a84
Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff
changeset
|
128 |
5496dcd16a84
Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff
changeset
|
129 @classmethod |
5496dcd16a84
Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff
changeset
|
130 def post(cls, **kws): |
5496dcd16a84
Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff
changeset
|
131 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
|
132 pygame.event.post(ev) |
5496dcd16a84
Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff
changeset
|
133 |
5496dcd16a84
Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff
changeset
|
134 @classmethod |
5496dcd16a84
Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff
changeset
|
135 def matches(cls, ev): |
5496dcd16a84
Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff
changeset
|
136 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
|
137 |
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 class ScreenChangeEvent(UserEvent): |
5496dcd16a84
Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff
changeset
|
140 |
5496dcd16a84
Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff
changeset
|
141 TYPE = "SCREEN_CHANGE" |
5496dcd16a84
Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff
changeset
|
142 |
5496dcd16a84
Add pyntnclick.engine, based on mamba
Stefano Rivera <stefano@rivera.za.net>
parents:
diff
changeset
|
143 @classmethod |
608
a25cd1c6335a
Pass screens through engine by name
Neil Muller <neil@dip.sun.ac.za>
parents:
607
diff
changeset
|
144 def post(cls, screen_name): |
a25cd1c6335a
Pass screens through engine by name
Neil Muller <neil@dip.sun.ac.za>
parents:
607
diff
changeset
|
145 super(ScreenChangeEvent, cls).post(screen_name=screen_name) |
619 | 146 |
147 | |
148 class ScreenEvent(UserEvent): | |
149 | |
150 TYPE = "SCREEN_EVENT" | |
151 | |
152 @classmethod | |
153 def post(cls, screen_name, event_name, data): | |
154 super(ScreenEvent, cls).post(screen_name=screen_name, | |
155 event_name=event_name, data=data) |