from tkinter import *
import threading, time

root = Tk()

root.title("Tkinter rules!")
root.bind("<Escape>", exit); 

is_drawing = False
rectangles = []
def redraw():
	global size, is_drawing
	# TODO !!!
	w.delete(ALL)
	for rect in rectangles:
		w.create_rectangle(*rect, outline="blue")
	if is_drawing:
		w.create_rectangle(left_x, left_y, corner_x, corner_y, outline="red")
def draw_rectangle(event):
	global left_x, left_y, is_drawing
	if not is_drawing:
		left_x, left_y = event.x, event.y
		is_drawing = True
	else:
		rectangles.append([left_x, left_y, event.x, event.y])
		is_drawing = False
	redraw()
def cancel(event):
	global is_drawing
	is_drawing = False

w = Canvas(root, width=400, height=200)
w.pack()

def log(s):
	logger.insert(END, s + "\n")
logger = Text(root,
	width=60,
	height=10, # кол-во символов
	font="Courier-New 10",
)
logger.pack()

killed = False
def myLoop():
	while not killed:
		#print("I'm alive!")
		redraw()
		time.sleep(0.1)
	print("I'm died =(")
	
thread = threading.Thread(target=myLoop)
thread.start()

def store_coordinates(event):
	global corner_x, corner_y
	corner_x, corner_y = event.x, event.y
root.bind("<Enter>", lambda x : log("Enter"))
w.bind('<Motion>', store_coordinates)
w.bind('<Button-1>', draw_rectangle)
w.bind('<Button-3>', cancel)

#w.focus_set()
root.bind('<Control-z>', cancel)
root.bind('<Control-Z>', cancel)

root.mainloop()
print("Miu!")
killed = True