def __init__(self, inifile): # System default Glade file: self.gladefile = os.path.join(datadir, "touchy.glade") if inifile: self.ini = linuxcnc.ini(inifile) alternate_gladefile = self.ini.find("DISPLAY", "GLADEFILE") if alternate_gladefile: self.gladefile = alternate_gladefile else: self.ini = None self.wTree = gtk.glade.XML(self.gladefile) for w in [ 'wheelinc1', 'wheelinc2', 'wheelinc3', 'wheelx', 'wheely', 'wheelz', 'wheela', 'wheelb', 'wheelc', 'wheelu', 'wheelv', 'wheelw' ]: self.wTree.get_widget(w).get_child().set_property('width-chars', 6) for widget in self.wTree.get_widget_prefix(''): widget.unset_flags(gtk.CAN_FOCUS) self.wTree.get_widget('MainWindow').set_flags(gtk.CAN_FOCUS) self.wTree.get_widget('MainWindow').grab_focus() self.num_mdi_labels = 11 self.num_filechooser_labels = 11 self.num_listing_labels = 20 self.wheelxyz = 0 self.wheelinc = 0 self.wheel = "fo" self.radiobutton_mask = 0 self.resized_wheelbuttons = 0 self.tab = 0 self.fo_val = 100 self.so_val = 100 self.g10l11 = 0 self.prefs = preferences.preferences() self.mv_val = self.prefs.getpref('maxvel', 100, int) self.control_font_name = self.prefs.getpref('control_font', 'Sans 18', str) self.dro_font_name = self.prefs.getpref('dro_font', 'Courier 10 Pitch Bold 16', str) self.error_font_name = self.prefs.getpref('error_font', 'Sans Bold 10', str) self.listing_font_name = self.prefs.getpref('listing_font', 'Sans 10', str) self.theme_name = self.prefs.getpref('gtk_theme', 'Follow System Theme', str) self.abs_textcolor = self.prefs.getpref('abs_textcolor', 'default', str) self.rel_textcolor = self.prefs.getpref('rel_textcolor', 'default', str) self.dtg_textcolor = self.prefs.getpref('dtg_textcolor', 'default', str) self.err_textcolor = self.prefs.getpref('err_textcolor', 'default', str) self.window_geometry = self.prefs.getpref('window_geometry', 'default', str) self.window_max = self.prefs.getpref('window_force_max', 'False', bool) # initial screen setup if os.path.exists(themedir): model = self.wTree.get_widget("theme_choice").get_model() model.clear() model.append((_("Follow System Theme"), )) temp = 0 names = os.listdir(themedir) names.sort() for search, dirs in enumerate(names): model.append((dirs, )) if dirs == self.theme_name: temp = search + 1 self.wTree.get_widget("theme_choice").set_active(temp) if self.window_geometry == "default": self.wTree.get_widget("MainWindow").window.maximize() else: self.wTree.get_widget("MainWindow").parse_geometry( self.window_geometry) if self.window_max: self.wTree.get_widget("MainWindow").window.maximize() self.invisible_cursor = self.prefs.getpref('invisible_cursor', 0) if self.invisible_cursor: self.wTree.get_widget("MainWindow").window.set_cursor(invisible) else: self.wTree.get_widget("MainWindow").window.set_cursor(None) self.wTree.get_widget("controlfontbutton").set_font_name( self.control_font_name) self.control_font = pango.FontDescription(self.control_font_name) self.wTree.get_widget("drofontbutton").set_font_name( self.dro_font_name) self.dro_font = pango.FontDescription(self.dro_font_name) self.wTree.get_widget("errorfontbutton").set_font_name( self.error_font_name) self.error_font = pango.FontDescription(self.error_font_name) self.wTree.get_widget("listingfontbutton").set_font_name( self.listing_font_name) self.listing_font = pango.FontDescription(self.listing_font_name) settings = gtk.settings_get_default() self.system_theme = settings.get_property("gtk-theme-name") if not self.theme_name == "Follow System Theme": settings.set_string_property("gtk-theme-name", self.theme_name, "") # interactive mdi command builder and issuer mdi_labels = [] mdi_eventboxes = [] for i in range(self.num_mdi_labels): mdi_labels.append(self.wTree.get_widget("mdi%d" % i)) mdi_eventboxes.append(self.wTree.get_widget("eventbox_mdi%d" % i)) self.mdi_control = mdi.mdi_control(gtk, linuxcnc, mdi_labels, mdi_eventboxes) if self.ini: macros = self.ini.findall("TOUCHY", "MACRO") if len(macros) > 0: self.mdi_control.mdi.add_macros(macros) else: self.wTree.get_widget("macro").set_sensitive(0) listing_labels = [] listing_eventboxes = [] for i in range(self.num_listing_labels): listing_labels.append(self.wTree.get_widget("listing%d" % i)) listing_eventboxes.append( self.wTree.get_widget("eventbox_listing%d" % i)) self.listing = listing.listing(gtk, linuxcnc, listing_labels, listing_eventboxes) # emc interface self.linuxcnc = emc_interface.emc_control( linuxcnc, self.listing, self.wTree.get_widget("error")) self.linuxcnc.continuous_jog_velocity(self.mv_val) self.hal = hal_interface.hal_interface(self, self.linuxcnc, self.mdi_control, linuxcnc) # silly file chooser filechooser_labels = [] filechooser_eventboxes = [] for i in range(self.num_filechooser_labels): filechooser_labels.append( self.wTree.get_widget("filechooser%d" % i)) filechooser_eventboxes.append( self.wTree.get_widget("eventbox_filechooser%d" % i)) self.filechooser = filechooser.filechooser(gtk, linuxcnc, filechooser_labels, filechooser_eventboxes, self.listing) relative = ['xr', 'yr', 'zr', 'ar', 'br', 'cr', 'ur', 'vr', 'wr'] absolute = ['xa', 'ya', 'za', 'aa', 'ba', 'ca', 'ua', 'va', 'wa'] distance = ['xd', 'yd', 'zd', 'ad', 'bd', 'cd', 'ud', 'vd', 'wd'] relative = [self.wTree.get_widget(i) for i in relative] absolute = [self.wTree.get_widget(i) for i in absolute] distance = [self.wTree.get_widget(i) for i in distance] estops = ['estop_reset', 'estop'] estops = dict((i, self.wTree.get_widget(i)) for i in estops) machines = ['on', 'off'] machines = dict( (i, self.wTree.get_widget("machine_" + i)) for i in machines) floods = ['on', 'off'] floods = dict((i, self.wTree.get_widget("flood_" + i)) for i in floods) mists = ['on', 'off'] mists = dict((i, self.wTree.get_widget("mist_" + i)) for i in mists) spindles = ['forward', 'off', 'reverse'] spindles = dict( (i, self.wTree.get_widget("spindle_" + i)) for i in spindles) stats = [ 'file', 'file_lines', 'line', 'id', 'dtg', 'velocity', 'delay', 'onlimit', 'spindledir', 'spindlespeed', 'loadedtool', 'preppedtool', 'xyrotation', 'tlo', 'activecodes', 'spindlespeed2', 'label_g5xoffset', 'g5xoffset', 'g92offset', 'tooltable' ] stats = dict((i, self.wTree.get_widget("status_" + i)) for i in stats) prefs = ['actual', 'commanded', 'inch', 'mm'] prefs = dict((i, self.wTree.get_widget("dro_" + i)) for i in prefs) opstop = ['on', 'off'] opstop = dict( (i, self.wTree.get_widget("opstop_" + i)) for i in opstop) blockdel = ['on', 'off'] blockdel = dict( (i, self.wTree.get_widget("blockdel_" + i)) for i in blockdel) self.status = emc_interface.emc_status( gtk, linuxcnc, self.listing, relative, absolute, distance, self.wTree.get_widget("dro_table"), self.wTree.get_widget("error"), estops, machines, self.wTree.get_widget("override_limits"), stats, floods, mists, spindles, prefs, opstop, blockdel) self.current_file = self.status.emcstat.file # check the ini file if UNITS are set to mm" # first check the global settings units = self.ini.find("TRAJ", "LINEAR_UNITS") if units == None: units = self.ini.find("AXIS_X", "UNITS") if units == "mm" or units == "metric" or units == "1.0": self.machine_units_mm = 1 conversion = [1.0 / 25.4] * 3 + [1] * 3 + [1.0 / 25.4] * 3 else: self.machine_units_mm = 0 conversion = [25.4] * 3 + [1] * 3 + [25.4] * 3 self.status.set_machine_units(self.machine_units_mm, conversion) if self.prefs.getpref('toolsetting_fixture', 0): self.g10l11 = 1 else: self.g10l11 = 0 if self.prefs.getpref('dro_mm', 0): self.status.dro_mm(0) else: self.status.dro_inch(0) if self.prefs.getpref('dro_actual', 0): self.status.dro_actual(0) else: self.status.dro_commanded(0) if self.prefs.getpref('blockdel', 0): self.linuxcnc.blockdel_on(0) else: self.linuxcnc.blockdel_off(0) if self.prefs.getpref('opstop', 1): self.linuxcnc.opstop_on(0) else: self.linuxcnc.opstop_off(0) self.linuxcnc.emccommand.program_open(empty_program.name) self.linuxcnc.max_velocity(self.mv_val) gobject.timeout_add(50, self.periodic_status) gobject.timeout_add(100, self.periodic_radiobuttons) # event bindings dic = { "quit": self.quit, "on_pointer_show_clicked": self.pointer_show, "on_pointer_hide_clicked": self.pointer_hide, "on_opstop_on_clicked": self.opstop_on, "on_opstop_off_clicked": self.opstop_off, "on_blockdel_on_clicked": self.blockdel_on, "on_blockdel_off_clicked": self.blockdel_off, "on_reload_tooltable_clicked": self.linuxcnc.reload_tooltable, "on_notebook1_switch_page": self.tabselect, "on_controlfontbutton_font_set": self.change_control_font, "on_drofontbutton_font_set": self.change_dro_font, "on_dro_actual_clicked": self.dro_actual, "on_dro_commanded_clicked": self.dro_commanded, "on_dro_inch_clicked": self.dro_inch, "on_dro_mm_clicked": self.dro_mm, "on_errorfontbutton_font_set": self.change_error_font, "on_listingfontbutton_font_set": self.change_listing_font, "on_estop_clicked": self.linuxcnc.estop, "on_estop_reset_clicked": self.linuxcnc.estop_reset, "on_machine_off_clicked": self.linuxcnc.machine_off, "on_machine_on_clicked": self.linuxcnc.machine_on, "on_mdi_clear_clicked": self.mdi_control.clear, "on_mdi_back_clicked": self.mdi_control.back, "on_mdi_next_clicked": self.mdi_control.next, "on_mdi_decimal_clicked": self.mdi_control.decimal, "on_mdi_minus_clicked": self.mdi_control.minus, "on_mdi_keypad_clicked": self.mdi_control.keypad, "on_mdi_g_clicked": self.mdi_control.g, "on_mdi_gp_clicked": self.mdi_control.gp, "on_mdi_m_clicked": self.mdi_control.m, "on_mdi_t_clicked": self.mdi_control.t, "on_mdi_select": self.mdi_control.select, "on_mdi_set_tool_clicked": self.mdi_set_tool, "on_mdi_set_origin_clicked": self.mdi_set_origin, "on_mdi_macro_clicked": self.mdi_macro, "on_filechooser_select": self.fileselect, "on_filechooser_up_clicked": self.filechooser.up, "on_filechooser_down_clicked": self.filechooser.down, "on_filechooser_reload_clicked": self.filechooser.reload, "on_listing_up_clicked": self.listing.up, "on_listing_down_clicked": self.listing.down, "on_listing_previous_clicked": self.listing.previous, "on_listing_next_clicked": self.listing.next, "on_mist_on_clicked": self.linuxcnc.mist_on, "on_mist_off_clicked": self.linuxcnc.mist_off, "on_flood_on_clicked": self.linuxcnc.flood_on, "on_flood_off_clicked": self.linuxcnc.flood_off, "on_home_all_clicked": self.linuxcnc.home_all, "on_unhome_all_clicked": self.linuxcnc.unhome_all, "on_home_selected_clicked": self.home_selected, "on_unhome_selected_clicked": self.unhome_selected, "on_fo_clicked": self.fo, "on_so_clicked": self.so, "on_mv_clicked": self.mv, "on_jogging_clicked": self.jogging, "on_scrolling_clicked": self.scrolling, "on_wheelx_clicked": self.wheelx, "on_wheely_clicked": self.wheely, "on_wheelz_clicked": self.wheelz, "on_wheela_clicked": self.wheela, "on_wheelb_clicked": self.wheelb, "on_wheelc_clicked": self.wheelc, "on_wheelu_clicked": self.wheelu, "on_wheelv_clicked": self.wheelv, "on_wheelw_clicked": self.wheelw, "on_wheelinc1_clicked": self.wheelinc1, "on_wheelinc2_clicked": self.wheelinc2, "on_wheelinc3_clicked": self.wheelinc3, "on_override_limits_clicked": self.linuxcnc.override_limits, "on_spindle_forward_clicked": self.linuxcnc.spindle_forward, "on_spindle_off_clicked": self.linuxcnc.spindle_off, "on_spindle_reverse_clicked": self.linuxcnc.spindle_reverse, "on_spindle_slower_clicked": self.linuxcnc.spindle_slower, "on_spindle_faster_clicked": self.linuxcnc.spindle_faster, "on_toolset_fixture_clicked": self.toolset_fixture, "on_toolset_workpiece_clicked": self.toolset_workpiece, "on_changetheme_clicked": self.change_theme, } self.wTree.signal_autoconnect(dic) for widget in self.wTree.get_widget_prefix(''): if isinstance(widget, gtk.Button): widget.connect_after('released', self.hack_leave) self._dynamic_childs = {} atexit.register(self.kill_dynamic_childs) self.set_dynamic_tabs() atexit.register(self.save_maxvel_pref) self.setfont()
def __init__(self, inifile): # System default Glade file: self.gladefile = os.path.join(datadir, "touchy.glade") if inifile: self.ini = linuxcnc.ini(inifile) alternate_gladefile = self.ini.find("DISPLAY", "GLADEFILE") if alternate_gladefile: self.gladefile = alternate_gladefile else: self.ini = None self.wTree = gtk.glade.XML(self.gladefile) for w in ['wheelinc1', 'wheelinc2', 'wheelinc3', 'wheelx', 'wheely', 'wheelz', 'wheela', 'wheelb', 'wheelc', 'wheelu', 'wheelv', 'wheelw']: self.wTree.get_widget(w).get_child().set_property('width-chars', 6) for widget in self.wTree.get_widget_prefix(''): widget.unset_flags(gtk.CAN_FOCUS) self.wTree.get_widget('MainWindow').set_flags(gtk.CAN_FOCUS) self.wTree.get_widget('MainWindow').grab_focus() self.num_mdi_labels = 11 self.num_filechooser_labels = 11 self.num_listing_labels = 20 self.wheelxyz = 0 self.wheelinc = 0 self.wheel = "fo" self.radiobutton_mask = 0 self.resized_wheelbuttons = 0 self.tab = 0 self.fo_val = 100 self.so_val = 100 self.g10l11 = 0 self.prefs = preferences.preferences() self.mv_val = self.prefs.getpref('maxvel', 100, int) self.control_font_name = self.prefs.getpref('control_font', 'Sans 18', str) self.dro_font_name = self.prefs.getpref('dro_font', 'Courier 10 Pitch Bold 16', str) self.error_font_name = self.prefs.getpref('error_font', 'Sans Bold 10', str) self.listing_font_name = self.prefs.getpref('listing_font', 'Sans 10', str) self.theme_name = self.prefs.getpref('gtk_theme', 'Follow System Theme', str) self.abs_textcolor = self.prefs.getpref('abs_textcolor', 'default', str) self.rel_textcolor = self.prefs.getpref('rel_textcolor', 'default', str) self.dtg_textcolor = self.prefs.getpref('dtg_textcolor', 'default', str) self.err_textcolor = self.prefs.getpref('err_textcolor', 'default', str) self.window_geometry = self.prefs.getpref('window_geometry', 'default', str) self.window_max = self.prefs.getpref('window_force_max', 'False', bool) # initial screen setup if os.path.exists(themedir): model = self.wTree.get_widget("theme_choice").get_model() model.clear() model.append(("Follow System Theme",)) temp = 0 names = os.listdir(themedir) names.sort() for search,dirs in enumerate(names): model.append((dirs,)) if dirs == self.theme_name: temp = search+1 self.wTree.get_widget("theme_choice").set_active(temp) if self.window_geometry == "default": self.wTree.get_widget("MainWindow").window.maximize() else: self.wTree.get_widget("MainWindow").parse_geometry(self.window_geometry) if self.window_max: self.wTree.get_widget("MainWindow").window.maximize() self.invisible_cursor = self.prefs.getpref('invisible_cursor', 0) if self.invisible_cursor: self.wTree.get_widget("MainWindow").window.set_cursor(invisible) else: self.wTree.get_widget("MainWindow").window.set_cursor(None) self.wTree.get_widget("controlfontbutton").set_font_name(self.control_font_name) self.control_font = pango.FontDescription(self.control_font_name) self.wTree.get_widget("drofontbutton").set_font_name(self.dro_font_name) self.dro_font = pango.FontDescription(self.dro_font_name) self.wTree.get_widget("errorfontbutton").set_font_name(self.error_font_name) self.error_font = pango.FontDescription(self.error_font_name) self.wTree.get_widget("listingfontbutton").set_font_name(self.listing_font_name) self.listing_font = pango.FontDescription(self.listing_font_name) settings = gtk.settings_get_default() self.system_theme = settings.get_property("gtk-theme-name") if not self.theme_name == "Follow System Theme": settings.set_string_property("gtk-theme-name", self.theme_name, "") # interactive mdi command builder and issuer mdi_labels = [] mdi_eventboxes = [] for i in range(self.num_mdi_labels): mdi_labels.append(self.wTree.get_widget("mdi%d" % i)) mdi_eventboxes.append(self.wTree.get_widget("eventbox_mdi%d" % i)) self.mdi_control = mdi.mdi_control(gtk, linuxcnc, mdi_labels, mdi_eventboxes) if self.ini: macros = self.ini.findall("TOUCHY", "MACRO") if len(macros) > 0: self.mdi_control.mdi.add_macros(macros) else: self.wTree.get_widget("macro").set_sensitive(0) listing_labels = [] listing_eventboxes = [] for i in range(self.num_listing_labels): listing_labels.append(self.wTree.get_widget("listing%d" % i)) listing_eventboxes.append(self.wTree.get_widget("eventbox_listing%d" % i)) self.listing = listing.listing(gtk, linuxcnc, listing_labels, listing_eventboxes) # emc interface self.linuxcnc = emc_interface.emc_control(linuxcnc, self.listing, self.wTree.get_widget("error")) self.linuxcnc.continuous_jog_velocity(self.mv_val) self.hal = hal_interface.hal_interface(self, self.linuxcnc, self.mdi_control, linuxcnc) # silly file chooser filechooser_labels = [] filechooser_eventboxes = [] for i in range(self.num_filechooser_labels): filechooser_labels.append(self.wTree.get_widget("filechooser%d" % i)) filechooser_eventboxes.append(self.wTree.get_widget("eventbox_filechooser%d" % i)) self.filechooser = filechooser.filechooser(gtk, linuxcnc, filechooser_labels, filechooser_eventboxes, self.listing) relative = ['xr', 'yr', 'zr', 'ar', 'br', 'cr', 'ur', 'vr', 'wr'] absolute = ['xa', 'ya', 'za', 'aa', 'ba', 'ca', 'ua', 'va', 'wa'] distance = ['xd', 'yd', 'zd', 'ad', 'bd', 'cd', 'ud', 'vd', 'wd'] relative = [self.wTree.get_widget(i) for i in relative] absolute = [self.wTree.get_widget(i) for i in absolute] distance = [self.wTree.get_widget(i) for i in distance] estops = ['estop_reset', 'estop'] estops = dict((i, self.wTree.get_widget(i)) for i in estops) machines = ['on', 'off'] machines = dict((i, self.wTree.get_widget("machine_" + i)) for i in machines) floods = ['on', 'off'] floods = dict((i, self.wTree.get_widget("flood_" + i)) for i in floods) mists = ['on', 'off'] mists = dict((i, self.wTree.get_widget("mist_" + i)) for i in mists) spindles = ['forward', 'off', 'reverse'] spindles = dict((i, self.wTree.get_widget("spindle_" + i)) for i in spindles) stats = ['file', 'file_lines', 'line', 'id', 'dtg', 'velocity', 'delay', 'onlimit', 'spindledir', 'spindlespeed', 'loadedtool', 'preppedtool', 'xyrotation', 'tlo', 'activecodes', 'spindlespeed2', 'label_g5xoffset', 'g5xoffset', 'g92offset', 'tooltable'] stats = dict((i, self.wTree.get_widget("status_" + i)) for i in stats) prefs = ['actual', 'commanded', 'inch', 'mm'] prefs = dict((i, self.wTree.get_widget("dro_" + i)) for i in prefs) opstop = ['on', 'off'] opstop = dict((i, self.wTree.get_widget("opstop_" + i)) for i in opstop) blockdel = ['on', 'off'] blockdel = dict((i, self.wTree.get_widget("blockdel_" + i)) for i in blockdel) self.status = emc_interface.emc_status(gtk, linuxcnc, self.listing, relative, absolute, distance, self.wTree.get_widget("dro_table"), self.wTree.get_widget("error"), estops, machines, self.wTree.get_widget("override_limits"), stats, floods, mists, spindles, prefs, opstop, blockdel) self.current_file = self.status.emcstat.file # check the ini file if UNITS are set to mm" # first check the global settings units=self.ini.find("TRAJ","LINEAR_UNITS") if units==None: units=self.ini.find("AXIS_X","UNITS") if units=="mm" or units=="metric" or units == "1.0": self.machine_units_mm=1 conversion=[1.0/25.4]*3+[1]*3+[1.0/25.4]*3 else: self.machine_units_mm=0 conversion=[25.4]*3+[1]*3+[25.4]*3 self.status.set_machine_units(self.machine_units_mm,conversion) if self.prefs.getpref('toolsetting_fixture', 0): self.g10l11 = 1 else: self.g10l11 = 0 if self.prefs.getpref('dro_mm', 0): self.status.dro_mm(0) else: self.status.dro_inch(0) if self.prefs.getpref('dro_actual', 0): self.status.dro_actual(0) else: self.status.dro_commanded(0) if self.prefs.getpref('blockdel', 0): self.linuxcnc.blockdel_on(0) else: self.linuxcnc.blockdel_off(0) if self.prefs.getpref('opstop', 1): self.linuxcnc.opstop_on(0) else: self.linuxcnc.opstop_off(0) self.linuxcnc.emccommand.program_open(empty_program.name) self.linuxcnc.max_velocity(self.mv_val) gobject.timeout_add(50, self.periodic_status) gobject.timeout_add(100, self.periodic_radiobuttons) # event bindings dic = { "quit" : self.quit, "on_pointer_show_clicked" : self.pointer_show, "on_pointer_hide_clicked" : self.pointer_hide, "on_opstop_on_clicked" : self.opstop_on, "on_opstop_off_clicked" : self.opstop_off, "on_blockdel_on_clicked" : self.blockdel_on, "on_blockdel_off_clicked" : self.blockdel_off, "on_reload_tooltable_clicked" : self.linuxcnc.reload_tooltable, "on_notebook1_switch_page" : self.tabselect, "on_controlfontbutton_font_set" : self.change_control_font, "on_drofontbutton_font_set" : self.change_dro_font, "on_dro_actual_clicked" : self.dro_actual, "on_dro_commanded_clicked" : self.dro_commanded, "on_dro_inch_clicked" : self.dro_inch, "on_dro_mm_clicked" : self.dro_mm, "on_errorfontbutton_font_set" : self.change_error_font, "on_listingfontbutton_font_set" : self.change_listing_font, "on_estop_clicked" : self.linuxcnc.estop, "on_estop_reset_clicked" : self.linuxcnc.estop_reset, "on_machine_off_clicked" : self.linuxcnc.machine_off, "on_machine_on_clicked" : self.linuxcnc.machine_on, "on_mdi_clear_clicked" : self.mdi_control.clear, "on_mdi_back_clicked" : self.mdi_control.back, "on_mdi_next_clicked" : self.mdi_control.next, "on_mdi_decimal_clicked" : self.mdi_control.decimal, "on_mdi_minus_clicked" : self.mdi_control.minus, "on_mdi_keypad_clicked" : self.mdi_control.keypad, "on_mdi_g_clicked" : self.mdi_control.g, "on_mdi_gp_clicked" : self.mdi_control.gp, "on_mdi_m_clicked" : self.mdi_control.m, "on_mdi_t_clicked" : self.mdi_control.t, "on_mdi_select" : self.mdi_control.select, "on_mdi_set_tool_clicked" : self.mdi_set_tool, "on_mdi_set_origin_clicked" : self.mdi_set_origin, "on_mdi_macro_clicked" : self.mdi_macro, "on_filechooser_select" : self.fileselect, "on_filechooser_up_clicked" : self.filechooser.up, "on_filechooser_down_clicked" : self.filechooser.down, "on_filechooser_reload_clicked" : self.filechooser.reload, "on_listing_up_clicked" : self.listing.up, "on_listing_down_clicked" : self.listing.down, "on_listing_previous_clicked" : self.listing.previous, "on_listing_next_clicked" : self.listing.next, "on_mist_on_clicked" : self.linuxcnc.mist_on, "on_mist_off_clicked" : self.linuxcnc.mist_off, "on_flood_on_clicked" : self.linuxcnc.flood_on, "on_flood_off_clicked" : self.linuxcnc.flood_off, "on_home_all_clicked" : self.linuxcnc.home_all, "on_unhome_all_clicked" : self.linuxcnc.unhome_all, "on_home_selected_clicked" : self.home_selected, "on_unhome_selected_clicked" : self.unhome_selected, "on_fo_clicked" : self.fo, "on_so_clicked" : self.so, "on_mv_clicked" : self.mv, "on_jogging_clicked" : self.jogging, "on_scrolling_clicked" : self.scrolling, "on_wheelx_clicked" : self.wheelx, "on_wheely_clicked" : self.wheely, "on_wheelz_clicked" : self.wheelz, "on_wheela_clicked" : self.wheela, "on_wheelb_clicked" : self.wheelb, "on_wheelc_clicked" : self.wheelc, "on_wheelu_clicked" : self.wheelu, "on_wheelv_clicked" : self.wheelv, "on_wheelw_clicked" : self.wheelw, "on_wheelinc1_clicked" : self.wheelinc1, "on_wheelinc2_clicked" : self.wheelinc2, "on_wheelinc3_clicked" : self.wheelinc3, "on_override_limits_clicked" : self.linuxcnc.override_limits, "on_spindle_forward_clicked" : self.linuxcnc.spindle_forward, "on_spindle_off_clicked" : self.linuxcnc.spindle_off, "on_spindle_reverse_clicked" : self.linuxcnc.spindle_reverse, "on_spindle_slower_clicked" : self.linuxcnc.spindle_slower, "on_spindle_faster_clicked" : self.linuxcnc.spindle_faster, "on_toolset_fixture_clicked" : self.toolset_fixture, "on_toolset_workpiece_clicked" : self.toolset_workpiece, "on_changetheme_clicked" : self.change_theme, } self.wTree.signal_autoconnect(dic) for widget in self.wTree.get_widget_prefix(''): if isinstance(widget, gtk.Button): widget.connect_after('released',self.hack_leave) self._dynamic_childs = {} atexit.register(self.kill_dynamic_childs) self.set_dynamic_tabs() atexit.register(self.save_maxvel_pref) self.setfont()