X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fstereo_panner.cc;h=ab923a47be737fece200eed8b01b2792b2f71b12;hb=ad017365f7a73f8ba57f667cc1aa36478b48c50e;hp=e650338af45e70277ae3843deca8d4d94ca6b9d3;hpb=a1a3f6c8265264227ce19f731bf1863aff229a94;p=ardour.git diff --git a/gtk2_ardour/stereo_panner.cc b/gtk2_ardour/stereo_panner.cc index e650338af4..ab923a47be 100644 --- a/gtk2_ardour/stereo_panner.cc +++ b/gtk2_ardour/stereo_panner.cc @@ -49,6 +49,7 @@ using namespace std; using namespace Gtk; using namespace Gtkmm2ext; +using namespace ARDOUR_UI_UTILS; static const int pos_box_size = 8; static const int lr_box_size = 15; @@ -86,18 +87,18 @@ StereoPanner::StereoPanner (boost::shared_ptr p) if (!have_font) { Pango::FontDescription font; Pango::AttrFontDesc* font_attr; - font = Pango::FontDescription ("ArdourMono"); - font.set_weight (Pango::WEIGHT_BOLD); - font.set_size(9 * PANGO_SCALE); + font = Pango::FontDescription (ARDOUR_UI::config()->get_canvasvar_SmallBoldMonospaceFont()); font_attr = new Pango::AttrFontDesc (Pango::Attribute::create_attr_font_desc (font)); panner_font_attributes.change(*font_attr); delete font_attr; have_font = true; } - position_control->Changed.connect (connections, invalidator(*this), boost::bind (&StereoPanner::value_change, this), gui_context()); - width_control->Changed.connect (connections, invalidator(*this), boost::bind (&StereoPanner::value_change, this), gui_context()); - _panner_shell->Changed.connect (connections, invalidator (*this), boost::bind (&StereoPanner::bypass_handler, this), gui_context()); + position_control->Changed.connect (panvalue_connections, invalidator(*this), boost::bind (&StereoPanner::value_change, this), gui_context()); + width_control->Changed.connect (panvalue_connections, invalidator(*this), boost::bind (&StereoPanner::value_change, this), gui_context()); + + _panner_shell->Changed.connect (panshell_connections, invalidator (*this), boost::bind (&StereoPanner::bypass_handler, this), gui_context()); + _panner_shell->PannableChanged.connect (panshell_connections, invalidator (*this), boost::bind (&StereoPanner::pannable_handler, this), gui_context()); ColorsChanged.connect (sigc::mem_fun (*this, &StereoPanner::color_handler)); @@ -176,6 +177,11 @@ StereoPanner::on_expose_event (GdkEventExpose*) r = 0x606060ff; } + if (_send_mode) { + b = rgba_from_style("SendStripBase", + UINT_RGBA_R(b), UINT_RGBA_G(b), UINT_RGBA_B(b), 255, + "fg"); + } /* background */ context->set_source_rgba (UINT_RGBA_R_FLT(b), UINT_RGBA_G_FLT(b), UINT_RGBA_B_FLT(b), UINT_RGBA_A_FLT(b)); @@ -693,6 +699,20 @@ StereoPanner::bypass_handler () queue_draw (); } +void +StereoPanner::pannable_handler () +{ + panvalue_connections.drop_connections(); + position_control = _panner->pannable()->pan_azimuth_control; + width_control = _panner->pannable()->pan_width_control; + position_binder.set_controllable(position_control); + width_binder.set_controllable(width_control); + + position_control->Changed.connect (panvalue_connections, invalidator(*this), boost::bind (&StereoPanner::value_change, this), gui_context()); + width_control->Changed.connect (panvalue_connections, invalidator(*this), boost::bind (&StereoPanner::value_change, this), gui_context()); + queue_draw (); +} + PannerEditor* StereoPanner::editor () {