changeset 465:263dea6d226b

Add support for multiple pages to help screen
author Neil Muller <drnlmuller@gmail.com>
date Tue, 24 Nov 2009 09:53:00 +0000
parents 3a8a64bbe2d8
children 3d173ea43ad5
files gamelib/helpscreen.py
diffstat 1 files changed, 45 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/gamelib/helpscreen.py	Tue Nov 24 09:51:56 2009 +0000
+++ b/gamelib/helpscreen.py	Tue Nov 24 09:53:00 2009 +0000
@@ -6,7 +6,8 @@
 import engine
 import imagecache
 
-HELP="""Welcome to %s
+HELP = [
+"""Welcome to %s
 
 Introduction:
 
@@ -23,7 +24,11 @@
 hatch a new chicken. Chickens that hatch in already full henhouses are
 moved to just outside. If there is no space outside, they die immediately
 from overcrowding.
-""" % constants.NAME
+""" % constants.NAME,
+
+"""Second Page of Help Text.
+"""
+]
 
 LEVEL_TEXT="""The currently selected level is %(name)s
 
@@ -51,17 +56,47 @@
     def __init__(self, level, **params):
         gui.Document.__init__(self, **params)
 
+        self.cur_page = 0
+
+        self.level = level
+
         def done_pressed():
             pygame.event.post(engine.GO_MAIN_MENU)
 
-        done_button = gui.Button("Return to Main Menu")
-        done_button.connect(gui.CLICK, done_pressed)
+        def next_page():
+            self.cur_page += 1
+            if self.cur_page >= len(HELP):
+                self.cur_page = 0
+            self.redraw()
+
+        def prev_page():
+            self.cur_page -= 1
+            if self.cur_page < 0:
+                self.cur_page = len(HELP) - 1
+            self.redraw()
+
+        self.done_button = gui.Button("Return to Main Menu")
+        self.done_button.connect(gui.CLICK, done_pressed)
+
+        self.prev_button = gui.Button("Prev Page")
+        self.prev_button.connect(gui.CLICK, prev_page)
+
+        self.next_button = gui.Button("Next Page")
+        self.next_button.connect(gui.CLICK, next_page)
+
+        self.redraw()
+
+    def redraw(self):
+        for widget in self.widgets[:]:
+            self.remove(widget)
+        self.layout._widgets = []
+        self.layout.init()
 
         space = self.style.font.size(" ")
 
-        full_text = HELP + '\n\n' + LEVEL_TEXT % {
-                'name' : level.level_name,
-                'goal' : level.goal
+        full_text = HELP[self.cur_page] + '\n\n' + LEVEL_TEXT % {
+                'name' : self.level.level_name,
+                'goal' : self.level.goal
                 }
 
         for paragraph in full_text.split('\n\n'):
@@ -71,5 +106,6 @@
                 self.space(space)
             self.br(space[1])
         self.br(space[1])
-        self.block(align=0)
-        self.add(done_button, align=0)
+        self.add(self.prev_button, align=-1)
+        self.add(self.next_button, align=1)
+        self.add(self.done_button, align=0)