diff options
author | Walter Bender <walter.bender@gmail.com> | 2012-06-18 22:51:44 (GMT) |
---|---|---|
committer | Walter Bender <walter.bender@gmail.com> | 2012-06-18 22:51:44 (GMT) |
commit | 69ca855d0ee359bff4b60d603067d21178c52f2d (patch) | |
tree | d774a0b44735417ada5b2680d5890cb9c438a355 | |
parent | 2148fb14862a2e926ad413fd75b3d4e9a4b3a5b3 (diff) |
add entry field for individual frequencies
-rw-r--r-- | drawwaveform.py | 16 | ||||
-rw-r--r-- | tuning_toolbar.py | 31 |
2 files changed, 44 insertions, 3 deletions
diff --git a/drawwaveform.py b/drawwaveform.py index b49070c..af44025 100644 --- a/drawwaveform.py +++ b/drawwaveform.py @@ -133,6 +133,7 @@ class DrawWaveform(gtk.DrawingArea): self.debug_str = 'start' self.instrument = None + self.tuning_line = 0.0 self.context = True @@ -279,6 +280,12 @@ class DrawWaveform(gtk.DrawingArea): self._TUNING_LINE_THICKNESS, gtk.gdk.LINE_SOLID, gtk.gdk.CAP_ROUND, gtk.gdk.JOIN_BEVEL) self._tuning_line_gc.set_foreground(clr) + clr = colormap.alloc_color(self.color[0]) + self._tuning_line_2_gc = self.window.new_gc(foreground=clr) + self._tuning_line_2_gc.set_line_attributes( + self._TUNING_LINE_THICKNESS, gtk.gdk.LINE_SOLID, + gtk.gdk.CAP_ROUND, gtk.gdk.JOIN_BEVEL) + self._tuning_line_2_gc.set_foreground(clr) self._create_background_pixmap() return @@ -378,9 +385,12 @@ class DrawWaveform(gtk.DrawingArea): scale = 10. * self.freq_div / 500. if self.fft_show and self.instrument in TUNING_DICT: for note in TUNING_DICT[self.instrument]: - x = int(note / scale) # need to check scale factor - self.window.draw_line(self._tuning_line_gc, - x, 0, x, height) + x = int(note / scale) + self.window.draw_line( + self._tuning_line_gc, x, 0, x, height) + if self.fft_show and self.tuning_line > 0.0: + x = int(self.tuning_line / scale) + self.window.draw_line(self._tuning_line_2_gc, x, 0, x, height) #Iterate for each graph for graph_id in self.graph_id: diff --git a/tuning_toolbar.py b/tuning_toolbar.py index 148aa0f..e8e1321 100644 --- a/tuning_toolbar.py +++ b/tuning_toolbar.py @@ -50,9 +50,40 @@ class TuningToolbar(gtk.Toolbar): self._tuning_tool = ToolComboBox(self._tuning_combo) self.insert(self._tuning_tool, -1) + if self.activity.has_toolbarbox: + separator = gtk.SeparatorToolItem() + separator.props.draw = True + self.insert(separator, -1) + + self._freq_entry = gtk.Entry() + self._freq_entry.set_text('0') + if hasattr(self._freq_entry, 'set_tooltip_text'): + self._freq_entry.set_tooltip_text(_('enter a frequency to display')) + self._freq_entry.set_width_chars(8) + self._freq_entry.show() + toolitem = gtk.ToolItem() + toolitem.add(self._freq_entry) + self.insert(toolitem, -1) + toolitem.show() + + self._new_tuning_line = ToolButton('tuning-tools') + self._new_tuning_line.show() + self.insert(self._new_tuning_line, -1) + self._new_tuning_line.set_tooltip(_('Add tuning line')) + self._new_tuning_line.connect('clicked', self.tuning_line_cb) + self.show_all() def update_tuning_control(self, *args): ''' Callback for tuning control ''' self.activity.wave.instrument = \ self.tuning[self._tuning_combo.get_active()] + + def tuning_line_cb(self, *args): + ''' Callback for tuning insert ''' + freq = self._freq_entry.get_text() + try: + self.activity.wave.tuning_line = float(freq) + except ValueError: + self.activity.wave.tuning_line = 0.0 + self._freq_entry.set_text('0') |