Update about.cc
[ardour.git] / gtk2_ardour / gain_meter.cc
index 54519546d0265144ca3a73eaf01445ff638347c4..73d2ce648b8dcc73270637319344193562d70618 100644 (file)
@@ -61,27 +61,8 @@ sigc::signal<void> GainMeterBase::ResetAllPeakDisplays;
 sigc::signal<void,RouteGroup*> GainMeterBase::ResetGroupPeakDisplays;
 
 GainMeter::MetricPatterns GainMeter::metric_patterns;
-Glib::RefPtr<Gdk::Pixbuf> GainMeter::slider;
-Glib::RefPtr<Gdk::Pixbuf> GainMeter::slider_desensitised;
 
-
-void
-GainMeter::setup_slider_pix ()
-{
-       if ((slider = ::get_icon ("fader_belt")) == 0) {
-               throw failed_constructor();
-       }
-
-       if ((slider_desensitised = ::get_icon ("fader_belt_desensitised")) == 0) {
-               throw failed_constructor();
-       }
-}
-
-GainMeterBase::GainMeterBase (Session* s,
-                             const Glib::RefPtr<Gdk::Pixbuf>& pix,
-                             const Glib::RefPtr<Gdk::Pixbuf>& pix_desensitised,
-                             bool horizontal,
-                             int fader_length)
+GainMeterBase::GainMeterBase (Session* s, bool horizontal, int fader_length, int fader_girth)
        : gain_adjustment (gain_to_slider_position_with_max (1.0, Config->get_max_gain()), 0.0, 1.0, 0.01, 0.1)
        , gain_automation_style_button ("")
        , gain_automation_state_button ("")
@@ -100,17 +81,9 @@ GainMeterBase::GainMeterBase (Session* s,
        _width = Wide;
 
        if (horizontal) {
-               gain_slider = manage (new HSliderController (pix,
-                                                            pix_desensitised,
-                                                            &gain_adjustment,
-                                                            fader_length,
-                                                            false));
+               gain_slider = manage (new HSliderController (&gain_adjustment, fader_length, fader_girth, false));
        } else {
-               gain_slider = manage (new VSliderController (pix,
-                                                            pix_desensitised,
-                                                            &gain_adjustment,
-                                                            fader_length,
-                                                            false));
+               gain_slider = manage (new VSliderController (&gain_adjustment, fader_length, fader_girth, false));
        }
 
        level_meter = new LevelMeter(_session);
@@ -213,7 +186,7 @@ GainMeterBase::set_controls (boost::shared_ptr<Route> r,
 
        setup_gain_adjustment ();
 
-       if (!_route || !_route->is_hidden()) {
+       if (!_route || !_route->is_auditioner()) {
 
                using namespace Menu_Helpers;
 
@@ -427,7 +400,20 @@ GainMeterBase::gain_activated ()
        }
 
        if (gain_display.has_focus()) {
-               PublicEditor::instance().reset_focus();
+               Gtk::Widget* w = gain_display.get_toplevel();
+               if (w) {
+                       Gtk::Window* win = dynamic_cast<Gtk::Window*> (w);
+
+                       /* sigh. gtkmm doesn't wrap get_default_widget() */
+
+                       if (win) {
+                               GtkWidget* f = gtk_window_get_default_widget (win->gobj());
+                               if (f) {
+                                       gtk_widget_grab_focus (f);
+                                       return;
+                               }
+                       }
+               }
        }
 }
 
@@ -514,10 +500,7 @@ GainMeterBase::set_meter_strip_name (const char * name)
 void
 GainMeterBase::set_fader_name (const char * name)
 {
-        uint32_t rgb_active = rgba_from_style (name, 0xff, 0, 0xff, 0, "bg", STATE_ACTIVE, false);
-        uint32_t rgb_normal = rgba_from_style (name, 0xff, 0xff, 0, 0, "bg", STATE_NORMAL, false);
-
-       gain_slider->set_border_colors (rgb_normal, rgb_active);
+       gain_slider->set_name (name);
 }
 
 void
@@ -867,11 +850,14 @@ GainMeterBase::on_theme_changed()
 }
 
 GainMeter::GainMeter (Session* s, int fader_length)
-       : GainMeterBase (s, slider, slider_desensitised, false, fader_length)
+       : GainMeterBase (s, false, fader_length, 24)
        , gain_display_box(true, 0)
        , hbox(true, 2)
 {
-//     gain_display_box.pack_start (gain_display, true, true);
+       if (gain_display.get_parent()) {
+               gain_display.get_parent()->remove (gain_display);
+       }
+       gain_display_box.pack_start (gain_display, true, true);
 
        meter_metric_area.set_name ("AudioTrackMetrics");
        set_size_request_to_display_given_text (meter_metric_area, "-127", 0, 0);
@@ -918,10 +904,6 @@ GainMeter::set_controls (boost::shared_ptr<Route> r,
                hbox.remove (meter_alignment);
        }
 
-//     if (peak_display.get_parent()) {
-//             gain_display_box.remove (peak_display);
-//     }
-
 //     if (gain_automation_state_button.get_parent()) {
 //             fader_vbox->remove (gain_automation_state_button);
 //     }
@@ -942,10 +924,9 @@ GainMeter::set_controls (boost::shared_ptr<Route> r,
           pack some route-dependent stuff.
        */
 
-//     gain_display_box.pack_end (peak_display, true, true);
        hbox.pack_start (meter_alignment, true, true);
 
-//     if (r && !r->is_hidden()) {
+//     if (r && !r->is_auditioner()) {
 //             fader_vbox->pack_start (gain_automation_state_button, false, false, 0);
 //     }