diff options
Diffstat (limited to 'playview.py')
-rw-r--r-- | playview.py | 64 |
1 files changed, 17 insertions, 47 deletions
diff --git a/playview.py b/playview.py index ef3cf96..1a9a15d 100644 --- a/playview.py +++ b/playview.py @@ -2,71 +2,41 @@ import hippo import os import cairo import gtk +import math 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) +class PlayView(hippo.CanvasBox, hippo.CanvasItem): + def __init__(self, wx, wy, numtiles, **kargs): + hippo.CanvasBox.__init__(self, **kargs) - 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 - + self.props.orientation = hippo.ORIENTATION_VERTICAL + self.tiles = [] tile_num = 0 - numtiles = len(pairs)*2 + + numx = math.pow(float(numtiles), 0.5) + if numx%1 != 0: + numx = int(numx)+1 + self.y = self.x = (int(wx/numx)-10) + while tile_num < numtiles: - if tile_num == 0 or ((tile_num)%4) == 0: + if tile_num == 0 or ((tile_num)%numx) == 0: box = hippo.CanvasBox() box.props.orientation = hippo.ORIENTATION_HORIZONTAL - tilebox.append(box) + self.append(box) - tile = PlayTile(tile_num) - tile.connect('button-press-event', self._button_press_cb, tile.num) + tile = PlayTile(tile_num, self.x, self.y) 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' + tile_num+=1 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.img_widget.set_from_pixbuf(tile.img_pixbuf.scale_simple(self.x, self.y, gtk.gdk.INTERP_BILINEAR)) tile.props.background_color = color tile.emit_paint_needed(0, 0, -1, -1) |