Mercurial > mamba
annotate mamba/habitats/mainmenu.py @ 236:09247e08aeda
Refactor edit calling code. Tweak toolbar layout
author | Neil Muller <drnlmuller@gmail.com> |
---|---|
date | Wed, 14 Sep 2011 23:32:08 +0200 |
parents | 6a866d4710e3 |
children | 67312228c158 |
rev | line source |
---|---|
15
ad2bcbf492bf
Hook up top-level habitat support.
Simon Cross <hodgestar@gmail.com>
parents:
diff
changeset
|
1 """Main menu.""" |
ad2bcbf492bf
Hook up top-level habitat support.
Simon Cross <hodgestar@gmail.com>
parents:
diff
changeset
|
2 |
115
d5aa5f805f00
Add Button class that buttons inherit from. It implements a 'clicked' callback
Stefano Rivera <stefano@rivera.za.net>
parents:
106
diff
changeset
|
3 from pygame.locals import KEYDOWN, QUIT |
61 | 4 import pygame.event |
55
671d027f1b71
Callbacks for events in widgets
Stefano Rivera <stefano@rivera.za.net>
parents:
43
diff
changeset
|
5 |
61 | 6 from mamba.constants import ESCAPE_KEYS |
101
a4eb3f7c0233
Start dev level from main menu
Stefano Rivera <stefano@rivera.za.net>
parents:
91
diff
changeset
|
7 from mamba.engine import Habitat, NewHabitatEvent |
106 | 8 from mamba.widgets.base import Container |
91 | 9 from mamba.widgets.text import TextButton |
15
ad2bcbf492bf
Hook up top-level habitat support.
Simon Cross <hodgestar@gmail.com>
parents:
diff
changeset
|
10 |
61 | 11 |
15
ad2bcbf492bf
Hook up top-level habitat support.
Simon Cross <hodgestar@gmail.com>
parents:
diff
changeset
|
12 class MainMenu(Habitat): |
38 | 13 def __init__(self): |
14 super(MainMenu, self).__init__() | |
158 | 15 start = TextButton((100, 100), "Play Game") |
115
d5aa5f805f00
Add Button class that buttons inherit from. It implements a 'clicked' callback
Stefano Rivera <stefano@rivera.za.net>
parents:
106
diff
changeset
|
16 start.add_callback('clicked', self.start_event) |
101
a4eb3f7c0233
Start dev level from main menu
Stefano Rivera <stefano@rivera.za.net>
parents:
91
diff
changeset
|
17 self.container.add(start) |
158 | 18 edit = TextButton((100, 200), "Edit Dev Level") |
127
2b50fd1e4ca1
Put level editor on main menu
Stefano Rivera <stefano@rivera.za.net>
parents:
115
diff
changeset
|
19 edit.add_callback('clicked', self.edit_event) |
2b50fd1e4ca1
Put level editor on main menu
Stefano Rivera <stefano@rivera.za.net>
parents:
115
diff
changeset
|
20 self.container.add(edit) |
158 | 21 quit = TextButton((100, 300), "Quit") |
115
d5aa5f805f00
Add Button class that buttons inherit from. It implements a 'clicked' callback
Stefano Rivera <stefano@rivera.za.net>
parents:
106
diff
changeset
|
22 quit.add_callback('clicked', self.quit_keydown_event) |
55
671d027f1b71
Callbacks for events in widgets
Stefano Rivera <stefano@rivera.za.net>
parents:
43
diff
changeset
|
23 self.container.add(quit) |
61 | 24 self.container.add_callback(KEYDOWN, self.keydown_event) |
55
671d027f1b71
Callbacks for events in widgets
Stefano Rivera <stefano@rivera.za.net>
parents:
43
diff
changeset
|
25 |
127
2b50fd1e4ca1
Put level editor on main menu
Stefano Rivera <stefano@rivera.za.net>
parents:
115
diff
changeset
|
26 # Just for debugging cascading containers... |
106 | 27 c = Container((400, 100)) |
158 | 28 c.add(TextButton((400, 100), "3")) |
106 | 29 self.container.add(c) |
30 c = Container((400, 200)) | |
158 | 31 c.add(TextButton((400, 200), "4")) |
106 | 32 self.container.add(c) |
33 | |
101
a4eb3f7c0233
Start dev level from main menu
Stefano Rivera <stefano@rivera.za.net>
parents:
91
diff
changeset
|
34 def start_event(self, ev, widget): |
158 | 35 from mamba.habitats.levelmenu import LevelMenu |
36 NewHabitatEvent.post(LevelMenu()) | |
115
d5aa5f805f00
Add Button class that buttons inherit from. It implements a 'clicked' callback
Stefano Rivera <stefano@rivera.za.net>
parents:
106
diff
changeset
|
37 return True |
d5aa5f805f00
Add Button class that buttons inherit from. It implements a 'clicked' callback
Stefano Rivera <stefano@rivera.za.net>
parents:
106
diff
changeset
|
38 |
127
2b50fd1e4ca1
Put level editor on main menu
Stefano Rivera <stefano@rivera.za.net>
parents:
115
diff
changeset
|
39 def edit_event(self, ev, widget): |
2b50fd1e4ca1
Put level editor on main menu
Stefano Rivera <stefano@rivera.za.net>
parents:
115
diff
changeset
|
40 from mamba.habitats.editor import EditorHabitat |
2b50fd1e4ca1
Put level editor on main menu
Stefano Rivera <stefano@rivera.za.net>
parents:
115
diff
changeset
|
41 NewHabitatEvent.post(EditorHabitat('dev')) |
2b50fd1e4ca1
Put level editor on main menu
Stefano Rivera <stefano@rivera.za.net>
parents:
115
diff
changeset
|
42 return True |
2b50fd1e4ca1
Put level editor on main menu
Stefano Rivera <stefano@rivera.za.net>
parents:
115
diff
changeset
|
43 |
115
d5aa5f805f00
Add Button class that buttons inherit from. It implements a 'clicked' callback
Stefano Rivera <stefano@rivera.za.net>
parents:
106
diff
changeset
|
44 def quit_keydown_event(self, ev, widget): |
d5aa5f805f00
Add Button class that buttons inherit from. It implements a 'clicked' callback
Stefano Rivera <stefano@rivera.za.net>
parents:
106
diff
changeset
|
45 pygame.event.post(pygame.event.Event(QUIT)) |
d5aa5f805f00
Add Button class that buttons inherit from. It implements a 'clicked' callback
Stefano Rivera <stefano@rivera.za.net>
parents:
106
diff
changeset
|
46 return True |
101
a4eb3f7c0233
Start dev level from main menu
Stefano Rivera <stefano@rivera.za.net>
parents:
91
diff
changeset
|
47 |
61 | 48 def keydown_event(self, ev, widget): |
49 if ev.key in ESCAPE_KEYS: | |
50 pygame.event.post(pygame.event.Event(QUIT)) | |
51 return True |