#! /usr/bin/env python
# -*- coding: Utf-8 -*-

##################################################
#                Vibrations.py                   #
#            3 harmonikus rezgomozgas            #
#      kiteres/ido grafikonjanak  rajzolasa      #
#                                                #
#      Szerzo : G.Swinnen (Liege, Belgium)       #
#         02/03/2002 - Licence GPL               #
##################################################

from oscillo import *
from curseurs import *

class ShowVibra(Frame):
    "Harmónikus rezgőmozgások bemutatása"
    def __init__(self, master =None):
        Frame.__init__(self, master)        # a szülő osztály constructora
        self.colour=['dark green','red','purple']
        self.trace=[0]*3            # kirajzolandó görbék listája�
        self.control=[0]*3         # kontrolpanelek listája

        # vászonpéldány létrehozása az x és y koordináta-tengelyekkel :
        self.gra = OscilloGraphe(self, width_ =400, height_=300)
        self.gra.configure(bg ='white', bd=4, relief=GROOVE)
        self.gra.pack(side =TOP, pady=5)

        # 3 vezérlő panel (cursorok) létrehozása :
        for i in range(3):
            self.control[i] = ChoiceVibra(self,self.colour[i])
            self.control[i].pack()

        # Az ábrák kirajzolását indító események definiálása� :
        self.master.bind('<Control-Z>', self.showCurve)

        # pozicionalas :
        self.master.title('Harmónikus rezgőmozgások')
        self.pack()

    def showCurve(self,event):
        "A 3 kiteres/ido grafikon kirajzolasa"
        for i in range(3):
            # Eloszor toroljuk az (esetleges) ekozo abrakat :
            self.gra.delete(self.trace[i])
            # Utana uj gorbeket rajzolunk�:
            if self.control[i].chk.get():
                self.trace[i] = self.gra.drawCurve(
                                    colo=self.colour[i],
                                    freq=self.control[i].freq,
                                    phase=self.control[i].phase,
                                    ampl=self.control[i].ampl)

#### Kod az osztaly tesztelesehez : ###

if __name__ == '__main__':
    ShowVibra().mainloop()

#couleur -> colour
#controle -> control
#coul -> colo