# HG changeset patch # User Jeremy Thurgood # Date 1251723300 0 # Node ID 5569430fd82e50f8de1cd5ce5b845082ec4a593e # Parent 8f6c6a54a099d94df4dabc10dcfed4e3d9f432c6 Display cleanup and rationalisation. diff -r 8f6c6a54a099 -r 5569430fd82e gamelib/gameboard.py --- a/gamelib/gameboard.py Mon Aug 31 12:40:05 2009 +0000 +++ b/gamelib/gameboard.py Mon Aug 31 12:55:00 2009 +0000 @@ -5,6 +5,7 @@ import data import tiles +# FIXME: These should probably be proper events of some kind. SELL_CHICKEN = None SELL_EGG = None BUY_FENCE = 2 @@ -21,17 +22,10 @@ self.add_tool_button("Buy henhouse", BUY_HENHOUSE) def add_tool_button(self, text, tool): - style = { - "padding_bottom": 15, - } - td_kwargs = { - "style": style, - "width": self.gameboard.TOOLBAR_WIDTH, - } button = gui.Button(text) button.connect(gui.CLICK, lambda: self.gameboard.set_selected_tool(tool)) self.tr() - self.td(button, **td_kwargs) + self.add(button) class VidWidget(gui.Widget): @@ -46,8 +40,7 @@ self.vid.paint(surface) def update(self, surface): - offset = surface.get_offset() - return [r.move(offset) for r in self.vid.update(surface)] + return self.vid.update(surface) def resize(self, width=0, height=0): if width is not None: @@ -61,15 +54,6 @@ self.gameboard.use_tool(e) -class DispTable(gui.Table): - def __init__(self, gameboard, **params): - gui.Table.__init__(self, **params) - self.gameboard = gameboard - self.tr() - self.td(self.gameboard.tools, width=self.gameboard.TOOLBAR_WIDTH) - self.td(self.gameboard.vidwidget) - - class GameBoard(object): TILE_DIMENSIONS = (20, 20) TOOLBAR_WIDTH = 140 @@ -86,29 +70,16 @@ def create_disp(self): width, height = pygame.display.get_surface().get_size() - self.tools = ToolBar(self) - self.vidwidget = VidWidget(self, self.tv, width=width-self.TOOLBAR_WIDTH, height=height) + tbl = gui.Table() + tbl.tr() + tbl.td(ToolBar(self), width=self.TOOLBAR_WIDTH) + tbl.td(VidWidget(self, self.tv, width=width-self.TOOLBAR_WIDTH, height=height)) self.disp = gui.App() - c = gui.Container(align=0, valign=0) - tbl = DispTable(self) - c.add(tbl, 0, 0) - self.disp.init(c) - - def split_screen(self, screen): - leftbar_rect = screen.get_rect() - leftbar_rect.width = self.TOOLBAR_WIDTH - main_rect = screen.get_rect() - main_rect.width -= leftbar_rect.width - main_rect.left += leftbar_rect.width - return screen.subsurface(leftbar_rect), screen.subsurface(main_rect) + self.disp.init(tbl) def paint(self, screen): self.disp.paint(screen) - def update_subscreen(self, vid, subsurface): - offset = subsurface.get_offset() - return [r.move(offset) for r in vid.update(subsurface)] - def update(self, screen): return self.disp.update(screen) @@ -121,7 +92,6 @@ def use_tool(self, e): if self.selected_tool is None: return -# pos = self.tv.screen_to_tile((e.pos[0] - self.TOOLBAR_WIDTH, e.pos[1])) pos = self.tv.screen_to_tile(e.pos) self.tv.set(pos, self.selected_tool)