Remove unused function
[ardour.git] / gtk2_ardour / midi_region_view.cc
index afae96bf2215d485a8206472177e4a25bc5437b2..db3f4760bc3c1bfa5a8d46ae63de004eefaf6c32 100644 (file)
@@ -89,7 +89,7 @@ PBD::Signal1<void, MidiRegionView *> MidiRegionView::SelectionCleared;
 #define MIDI_BP_ZERO ((Config->get_first_midi_bank_is_zero())?0:1)
 
 MidiRegionView::MidiRegionView (ArdourCanvas::Group *parent, RouteTimeAxisView &tv,
-                                boost::shared_ptr<MidiRegion> r, double spu, Gdk::Color const & basic_color)
+                                boost::shared_ptr<MidiRegion> r, double spu, uint32_t basic_color)
        : RegionView (parent, tv, r, spu, basic_color)
        , _current_range_min(0)
        , _current_range_max(0)
@@ -125,7 +125,7 @@ MidiRegionView::MidiRegionView (ArdourCanvas::Group *parent, RouteTimeAxisView &
 }
 
 MidiRegionView::MidiRegionView (ArdourCanvas::Group *parent, RouteTimeAxisView &tv,
-                                boost::shared_ptr<MidiRegion> r, double spu, Gdk::Color& basic_color,
+                                boost::shared_ptr<MidiRegion> r, double spu, uint32_t basic_color,
                                 TimeAxisViewItem::Visibility visibility)
        : RegionView (parent, tv, r, spu, basic_color, false, visibility)
        , _current_range_min(0)
