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