# coding:iso-8859-1   Henrik Eriksson 2003-11-17

from Tkinter import *

stor=("Courier",18,"bold")
liten=("Times",10)

def ram(master,sidan):                  #En vit ram
    ramen=Frame(master,bg="white")
    ramen.pack(side=sidan,fill=BOTH)
    return ramen
def namnruta(master,namn,filer):        #Ruta med namn eller filer
    def visanamn(event):
        event.widget["text"]=namn
        event.widget["font"]=stor
    def visafiler(event):
        event.widget["text"]=filer
        event.widget["font"]=liten
    frame=Frame(master,bg="yellow")
    frame.pack(side=LEFT)
    knapp=Button(master,text=namn,font=stor,bg="yellow")
    knapp.bind("<Enter>",visafiler)
    knapp.bind("<Leave>",visanamn)
    knapp.pack(side=LEFT)
def streck(master):                     #Vågrätt rött streck
    strecket=Frame(master)
    strecket.pack(side=LEFT,fill=BOTH,expand=True)
    Frame(strecket,bg="white",height=20).pack(fill=X)
    Frame(strecket,bg="red",height=4,width=25).pack(fill=X)
    Frame(strecket,bg="white").pack(fill=BOTH,expand=1)
def stolpe(master):                     #Lodrätt rött streck
    hela=ram(master,TOP)
    stolpen=ram(hela,LEFT)
    Frame(stolpen,bg="white",width=15).pack(side=LEFT)
    Frame(stolpen,bg="red",width=4,height=25).pack(side=LEFT)
    Frame(hela,bg="white").pack(fill=BOTH,expand=1)
def picture(master,p):                   #Rekursiv bilduppbyggnad
    if p is None: return
    storruta=ram(master,LEFT)
    rest=ram(master,LEFT)
    uppruta=ram(storruta,TOP)
    nerruta=ram(storruta,TOP)
    namnruta(uppruta,p.name,p.files)
    if p.down:
        stolpe(nerruta)
        picture(nerruta,p.down)
        ram(nerruta,TOP)
    if p.next:
        streck(uppruta)
        picture(rest,p.next)
def show(p):
    picture(None,p)
    mainloop()
