diff options
Diffstat (limited to 'playview.py')
-rw-r--r-- | playview.py | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/playview.py b/playview.py new file mode 100644 index 0000000..ef3cf96 --- /dev/null +++ b/playview.py @@ -0,0 +1,72 @@ +import hippo +import os +import cairo +import gtk + +from sugar.graphics import color +from sugar.graphics import font + +from playtile import PlayTile +from playpoints import PlayPoints +from buddiespanel import BuddiesPanel + +class PlayView(hippo.Canvas): + def __init__(self, oscapi, pairs): + hippo.Canvas.__init__(self) + + root = hippo.CanvasBox() + root.props.orientation = hippo.ORIENTATION_HORIZONTAL + + tilebox = hippo.CanvasBox() + tilebox.props.orientation = hippo.ORIENTATION_VERTICAL + root.append(tilebox) + + self.buddies_panel = BuddiesPanel() + root.append(self.buddies_panel) + + ''' + pointsbox = hippo.CanvasBox() + pointsbox.props.orientation = hippo.ORIENTATION_VERTICAL + root.append(pointsbox) + + point = PlayPoints('erwin') + pointsbox.append(point) + point = PlayPoints('richard') + pointsbox.append(point) + ''' + + self.oscapi = oscapi + self.tiles = [] + self.turn = 0 + + tile_num = 0 + numtiles = len(pairs)*2 + while tile_num < numtiles: + if tile_num == 0 or ((tile_num)%4) == 0: + box = hippo.CanvasBox() + box.props.orientation = hippo.ORIENTATION_HORIZONTAL + tilebox.append(box) + + tile = PlayTile(tile_num) + tile.connect('button-press-event', self._button_press_cb, tile.num) + self.tiles.append(tile) + box.append(tile) + + tile_num+=1 + + self.set_root(root) + self.show() + + def _button_press_cb(self, tile, event, data=None): + if self.turn: + self.oscapi.send(('127.0.0.1', 40000), "/MEMOSONO/tile/chosen", [data]) + else: + print 'it is not your turn' + + def flip(self, tile_num, obj, color): + tile = self.tiles[tile_num] + tile.img_pixbuf = gtk.gdk.pixbuf_new_from_file(obj) + tile.img_widget.set_from_pixbuf(tile.img_pixbuf) + tile.props.background_color = color + tile.emit_paint_needed(0, 0, -1, -1) + |