@@ -164,7 +164,7 @@ MidiRegionView::MidiRegionView (ArdourCanvas::Group *parent, RouteTimeAxisView &
 void
 MidiRegionView::parameter_changed (std::string const & p)
 {
-       if (p == "diplay-first-midi-bank-as-zero") {
+       if (p == "display-first-midi-bank-as-zero") {
                if (_enable_display) {
                        redisplay_model();
                }
@@ -197,13 +197,7 @@ MidiRegionView::MidiRegionView (const MidiRegionView& other)
        , pre_press_cursor (0)
        , _note_player (0)
 {
-       Gdk::Color c;
-       int r,g,b,a;
-
-       UINT_TO_RGBA (other.fill_color, &r, &g, &b, &a);
-       c.set_rgb_p (r/255.0, g/255.0, b/255.0);
-
-       init (c, false);
+       init (false);
 }
 
 MidiRegionView::MidiRegionView (const MidiRegionView& other, boost::shared_ptr<MidiRegion> region)
@@ -231,17 +225,11 @@ MidiRegionView::MidiRegionView (const MidiRegionView& other, boost::shared_ptr<M
        , pre_press_cursor (0)
        , _note_player (0)
 {
-       Gdk::Color c;
-       int r,g,b,a;
-
-       UINT_TO_RGBA (other.fill_color, &r, &g, &b, &a);
-       c.set_rgb_p (r/255.0, g/255.0, b/255.0);
-
-       init (c, true);
+       init (true);
 }
 
 void
-MidiRegionView::init (Gdk::Color const & basic_color, bool wfd)
+MidiRegionView::init (bool wfd)
 {
        PublicEditor::DropDownKeys.connect (sigc::mem_fun (*this, &MidiRegionView::drop_down_keys));
 
@@ -256,9 +244,7 @@ MidiRegionView::init (Gdk::Color const & basic_color, bool wfd)
        _model = midi_region()->midi_source(0)->model();
        _enable_display = false;
 
-       RegionView::init (basic_color, false);
-
-       compute_colors (basic_color);
+       RegionView::init (false);
 
        set_height (trackview.current_height());
 
@@ -350,8 +336,8 @@ MidiRegionView::canvas_group_event(GdkEvent* ev)
        if ((!trackview.editor().internal_editing() && trackview.editor().current_mouse_mode() != MouseGain) ||
                (trackview.editor().current_mouse_mode() == MouseTimeFX) ||
                (trackview.editor().current_mouse_mode() == MouseZoom)) {
-               // handle non-draw modes elsewhere
-               return false;
+               // handle non-internal-edit/non-draw modes elsewhere
+               return RegionView::canvas_group_event (ev);
        }
 
        switch (ev->type) {
@@ -389,13 +375,6 @@ MidiRegionView::canvas_group_event(GdkEvent* ev)
        return trackview.editor().canvas_region_view_event (ev, group, this);
 }
 
-void
-MidiRegionView::remove_ghost_note ()
-{
-       delete _ghost_note;
-       _ghost_note = 0;
-}
-
 bool
 MidiRegionView::enter_notify (GdkEventCrossing* ev)
 {
@@ -657,9 +636,13 @@ MidiRegionView::motion (GdkEventMotion* ev)
 
        default:
                break;
+
        }
 
-       return false;
+       /* we may be dragging some non-note object (eg. patch-change, sysex) 
+        */
+
+       return editor.drags()->motion_handler ((GdkEvent *) ev, false);
 }
 
 
@@ -1118,7 +1101,7 @@ MidiRegionView::redisplay_model()
        MidiModel::Notes& notes (_model->notes());
        _optimization_iterator = _events.begin();
 
-       bool empty_when_starting = !_events.empty();
+       bool empty_when_starting = _events.empty();
 
        for (MidiModel::Notes::iterator n = notes.begin(); n != notes.end(); ++n) {
 
@@ -1127,8 +1110,8 @@ MidiRegionView::redisplay_model()
                bool visible;
 
                if (note_in_region_range (note, visible)) {
-
-                       if (empty_when_starting && (cne = find_canvas_note (note)) != 0) {
+                       
+                       if (!empty_when_starting && (cne = find_canvas_note (note)) != 0) {
 
                                cne->validate ();
 
@@ -1153,8 +1136,8 @@ MidiRegionView::redisplay_model()
                        }
 
                } else {
-
-                       if (empty_when_starting && (cne = find_canvas_note (note)) != 0) {
+                       
+                       if (!empty_when_starting && (cne = find_canvas_note (note)) != 0) {
                                cne->validate ();
                                cne->hide ();
                        }
@@ -1164,7 +1147,7 @@ MidiRegionView::redisplay_model()
 
        /* remove note items that are no longer valid */
 
-       if (empty_when_starting) {
+       if (!empty_when_starting) {
                for (Events::iterator i = _events.begin(); i != _events.end(); ) {
                        if (!(*i)->valid ()) {
                                
@@ -1379,14 +1362,12 @@ MidiRegionView::reset_width_dependent_items (double pixel_width)
 void
 MidiRegionView::set_height (double height)
 {
-       static const double FUDGE = 2.0;
-       const double old_height = _height;
+       double old_height = _height;
        RegionView::set_height(height);
-       _height = height - FUDGE;
 
-       apply_note_range(midi_stream_view()->lowest_note(),
-                        midi_stream_view()->highest_note(),
-                        height != old_height + FUDGE);
+       apply_note_range (midi_stream_view()->lowest_note(),
+                         midi_stream_view()->highest_note(),
+                         height != old_height);
 
        if (name_text) {
                name_text->raise_to_top();
@@ -1439,10 +1420,7 @@ MidiRegionView::apply_note_range (uint8_t min, uint8_t max, bool force)
                        cnote->set_y1 (y1);
 
                } else if (Hit* chit = dynamic_cast<Hit*>(event)) {
-
-                       const double diamond_size = update_hit (chit);
-
-                       chit->set_height (diamond_size);
+                       update_hit (chit);
                }
        }
 }
@@ -1526,8 +1504,9 @@ MidiRegionView::resolve_note(uint8_t note, double end_time)
                const framepos_t end_time_frames = region_beats_to_region_frames(end_time);
 
                _active_notes[note]->set_x1 (trackview.editor().sample_to_pixel(end_time_frames));
-               _active_notes[note]->set_outline_what (0xf);
+               _active_notes[note]->set_outline_all ();
                _active_notes[note] = 0;
+
        }
 }
 
@@ -1657,15 +1636,18 @@ MidiRegionView::update_note (Note* ev, bool update_ghost_regions)
                                Note* const old_rect = _active_notes[note->note()];
                                boost::shared_ptr<NoteType> old_note = old_rect->note();
                                old_rect->set_x1 (x);
-                               old_rect->set_outline_what (0xF);
+                               old_rect->set_outline_all ();
                        }
                        _active_notes[note->note()] = ev;
                }
                /* outline all but right edge */
-               ev->set_outline_what (0x1 & 0x4 & 0x8);
+               ev->set_outline_what (ArdourCanvas::Rectangle::What (
+                                             ArdourCanvas::Rectangle::TOP|
+                                             ArdourCanvas::Rectangle::LEFT|
+                                             ArdourCanvas::Rectangle::BOTTOM));
        } else {
                /* outline all edges */
-               ev->set_outline_what (0xF);
+               ev->set_outline_all ();
        }
        
        if (update_ghost_regions) {
@@ -1678,19 +1660,18 @@ MidiRegionView::update_note (Note* ev, bool update_ghost_regions)
        }
 }
 
-double
+void
 MidiRegionView::update_hit (Hit* ev)
 {
        boost::shared_ptr<NoteType> note = ev->note();
 
        const framepos_t note_start_frames = source_beats_to_region_frames(note->time());
        const double x = trackview.editor().sample_to_pixel(note_start_frames);
-       const double diamond_size = midi_stream_view()->note_height() / 2.0;
-       const double y = midi_stream_view()->note_to_y(note->note()) + ((diamond_size-2) / 4.0);
+       const double diamond_size = midi_stream_view()->note_height();
+       const double y = midi_stream_view()->note_to_y(note->note()) + (diamond_size/2.0);
 
        ev->set_position (ArdourCanvas::Duple (x, y));
-
-       return diamond_size;
+       ev->set_height (diamond_size);
 }
 
 /** Add a MIDI note to the view (with length).
@@ -1704,8 +1685,6 @@ MidiRegionView::add_note(const boost::shared_ptr<NoteType> note, bool visible)
 {
        NoteBase* event = 0;
 
-       //ArdourCanvas::Group* const group = (ArdourCanvas::Group*) get_canvas_group();
-
        if (midi_view()->note_mode() == Sustained) {
 
                Note* ev_rect = new Note (*this, _note_group, note);
@@ -3548,6 +3527,13 @@ MidiRegionView::create_ghost_note (double x, double y)
        show_verbose_cursor (_ghost_note->note ());
 }
 
+void
+MidiRegionView::remove_ghost_note ()
+{
+       delete _ghost_note;
+       _ghost_note = 0;
+}
+
 void
 MidiRegionView::snap_changed ()
 {