a whole slew of changes related to centralizing and rationalizing cursor management.
[ardour.git] / gtk2_ardour / midi_time_axis.cc
index 54793d99041ce71536e10623374226a48a7bcf7a..8ced280661ec9f6806acfe53294d38b5abc784db 100644 (file)
@@ -19,8 +19,6 @@
 #include <cstdlib>
 #include <cmath>
 
-#include <strings.h> // for ffs(3)
-
 #include <algorithm>
 #include <string>
 #include <vector>
@@ -28,6 +26,7 @@
 #include <sigc++/bind.h>
 
 #include "pbd/error.h"
+#include "pbd/ffs.h"
 #include "pbd/stl_delete.h"
 #include "pbd/whitespace.h"
 #include "pbd/basename.h"
@@ -64,8 +63,6 @@
 #include "ardour_button.h"
 #include "automation_line.h"
 #include "automation_time_axis.h"
-#include "canvas-note-event.h"
-#include "canvas_impl.h"
 #include "editor.h"
 #include "enums.h"
 #include "ghostregion.h"
@@ -86,8 +83,8 @@
 #include "rgb_macros.h"
 #include "selection.h"
 #include "step_editor.h"
-#include "simplerect.h"
 #include "utils.h"
+#include "note_base.h"
 
 #include "ardour/midi_track.h"
 
@@ -103,7 +100,7 @@ using namespace Editing;
 static const uint32_t MIDI_CONTROLS_BOX_MIN_HEIGHT = 140;
 static const uint32_t KEYBOARD_MIN_HEIGHT = 130;
 
-MidiTimeAxisView::MidiTimeAxisView (PublicEditor& ed, Session* sess, Canvas& canvas)
+MidiTimeAxisView::MidiTimeAxisView (PublicEditor& ed, Session* sess, ArdourCanvas::Canvas& canvas)
        : AxisView(sess) // virtually inherited
        , RouteTimeAxisView(ed, sess, canvas)
        , _ignore_signals(false)
@@ -328,7 +325,7 @@ MidiTimeAxisView::set_route (boost::shared_ptr<Route> rt)
        if (!color_mode.empty()) {
                _color_mode = ColorMode (string_2_enum(color_mode, _color_mode));
                if (_channel_selector && _color_mode == ChannelColors) {
-                       _channel_selector->set_channel_colors(CanvasNoteEvent::midi_channel_colors);
+                       _channel_selector->set_channel_colors(NoteBase::midi_channel_colors);
                }
        }
 
@@ -525,7 +522,7 @@ MidiTimeAxisView::toggle_channel_selector ()
                _channel_selector = new MidiChannelSelectorWindow (midi_track());
 
                if (_color_mode == ChannelColors) {
-                       _channel_selector->set_channel_colors(CanvasNoteEvent::midi_channel_colors);
+                       _channel_selector->set_channel_colors(NoteBase::midi_channel_colors);
                } else {
                        _channel_selector->set_default_channel_color ();
                }
@@ -599,7 +596,7 @@ MidiTimeAxisView::build_automation_action_menu (bool for_selection)
 
        automation_items.push_back (SeparatorElem());
        automation_items.push_back (CheckMenuElem (_("Fader"), sigc::mem_fun (*this, &MidiTimeAxisView::update_gain_track_visibility)));
-       gain_automation_item = dynamic_cast<CheckMenuItem*> (&automation_items.back ());
+       gain_automation_item = dynamic_cast<Gtk::CheckMenuItem*> (&automation_items.back ());
        gain_automation_item->set_active ((!for_selection || _editor.get_selection().tracks.size() == 1) && 
                                          (gain_track && string_is_affirmative (gain_track->gui_property ("visible"))));
 
@@ -607,12 +604,12 @@ MidiTimeAxisView::build_automation_action_menu (bool for_selection)
 
        if (!pan_tracks.empty()) {
                automation_items.push_back (CheckMenuElem (_("Pan"), sigc::mem_fun (*this, &MidiTimeAxisView::update_pan_track_visibility)));
-               pan_automation_item = dynamic_cast<CheckMenuItem*> (&automation_items.back ());
+               pan_automation_item = dynamic_cast<Gtk::CheckMenuItem*> (&automation_items.back ());
                pan_automation_item->set_active ((!for_selection || _editor.get_selection().tracks.size() == 1) &&
                                                 (!pan_tracks.empty() && string_is_affirmative (pan_tracks.front()->gui_property ("visible"))));
 
                set<Evoral::Parameter> const & params = _route->pannable()->what_can_be_automated ();
-               for (set<Evoral::Parameter>::iterator p = params.begin(); p != params.end(); ++p) {
+               for (set<Evoral::Parameter>::const_iterator p = params.begin(); p != params.end(); ++p) {
                        _main_automation_menu_map[*p] = pan_automation_item;
                }
        }
@@ -699,7 +696,7 @@ MidiTimeAxisView::add_channel_command_menu_item (Menu_Helpers::MenuList& items,
                                        }
                                }
 
