import tkinter as tk      # from tkinter import Tk for Python 3.x
from tkinter.filedialog import askopenfilename
from tkinter import messagebox

def sample_select():
    '''Vytvoří okno pro výběr vzorku z datasetu.'''
    #Tk().withdraw() 
    initialdir = r".\dataset"
    filename = askopenfilename(initialdir=initialdir, title= "Vyberte vzorek pro analýzu:")
    return filename
#PŘED ODEVZDÁNÍM ZMĚNIT INITIALDIR NA SLOŽKU, ZE KTERÉ SE BUDE SPOUŠTĚT KÓD -> DATASET

def vyber_mikrofon():
    '''Vytvoří okno pro výběr analýzy vzorků z datasetu nebo analýzy výstupu mikrofonu v reálném čase'''
    root = tk.Tk(screenName="Vyberte druh vstupu")
    root.geometry("150x150")
    frame = tk.Frame(root)
    frame.pack()


    mikrofon_button = tk.Button(root, text="Mikrofon", command = lambda: set_value("Mikrofon"), height=5, width=7)
    mikrofon_button.pack(side=tk.LEFT)

    dataset_button = tk.Button(root, text="Dataset", command=lambda: set_value("Dataset"), height=5, width=7)
    dataset_button.pack(side=tk.RIGHT)

    def set_value(val):
        global value
        value = val
        root.destroy()
    
    root.mainloop()

    return value

def mic_pocet():
    '''Vytvoří okno pro zadání počtu tónu při analýze akordů mikrofonem v reálném čase.'''
    root = tk.Tk()
    
    popisek = tk.Label(text='Zadejte počet tónů akordu, který budete nahrávat (3 nebo 4)\nStisknutí "OK" spustí nahrávání!!!')
    popisek.pack()
    
    radek = tk.Entry(root, bd=4)
    radek.pack()

    
    
    potvrd_button = tk.Button(root, text="OK", comma=lambda: set_value())
    potvrd_button.pack()    

    def set_value():
        global vstup
        vstup = int(radek.get())
        root.destroy()
        

    root.mainloop()
    return vstup

def pocet_demo():
    '''Vytvoří okno pro zadání počtu tónu. Pokud je počet tónů neznámý, okno ponechte prázdné, počet bude určen systémem PianoTranscription'''
    root = tk.Tk()
    
    popisek = tk.Label(text='Zadejte počet tónů, který budete analyzovat.\nPro neznámý počet, ponechejte pole prázdné.')
    popisek.pack()
    
    radek = tk.Entry(root, bd=4)
    radek.pack()

    
    
    potvrd_button = tk.Button(root, text="OK", comma=lambda: set_value())
    potvrd_button.pack()    

    def set_value():
        global vstup
        vstup = radek.get()
        root.destroy()
        

    root.mainloop()
    if vstup == "":
        return None
    else:
        return int(vstup)    


