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 ("")
_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);
setup_gain_adjustment ();
- if (!_route || !_route->is_hidden()) {
+ if (!_route || !_route->is_auditioner()) {
using namespace Menu_Helpers;
}
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;
+ }
+ }
+ }
}
}
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
}
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);
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);
// }
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);
// }