import logging from gettext import gettext as _ import gtk import random import hippo import dbus import game import boardwidget #from buddiespanel import BuddiesPanel from infopanel import InfoPanel boardSize = 9 board = game.abstractBoard( boardSize ) logger = logging.getLogger('PlayGO') class dummyActivity : def __init__(self): self.info_panel = InfoPanel() def redraw(grid): """Utility function to force a redraw of a Gtk widget.""" grid.window.invalidate_rect(grid.get_allocation(), True) def key_press_cb(window, event, grid, player): key = gtk.gdk.keyval_name(event.keyval) if key in ('Left',): for x in range( boardSize ): board.play( (x, 3), 'W' ) redraw(grid) elif key in ('Right',): for x in range( boardSize ): board.play( ( x, 3 ), 'B' ) redraw(grid) elif key in ( 'r', ): for x in range( boardSize ): for y in range( boardSize ): board.setPointi( x, y, random.randint( 0, 3 ) ) redraw(grid) elif key in ( 'd' ): game.dump_grid( board.status ) elif key in ( 'c', ): board.clear() redraw(grid) elif gtk.gdk.keyval_name(event.keyval) in ('Escape', 'q'): gtk.main_quit() def main(): console = logging.StreamHandler() logging.getLogger('').addHandler(console) logger.setLevel( logging.DEBUG ) logger.debug( "Start widget test" ) for x in range( boardSize ): board.play( ( x, 0 ), 'W' ) window = gtk.Window() window.resize( 1200, 850 ) dummyMe = dummyActivity() dummyMe.info_panel.show( " click to begin" ) boardWidget = boardwidget.BoardWidget( board, dummyMe ) info_panels = InfoPanel() info_panels.show( " hello there I am the side layout test ") vbox = hippo.CanvasBox(spacing=4, orientation=hippo.ORIENTATION_VERTICAL) hbox = hippo.CanvasBox(spacing=4, orientation=hippo.ORIENTATION_HORIZONTAL) hbox.append(hippo.CanvasWidget(widget=boardWidget), hippo.PACK_EXPAND ) hbox.append(info_panels) vbox.append(hbox, hippo.PACK_EXPAND) vbox.append( dummyMe.info_panel, hippo.PACK_END) canvas = hippo.Canvas() canvas.set_root(vbox) window.add( canvas ) window.show_all() window.connect('key-press-event', key_press_cb, boardWidget, [1]) # simple single window test # # window = gtk.Window() # window.resize( 800, 800 ) # window.connect('destroy', gtk.main_quit) # window.connect('key-press-event', key_press_cb, boardWidget, [1]) # window.add(boardWidget) # window.show_all() try: gtk.main() except KeyboardInterrupt: pass if __name__ == '__main__': main()