comparison pyntnclick/gamescreen.py @ 665:12149ea1c18e pyntnclick

Menu button.
author Jeremy Thurgood <firxen@gmail.com>
date Sun, 12 Feb 2012 17:06:45 +0200
parents 363b603794f5
children c71530b8a19d
comparison
equal deleted inserted replaced
664:d1c1253fcd77 665:12149ea1c18e
240 super(ToolBar, self).__init__(rect, gd) 240 super(ToolBar, self).__init__(rect, gd)
241 241
242 self.bg_color = (31, 31, 31) 242 self.bg_color = (31, 31, 31)
243 self.left = self.rect.left 243 self.left = self.rect.left
244 244
245 # TODO: Menu button 245 self.menu_button = self.add_tool(
246 # XXX: self.popup_menu = PopupMenu(self) 246 0, TextButton, gd, "Menu", fontname="VeraBd.ttf", color="red",
247 # XXX: self.menubutton = PopupMenuButton('Menu', 247 padding=2, border=0)
248 # action=self.popup_menu.show_menu) 248 self.menu_button.add_callback(MOUSEBUTTONDOWN, self.menu_callback)
249 249
250 hand_image = gd.resource.get_image('items', 'hand.png') 250 hand_image = gd.resource.get_image('items', 'hand.png')
251 self.hand_button = self.add_tool( 251 self.hand_button = self.add_tool(
252 hand_image.get_width(), ImageButtonWidget, gd, hand_image) 252 None, ImageButtonWidget, gd, hand_image)
253 self.hand_button.add_callback(MOUSEBUTTONDOWN, self.hand_pressed) 253 self.hand_button.add_callback(MOUSEBUTTONDOWN, self.hand_callback)
254 254
255 self.inventory = self.add_tool( 255 self.inventory = self.add_tool(
256 self.rect.width - self.left, InventoryView, gd, screen) 256 self.rect.width - self.left, InventoryView, gd, screen)
257 257
258 def add_tool(self, width, cls, *args, **kw): 258 def add_tool(self, width, cls, *args, **kw):
259 rect = Rect((self.left, self.rect.top), (width, self.rect.height)) 259 rect = (self.left, self.rect.top)
260 if width is not None:
261 rect = Rect(rect, (width, self.rect.height))
260 tool = cls(rect, *args, **kw) 262 tool = cls(rect, *args, **kw)
261 self.add(tool) 263 self.add(tool)
262 self.left += width 264 self.left += tool.rect.width
263 return tool 265 return tool
264 266
265 def draw(self, surface): 267 def draw(self, surface):
266 bg = Surface(self.rect.size) 268 bg = Surface(self.rect.size)
267 bg.fill(self.bg_color) 269 bg.fill(self.bg_color)
268 surface.blit(bg, self.rect) 270 surface.blit(bg, self.rect)
269 super(ToolBar, self).draw(surface) 271 super(ToolBar, self).draw(surface)
270 272
271 def hand_pressed(self, event, widget): 273 def hand_callback(self, event, widget):
272 self.inventory.unselect() 274 self.inventory.unselect()
275
276 def menu_callback(self, event, widget):
277 self.screen.change_screen('menu')
273 278
274 279
275 class GameScreen(CursorScreen): 280 class GameScreen(CursorScreen):
276 281
277 def setup(self): 282 def setup(self):
311 316
312 def key_pressed(self, event, widget): 317 def key_pressed(self, event, widget):
313 if event.key == K_ESCAPE: 318 if event.key == K_ESCAPE:
314 self.change_screen('menu') 319 self.change_screen('menu')
315 320
316 # albow callback:
317 def main_menu_cmd(self):
318 self.shell.show_screen(self.shell.menu_screen)
319
320 # albow callback:
321 def quit_cmd(self):
322 self.shell.quit()
323
324 321
325 class DefEndScreen(Screen): 322 class DefEndScreen(Screen):
326 """A placeholder 'Game Over' screen so people can get started easily""" 323 """A placeholder 'Game Over' screen so people can get started easily"""
327 324
328 def setup(self): 325 def setup(self):