Mercurial > boomslang
diff gamelib/gamescreen.py @ 84:c76f2fad2af5
Draw CursorWidget on top of StateWidget
author | Stefano Rivera <stefano@rivera.za.net> |
---|---|
date | Mon, 23 Aug 2010 23:58:11 +0200 |
parents | 4fd56ee2af61 |
children | 350ce4ebe122 |
line wrap: on
line diff
--- a/gamelib/gamescreen.py Mon Aug 23 23:47:29 2010 +0200 +++ b/gamelib/gamescreen.py Mon Aug 23 23:58:11 2010 +0200 @@ -7,19 +7,20 @@ from albow.controls import Button, Label, Widget from albow.layout import Column from albow.palette_view import PaletteView -from pygame import Rect +from albow.screen import Screen +from pygame import Rect, mouse from pygame.color import Color from pygame.locals import BLEND_ADD from constants import BUTTON_SIZE -from cursor import CursorSpriteScreen, CursorWidget +from cursor import CursorWidget from hand import HandButton from popupmenu import PopupMenu, PopupMenuButton from state import initial_state, Item from widgets import BoomLabel -class InventoryView(PaletteView, CursorWidget): +class InventoryView(PaletteView): sel_color = Color("yellow") sel_width = 2 @@ -66,11 +67,12 @@ class StateWidget(CursorWidget): def __init__(self, state): - Widget.__init__(self, Rect(0, 0, 800, 600 - BUTTON_SIZE)) + CursorWidget.__init__(self, Rect(0, 0, 800, 600 - BUTTON_SIZE)) self.state = state def draw(self, surface): self.state.draw(surface) + CursorWidget.draw(self, surface) def mouse_down(self, event): result = self.state.interact(event.pos) @@ -85,7 +87,7 @@ CursorWidget.mouse_move(self, event) -class DetailWindow(CursorWidget): +class DetailWindow(Widget): def mouse_down(self, e): if e not in self: self.dismiss() @@ -94,9 +96,9 @@ surface.fill(Color('green')) -class GameScreen(CursorSpriteScreen): +class GameScreen(Screen): def __init__(self, shell): - CursorSpriteScreen.__init__(self, shell) + Screen.__init__(self, shell) # TODO: Randomly plonk the state here for now self.state = initial_state() @@ -150,4 +152,7 @@ self.handbutton.toggle_selected() self.inventory.unselect() - + def mouse_delta(self, event): + w = self.shell.find_widget(event.pos) + if not isinstance(w, CursorWidget): + mouse.set_visible(1)