'''

ARGOMENTI:
---------------------------------------------------------------------
	- Attributi, submenu e menubutton




Informazioni sulle varie opzioni:
---------------------------------------------------------------------

	- state
			Normalmente tutte le scelte reagiscono ai click del mouse, ma e' possibile impostare lo 
			"state= DISABLED"  per disattivarlo. Per abilitarlo di nuovo, usare "state=ACTIVE".

	- bitmap
			I valori da dare a bitmap possono essere: "error", "gray75", "gray50", 
			"gray25", "gray12", "hourglass", "info", "questhead", "question" e "warning".

	- columnbreak 
			Normalmente tutte le scelte sono visualizzate su una singola colonna. 
			"columnbreak = 1" fa ripartire da una nuova colonna a destra.
	
	- compound=<valore>
			Se si desidera visualizzare sia il testo che una immagine
			si puo' utilizzare "compound" specificando anche la posizione
			dell'immagine rispetto al testo.
			I valori possibili sono LEFT, RIGHT, TOP, BOTTOM, CENTER o NONE.

	- hidemargin 
			Per impostazione predefinita, un piccolo margine separa le scelte adiacenti in un menu. 
			"hidemargin = True" sopprime questo margine.

	- variable, value	
			Per "checkbutton" o "radiobutton" l'opzione "variable" deve essere 
			impostata sulla variabile di controllo associata ai "widget ".
			"value" specifica il valore della variabile di controllo associata.

	- offvalue 
			Normalmente, la variabile di controllo per un checkbutton e' impostata a 0 
			quando il check button è disattivato. "offvalue=1" modifica questa impostazione.

	- underline
			Permette la "sottolineatura" di una lettera del testo contenuto in "label". 
			"underline=4" sottolinea la quinta lettera (L'indice parte da 0)




'''
from tkinter import *

fin = Tk()
fin.geometry("400x400+300+50")
fin.title("Applicazione")


# DEFINIZONE DEI MENU
bMenu = Menu(fin)
Menu_1 = Menu(bMenu, tearoff=0)
bMenu.add_cascade(label="Classi 1", menu=Menu_1)
Menu_2 = Menu(bMenu, tearoff=0)
bMenu.add_cascade(label="Classi 2", menu=Menu_2)

# Creazione di un subMenu da agganciare successivamente
Alunni = Menu(Menu_1, tearoff=0)
Alunni.add_command(label="Tizio")
Alunni.add_command(label="Caio")
Alunni.add_command(label="Sempronio")
Alunni.add_cascade(label="Aggiungo anche Classi 2", menu=Menu_2)


# MENU 1 -------------------------------------------------
# "accelerator" non implementa il ^X, bisogna farlo successivamente
Menu_1.add_command(label="1A", accelerator='Ctrl+X') 
Menu_1.add_command(label="2A", activeforeground="white", activebackground="black")
Menu_1.add_command(label="3A", background="red")
Menu_1.add_command(label="4A", bitmap="question", compound=LEFT)
Menu_1.add_command(label="5A", font="courier")
Menu_1.add_command(label="1B", hidemargin=TRUE)
Menu_1.add_command(label="2B", hidemargin=TRUE)
Menu_1.add_command(label="3B", state=DISABLED)
#inserisco il menu "alunni" in un submenu
Menu_1.add_cascade(label="SUBMENU", menu=Alunni)
## immagini 
# logo=PhotoImage(file="logo.png")
# Menu_1.add_command(label="Immagine", image=logo)
Menu_1.add_command(label="Bitmap", bitmap="questhead")
Menu_1.add_separator()
Menu_1.add_command(label="Inserisci classe", underline=3)
Menu_1.add_command(label="Elimina classe", underline=8)


# MENU 2 -------------------------------------------------
Menu_2.add_radiobutton(label="1A")
Menu_2.add_radiobutton(label="2A")
Menu_2.add_radiobutton(label="3A")
Menu_2.add_checkbutton(label="1B", columnbreak=1)
Menu_2.add_checkbutton(label="2B")
Menu_2.add_checkbutton(label="3B")
Menu_2.add_checkbutton(label="1C", columnbreak=1)
Menu_2.add_checkbutton(label="2C", state=DISABLED, offvalue=True)
Menu_2.add_checkbutton(label="3C", state=ACTIVE, onvalue=True)


# menubutton ---------------------------------------------
mbt=  Menubutton (fin, text="Discipline", relief=RAISED )
mbt.pack()
mbt.menu =  Menu (mbt, tearoff=1)
mbt["menu"] =  mbt.menu
mbt.menu.add_radiobutton (label="RB Italiano")
mbt.menu.add_radiobutton (label="RB Inglese")
mbt.menu.add_radiobutton (label="RB Matematica")
mbt.menu.add_checkbutton (label="CB Italiano")
mbt.menu.add_checkbutton (label="CB Inglese")
mbt.menu.add_checkbutton (label="CB Matematica")
mbt.pack()


# Visualizza il menu
fin.config(menu=bMenu)

fin.mainloop()