Make scroll-wheel modifier keys consistent in editor summary pane.
[ardour.git] / gtk2_ardour / route_time_axis.cc
index a8f6782262bc95a309d077ed0446375a24ef44f0..174cceeedeccbe64a4b0861c9734243a3fcd0008 100644 (file)
@@ -85,21 +85,6 @@ using namespace Editing;
 using namespace std;
 using std::list;
 
-Glib::RefPtr<Gdk::Pixbuf> RouteTimeAxisView::slider;
-Glib::RefPtr<Gdk::Pixbuf> RouteTimeAxisView::slider_desensitised;
-
-void
-RouteTimeAxisView::setup_slider_pix ()
-{
-       if ((slider = ::get_icon ("fader_belt_h_medium")) == 0) {
-               throw failed_constructor ();
-       }
-
-       if ((slider_desensitised = ::get_icon ("fader_belt_h_medium_desensitised")) == 0) {
-               throw failed_constructor ();
-       }
-}
-
 RouteTimeAxisView::RouteTimeAxisView (PublicEditor& ed, Session* sess, Canvas& canvas)
        : AxisView(sess)
        , RouteUI(sess)
@@ -117,7 +102,7 @@ RouteTimeAxisView::RouteTimeAxisView (PublicEditor& ed, Session* sess, Canvas& c
        , playlist_action_menu (0)
        , mode_menu (0)
        , color_mode_menu (0)
-       , gm (sess, slider, slider_desensitised, true, 125)
+       , gm (sess, true, 125, 18)
        , _ignore_set_layer_display (false)
 {
 }
@@ -126,7 +111,7 @@ void
 RouteTimeAxisView::set_route (boost::shared_ptr<Route> rt)
 {
        RouteUI::set_route (rt);
-       
+
        gm.set_controls (_route, _route->shared_peak_meter(), _route->amp());
        gm.get_level_meter().set_no_show_all();
        gm.get_level_meter().setup_meters(50);
@@ -139,7 +124,7 @@ RouteTimeAxisView::set_route (boost::shared_ptr<Route> rt)
                set_height (preset_height (HeightNormal));
        }
 
-       if (!_route->is_hidden()) {
+       if (!_route->is_auditioner()) {
                if (gui_property ("visible").empty()) {
                        set_gui_property ("visible", true);
                }
@@ -181,8 +166,10 @@ RouteTimeAxisView::set_route (boost::shared_ptr<Route> rt)
 
                 if (is_midi_track()) {
                         ARDOUR_UI::instance()->set_tip(*rec_enable_button, _("Record (Right-click for Step Edit)"));
+                       gm.set_fader_name ("MidiTrackFader");
                 } else {
                         ARDOUR_UI::instance()->set_tip(*rec_enable_button, _("Record"));
+                       gm.set_fader_name ("AudioTrackFader");
                 }
 
                rec_enable_button->set_sensitive (_session->writable());
@@ -190,7 +177,9 @@ RouteTimeAxisView::set_route (boost::shared_ptr<Route> rt)
                /* set playlist button tip to the current playlist, and make it update when it changes */
                update_playlist_tip ();
                track()->PlaylistChanged.connect (*this, invalidator (*this), ui_bind(&RouteTimeAxisView::update_playlist_tip, this), gui_context());
-               
+
+       } else {
+               gm.set_fader_name ("AudioBusFader");
        }
        
        controls_hbox.pack_start(gm.get_level_meter(), false, false);
@@ -205,11 +194,7 @@ RouteTimeAxisView::set_route (boost::shared_ptr<Route> rt)
         }
 
        controls_table.attach (route_group_button, 7, 8, 1, 2, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND, 0, 0);
-//     Gtk::VBox* pad = manage (new Gtk::VBox);
-//     pad->pack_start (gm.get_gain_slider(), false, false);
-//     pad->pack_start (*manage (new Gtk::Label), true, true);
-//     pad->show_all ();
-       controls_table.attach (gm.get_gain_slider(), 0, 5, 1, 2, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND, 3, 0);
+       controls_table.attach (gm.get_gain_slider(), 0, 5, 1, 2, Gtk::FILL|Gtk::EXPAND, Gtk::AttachOptions (0), 3, 0);
 
        ARDOUR_UI::instance()->set_tip(*solo_button,_("Solo"));
        ARDOUR_UI::instance()->set_tip(*mute_button,_("Mute"));
@@ -246,7 +231,8 @@ RouteTimeAxisView::set_route (boost::shared_ptr<Route> rt)
 
                /* pick up the correct freeze state */
                map_frozen ();
-       }
+
+       } 
 
        _editor.ZoomChanged.connect (sigc::mem_fun(*this, &RouteTimeAxisView::reset_samples_per_unit));
        _editor.HorizontalPositionChanged.connect (sigc::mem_fun (*this, &RouteTimeAxisView::horizontal_position_changed));
