annotate gamelib/popupmenu.py @ 66:05346a412b55

A sprite cursor attempt
author Stefano Rivera <stefano@rivera.za.net>
date Mon, 23 Aug 2010 19:50:45 +0200
parents 9048cf43f613
children d4bbb26099cc
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
58
9048cf43f613 Popup menu
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
1 # popmenu.py
9048cf43f613 Popup menu
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
2 # Copyright Boomslang team (see COPYING file)
9048cf43f613 Popup menu
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
3 # Popup menu for the game screen
9048cf43f613 Popup menu
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
4
9048cf43f613 Popup menu
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
5 from constants import BUTTON_SIZE
9048cf43f613 Popup menu
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
6
9048cf43f613 Popup menu
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
7 from albow.menu import Menu
9048cf43f613 Popup menu
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
8 from albow.resource import get_font
9048cf43f613 Popup menu
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
9
9048cf43f613 Popup menu
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
10 class PopupMenu(Menu):
9048cf43f613 Popup menu
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
11
9048cf43f613 Popup menu
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
12 def __init__(self, shell):
9048cf43f613 Popup menu
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
13 self.shell = shell
9048cf43f613 Popup menu
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
14 items = [
9048cf43f613 Popup menu
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
15 ('Resume Game', 'hide'),
9048cf43f613 Popup menu
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
16 ('Exit to Main Menu', 'main_menu'),
9048cf43f613 Popup menu
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
17 ]
9048cf43f613 Popup menu
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
18 # albow.menu.Menu ignores title string
9048cf43f613 Popup menu
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
19 Menu.__init__(self, None, items)
9048cf43f613 Popup menu
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
20 self.font = get_font(16, 'Vera.ttf')
9048cf43f613 Popup menu
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
21
9048cf43f613 Popup menu
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
22 def show_menu(self):
9048cf43f613 Popup menu
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
23 """Call present, with the correct position"""
9048cf43f613 Popup menu
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
24 item_height = self.font.get_linesize()
9048cf43f613 Popup menu
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
25 menu_top = 600 - (len(self.items) * item_height + BUTTON_SIZE)
9048cf43f613 Popup menu
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
26 item = self.present(self.shell, (0, menu_top))
9048cf43f613 Popup menu
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
27 if item > -1:
9048cf43f613 Popup menu
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
28 # A menu item needs to be invoked
9048cf43f613 Popup menu
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
29 self.invoke_item(item)
9048cf43f613 Popup menu
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
30