X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fnote_base.cc;h=56ce3bc9d13bb0d35cb1e79e46f54ab18bd5663d;hb=274522b1a4cb67de96edf9f1c2c198362862e99b;hp=3bdb73489e078e53eaf7f7d3c3abe821092e5967;hpb=e279b9892b467aa823e253d97b6e9504cca0e252;p=ardour.git diff --git a/gtk2_ardour/note_base.cc b/gtk2_ardour/note_base.cc index 3bdb73489e..56ce3bc9d1 100644 --- a/gtk2_ardour/note_base.cc +++ b/gtk2_ardour/note_base.cc @@ -21,13 +21,15 @@ #include "gtkmm2ext/keyboard.h" +#include "evoral/Note.hpp" + #include "canvas/text.h" #include "note_base.h" -#include "midi_region_view.h" #include "public_editor.h" #include "editing_syms.h" #include "keyboard.h" +#include "midi_region_view.h" using namespace std; using namespace Gtkmm2ext; @@ -94,7 +96,7 @@ NoteBase::show_velocity() if (!_text) { _text = new Text (_item->parent ()); _text->set_ignore_events (true); - _text->set_color (ARDOUR_UI::config()->get_canvasvar_MidiNoteVelocityText()); + _text->set_color (ARDOUR_UI::config()->color_mod ("midi note velocity text", "midi note velocity text")); _text->set_alignment (Pango::ALIGN_CENTER); } @@ -119,8 +121,9 @@ NoteBase::on_channel_selection_change(uint16_t selection) { // make note change its color if its channel is not marked active if ( (selection & (1 << _note->channel())) == 0 ) { - set_fill_color(ARDOUR_UI::config()->get_canvasvar_MidiNoteInactiveChannel()); - set_outline_color(calculate_outline(ARDOUR_UI::config()->get_canvasvar_MidiNoteInactiveChannel())); + set_fill_color(ARDOUR_UI::config()->color ("midi note inactive channel")); + set_outline_color(calculate_outline(ARDOUR_UI::config()->color ("midi note inactive channel"), + _selected)); } else { // set the color according to the notes selection state set_selected(_selected); @@ -147,12 +150,7 @@ NoteBase::set_selected(bool selected) _selected = selected; set_fill_color (base_color()); - if (_selected) { - set_outline_color(calculate_outline(ARDOUR_UI::config()->get_canvasvar_MidiNoteSelected())); - } else { - set_outline_color(calculate_outline(base_color())); - } - + set_outline_color(calculate_outline(base_color(), _selected)); } #define SCALE_USHORT_TO_UINT8_T(x) ((x) / 257) @@ -170,19 +168,15 @@ NoteBase::base_color() switch (mode) { case TrackColor: { - Gdk::Color color = _region.midi_stream_view()->get_region_color(); - return UINT_INTERPOLATE (RGBA_TO_UINT( - SCALE_USHORT_TO_UINT8_T(color.get_red()), - SCALE_USHORT_TO_UINT8_T(color.get_green()), - SCALE_USHORT_TO_UINT8_T(color.get_blue()), - opacity), - ARDOUR_UI::config()->get_canvasvar_MidiNoteSelected(), 0.5); + uint32_t color = _region.midi_stream_view()->get_region_color(); + return UINT_INTERPOLATE (UINT_RGBA_CHANGE_A (color, opacity), + ARDOUR_UI::config()->color ("midi note selected"), + 0.5); } case ChannelColors: - return UINT_INTERPOLATE (UINT_RGBA_CHANGE_A (NoteBase::midi_channel_colors[_note->channel()], - opacity), - ARDOUR_UI::config()->get_canvasvar_MidiNoteSelected(), 0.5); + return UINT_INTERPOLATE (UINT_RGBA_CHANGE_A (NoteBase::midi_channel_colors[_note->channel()], opacity), + ARDOUR_UI::config()->color ("midi note selected"), 0.5); default: return meter_style_fill_color(_note->velocity(), selected()); @@ -260,14 +254,15 @@ NoteBase::set_mouse_fractions (GdkEvent* ev) bool NoteBase::event_handler (GdkEvent* ev) { - if (!_region.get_time_axis_view().editor().internal_editing()) { + PublicEditor& editor = _region.get_time_axis_view().editor(); + if (!editor.internal_editing()) { return false; } switch (ev->type) { case GDK_ENTER_NOTIFY: - set_mouse_fractions (ev); _region.note_entered (this); + set_mouse_fractions (ev); break; case GDK_LEAVE_NOTIFY: @@ -281,24 +276,17 @@ NoteBase::event_handler (GdkEvent* ev) case GDK_BUTTON_PRESS: set_mouse_fractions (ev); - if (ev->button.button == 3 && Keyboard::no_modifiers_active (ev->button.state) && _selected) { - _region.get_time_axis_view().editor().edit_notes (_region); - return true; - } break; case GDK_BUTTON_RELEASE: set_mouse_fractions (ev); - if (ev->button.button == 3 && Keyboard::no_modifiers_active (ev->button.state)) { - return true; - } break; default: break; } - return _region.get_time_axis_view().editor().canvas_note_event (ev, _item); + return editor.canvas_note_event (ev, _item); } bool