def __init__(self, parent, lineno): self.logger = Logger(self, Logger.INFO) self.logger.debug("constructor") tkinter.Frame.__init__(self, parent) self.data_store = DataStore.get_instance() self.index = lineno self.name = "Hole %d" % (lineno + 1) self.line_name = tkinter.Label(self, text=self.name, width=12) self.line_name.grid(row=lineno + 1, column=0, sticky=tkinter.W) self.inter_ctl = tkinter.Entry(self, width=5, validate="focusout", validatecommand=self.change_interval) self.inter_ctl.bind('<Return>', self.change_interval) self.inter_ctl.bind('<Tab>', self.change_interval) self.inter_ctl.grid(row=lineno + 1, column=1) self.note_ctl_txt = tkinter.StringVar() self.note_ctl = tkinter.Label(self, textvariable=self.note_ctl_txt, width=12) self.note_ctl.grid(row=lineno + 1, column=2) self.freq_ctl_txt = tkinter.StringVar() self.freq_ctl = tkinter.Label(self, textvariable=self.freq_ctl_txt, width=12) self.freq_ctl.grid(row=lineno + 1, column=3) self.hole_ctl = HoleSizeWidgit(self, lineno) self.hole_ctl.config(padx=25) self.hole_ctl.grid(row=lineno + 1, column=4) self.locat_ctl_txt = tkinter.StringVar() self.locat_ctl = tkinter.Label(self, textvariable=self.locat_ctl_txt, width=12) self.locat_ctl.grid(row=lineno + 1, column=5) self.diff_ctl_txt = tkinter.StringVar() self.diff_ctl = tkinter.Label(self, textvariable=self.diff_ctl_txt, width=12) self.diff_ctl.grid(row=lineno + 1, column=6) self.cutoff_ctl_txt = tkinter.StringVar() self.cutoff_ctl = tkinter.Label(self, textvariable=self.cutoff_ctl_txt, width=12) self.cutoff_ctl.grid(row=lineno + 1, column=7) self.set_state() self.logger.debug("end constructor")
def mm_to_in(val, round=False): ''' Simply convert the value given from MM to inches and round to the increment ''' logger.debug(sys._getframe().f_code.co_name) from data_store import DataStore as ds # avoid a circular dependency data = ds.get_instance() if round: return rnd(val / 25.4, data.internal_data['hole_in_inc']) else: return val / 25.4
def __init__(self, master=None): self.logger = Logger(self, Logger.INFO) self.logger.debug(sys._getframe().f_code.co_name) tkinter.Frame.__init__(self, master) self.master = master self.master.protocol("WM_DELETE_WINDOW", self.close_window) self.general_params = tkinter.LabelFrame(self.master, text="General Parameters") self.general_params.pack() self.output_params = tkinter.LabelFrame(self.master, text="Output Parameters") self.output_params.pack(fill="both", expand="yes") # set up some default values #self.current_file_name = os.path.join(os.getcwd(), "untitled.wis") self.data = DataStore.get_instance() self.logger.debug("data store: %s"%(str(self.data))) self.calc = Calculator() self.upper_frame = UpperFrame(self.general_params) self.lower_frame = LowerFrame(self.output_params) menu = tkinter.Menu(self.master, tearoff=0) self.master.config(menu=menu) #self.master.geometry("750x450") fileMenu = tkinter.Menu(menu, tearoff=0) fileMenu.add_command(label="Load", command=self.loadCommand) fileMenu.add_command(label="Save", command=self.saveCommand) fileMenu.add_command(label="Save As", command=self.saveasCommand) fileMenu.add_command(label="Export", command=self.exportCommand) fileMenu.add_separator() fileMenu.add_command(label="Quit", command=self.close_window) menu.add_cascade(label="File", menu=fileMenu) settingsMenu = tkinter.Menu(menu, tearoff=0) settingsMenu.add_command(label="Constants", command=self.constCommand) settingsMenu.add_command(label="Embouchure", command=self.emboCommand) settingsMenu.add_command(label="Notes", command=self.notesCommand) menu.add_cascade(label="Settings", menu=settingsMenu) editMenu = tkinter.Menu(menu, tearoff=0) editMenu.add_command(label="Help", command=self.helpCommand) editMenu.add_command(label="About", command=self.aboutCommand) editMenu.add_command(label="Dump", command=self.dumpInternalData) menu.add_cascade(label="Help", menu=editMenu) tkinter.Label(self.master, text="Tilbury Woodwinds Whistle Calculator", font=("Helvetica", 14)).pack() self.upper_frame.create_frame() self.lower_frame.update_frame()
def __init__(self): # constant data self.logger = Logger(self, Logger.INFO) self.logger.debug("enter constructor") #self.configuration = Configuration.get_instance() self.data = DataStore.get_instance() self.logger.debug("end constructor") register_event("CALCULATE_EVENT", self.do_calc) # self.isound = self.data.get_vsound_in() # self.msound = self.data.get_vsound_mm() self.max_loop = 12 self.max_delta = 0.0001
def __init__(self, master): self.logger = Logger(self, Logger.INFO) self.logger.debug("constructor") self.data_store = DataStore.get_instance() self.master = master #self.line_data = [] self.line_widgits = [] register_event('UPDATE_LOWER_FRAME_EVENT', self.update_frame) register_event('UPDATE_LINES_EVENT', self.set_state) register_event('UPDATE_NOTES_EVENT', self.update_notes) register_event('CHANGE_UNITS_EVENT', self.change_units) tkinter.Label(self.master, width=12, text="Hole").grid(row=0, column=0, sticky=tkinter.W) tkinter.Label(self.master, width=5, text="Interval").grid(row=0, column=1, sticky=tkinter.W) tkinter.Label(self.master, width=10, text="Note").grid(row=0, column=2, sticky=tkinter.W) tkinter.Label(self.master, width=10, text="Frequency").grid(row=0, column=3, sticky=tkinter.W) tkinter.Label(self.master, width=18, text="Hole Size").grid(row=0, column=4, sticky=tkinter.W) tkinter.Label(self.master, width=11, text="Hole Location").grid(row=0, column=5, sticky=tkinter.W) tkinter.Label(self.master, width=12, text="Hole Diff").grid(row=0, column=6, sticky=tkinter.W) tkinter.Label(self.master, width=12, text="Cutoff Freq").grid(row=0, column=7, sticky=tkinter.W) # create all of the lines for n in range(12): lw = LineWidgit(self.master, n) self.line_widgits.append(lw) for idx in range(self.data_store.get_number_holes()): self.line_widgits[idx].grid(row=idx + 1, column=0, columnspan=8, sticky=tkinter.W) self.line_widgits[idx].set_state() self.logger.debug("end constructor")
def __init__(self, parent, line): ''' This is a specialized widget to track the hole diameter. It displays the value according to the state. It has up and down buttons used to increment or decrement the value. ''' self.logger = Logger(self, Logger.INFO) self.logger.debug("constructor") self.index = line tkinter.Frame.__init__(self, parent) self.data_store = DataStore.get_instance() BITMAP_UP = """ #define up_width 9 #define up_height 5 static unsigned char up_bits[] = { 0x10, 0x00, 0x38, 0x00, 0x7c, 0x00, 0xfe, 0x00, 0xff, 0x01 }; """ BITMAP_DOWN = """ #define down_width 9 #define down_height 5 static unsigned char down_bits[] = { 0xff, 0x01, 0xfe, 0x00, 0x7c, 0x00, 0x38, 0x00, 0x10, 0x00 }; """ self.entry = tkinter.Entry(self, width=25-18) self.entry.grid(row=0, column=1, rowspan=2) self.bitmap_up = tkinter.BitmapImage(data=BITMAP_UP) self.b1 = tkinter.Button(self, text="up", image=self.bitmap_up, command=self.incr_command) self.b1.grid(row=0, column=2) self.b1.config(width=9, height=5) self.bitmap_down = tkinter.BitmapImage(data=BITMAP_DOWN) self.b2 = tkinter.Button(self, image=self.bitmap_down, command=self.decr_command) self.b2.grid(row=1, column=2) self.b2.config(width=9, height=5) register_event("UPDATE_HOLE_EVENT", self.update_val) self.set_state() self.logger.debug("constructor return")
def __init__(self, master): self.logger = Logger(self, Logger.INFO) self.logger.debug("constructor") self.master = master self.data_store = DataStore.get_instance() register_event("UPDATE_UPPER_EVENT", self.set_state)