def __init__(self, teacher): abstract.IntervalGui.__init__(self, teacher) self.g_test_stat_dlg = None ################ # practice_box # ################ self.std_buttons_add( ('repeat_melodic', self.repeat_melodic), ('give_up', self.give_up), ) ############## # config_box # ############## self.g_ask_for_frame = frame = Gtk.Frame( label=_("Ask for these intervals")) self.config_box.pack_start(frame, False, False, 0) self.g_interval_selector = nIntervalCheckBox(self.m_exname, 'intervals') def _ff(var): if self.m_t.m_custom_mode: # If we are running in custom mode, then the user can # select himself what intervals to practise. And then # we have to reset the exercise. self.on_end_practise() self.on_start_practise() self.add_watch('intervals', _ff) self.g_interval_selector.set_border_width(gu.PAD) frame.add(self.g_interval_selector) self.add_lock_to_key_gui() #------we need some space self.config_box.pack_start(Gtk.HBox(), False, False, padding=gu.PAD_SMALL) # ------------------------------------------ self._add_auto_new_question_gui(self.config_box) # ---------------------------------------------- self._create_select_inputwidget_gui() # ------------ frame ------------------- self.config_box.set_spacing(0) self.config_box.show_all() ############## # statistics # ############## self.setup_statisticsviewer(statisticsviewer.StatisticsViewer, _("Harmonic interval")) self.select_inputwidget()
def __init__(self, teacher): abstract.IntervalGui.__init__(self, teacher) self.g_test_stat_dlg = None ################ # practice_box # ################ self.std_buttons_add( ('repeat_melodic', self.repeat_melodic), ('give_up', self.give_up), ) ############## # config_box # ############## self.g_ask_for_frame = frame = Gtk.Frame(label=_("Ask for these intervals")) self.config_box.pack_start(frame, False, False, 0) self.g_interval_selector = nIntervalCheckBox(self.m_exname, 'intervals') def _ff(var): if self.m_t.m_custom_mode: # If we are running in custom mode, then the user can # select himself what intervals to practise. And then # we have to reset the exercise. self.on_end_practise() self.on_start_practise() self.add_watch('intervals', _ff) self.g_interval_selector.set_border_width(gu.PAD) frame.add(self.g_interval_selector) self.add_lock_to_key_gui() #------we need some space self.config_box.pack_start(Gtk.HBox(), False, False, padding=gu.PAD_SMALL) # ------------------------------------------ self._add_auto_new_question_gui(self.config_box) # ---------------------------------------------- self._create_select_inputwidget_gui() # ------------ frame ------------------- self.config_box.set_spacing(0) self.config_box.show_all() ############## # statistics # ############## self.setup_statisticsviewer(statisticsviewer.StatisticsViewer, _("Harmonic interval")) self.select_inputwidget()
def __init__(self, teacher): abstract.IntervalGui.__init__(self, teacher) ################ # practice_box # ################ self.std_buttons_add( ('repeat_melodic', self.repeat_melodic), ('give_up', self.give_up), ) ############### # config_grid # ############### self.g_ask_for_frame = frame = Gtk.Frame( label=_("Ask for these intervals")) self.g_config_grid.attach(frame, 0, 0, 3, 1) self.g_interval_selector = nIntervalCheckBox(self.m_exname, 'intervals') def _ff(var): if self.m_t.m_custom_mode: # If we are running in custom mode, then the user can # select himself what intervals to practise. And then # we have to reset the exercise. self.on_end_practise() self.on_start_practise() self.add_watch('intervals', _ff) self.g_interval_selector.set_border_width(gu.PAD) frame.add(self.g_interval_selector) self.add_lock_to_key_gui(row=1) self._add_auto_new_question_gui(row=2) self._create_select_inputwidget_gui(row=3) self.g_config_grid.show_all() ############## # statistics # ############## self.setup_statisticsviewer(statisticsviewer.StatisticsViewer, _("Harmonic interval")) self.select_inputwidget()
def __init__(self, teacher): abstract.IntervalGui.__init__(self, teacher) ################ # practice_box # ################ self.std_buttons_add( ('repeat_melodic', self.repeat_melodic), ('give_up', self.give_up), ) ############### # config_grid # ############### self.g_ask_for_frame = frame = Gtk.Frame(label=_("Ask for these intervals")) self.g_config_grid.attach(frame, 0, 0, 3, 1) self.g_interval_selector = nIntervalCheckBox(self.m_exname, 'intervals') def _ff(var): if self.m_t.m_custom_mode: # If we are running in custom mode, then the user can # select himself what intervals to practise. And then # we have to reset the exercise. self.on_end_practise() self.on_start_practise() self.add_watch('intervals', _ff) self.g_interval_selector.set_border_width(gu.PAD) frame.add(self.g_interval_selector) self.add_lock_to_key_gui(row=1) self._add_auto_new_question_gui(row=2) self._create_select_inputwidget_gui(row=3) self.g_config_grid.show_all() ############## # statistics # ############## self.setup_statisticsviewer(statisticsviewer.StatisticsViewer, _("Harmonic interval")) self.select_inputwidget()
def __init__(self, teacher): abstract.Gui.__init__(self, teacher) self._ignore_events = 0 ############## # practise_box ############## self.practise_box.set_spacing(gu.PAD) hbox = gu.bHBox(self.practise_box) self.g_music_displayer = mpd.MusicDisplayer() self.g_music_displayer.clear() hbox.pack_start(self.g_music_displayer) self.g_flashbar = gu.FlashBar() self.g_flashbar.show() self.practise_box.pack_start(self.g_flashbar, False) hbox = gu.bHBox(self.practise_box, False) hbox.set_homogeneous(True) self.g_first_is_largest = gu.bButton( hbox, _("F_irst interval\nis largest"), lambda f, self=self: self.guess_answer(-1)) self.g_first_is_largest.get_child().set_justify(gtk.JUSTIFY_CENTER) self.g_first_is_largest.set_sensitive(False) self.g_equal_size = gu.bButton( hbox, _("The intervals\nare _equal"), lambda f, self=self: self.guess_answer(0)) self.g_equal_size.get_child().set_justify(gtk.JUSTIFY_CENTER) self.g_equal_size.set_sensitive(False) self.g_last_is_largest = gu.bButton( hbox, _("_Last interval\nis largest"), lambda f, self=self: self.guess_answer(1)) self.g_last_is_largest.set_sensitive(False) self.g_last_is_largest.get_child().set_justify(gtk.JUSTIFY_CENTER) self.std_buttons_add( ('new', self.new_question), ('repeat', lambda w, self=self: self.m_t.play_question()), ('repeat_first', self.m_t.play_first_interval), ('repeat_last', self.m_t.play_last_interval), ('give_up', self.give_up), ) self.action_area.set_homogeneous(True) self.practise_box.show_all() ############## # config_box # ############## self._add_auto_new_question_gui(self.config_box) # ---------------------------------------------- def pack_rdbs(box, callback): D = {} D['harmonic'] = b = gu.RadioButton(None, _("Harmonic"), callback) b.set_data('idir', 'harmonic') box.pack_start(b, False) D['melodic'] = b = gu.RadioButton(b, _("Melodic"), callback) b.set_data('idir', 'melodic') box.pack_start(b, False) return D #--------- self.g_intervalconfig_box = gu.bVBox(self.config_box, False) hbox = gu.bHBox(self.g_intervalconfig_box, False) hbox.pack_start(gtk.Label(_("First interval:")), False, padding=gu.PAD_SMALL) self.g_rdbs = [pack_rdbs(hbox, self.update_first)] self.g_first_interval_up = nIntervalCheckBox(self.m_exname, 'first_interval_up') self.g_intervalconfig_box.pack_start(self.g_first_interval_up, False) self.g_first_interval_down = nIntervalCheckBox(self.m_exname, 'first_interval_down') self.g_intervalconfig_box.pack_start(self.g_first_interval_down, False) #---------- hbox = gu.bHBox(self.g_intervalconfig_box, False) hbox.pack_start(gtk.Label(_("Last interval:")), False, padding=gu.PAD_SMALL) self.g_rdbs.append(pack_rdbs(hbox, self.update_last)) self.g_last_interval_up = nIntervalCheckBox(self.m_exname, 'last_interval_up') self.g_intervalconfig_box.pack_start(self.g_last_interval_up, False) self.g_last_interval_down = nIntervalCheckBox(self.m_exname, 'last_interval_down') self.g_intervalconfig_box.pack_start(self.g_last_interval_down, False) #------------ s = self.get_string('first_interval_type') if not s in ('harmonic', 'melodic'): self.set_string('first_interval_type', 'harmonic') self.g_rdbs[0][self.get_string('first_interval_type')].set_active(True) self.update_first( self.g_rdbs[0][self.get_string('first_interval_type')]) s = self.get_string('last_interval_type') if not s in ('harmonic', 'melodic'): self.set_string('last_interval_type', 'harmonic') self.g_rdbs[1][self.get_string('last_interval_type')].set_active(True) self.update_last(self.g_rdbs[1][self.get_string('last_interval_type')]) self.config_box.show_all() self.add_watch('first_interval_type', self._watch_1_cb) self.add_watch('last_interval_type', self._watch_2_cb)
def __init__(self, teacher): abstract.Gui.__init__(self, teacher) self._ignore_events = 0 ############## # practise_box ############## self.practise_box.set_spacing(gu.PAD) hbox = gu.bHBox(self.practise_box) self.g_music_displayer = mpd.MusicDisplayer() self.g_music_displayer.clear() hbox.pack_start(self.g_music_displayer, True, True, 0) self.g_flashbar = gu.FlashBar() self.g_flashbar.show() self.practise_box.pack_start(self.g_flashbar, False, False, 0) hbox = gu.bHBox(self.practise_box, False) hbox.set_homogeneous(True) self.g_first_is_largest = gu.bButton(hbox, _("F_irst interval\nis largest"), lambda f, self=self: self.guess_answer(-1)) self.g_first_is_largest.get_child().set_justify(Gtk.Justification.CENTER) self.g_first_is_largest.set_sensitive(False) self.g_equal_size = gu.bButton(hbox, _("The intervals\nare _equal"), lambda f, self=self: self.guess_answer(0)) self.g_equal_size.get_child().set_justify(Gtk.Justification.CENTER) self.g_equal_size.set_sensitive(False) self.g_last_is_largest = gu.bButton(hbox, _("_Last interval\nis largest"), lambda f, self=self: self.guess_answer(1)) self.g_last_is_largest.set_sensitive(False) self.g_last_is_largest.get_child().set_justify(Gtk.Justification.CENTER) self.std_buttons_add( ('new', self.new_question), ('repeat', lambda w, self=self: self.m_t.play_question()), ('repeat_first', self.m_t.play_first_interval), ('repeat_last', self.m_t.play_last_interval), ('give_up', self.give_up), ) self.action_area.set_homogeneous(True) self.practise_box.show_all() ############## # config_box # ############## self._add_auto_new_question_gui(self.config_box) # ---------------------------------------------- def pack_rdbs(box, callback): D = {} D['harmonic'] = b = gu.RadioButton(None, _("Harmonic"), callback) b.m_idir = 'harmonic' box.pack_start(b, False, False, 0) D['melodic'] = b = gu.RadioButton(b, _("Melodic"), callback) b.m_idir = 'melodic' box.pack_start(b, False, False, 0) return D #--------- self.g_intervalconfig_box = gu.bVBox(self.config_box, False) hbox = gu.bHBox(self.g_intervalconfig_box, False) hbox.pack_start(Gtk.Label(_("First interval:")), False, False, padding=gu.PAD_SMALL) self.g_rdbs = [pack_rdbs(hbox, self.update_first)] self.g_first_interval_up = nIntervalCheckBox(self.m_exname, 'first_interval_up') self.g_intervalconfig_box.pack_start(self.g_first_interval_up, False, False, 0) self.g_first_interval_down = nIntervalCheckBox( self.m_exname, 'first_interval_down') self.g_intervalconfig_box.pack_start(self.g_first_interval_down, False, False, 0) #---------- hbox = gu.bHBox(self.g_intervalconfig_box, False) hbox.pack_start(Gtk.Label(_("Last interval:")), False, False, padding=gu.PAD_SMALL) self.g_rdbs.append (pack_rdbs(hbox, self.update_last)) self.g_last_interval_up = nIntervalCheckBox(self.m_exname, 'last_interval_up') self.g_intervalconfig_box.pack_start(self.g_last_interval_up, False, False, 0) self.g_last_interval_down = nIntervalCheckBox(self.m_exname, 'last_interval_down') self.g_intervalconfig_box.pack_start(self.g_last_interval_down, False, False, 0) #------------ s = self.get_string('first_interval_type') if not s in ('harmonic', 'melodic'): self.set_string('first_interval_type', 'harmonic') self.g_rdbs[0][self.get_string('first_interval_type')].set_active(True) self.update_first(self.g_rdbs[0][self.get_string('first_interval_type')]) s = self.get_string('last_interval_type') if not s in ('harmonic', 'melodic'): self.set_string('last_interval_type', 'harmonic') self.g_rdbs[1][self.get_string('last_interval_type')].set_active(True) self.update_last(self.g_rdbs[1][self.get_string('last_interval_type')]) self.config_box.show_all() self.add_watch('first_interval_type', self._watch_1_cb) self.add_watch('last_interval_type', self._watch_2_cb)