diff gamelib/mainmenu.py @ 560:8cd13b82585e

Allow ESC to exit high score menu and then still exit game if pressed a second time.
author Simon Cross <hodgestar@gmail.com>
date Sat, 28 Nov 2009 18:27:59 +0000
parents 296c73dcd286
children a8dde729000a
line wrap: on
line diff
--- a/gamelib/mainmenu.py	Sat Nov 28 18:27:02 2009 +0000
+++ b/gamelib/mainmenu.py	Sat Nov 28 18:27:59 2009 +0000
@@ -1,6 +1,7 @@
 """Main menu."""
 
 from pgu import gui
+from pygame.locals import QUIT, KEYDOWN, K_ESCAPE
 import pygame
 import constants
 import engine
@@ -29,6 +30,22 @@
     def get_mode(self):
         return self.widgets[0].mode
 
+    def event(self, e):
+        if gui.Container.event(self, e):
+            return True
+        if e.type is KEYDOWN:
+            if e.key == K_ESCAPE:
+                pygame.event.post(pygame.event.Event(QUIT))
+                return True
+            elif e.key == K_s:
+                pygame.event.post(engine.START_DAY)
+                return True
+            elif e.key == K_i:
+                pygame.event.post(engine.GO_HELP_SCREEN)
+                return True
+        return False
+
+
 class MainMenu(gui.Table):
     def __init__(self, level, **params):
         gui.Table.__init__(self, **params)
@@ -55,9 +72,7 @@
             savegame.RestoreDialog(gameboard.GameBoard.restore_game).open()
 
         def scores_pressed():
-            scoreboard = gameover.Scoreboard(self.level)
-            title = gui.Label("High Scores for Level %s" % self.level.level_name)
-            gui.Dialog(title, scoreboard).open()
+            gameover.ScoreDialog(self.level).open()
 
         def help_pressed():
             pygame.event.post(engine.GO_HELP_SCREEN)
@@ -105,6 +120,5 @@
         # self.tr()
         # self.td(fullscreen_toggle, **td_kwargs)
 
-
     def redraw(self):
         self.start_button.value = self.level.level_name