import FreeSimpleGUI as sg
#import PySimpleGUI as sg

# ------------------style------------------ #
# ====theme==== #
sg.theme('LightBlue3')
# ====window size==== #
win_size = (300, 60)
# ====title form size==== #
t_size = (38, 1)
# ====title font==== #
t_font = ('meiryo', 11)
# ====default width==== #
def_width = 10
# ====default height==== #
def_height = 1
# ====combo box size==== #
combo_size = (def_width, def_height)
# ====text font==== #
text_font = ('meiryo', 8)

# @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #
#                           Window setting                          #
# @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #
# ====box list==== #
first_list = ['test1', 'test2', 'test3']
select1_list = ['test1_1', 'test1_2', 'test1_3']
select2_list = ['test2__1', 'test2__2', 'test2__3']
select3_list = ['test3___1', 'test3___2', 'test3___3']

# ====select dictionary==== #
select_dic = {
                first_list[0] : select1_list,
                first_list[1] : select2_list,
                first_list[2] : select3_list,
}

# ====combo setting==== #
combo_form = [
            [
                sg.Combo(first_list, default_value='', size=combo_size, font=text_font, pad=((5,5),(0,10)), key='first', enable_events=True, readonly=True),
                sg.Combo([], default_value='', size=combo_size, font=text_font, pad=((5,5),(0,10)), key='select', enable_events=True, readonly=True)
            ]
]

# ====layout==== #
layout = [
            [sg.Column(combo_form, justification='l')]
]

# ====Window UI object==== #
test_f_window = sg.Window('test_form', layout=layout, size=win_size, finalize=True)

# @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #
#                           main loop                               #
# @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ #
while True:
    event, value = test_f_window.read()

    if event == 'first':
        first_data = value['first']
        spec_sel_list = select_dic[first_data]
        test_f_window['select'].Update(values=spec_sel_list)

    elif event == sg.WIN_CLOSED:
        test_f_window.close()
        break

