X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fmono_panner.cc;h=ce8b55eacf689b66a4a48d765d6cdced61964cb9;hb=c9f9bb263fc3f96e383216d515c62ac6706b56da;hp=347f5bb57539d2fbe265f1ebf8ab0afd288da766;hpb=ca0667e088f667233aaa402271786c95ee750349;p=ardour.git diff --git a/gtk2_ardour/mono_panner.cc b/gtk2_ardour/mono_panner.cc index 347f5bb575..ce8b55eacf 100644 --- a/gtk2_ardour/mono_panner.cc +++ b/gtk2_ardour/mono_panner.cc @@ -50,6 +50,7 @@ using namespace std; using namespace Gtk; using namespace Gtkmm2ext; +using namespace ARDOUR_UI_UTILS; static const int pos_box_size = 9; static const int lr_box_size = 15; @@ -80,18 +81,17 @@ MonoPanner::MonoPanner (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_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 (&MonoPanner::value_change, this), gui_context()); + position_control->Changed.connect (panvalue_connections, invalidator(*this), boost::bind (&MonoPanner::value_change, this), gui_context()); - _panner_shell->Changed.connect (connections, invalidator (*this), boost::bind (&MonoPanner::bypass_handler, this), gui_context()); + _panner_shell->Changed.connect (panshell_connections, invalidator (*this), boost::bind (&MonoPanner::bypass_handler, this), gui_context()); + _panner_shell->PannableChanged.connect (panshell_connections, invalidator (*this), boost::bind (&MonoPanner::pannable_handler, this), gui_context()); ColorsChanged.connect (sigc::mem_fun (*this, &MonoPanner::color_handler)); set_tooltip (); @@ -157,6 +157,9 @@ MonoPanner::on_expose_event (GdkEventExpose*) t = 0x606060ff; } + if (_send_mode) { + b = ARDOUR_UI::config()->color ("send bg"); + } /* 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)); context->rectangle (0, 0, width, height); @@ -197,7 +200,7 @@ MonoPanner::on_expose_event (GdkEventExpose*) Glib::RefPtr layout = Pango::Layout::create(get_pango_context()); layout->set_attributes (panner_font_attributes); - layout->set_text (_("L")); + layout->set_text (S_("Panner|L")); layout->get_pixel_size(tw, th); context->move_to (rint(left - tw/2), rint(lr_box_size + step_down - th/2)); context->set_source_rgba (UINT_RGBA_R_FLT(t), UINT_RGBA_G_FLT(t), UINT_RGBA_B_FLT(t), UINT_RGBA_A_FLT(t)); @@ -214,7 +217,7 @@ MonoPanner::on_expose_event (GdkEventExpose*) context->stroke(); /* add text */ - layout->set_text (_("R")); + layout->set_text (S_("Panner|R")); layout->get_pixel_size(tw, th); context->move_to (rint(right - tw/2), rint(lr_box_size + step_down - th/2)); context->set_source_rgba (UINT_RGBA_R_FLT(t), UINT_RGBA_G_FLT(t), UINT_RGBA_B_FLT(t), UINT_RGBA_A_FLT(t)); @@ -404,7 +407,7 @@ MonoPanner::on_scroll_event (GdkEventScroll* ev) return true; } - bool +bool MonoPanner::on_motion_notify_event (GdkEventMotion* ev) { if (_panner_shell->bypassed()) { @@ -444,7 +447,7 @@ MonoPanner::on_motion_notify_event (GdkEventMotion* ev) return true; } - bool +bool MonoPanner::on_key_press_event (GdkEventKey* ev) { double one_degree = 1.0/180.0; @@ -481,31 +484,41 @@ MonoPanner::on_key_press_event (GdkEventKey* ev) return true; } - void +void MonoPanner::set_colors () { - colors.fill = ARDOUR_UI::config()->canvasvar_MonoPannerFill.get(); - colors.outline = ARDOUR_UI::config()->canvasvar_MonoPannerOutline.get(); - colors.text = ARDOUR_UI::config()->canvasvar_MonoPannerText.get(); - colors.background = ARDOUR_UI::config()->canvasvar_MonoPannerBackground.get(); - colors.pos_outline = ARDOUR_UI::config()->canvasvar_MonoPannerPositionOutline.get(); - colors.pos_fill = ARDOUR_UI::config()->canvasvar_MonoPannerPositionFill.get(); + colors.fill = ARDOUR_UI::config()->color_mod ("mono panner fill", "panner fill"); + colors.outline = ARDOUR_UI::config()->color ("mono panner outline"); + colors.text = ARDOUR_UI::config()->color ("mono panner text"); + colors.background = ARDOUR_UI::config()->color ("mono panner bg"); + colors.pos_outline = ARDOUR_UI::config()->color ("mono panner position outline"); + colors.pos_fill = ARDOUR_UI::config()->color_mod ("mono panner position fill", "mono panner position fill"); } - void +void MonoPanner::color_handler () { set_colors (); queue_draw (); } - void +void MonoPanner::bypass_handler () { queue_draw (); } - PannerEditor* +void +MonoPanner::pannable_handler () +{ + panvalue_connections.drop_connections(); + position_control = _panner->pannable()->pan_azimuth_control; + position_binder.set_controllable(position_control); + position_control->Changed.connect (panvalue_connections, invalidator(*this), boost::bind (&MonoPanner::value_change, this), gui_context()); + queue_draw (); +} + +PannerEditor* MonoPanner::editor () { return new MonoPannerEditor (this);