from yad import YAD
import time
yad = YAD()
def cal(yad):
    x = yad.Calendar(day=1,month=1,year=15)
    print(x)

def col(yad):
    x = yad.Color(color='#abcabc')
    print(x)

def dnd(yad):
    x = yad.DND(tooltip=True,text="Drag and Drop here")
    print(x)

def entry1(yad):
    x = yad.Entry(label="Pick a item",data=["apple","orange","banana"])
    print(x)

def entry2(yad):
    x = yad.Entry(label="Password",hide_text=True)
    print(x)

def entry3(yad):
    x = yad.Entry(label="pick an item or type one",data=["","apple","orange","banana"])
    print(x)

def icons1(yad):
    x = yad.Icons("/usr/share/applications",compact=True)
    print(x)

def icons2(yad):
    x = yad.Icons(listen=True)
    x(name="app1",tooltip="app1",icon=None,cmd="echo hi",term=True)
    y = x(name="app2",tooltip="app2",icon=None,cmd="echo hi",term=True,ret=True)
    print(y)

def f1(yad):
    x = yad.File(quoted=True,multi=True,preview=True)
    print(x)

def f2(yad):
    x = yad.File(quoted=True,file_filters=(('py files','*.py'),('txt files','*.txt')))
    print(x)

def font(yad):
    x = yad.Font()
    print(x)

def lt(yad):
    x = yad.List(colnames=("No","item","Description"),quoted=True,data=(("1","apple","An apple"),("2","orange","An orange")))
    print(x)

def notif(yad):
    yad.Notify(cmd="nautilus",menu=(("nautilus","nautilus",""),("evince","evince"),("quit","quit","")))

def prnt(yad):
    yad.Print("test")

def ti(yad):
    x = yad.TextInfo("test.txt",editable=True,wrap=True,justify="fill",tail=True)
    print(x)

def scale(yad):
    x = yad.Scale()
    print(x)

def prog1(yad):
    x = yad.Progress()
    for i in range(0,100):
        y = x(i,msg=str(i)+"% done")
        time.sleep(0.2)

def prog2(yad):
    x = yad.MultiProgress(bar=(("bar1","NORM"),("bar2","PULSE")),autokill=True,autoclose=True)
    for i in range(0,100):
        x(i,1,msg=str(i)+"% done")
        x(i,2,msg=str(i)+"% done")
        time.sleep(0.1)
    x(100,1,msg="100% done")
    x(100,2,msg="100% done")

def form(yad):
    x = (
            ("LBL","Well this is label"),
            ("","Default text entry","hello there"),
            ("H","Hidden label","Hidden text"),
            ("NUM","Numeric",(0,0,100,1,2)),
            ("CB","Combo box",("val1","^val2","val3")),
            ("CBE","Editable Combo box",("val1","^val2","val3")),
            ("FL","Select a file",""),
            ("SFL","File to save",""),
            ("DIR","Select Directory",""),
            ("CDIR","Create Directory",""),
            ("FN","Select Font",("Sans","Regular","12")),
            ("MFL","Select Multiple files",""),
            ("DT","Date",""),
            ("SCL","Scale",""),
            ("CLR","Color Palette",""),
            ("TXT","Multi-line text entry",""),
            ("CHK","Checkbox","true"),
            ("BTN",("gtk-ok","","OK"),"echo hi\n"),
        )
    y = yad.Form(fields=x)
    print(y)

def note(yad):
    yad = YAD()
    x = yad.execute(plug=True,text="This is tab1 text")
    y = yad.execute(plug=True,text="This is tab2 text")
    z = yad.Calendar(plug=True,text="This is a tab3 calendar")
    tabs =(
    ("Tab1","log1.txt",x),
    ("Tab2","log2.txt",y),
    ("Tab3","log3.txt",z),
    )
    w = yad.Notebook(12345,tabpos='bottom',tabs=tabs)
    print(w)

def general(yad):
    x = yad.execute(center=True,title="Test",text="This is a test")

dic = {
"calendar" : cal,
"color" : col,
"dnd" : dnd,
"entry1" : entry1,
"entry2" : entry2,
"entry3" : entry3,
"icons1" : icons1,
"icons2" : icons2,
"f1" : f1,
"f2" : f2,
"font" : font,
"lt" : lt,
"notif" : notif,
"prnt" : prnt,
"ti" : ti,
"scale" : scale,
"prog1" : prog1,
"prog2" : prog2,
"form" : form,
"note" : note,
"gen" : general
}

for param,value in dic.items():
    if param == "gen":
        value(yad)
