Merge remote-tracking branch 'remotes/origin/cairocanvas' into windows
[ardour.git] / gtk2_ardour / midi_time_axis.cc
index 3b8e4932fbde7bea9fc2f15ba10da55f92412388..4884dc34f38c929f9b3b3edf9600925994bfd2e9 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"
@@ -61,8 +60,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"
@@ -83,8 +80,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"
 
@@ -100,7 +97,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)
@@ -201,7 +198,7 @@ MidiTimeAxisView::set_route (boost::shared_ptr<Route> rt)
                v->pack_start (*manage (new Label ("")), true, true);
                v->show ();
                h->show ();
-               controls_hbox.pack_start(*v);
+               controls_hbox.pack_start(*v, false, false);
 
                controls_ebox.set_name ("MidiTrackControlsBaseUnselected");
                controls_base_selected_name = "MidiTrackControlsBaseSelected";
@@ -269,8 +266,11 @@ MidiTimeAxisView::set_route (boost::shared_ptr<Route> rt)
        _channel_status_box.set_spacing (6);
        
        _channel_selector_button.set_label (_("Chns"));
-
-       /* fixed sized labels to prevent silly nonsense */
+       ARDOUR_UI::instance()->set_tip (_channel_selector_button, _("Click to edit channel settings"));
+       
+       /* fixed sized labels to prevent silly nonsense (though obviously,
+        * they cause their own too)
+        */
 
        _playback_channel_status.set_size_request (65, -1);
        _capture_channel_status.set_size_request (60, -1);
@@ -312,7 +312,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);
                }
        }
 
@@ -509,12 +509,11 @@ 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 ();
                }
 
-               _channel_selector->set_position (WIN_POS_MOUSE);
                _channel_selector->show_all ();
        } else {
                _channel_selector->cycle_visibility ();
@@ -663,7 +662,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);
                        }
@@ -695,7 +694,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);
 
@@ -737,7 +736,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);
 
@@ -793,7 +792,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);
                }
@@ -1033,7 +1032,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();
                        }
@@ -1483,13 +1482,13 @@ MidiTimeAxisView::playback_channel_mode_changed ()
 {
        switch (midi_track()->get_playback_channel_mode()) {
        case AllChannels:
-               _playback_channel_status.set_markup (string_compose ("<b>%1</b>: <i>%2</i>", _("Play"), ("all")));
+               _playback_channel_status.set_markup (string_compose ("<b>%1</b>: <i>%2</i>", _("Play"), _("all")));
                break;
        case FilterChannels:
-               _playback_channel_status.set_markup (string_compose ("<b>%1</b>: <i>%2</i>", _("Play"), ("some")));
+               _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;
        }
 }
@@ -1499,13 +1498,13 @@ MidiTimeAxisView::capture_channel_mode_changed ()
 {
        switch (midi_track()->get_capture_channel_mode()) {
        case AllChannels:
-               _capture_channel_status.set_markup (string_compose ("<b>%1</b>: <i>%2</i>", _("Rec"), ("all")));
+               _capture_channel_status.set_markup (string_compose ("<b>%1</b>: <i>%2</i>", _("Rec"), _("all")));
                break;
        case FilterChannels:
-               _capture_channel_status.set_markup (string_compose ("<b>%1</b>: <i>%2</i>", _("Rec"), ("some")));
+               _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;
        }
 }