# -*- encoding: utf-8 -*-

# Področje, na katerem krogec sledi miški.

from tkinter import *

class Sledenje():
    def __init__(self, master):
        # Naredimo področje za risanje
        self.canvas = Canvas(master, width=300, height=300)
        self.canvas.pack()

        # Podatki o krogcu
        self.x = 150  # Zacetne koordinate krogca
        self.y = 150
        self.r = 5    # Zacetni polmer
        self.dr = 1   # Za koliko se spremeni polmer ob vsakem premiku

        # Naredimo rdeč krogec
        self.krogec = self.canvas.create_oval(
            self.x-self.r, self.y-self.r,
            self.x+self.r, self.y+self.r, 
            fill="red")

        # Registiramo se za premike miške
        self.canvas.bind("<Motion>", self.prestavi)

        # Cez 2 stotinki sprozi utripaj, ki tudi narise krogec
        self.canvas.after(20, self.utripaj)

    def narisi_krogec(self):
        self.canvas.coords(self.krogec,
            self.x-self.r, self.y-self.r,
            self.x+self.r, self.y+self.r)


    def prestavi(self, event):
        '''Prestavi krogec tja, kjer je miška.'''
        # Nastavimo koordinate krogca, kjer je miška
        self.x = event.x
        self.y = event.y
        self.narisi_krogec()
        
    def utripaj(self):
        # Popravimo r
        self.r += self.dr
        if self.r >= 50 or self.r <= 5:
            self.dr = -self.dr
        self.narisi_krogec()
        # Se enkrat se poklici cez 2 stotinki
        self.canvas.after(20, self.utripaj)



# Glavnemu oknu rečemo "root" (koren), ker so grafični elementi
# organizirani v drevo, glavno okno pa je koren tega drevesa

# Naredimo glavno okno
root = Tk()

aplikacija = Sledenje(root)

# Kontrolo prepustimo glavnemu oknu. Funkcija mainloop neha
# delovati, ko okno zapremo.
root.mainloop()
