# HG changeset patch # User Neil Muller # Date 1282501513 -7200 # Node ID 31a431f795e14af0f33fb16646675f59558bb292 # Parent ebc76bc0c067de7b0dc7fa9e5464cb5ec0caea46 Add a hand button placeholder diff -r ebc76bc0c067 -r 31a431f795e1 gamelib/gamescreen.py --- a/gamelib/gamescreen.py Sun Aug 22 20:05:37 2010 +0200 +++ b/gamelib/gamescreen.py Sun Aug 22 20:25:13 2010 +0200 @@ -3,6 +3,7 @@ # Main menu for the game from state import initial_state, Item +from hand import HandButton from pygame.color import Color from pygame import Rect @@ -18,10 +19,11 @@ sel_color = Color("white") sel_width = 2 - def __init__(self, state): + def __init__(self, state, handbutton): PaletteView.__init__(self, (50, 50), 1, 6, scrolling=True) self.state = state self.selection = None + self.handbutton = handbutton def num_items(self): return len(self.state.inventory) @@ -33,16 +35,13 @@ def click_item(self, item_no, event): self.selection = item_no + self.handbutton.unselect() def item_is_selected(self, item_no): return self.selection == item_no - def add_item(self, item): - self.info.append(item) - - def remove_item(self, item): - self.info.remove(item) - + def unselect(self): + self.selection = None class StateWidget(Widget): @@ -74,9 +73,17 @@ AddItemButton, ], align='l', spacing=20) self.add_centered(menu) + self.menubutton = Button('M', action=self.main_menu) + self.menubutton.bottomleft = self.bottomleft + self.add(self.menubutton) + self.handbutton = HandButton(action=self.hand_pressed) + self.handbutton.bottomleft = self.bottomleft + self.handbutton.get_rect().move_ip(50, 0) + self.add(self.handbutton) + self.inventory = InventoryView(self.state, self.handbutton) - self.inventory = InventoryView(self.state) self.inventory.bottomleft = self.bottomleft + self.inventory.get_rect().move_ip(100, 0) self.add(self.inventory) # Test items @@ -88,4 +95,9 @@ self.shell.show_screen(self.shell.menu_screen) def add_item(self): - self.inventory.add_item("white") + self.state.add_inventory_item("triangle") + + def hand_pressed(self): + self.handbutton.toggle_selected() + self.inventory.unselect() + diff -r ebc76bc0c067 -r 31a431f795e1 gamelib/hand.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gamelib/hand.py Sun Aug 22 20:25:13 2010 +0200 @@ -0,0 +1,33 @@ +# Button for the hand image + +from albow.controls import ImageButton +from albow.resource import get_image +from albow.utils import frame_rect +from pygame.color import Color + +class HandButton(ImageButton): + """The fancy hand button for the widget""" + + sel_colour = Color('red') + sel_width = 2 + + def __init__(self, action): + # FIXME: Yes, please. + this_image = get_image('items', 'square.png') + ImageButton.__init__(self, image=this_image, action=action) + self.selected = False # Flag if we're selected + + def draw(self, surface): + """Draw the widget""" + print 'drawing widget', self.selected + ImageButton.draw(self, surface) + if self.selected: + rect = surface.get_rect().inflate(-self.sel_width, -self.sel_width) + frame_rect(surface, self.sel_colour, rect, self.sel_width) + + def toggle_selected(self): + self.selected = not self.selected + + def unselect(self): + self.selected = False +