diff -r ffa851df0825 -r 2fb8b9db1c86 symbian-qemu-0.9.1-12/python-2.6.1/Demo/tkinter/guido/electrons.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/symbian-qemu-0.9.1-12/python-2.6.1/Demo/tkinter/guido/electrons.py Fri Jul 31 15:01:17 2009 +0100 @@ -0,0 +1,91 @@ +#! /usr/bin/env python + +# Simulate "electrons" migrating across the screen. +# An optional bitmap file in can be in the background. +# +# Usage: electrons [n [bitmapfile]] +# +# n is the number of electrons to animate; default is 30. +# +# The bitmap file can be any X11 bitmap file (look in +# /usr/include/X11/bitmaps for samples); it is displayed as the +# background of the animation. Default is no bitmap. + +from Tkinter import * +import random + + +# The graphical interface +class Electrons: + + # Create our objects + def __init__(self, n, bitmap = None): + self.n = n + self.tk = tk = Tk() + self.canvas = c = Canvas(tk) + c.pack() + width, height = tk.getint(c['width']), tk.getint(c['height']) + + # Add background bitmap + if bitmap: + self.bitmap = c.create_bitmap(width/2, height/2, + bitmap=bitmap, + foreground='blue') + + self.pieces = [] + x1, y1, x2, y2 = 10,70,14,74 + for i in range(n): + p = c.create_oval(x1, y1, x2, y2, fill='red') + self.pieces.append(p) + y1, y2 = y1 +2, y2 + 2 + self.tk.update() + + def random_move(self, n): + c = self.canvas + for p in self.pieces: + x = random.choice(range(-2,4)) + y = random.choice(range(-3,4)) + c.move(p, x, y) + self.tk.update() + + # Run -- allow 500 movemens + def run(self): + try: + for i in range(500): + self.random_move(self.n) + except TclError: + try: + self.tk.destroy() + except TclError: + pass + + +# Main program +def main(): + import sys, string + + # First argument is number of electrons, default 30 + if sys.argv[1:]: + n = string.atoi(sys.argv[1]) + else: + n = 30 + + # Second argument is bitmap file, default none + if sys.argv[2:]: + bitmap = sys.argv[2] + # Reverse meaning of leading '@' compared to Tk + if bitmap[0] == '@': bitmap = bitmap[1:] + else: bitmap = '@' + bitmap + else: + bitmap = None + + # Create the graphical objects... + h = Electrons(n, bitmap) + + # ...and run! + h.run() + + +# Call main when run as script +if __name__ == '__main__': + main()