import os
import sys
import tkinter as tk


from tklib.tkutils import print_data, pint, pfloat, index2val, pconv_by_type
from tklib.tkparams import tkParams
from tklib.tkgui.tksimple_gui import get_window_from_plt, CustomDialog_with_config

import tft


def open_new_window_dialog(parent, app, vars):
    config = tkParams()
    config.widgets = [
            [{"type": "label", "label": "Vg:", "width": None}, {"type": "entry","varname": "Vg_min", "width": 10},
             {"type": "label", "label": "-",   "width": None}, {"type": "entry","varname": "Vg_max", "width": 10},
             {"type": "label", "label": "  ",  "width": None}, {"type": "entry","varname": "nVg", "width": 5},
             {"type": "label", "label": " points", "width": 5}
            ],
            [{"type": "label", "label": "Vd:", "width": None}, {"type": "entry","varname": "Vd_min", "width": 10},
             {"type": "label", "label": "-",   "width": None}, {"type": "entry","varname": "Vd_max", "width": 10},
             {"type": "label", "label": "  ",  "width": None}, {"type": "entry","varname": "nVd", "width": 5},
             {"type": "label", "label": " points", "width": 5}
            ]
            ]

    CustomDialog_with_config(parent, title = "Setup for new plot window", config = config, vars = vars)
#            root.mainloop()

    if config.ret:
       print(f"Vg_min: {vars.Vg_min}")
       print(f"Vg_max: {vars.Vg_max}")
       tft.simulate_IV(app, vars, pause = False)
    else:
       print("Cancelled")

def add_popup_menu(popup_menu, app = None, vars = None, parent = None, **kwargs):
    popup_menu.add_command(label="dialog for new window", command = lambda: open_new_window_dialog(parent, app, vars))
