"""
Principles:
1. Using inheritance and class reduces the need to pass parameters
2. Shows interactions between windows. One main with Tk, and 2 with top level
3. Controlling Tkinter variables.
4. clearing Entry fields
"""

from tkinter import *
class GUI(Tk):
    def __init__(self):
        super().__init__()
        self.geometry('600x400+700+500')
        self.attributes("-topmost", True)
        self.sum_var= StringVar()
        self.mul_var= StringVar()
        lbl_w = Label(self, text="Main window")
        lbl_w.grid(row=0, column=0)
        add1_btn = Button(self, text="Screen for add", command=self.add_Fn)
        add1_btn.grid(row=1, column=0)
        mul1_btn = Button(self, text="Screen for mul", command=self.mul_Fn)
        mul1_btn.grid(row=1, column=1)
        sum = Label(self, textvariable=self.sum_var)
        sum.grid(row=2, column=0)
        mul = Label(self, textvariable=self.mul_var)
        mul.grid(row=2, column=1)
        clr_btn = Button(self, text="Clear all", command=self.clr_Fn)
        clr_btn.grid(row=3, column=0)

    def add_Fn(self):
        self.level_1 = Toplevel(self)
        self.level_1.title("input for add")
        self.level_1.geometry('300x100+100+200')
        Label(self.level_1, text = "level one (add)").pack()
        self.entry_1 = Entry(self.level_1, bg='yellow')
        self.entry_1.pack()
        self.entry_2 = Entry(self.level_1, bg='yellow')
        self.entry_2.pack()
        Button(self.level_1, text="Add nums", command=self.submitBtn).pack()

    def mul_Fn(self):
        self.level_2 = Toplevel(self)
        self.level_2.title("input for mul")
        self.level_2.geometry('300x100+800+200')
        Label(self.level_2, text = "level two (mul)").pack()
        self.entry_3 = Entry(self.level_2, bg='yellow')
        self.entry_3.pack()
        self.entry_4 = Entry(self.level_2, bg='yellow')
        self.entry_4.pack()
        Button(self.level_2, text="Mul nums", command=self.mulBtn).pack()

    def submitBtn(self):
        val_1 = self.entry_1.get()
        val_2 = self.entry_2.get()
        self.sum_var.set(str(int(val_1)+ int(val_2)))

    def mulBtn(self):
        val_1 = self.entry_3.get()
        val_2 = self.entry_4.get()
        self.mul_var.set(str(int(val_1)*int(val_2)))

    def clr_Fn(self):
        self.entry_1.delete(0, END)
        self.entry_2.delete(0, END)
        self.entry_3.delete(0, END)
        self.entry_4.delete(0, END)
        self.mul_var.set(' ')
        self.sum_var.set(' ')

def main():
    root = GUI()
    root.mainloop()

if __name__ == '__main__':
    main()