From df95ec6b435a96e07ac27caf0d6dadb042ea6452 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Fri, 18 Aug 2023 13:48:39 -0600 Subject: [PATCH] partial response to note name display option --- gtk2_ardour/midi_time_axis.cc | 17 ++++++++++++++++- gtk2_ardour/midi_time_axis.h | 1 + gtk2_ardour/piano_roll_header.cc | 9 ++++++++- 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/gtk2_ardour/midi_time_axis.cc b/gtk2_ardour/midi_time_axis.cc index 879c616acc..072889adb1 100644 --- a/gtk2_ardour/midi_time_axis.cc +++ b/gtk2_ardour/midi_time_axis.cc @@ -139,10 +139,25 @@ MidiTimeAxisView::MidiTimeAxisView (PublicEditor& ed, Session* sess, ArdourCanva _midnam_model_selector.disable_scrolling(); _midnam_custom_device_mode_selector.disable_scrolling(); _midnam_channel_selector.disable_scrolling(); + + UIConfiguration::instance().ParameterChanged.connect (sigc::mem_fun (*this, &MidiTimeAxisView::parameter_changed)); +} + + +void +MidiTimeAxisView::parameter_changed (string const & param) +{ + if (param == X_("note-name-display")) { + if (_piano_roll_header) { + _piano_roll_header->queue_resize (); + _stripable->gui_changed ("visible_tracks", (void *) 0); /* EMIT SIGNAL */ + } + } } void -MidiTimeAxisView::set_note_highlight (uint8_t note) { +MidiTimeAxisView::set_note_highlight (uint8_t note) +{ _piano_roll_header->set_note_highlight (note); } diff --git a/gtk2_ardour/midi_time_axis.h b/gtk2_ardour/midi_time_axis.h index 3b6cec010b..1443761674 100644 --- a/gtk2_ardour/midi_time_axis.h +++ b/gtk2_ardour/midi_time_axis.h @@ -141,6 +141,7 @@ private: void set_note_range (MidiStreamView::VisibleNoteRange range, bool apply_to_selection = false); void route_active_changed (); void note_range_changed (); + void parameter_changed (std::string const &); void update_scroomer_visbility (uint32_t, LayerDisplay); diff --git a/gtk2_ardour/piano_roll_header.cc b/gtk2_ardour/piano_roll_header.cc index d5900a0e15..61ba335f4c 100644 --- a/gtk2_ardour/piano_roll_header.cc +++ b/gtk2_ardour/piano_roll_header.cc @@ -755,7 +755,14 @@ PianoRollHeader::invalidate_note_range (int lowest, int highest) void PianoRollHeader::on_size_request (Gtk::Requisition* r) { - r->width = std::max (80.f, rintf (80.f * UIConfiguration::instance().get_ui_scale())); + if (UIConfiguration::instance().get_note_name_display() == Editing::Never) { + _scroomer_size = 15.f; + } else { + _scroomer_size = 60.f; + } + + float w = _scroomer_size + 20.f; + r->width = std::max (w, rintf (w * UIConfiguration::instance().get_ui_scale())); } void