Vorbis Quality Config GUI
[ardour.git] / gtk2_ardour / piano_roll_header.cc
index c6e0b94224e83d3c176895e3cc602ff57d011023..cdd956dddd70f8649709b209e7c61cd81c03a7ca 100644 (file)
 #include "midi_time_axis.h"
 #include "midi_streamview.h"
 #include "public_editor.h"
+#include "ui_config.h"
 
 using namespace std;
 using namespace Gtkmm2ext;
 
 PianoRollHeader::Color PianoRollHeader::white = PianoRollHeader::Color(0.77f, 0.78f, 0.76f);
-PianoRollHeader::Color PianoRollHeader::white_highlight = PianoRollHeader::Color(1.00f, 0.50f, 0.50f);
+PianoRollHeader::Color PianoRollHeader::white_highlight = PianoRollHeader::Color(1.00f, 0.40f, 0.40f);
 PianoRollHeader::Color PianoRollHeader::white_shade_light = PianoRollHeader::Color(0.95f, 0.95f, 0.95f);
 PianoRollHeader::Color PianoRollHeader::white_shade_dark = PianoRollHeader::Color(0.56f, 0.56f, 0.56f);
 
 PianoRollHeader::Color PianoRollHeader::black = PianoRollHeader::Color(0.24f, 0.24f, 0.24f);
-PianoRollHeader::Color PianoRollHeader::black_highlight = PianoRollHeader::Color(0.50f, 0.10f, 0.10f);
+PianoRollHeader::Color PianoRollHeader::black_highlight = PianoRollHeader::Color(0.60f, 0.10f, 0.10f);
 PianoRollHeader::Color PianoRollHeader::black_shade_light = PianoRollHeader::Color(0.46f, 0.46f, 0.46f);
 PianoRollHeader::Color PianoRollHeader::black_shade_dark = PianoRollHeader::Color(0.1f, 0.1f, 0.1f);
 
@@ -467,7 +468,7 @@ PianoRollHeader::on_motion_notify_event (GdkEventMotion* ev)
        if (_dragging) {
 
                if ( false /*editor().current_mouse_mode() == Editing::MouseRange*/ ) {   //ToDo:  fix this.  this mode is buggy, and of questionable utility anyway
-                       
+
                        /* select note range */
 
                        if (Keyboard::no_modifiers_active (ev->state)) {
@@ -480,9 +481,9 @@ PianoRollHeader::on_motion_notify_event (GdkEventMotion* ev)
                        if (_clicked_note != NO_MIDI_NOTE && _clicked_note != note) {
                                _active_notes[_clicked_note] = false;
                                send_note_off(_clicked_note);
-                               
+
                                _clicked_note = note;
-                               
+
                                if (!_active_notes[note]) {
                                        _active_notes[note] = true;
                                        send_note_on(note);
@@ -511,12 +512,12 @@ PianoRollHeader::on_button_press_event (GdkEventButton* ev)
        } else if (ev->button == 1 && note >= 0 && note < 128) {
                add_modal_grab();
                _dragging = true;
-               
+
                if (!_active_notes[note]) {
                        _active_notes[note] = true;
                        _clicked_note = note;
                        send_note_on(note);
-                       
+
                        invalidate_note_range(note, note);
                } else {
                        reset_clicked_note(note);
@@ -540,7 +541,7 @@ PianoRollHeader::on_button_release_event (GdkEventButton* ev)
                } else if (Keyboard::modifier_state_equals (ev->state, Keyboard::RangeSelectModifier)) {
                        ExtendNoteSelection (note); // EMIT SIGNAL
                }
-               
+
        } else {
 
                if (_dragging) {
@@ -558,6 +559,10 @@ PianoRollHeader::on_button_release_event (GdkEventButton* ev)
 
 void
 PianoRollHeader::set_note_highlight (uint8_t note) {
+       if (_highlighted_note == note) {
+               return;
+       }
+
        if (_highlighted_note != NO_MIDI_NOTE) {
                if (note > _highlighted_note) {
                        invalidate_note_range (_highlighted_note, note);
@@ -657,7 +662,7 @@ PianoRollHeader::invalidate_note_range(int lowest, int highest)
 void
 PianoRollHeader::on_size_request(Gtk::Requisition* r)
 {
-       r->width = 20;
+       r->width = std::max (20.f, rintf (20.f * UIConfiguration::instance().get_ui_scale()));
 }
 
 void