# coding: latin1
# En snyggare version av exemplet i kap 10
# Skriver en användarstyrd saga

from Tkinter import *

def skrivsaga():
    person   = entry1.get().encode("latin1")   # Om man matar in åäö
    sak      = entry2.get().encode("latin1")   # blir det Unicode, så
    verb     = entry3.get().encode("latin1")   # säkrast att konvertera
    adjektiv = adj1.get()+adj2.get()+adj3.get()
    kroppsdel= kropp.get()
    saga = "Det var en gång en hjälte som hette "+person
    saga+= " som sökte världen kring efter en helig "+sak
    saga+= " men just när "+person+" insett det hopplösa"
    saga+= " i att hitta en helig "+sak+" var det en "+sak
    saga+= " som hittade "+person+"! En märklig"+adjektiv
    saga+= " känsla i "+person+"s "+kroppsdel+" fick då "
    saga+= person+" att "+verb+" våldsamt och länge. Slut."

    text.insert(END,saga)   # Skriv den sist i textrutan

root = Tk()                 # Skapa rotfönstret
root.title("Din egen saga")

adj1 = StringVar()          # Variabler att spara ord i
adj2 = StringVar()
adj3 = StringVar()
kropp= StringVar()

                            #Skapa grafiska komponenter
label0 = Label(root,text="Fyll i information till sagan!")
label1 = Label(root,text="Person:")
label2 = Label(root,text="Sak:")
label3 = Label(root,text="Verb:")
label4 = Label(root,text="Adjektiv:")
label5 = Label(root,text="Kroppsdel:")
entry1 = Entry(root)
entry2 = Entry(root)
entry3 = Entry(root)
button1= Checkbutton(root,text="fånig",variable=adj1,onvalue=", fånig")
button2= Checkbutton(root,text="färsk",variable=adj2,onvalue=", färsk")
button3= Checkbutton(root,text="luden",variable=adj3,onvalue=", luden")
button4= Button(root,text="Skriv saga",command=skrivsaga)
radio1 = Radiobutton(root,text="magmun",variable=kropp,value="magmun")
radio2 = Radiobutton(root,text="stortå",variable=kropp,value="stortå")
radio3 = Radiobutton(root,text="mjälte",variable=kropp,value="mjälte")
text   = Text(root,width=75,height=10,wrap=WORD)

root.grid()                 # Organisera i rader och kolumner
label0.grid(row=0,column=0,columnspan=2,sticky=W)
label1.grid(row=1,column=0,sticky=W)
label2.grid(row=2,column=0,sticky=W)
label3.grid(row=3,column=0,sticky=W)
label4.grid(row=4,column=0,sticky=W)
label5.grid(row=5,column=0,sticky=W)
entry1.grid(row=1,column=1,sticky=W)
entry2.grid(row=2,column=1,sticky=W)
entry3.grid(row=3,column=1,sticky=W)
button1.grid(row=4,column=1)
button2.grid(row=4,column=2)
button3.grid(row=4,column=3)
button4.grid(row=6,column=0,sticky=W)
radio1.grid(row=5,column=1)
radio2.grid(row=5,column=2)
radio3.grid(row=5,column=3)
text.grid(row=7,column=0,columnspan=4)

root.mainloop()             # Visa fönstret och vänta på händelser

