import customtkinter

graphs = [["Tbol-age - tauir-age", "G1", "disabled"], ["Makes the coffee", "G2", "disabled"],
         ["Lbol - Lshock (Class 1 data)", "G3", "disabled"], ["Lbol - CO Momentum","G4", "disabled"],
         ["Tbol - Lbol","G5", "disabled"], ["Menv - H2","G6", "disabled"],
         ["Lbol - Lshock (Class 0 data)","G7", "disabled"], ["Tbol - H2","G8", "disabled"],
         ["Mcor - Lbol + Molinari data + Elia data","G9", "disabled"], ["Probability Diagram","G10", "disabled"],
         ["Mstar - Tstar","G11", "disabled"], ["Mstar - Rstar","G12", "disabled"],
         ["Fco * x / Lbol vs Menv / Lbol^0.6","G13", "disabled"], ["Lbol - Tbol (combined)","G14", "disabled"],
         ["Mstar - Lbol","G15", "disabled"], ["Mcor - Lbol + (M + E) - different axes","G16", "disabled"],
         ["Mcor - Lbol ???","G17", "disabled"], ["TEST Time - Rstar", "G18", "disabled"], ["TEST Time - Lint","G19", "disabled"],
         ["Menv - Lbol - L(Ly) / Lbol","G20", "disabled"], ["Mstar - Lbol / Ledd","G21", "disabled"],
         ["Tstar - Lbol","G22", "normal"], ["Time - Tbol","G23", "disabled"], ["Tbol - Mclump / Lbol","G24", "disabled"],
         ["Tstar - Lint","G25", "disabled"], ["Single histogram for L/M","G26", "disabled"], ["Time - Lbol","G27", "disabled"],
         ["Tbol isotherms","G28", "disabled"], ["HR Diagram for Lint and Lbol tracks","G29", "disabled"],
         ["Mstar - vjet","G30", "disabled"], ["Time - Lbol / Mcor","G31", "disabled"], 
         ["Disk radial profiles","G32", "disabled"], ["Lbol - Lshock","G33", "disabled"],
         [" Time - Mdot","G34", "disabled"], ["Lbol - L(Ly)","G35", "disabled"], ["Tstar - Lint","G36", "disabled"]]

class GraphSelectFrame(customtkinter.CTkFrame):
	
    def __init__(self, *args, header_name="GraphSelectFrame", **kwargs):
        super().__init__(*args, **kwargs)

        self.header_name = header_name

        self.header = customtkinter.CTkLabel(self, text=self.header_name)
        self.header.grid(row=0, column=0, padx=5, pady=5)

        self.radio_button_var = customtkinter.StringVar(value="")

        self.radio_buttons = []
        col = 0
        row = 1

        for graph in graphs:
            label, code, action = graph
            radio_button = customtkinter.CTkRadioButton(self, text=label, value=code, variable=self.radio_button_var, state = action)
            radio_button.grid(row=row, column=col, padx=5, pady=5, sticky="W")
            self.radio_buttons.append(radio_button)
            row += 1
            if (row == 20):
                col += 1
                row = 1
				
    def get_value(self):
        return self.radio_button_var.get()

    def set_value(self, selection):
        self.radio_button_var.set(selection)
