Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/widgettest.py
diff options
context:
space:
mode:
Diffstat (limited to 'widgettest.py')
-rwxr-xr-xwidgettest.py62
1 files changed, 62 insertions, 0 deletions
diff --git a/widgettest.py b/widgettest.py
new file mode 100755
index 0000000..7803dab
--- /dev/null
+++ b/widgettest.py
@@ -0,0 +1,62 @@
+
+import gtk
+import random
+
+import game
+import boardwidget
+
+board = game.GoBoard( 19 )
+
+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( 19 ):
+ board.setPoint(x, 3, 'Black' )
+ redraw(grid)
+
+ elif key in ('Right',):
+ for x in range( 19 ):
+ board.setPoint(x, 3, 'Empty' )
+ redraw(grid)
+
+ elif key in ( 'r', ):
+ for x in range( 19 ):
+ for y in range( 19 ):
+ board.setPointi(x, y, random.randint( 0, 3 ) )
+
+ redraw(grid)
+
+ elif key in ( 'c', ):
+ board.clear()
+ redraw(grid)
+
+ elif gtk.gdk.keyval_name(event.keyval) in ('Escape', 'q'):
+ gtk.main_quit()
+
+def main():
+
+ for x in range( 19 ):
+ board.setPoint(x, 0, 'White' )
+
+ grid = boardwidget.BoardWidget( board )
+
+ window = gtk.Window()
+ window.connect('destroy', gtk.main_quit)
+ window.connect('key-press-event', key_press_cb, grid, [1])
+ window.add(grid)
+ window.show_all()
+
+ try:
+ gtk.main()
+ except KeyboardInterrupt:
+ pass
+
+if __name__ == '__main__':
+ main()
+