
#############################
widgets = nf.Widgets(root_window,
     ("help_window", Toplevel, ".keys"),
     ("about_window", Toplevel, ".about"),
     ("text", Text, pane_bottom + ".t.text"),
     ("preview_frame", Frame, tabs_preview),
     ("numbers_text", Text, tabs_numbers + ".text"),
     ("tabs", bwidget.NoteBook, pane_top + ".tabs"),
     ("right", bwidget.NoteBook, pane_top + ".right"),
     ("mdi_history", Listbox, tabs_mdi + ".history"),
     ("mdi_command", Entry, tabs_mdi + ".command"),
     ("code_text", Text, tabs_mdi + ".gcodes"),

     ("axes", Radiobutton, tabs_manual + ".axes"),
     ("axis_x", Radiobutton, tabs_manual + ".axes.axisx"),
     ("axis_y", Radiobutton, tabs_manual + ".axes.axisy"),
     ("axis_z", Radiobutton, tabs_manual + ".axes.axisz"),
     ("axis_a", Radiobutton, tabs_manual + ".axes.axisa"),
     ("axis_b", Radiobutton, tabs_manual + ".axes.axisb"),
     ("axis_c", Radiobutton, tabs_manual + ".axes.axisc"),
     ("axis_u", Radiobutton, tabs_manual + ".axes.axisu"),
     ("axis_v", Radiobutton, tabs_manual + ".axes.axisv"),
     ("axis_w", Radiobutton, tabs_manual + ".axes.axisw"),

     ("joints", Radiobutton, tabs_manual + ".joints"),
     ("joint_0", Radiobutton, tabs_manual + ".joints.joint0"),
     ("joint_1", Radiobutton, tabs_manual + ".joints.joint1"),
     ("joint_2", Radiobutton, tabs_manual + ".joints.joint2"),
     ("joint_3", Radiobutton, tabs_manual + ".joints.joint3"),
     ("joint_4", Radiobutton, tabs_manual + ".joints.joint4"),
     ("joint_5", Radiobutton, tabs_manual + ".joints.joint5"),
     ("joint_6", Radiobutton, tabs_manual + ".joints.joint6"),
     ("joint_7", Radiobutton, tabs_manual + ".joints.joint7"),
     ("joint_8", Radiobutton, tabs_manual + ".joints.joint8"),
     ("joint_9", Radiobutton, tabs_manual + ".joints.joint9"),

     ("jogincr", Entry, tabs_manual + ".jogf.jog.jogincr"),
     ("override", Checkbutton, tabs_manual + ".jogf.override"),

     ("ajogspeed", Entry, pane_top + ".ajogspeed"),

     ("lubel", Label, tabs_manual + ".coolant"),
     ("flood", Checkbutton, tabs_manual + ".flood"),
     ("mist", Checkbutton, tabs_manual + ".mist"),

     ("brake", Checkbutton, tabs_manual + ".spindlef.brake"),

     ("spindlel", Label, tabs_manual + ".spindlel"),
     ("spindlef", Frame, tabs_manual + ".spindlef"),
     ("spindle_ccw", Radiobutton, tabs_manual + ".spindlef.ccw"),
     ("spindle_stop", Radiobutton, tabs_manual + ".spindlef.stop"),
     ("spindle_cw", Radiobutton, tabs_manual + ".spindlef.cw"),

     ("spindle_minus", Button, tabs_manual + ".spindlef.spindleminus"),
     ("spindle_plus", Button, tabs_manual + ".spindlef.spindleplus"),

     ("view_z", Button, ".toolbar.view_z"),
     ("view_z2", Button, ".toolbar.view_z2"),
     ("view_x", Button, ".toolbar.view_x"),
     ("view_y", Button, ".toolbar.view_y"),
     ("view_y2", Button, ".toolbar.view_y2"),
     ("view_p", Button, ".toolbar.view_p"),
     ("rotate", Button, ".toolbar.rotate"),

     ("feedoverride", Scale, pane_top + ".feedoverride.foscale"),
     ("jogspeed", Scale, pane_top + ".jogspeed.s"),
     ("rapidoverride", Scale, pane_top + ".rapidoverride.foscale"),
     ("spinoverride", Scale, pane_top + ".spinoverride.foscale"),
     ("spinoverridef", Scale, pane_top + ".spinoverride"),

     ("menu_view", Menu, ".menu.view"),
     ("menu_grid", Menu, ".menu.view.grid"),
     ("menu_file", Menu, ".menu.file"),
     ("menu_machine", Menu, ".menu.machine"),
     ("menu_touchoff", Menu, ".menu.machine.touchoff"),

     ("homebutton", Button, tabs_manual + ".jogf.zerohome.home"),
     ("homemenu", Menu, ".menu.machine.home"),
     ("unhomemenu", Menu, ".menu.machine.unhome"))



def set_feedrate(n):
     widgets.feedoverride.set(n)

def set_jogspeed(n):
     widgets.jogspeed.set(n)

def set_jogs_or_set_feedrate(n):
     if manual_ok() :
         vj = float(inifile.find("TRAJ", "MAX_LINEAR_VELOCITY"))
         kk = (0.106/3000)
         set_jogspeed((kk*(vj*60))*n)
     else:
         set_feedrate(10*n)

def f_pass():
     pass

root_window.bind("x", lambda event: f_pass)
root_window.bind("y", lambda event: f_pass)
root_window.bind("z", lambda event: f_pass)
root_window.bind("a", lambda event: f_pass)

root_window.bind("`", lambda event: set_jogs_or_set_feedrate(0))
root_window.bind("1", lambda event: set_jogs_or_set_feedrate(1))
root_window.bind("2", lambda event: set_jogs_or_set_feedrate(2))
root_window.bind("3", lambda event: set_jogs_or_set_feedrate(3))
root_window.bind("4", lambda event: set_jogs_or_set_feedrate(4))
root_window.bind("5", lambda event: set_jogs_or_set_feedrate(5))
root_window.bind("6", lambda event: set_jogs_or_set_feedrate(6))
root_window.bind("7", lambda event: set_jogs_or_set_feedrate(7))
root_window.bind("8", lambda event: set_jogs_or_set_feedrate(8))
root_window.bind("9", lambda event: set_jogs_or_set_feedrate(9))
root_window.bind("0", lambda event: set_jogs_or_set_feedrate(10))
               
