Mercurial > boomslang
diff gamelib/gamescreen.py @ 70:213e47dea4d0
Funkier cursor handling
author | Neil Muller <neil@dip.sun.ac.za> |
---|---|
date | Mon, 23 Aug 2010 20:54:04 +0200 |
parents | d4bbb26099cc |
children | 99c5506de7ea |
line wrap: on
line diff
--- a/gamelib/gamescreen.py Mon Aug 23 20:50:36 2010 +0200 +++ b/gamelib/gamescreen.py Mon Aug 23 20:54:04 2010 +0200 @@ -5,18 +5,17 @@ from albow.controls import Button, Label, Widget from albow.layout import Column from albow.palette_view import PaletteView -from albow.resource import get_font from pygame import Rect from pygame.color import Color from pygame.locals import BLEND_ADD from constants import BUTTON_SIZE -from cursor import CursorSpriteScreen +from cursor import CursorSpriteScreen, CursorWidget from hand import HandButton -from popupmenu import PopupMenu +from popupmenu import PopupMenu, PopupMenuButton from state import initial_state, Item -class InventoryView(PaletteView): +class InventoryView(PaletteView, CursorWidget): sel_color = Color("yellow") sel_width = 2 @@ -45,7 +44,7 @@ self.selection = None -class StateWidget(Widget): +class StateWidget(CursorWidget): def __init__(self, state): Widget.__init__(self, Rect(0, 0, 800, 600 - BUTTON_SIZE)) @@ -70,6 +69,7 @@ if self.state.check_for_new_description(event.pos): # queue a redraw self.invalidate() + CursorWidget.mouse_move(self, event) class GameScreen(CursorSpriteScreen): @@ -82,11 +82,9 @@ self.add(self.state_widget) self.popup_menu = PopupMenu(shell) - self.menubutton = Button('Menu', action=self.popup_menu.show_menu) - self.menubutton.font = get_font(16, 'Vera.ttf') - self.menubutton.set_rect(Rect(0, 0, BUTTON_SIZE, BUTTON_SIZE)) + self.menubutton = PopupMenuButton('Menu', + action=self.popup_menu.show_menu) self.menubutton.bottomleft = self.bottomleft - self.menubutton.margin = (BUTTON_SIZE - self.menubutton.font.get_linesize()) / 2 self.add(self.menubutton) self.handbutton = HandButton(action=self.hand_pressed) self.handbutton.bottomleft = self.bottomleft