#! /usr/bin/env python
# -*- coding: Latin-1 -*-

from Tkinter import *
import Pmw
from random import randrange

# az ikonokat tartalmazó file-ok nevei (GIF formátumú ):
images =('floppy_2','papi2','pion_1','pion_2','help_4')
textes =('mentés','pillangó','játékos 1','játékos 2','Help')

class Application(Frame):
    def __init__(self):
        Frame.__init__(self)
        # Egy <buborék help> objektum létrehozása (egy elegend?) :
        tip = Pmw.Balloon(self)
        # Eszköztár létrehozása (ez egy egyszer? keret) :
        toolbar = Frame(self, bd =1)
        toolbar.pack(expand =YES, fill =X)
        # A létrehozandó gombok száma : 
        nBut = len(images)
        # A gombok ikonjainak persistens változókban kell lenni.
        # Egy lista megteszi :
        self.photoI =[None]*nBut
        
        for b in range(nBut):
		# Ikon létrehozása (PhotoImage Tkinter objektum) :
                self.photoI[b] =PhotoImage(file = images[b] +'.gif')      # Gomb létrehozása.:
        # Futás közben definiálunk egy paraméteres függvényt. A paramétere
        # alapértelmezett értéke az átadandó argumentum.
        # Ez a függvény hív egy argumentumot igényl? metódust :
                def act(arg = b):                
                    self.action(arg)
                # A gombhoz kapcsolt parancs hívja a fenti függvényt :    
                but = Button(toolbar, image =self.photoI[b], relief =GROOVE, command = act)
                but.pack(side =LEFT)
                # egy gomb összekapcsolása egy helpszöveggel :
                tip.bind(but, textes[b]) 

        self.ca = Canvas(self, width =400, height =200, bg ='orange')
        self.ca.pack()
        self.pack()
	
	
    def action(self, b):
        "a gomb ikonja a vászonra van másolva"
        x, y = randrange(25,375), randrange(25,175)
        self.ca.create_image(x, y, image =self.photoI[b])
        
Application().mainloop()