@@ -260,12 +246,8 @@ RouteTimeAxisView::set_route (boost::shared_ptr<Route> rt)
        route_group_menu = new RouteGroupMenu (_session, plist);
 
        gm.get_gain_slider().signal_scroll_event().connect(sigc::mem_fun(*this, &RouteTimeAxisView::controls_ebox_scroll), false);
-       gm.get_gain_slider().set_name ("GainFader");
 
        gm.get_level_meter().signal_scroll_event().connect (sigc::mem_fun (*this, &RouteTimeAxisView::controls_ebox_scroll), false);
-
-       show_name_entry ();
-       hide_name_label ();
 }
 
 RouteTimeAxisView::~RouteTimeAxisView ()
@@ -339,15 +321,10 @@ RouteTimeAxisView::label_view ()
 {
        string x = _route->name();
 
-       if (x != name_entry.get_text()) {
-               name_entry.set_text (x);
-       }
-
        if (x != name_label.get_text()) {
                name_label.set_text (x);
        }
 
-       ARDOUR_UI::instance()->set_tip (name_entry, Glib::Markup::escape_text(x));
 }
 
 void
@@ -410,14 +387,13 @@ RouteTimeAxisView::build_automation_action_menu (bool for_selection)
        items.push_back (MenuElem (_("Hide All Automation"),
                                   sigc::bind (sigc::mem_fun (*this, &RouteTimeAxisView::hide_all_automation), for_selection)));
 
-       items.push_back (SeparatorElem ());
-
        /* Attach the plugin submenu. It may have previously been used elsewhere,
           so it was detached above 
        */
        
        if (!subplugin_menu.items().empty()) {
-               items.push_back (MenuElem (_("Plugins"), subplugin_menu));
+               items.push_back (SeparatorElem ());
+               items.push_back (MenuElem (_("Processor automation"), subplugin_menu));
                items.back().set_sensitive (!for_selection || _editor.get_selection().tracks.size() == 1);;
        }
 }
@@ -662,10 +638,6 @@ RouteTimeAxisView::build_display_menu ()
                        items.push_back (MenuElem (_("Mode"), *mode_menu));
                }
 
-               color_mode_menu = build_color_mode_menu();
-               if (color_mode_menu) {
-                       items.push_back (MenuElem (_("Color Mode"), *color_mode_menu));
-               }
 
                items.push_back (SeparatorElem());
 
@@ -1027,7 +999,7 @@ RouteTimeAxisView::resolve_new_group_playlist_name(std::string &basename, vector
                        tmp = tmp.substr(idx + group_string.length());
 
                        // and find the largest current number
-                       int x = atoi(tmp.c_str());
+                       int x = atoi(tmp);
                        if (x > maxnumber) {
                                maxnumber = x;
                        }
@@ -1304,7 +1276,9 @@ RouteTimeAxisView::playlist () const
 void
 RouteTimeAxisView::name_entry_changed ()
 {
-       string x = name_entry.get_text ();
+       TimeAxisView::name_entry_changed ();
+
+       string x = name_entry->get_text ();
 
        if (x == _route->name()) {
                return;
@@ -1313,18 +1287,18 @@ RouteTimeAxisView::name_entry_changed ()
        strip_whitespace_edges (x);
 
        if (x.length() == 0) {
-               name_entry.set_text (_route->name());
+               name_entry->set_text (_route->name());
                return;
        }
 
        if (_session->route_name_internal (x)) {
                ARDOUR_UI::instance()->popup_error (string_compose (_("You cannot create a track with that name as it is reserved for %1"),
                                                                    PROGRAM_NAME));
-               name_entry.grab_focus ();
+               name_entry->grab_focus ();
        } else if (RouteUI::verify_new_route_name (x)) {
                _route->set_name (x);
        } else {
-               name_entry.grab_focus ();
+               name_entry->grab_focus ();
        }
 }
 
@@ -2174,11 +2148,18 @@ RouteTimeAxisView::reset_processor_automation_curves ()
        }
 }
 
+bool
+RouteTimeAxisView::can_edit_name () const
+{
+       /* we do not allow track name changes if it is record enabled
+        */
+       return !_route->record_enabled();
+}
+
 void
 RouteTimeAxisView::update_rec_display ()
 {
        RouteUI::update_rec_display ();
-       name_entry.set_sensitive (!_route->record_enabled());
 }
 
 void