lots of tricks & tweaks related to the monitor section and All That It Uses
[ardour.git] / gtk2_ardour / mixer_strip.cc
index 4cb78f3495daa3f6e036e8d0dd40f5e2c6600f08..6b92873569c8b2e7414c7d80d1904924cc152124 100644 (file)
@@ -193,7 +193,7 @@ MixerStrip::init ()
        middle_button_table.set_homogeneous (true);
        middle_button_table.set_spacings (0);
        middle_button_table.attach (*mute_button, 0, 1, 0, 1);
-       middle_button_table.attach (*solo_button, 1, 2, 0, 1);
+        middle_button_table.attach (*solo_button, 1, 2, 0, 1);
 
        bottom_button_table.set_col_spacings (0);
        bottom_button_table.set_homogeneous (true);
@@ -207,6 +207,7 @@ MixerStrip::init ()
        ARDOUR_UI::instance()->set_tip (&group_button, _("Mix group"), "");
        group_button.add (group_label);
        group_button.set_name ("MixerGroupButton");
+        Gtkmm2ext::set_size_request_to_display_given_text (group_button, "Group", 2, 2);
        group_label.set_name ("MixerGroupButtonLabel");
 
        comment_button.set_name ("MixerCommentButton");
@@ -337,6 +338,12 @@ MixerStrip::set_route (boost::shared_ptr<Route> rt)
                set_color (unique_random_color());
        }
 
+        if (route()->is_master()) {
+                solo_button->hide ();
+        } else {
+                solo_button->show ();
+        }
+
        if (_mixer_owned && (route()->is_master() || route()->is_control())) {
 
                if (scrollbar_height == 0) {
@@ -399,7 +406,7 @@ MixerStrip::set_route (boost::shared_ptr<Route> rt)
        delete route_ops_menu;
        route_ops_menu = 0;
 
-       ARDOUR_UI::instance()->tooltips().set_tip (comment_button, _route->comment().empty() ?
+       ARDOUR_UI::instance()->set_tip (comment_button, _route->comment().empty() ?
                                                   _("Click to Add/Edit Comments"):
                                                   _route->comment());
 
@@ -1210,7 +1217,7 @@ MixerStrip::comment_editor_done_editing()
                        break;
                }
 
-               ARDOUR_UI::instance()->tooltips().set_tip (comment_button,
+               ARDOUR_UI::instance()->set_tip (comment_button,
                                str.empty() ? _("Click to Add/Edit Comments") : str);
        }
 
@@ -1295,11 +1302,13 @@ MixerStrip::select_route_group (GdkEventButton *ev)
 
                if (group_menu == 0) {
 
-                       group_menu = new RouteGroupMenu (
-                               _session,
-                               (RouteGroup::Property) (RouteGroup::Gain | RouteGroup::Mute | RouteGroup::Solo)
-                               );
+                       PropertyList* plist = new PropertyList();
 
+                       plist->add (Properties::gain, true);
+                       plist->add (Properties::mute, true);
+                       plist->add (Properties::solo, true);
+
+                       group_menu = new RouteGroupMenu (_session, plist);
                        group_menu->GroupSelected.connect (sigc::mem_fun (*this, &MixerStrip::set_route_group));
                }
 
@@ -1317,12 +1326,7 @@ MixerStrip::route_group_changed ()
        RouteGroup *rg = _route->route_group();
 
        if (rg) {
-               /* XXX: this needs a better algorithm */
-               string truncated = rg->name ();
-               if (truncated.length () > 5) {
-                       truncated = truncated.substr (0, 5);
-               }
-               group_label.set_text (truncated);
+                group_label.set_text (PBD::short_version (rg->name(), 5));
        } else {
                switch (_width) {
                case Wide:
@@ -1440,7 +1444,7 @@ MixerStrip::name_changed ()
 {
        switch (_width) {
        case Wide:
-               RouteUI::name_changed ();
+               RouteUI::property_changed (PropertyChange (ARDOUR::Properties::name));
                break;
        case Narrow:
                name_label.set_text (PBD::short_version (_route->name(), 5));