-                               CheckMenuItem* cmi = static_cast<CheckMenuItem*>(&chn_items.back());
+                               Gtk::CheckMenuItem* cmi = static_cast<Gtk::CheckMenuItem*>(&chn_items.back());
                                _channel_command_menu_map[fully_qualified_param] = cmi;
                                cmi->set_active (visible);
                        }
@@ -731,7 +728,7 @@ MidiTimeAxisView::add_channel_command_menu_item (Menu_Helpers::MenuList& items,
                                        }
                                }
 
-                               CheckMenuItem* cmi = static_cast<CheckMenuItem*>(&items.back());
+                               Gtk::CheckMenuItem* cmi = static_cast<Gtk::CheckMenuItem*>(&items.back());
                                _channel_command_menu_map[fully_qualified_param] = cmi;
                                cmi->set_active (visible);
 
@@ -773,7 +770,7 @@ MidiTimeAxisView::add_single_channel_controller_item(Menu_Helpers::MenuList& ctl
                                }
                        }
 
-                       CheckMenuItem* cmi = static_cast<CheckMenuItem*>(&ctl_items.back());
+                       Gtk::CheckMenuItem* cmi = static_cast<Gtk::CheckMenuItem*>(&ctl_items.back());
                        _controller_menu_map[fully_qualified_param] = cmi;
                        cmi->set_active (visible);
 
@@ -829,7 +826,7 @@ MidiTimeAxisView::add_multi_channel_controller_item(Menu_Helpers::MenuList& ctl_
                                }
                        }
 
-                       CheckMenuItem* cmi = static_cast<CheckMenuItem*>(&chn_items.back());
+                       Gtk::CheckMenuItem* cmi = static_cast<Gtk::CheckMenuItem*>(&chn_items.back());
                        _controller_menu_map[fully_qualified_param] = cmi;
                        cmi->set_active (visible);
                }
@@ -1069,7 +1066,7 @@ MidiTimeAxisView::set_color_mode (ColorMode mode, bool force, bool redisplay, bo
                
                if (_channel_selector) {
                        if (mode == ChannelColors) {
-                               _channel_selector->set_channel_colors(CanvasNoteEvent::midi_channel_colors);
+                               _channel_selector->set_channel_colors(NoteBase::midi_channel_colors);
                        } else {
                                _channel_selector->set_default_channel_color();
                        }
@@ -1524,8 +1521,7 @@ MidiTimeAxisView::add_region (framepos_t pos, framecnt_t length, bool commit)
 
        real_editor->snap_to (pos, 0);
 
-       boost::shared_ptr<Source> src = _session->create_midi_source_for_session (
-               view()->trackview().track().get(), view()->trackview().track()->name());
+       boost::shared_ptr<Source> src = _session->create_midi_source_by_stealing_name (view()->trackview().track());
        PropertyList plist;
 
        plist.add (ARDOUR::Properties::start, 0);
@@ -1619,7 +1615,7 @@ MidiTimeAxisView::playback_channel_mode_changed ()
                _playback_channel_status.set_markup (string_compose ("<b>%1</b>: <i>%2</i>", _("Play"), _("some")));
                break;
        case ForceChannel:
-               _playback_channel_status.set_markup (string_compose ("<b>%1</b>: <i>%2>%3</i>", _("Play"), _("all"), ffs (midi_track()->get_playback_channel_mask())));
+               _playback_channel_status.set_markup (string_compose ("<b>%1</b>: <i>%2>%3</i>", _("Play"), _("all"), PBD::ffs (midi_track()->get_playback_channel_mask())));
                break;
        }
 }
@@ -1635,7 +1631,7 @@ MidiTimeAxisView::capture_channel_mode_changed ()
                _capture_channel_status.set_markup (string_compose ("<b>%1</b>: <i>%2</i>", _("Rec"), _("some")));
                break;
        case ForceChannel:
-               _capture_channel_status.set_markup (string_compose ("<b>%1</b>: <i>%2>%3</i>", _("Rec"), _("all"), ffs (midi_track()->get_capture_channel_mask())));
+               _capture_channel_status.set_markup (string_compose ("<b>%1</b>: <i>%2>%3</i>", _("Rec"), _("all"), PBD::ffs (midi_track()->get_capture_channel_mask())));
                break;
        }
 }