Mercurial > mamba
comparison mamba/habitats/mainmenu.py @ 115:d5aa5f805f00
Add Button class that buttons inherit from. It implements a 'clicked' callback
author | Stefano Rivera <stefano@rivera.za.net> |
---|---|
date | Sun, 11 Sep 2011 20:40:26 +0200 |
parents | d1152f2a0e13 |
children | 2b50fd1e4ca1 |
comparison
equal
deleted
inserted
replaced
114:b3985414d4d6 | 115:d5aa5f805f00 |
---|---|
1 """Main menu.""" | 1 """Main menu.""" |
2 | 2 |
3 from pygame.constants import K_RETURN | 3 from pygame.locals import KEYDOWN, QUIT |
4 from pygame.locals import MOUSEMOTION, KEYDOWN, QUIT | |
5 import pygame.event | 4 import pygame.event |
6 | 5 |
7 from mamba.constants import ESCAPE_KEYS | 6 from mamba.constants import ESCAPE_KEYS |
8 from mamba.engine import Habitat, NewHabitatEvent | 7 from mamba.engine import Habitat, NewHabitatEvent |
9 from mamba.widgets.base import Container | 8 from mamba.widgets.base import Container |
12 | 11 |
13 class MainMenu(Habitat): | 12 class MainMenu(Habitat): |
14 def __init__(self): | 13 def __init__(self): |
15 super(MainMenu, self).__init__() | 14 super(MainMenu, self).__init__() |
16 start = TextButton((100, 100), "Dev Level", color='white') | 15 start = TextButton((100, 100), "Dev Level", color='white') |
17 start.add_callback(KEYDOWN, self.start_event) | 16 start.add_callback('clicked', self.start_event) |
18 self.container.add(start) | 17 self.container.add(start) |
19 quit = TextButton((100, 200), "Quit", color='white') | 18 quit = TextButton((100, 200), "Quit", color='white') |
20 quit.add_callback(KEYDOWN, self.quit_keydown_event) | 19 quit.add_callback('clicked', self.quit_keydown_event) |
21 self.container.add(quit) | 20 self.container.add(quit) |
22 self.container.add_callback(KEYDOWN, self.keydown_event) | 21 self.container.add_callback(KEYDOWN, self.keydown_event) |
23 | 22 |
24 c = Container((400, 100)) | 23 c = Container((400, 100)) |
25 c.add(TextButton((400, 100), "3", color='white')) | 24 c.add(TextButton((400, 100), "3", color='white')) |
27 c = Container((400, 200)) | 26 c = Container((400, 200)) |
28 c.add(TextButton((400, 200), "4", color='white')) | 27 c.add(TextButton((400, 200), "4", color='white')) |
29 self.container.add(c) | 28 self.container.add(c) |
30 | 29 |
31 def start_event(self, ev, widget): | 30 def start_event(self, ev, widget): |
32 if ev.key == K_RETURN: | 31 from mamba.habitats.level import LevelHabitat |
33 from mamba.habitats.level import LevelHabitat | 32 NewHabitatEvent.post(LevelHabitat('dev')) |
34 NewHabitatEvent.post(LevelHabitat('dev')) | 33 return True |
34 | |
35 def quit_keydown_event(self, ev, widget): | |
36 pygame.event.post(pygame.event.Event(QUIT)) | |
37 return True | |
35 | 38 |
36 def keydown_event(self, ev, widget): | 39 def keydown_event(self, ev, widget): |
37 if ev.key in ESCAPE_KEYS: | 40 if ev.key in ESCAPE_KEYS: |
38 pygame.event.post(pygame.event.Event(QUIT)) | 41 pygame.event.post(pygame.event.Event(QUIT)) |
39 return True | 42 return True |
40 | |
41 def quit_keydown_event(self, ev, widget): | |
42 if ev.key == K_RETURN: | |
43 pygame.event.post(pygame.event.Event(QUIT)) | |
44 return True |