#include "ardour/panner.h"
#include "ardour/panner_shell.h"
+#include "canvas/colors.h"
+
#include "ardour_ui.h"
#include "global_signals.h"
#include "stereo_panner.h"
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;
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 (&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));
r = 0x606060ff;
}
+ if (_send_mode) {
+ b = ARDOUR_UI::config()->color ("send strip base");
+ // 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));
void
StereoPanner::set_colors ()
{
- colors[Normal].fill = ARDOUR_UI::config()->get_canvasvar_StereoPannerFill();
- colors[Normal].outline = ARDOUR_UI::config()->get_canvasvar_StereoPannerOutline();
- colors[Normal].text = ARDOUR_UI::config()->get_canvasvar_StereoPannerText();
- colors[Normal].background = ARDOUR_UI::config()->get_canvasvar_StereoPannerBackground();
- colors[Normal].rule = ARDOUR_UI::config()->get_canvasvar_StereoPannerRule();
-
- colors[Mono].fill = ARDOUR_UI::config()->get_canvasvar_StereoPannerMonoFill();
- colors[Mono].outline = ARDOUR_UI::config()->get_canvasvar_StereoPannerMonoOutline();
- colors[Mono].text = ARDOUR_UI::config()->get_canvasvar_StereoPannerMonoText();
- colors[Mono].background = ARDOUR_UI::config()->get_canvasvar_StereoPannerMonoBackground();
- colors[Mono].rule = ARDOUR_UI::config()->get_canvasvar_StereoPannerRule();
-
- colors[Inverted].fill = ARDOUR_UI::config()->get_canvasvar_StereoPannerInvertedFill();
- colors[Inverted].outline = ARDOUR_UI::config()->get_canvasvar_StereoPannerInvertedOutline();
- colors[Inverted].text = ARDOUR_UI::config()->get_canvasvar_StereoPannerInvertedText();
- colors[Inverted].background = ARDOUR_UI::config()->get_canvasvar_StereoPannerInvertedBackground();
- colors[Inverted].rule = ARDOUR_UI::config()->get_canvasvar_StereoPannerRule();
+ colors[Normal].fill = ARDOUR_UI::config()->get_StereoPannerFill();
+ // colors[Normal].outline = ARDOUR_UI::config()->get_StereoPannerOutline();
+ colors[Normal].outline = ArdourCanvas::HSV (colors[Normal].fill).outline().color ();
+ colors[Normal].text = ARDOUR_UI::config()->get_StereoPannerText();
+ colors[Normal].background = ARDOUR_UI::config()->get_StereoPannerBackground();
+ colors[Normal].rule = ARDOUR_UI::config()->get_StereoPannerRule();
+
+ colors[Mono].fill = ARDOUR_UI::config()->get_StereoPannerMonoFill();
+ colors[Mono].outline = ARDOUR_UI::config()->get_StereoPannerMonoOutline();
+ colors[Mono].text = ARDOUR_UI::config()->get_StereoPannerMonoText();
+ colors[Mono].background = ARDOUR_UI::config()->get_StereoPannerMonoBackground();
+ colors[Mono].rule = ARDOUR_UI::config()->get_StereoPannerRule();
+
+ colors[Inverted].fill = ARDOUR_UI::config()->get_StereoPannerInvertedFill();
+ colors[Inverted].outline = ARDOUR_UI::config()->get_StereoPannerInvertedOutline();
+ colors[Inverted].text = ARDOUR_UI::config()->get_StereoPannerInvertedText();
+ colors[Inverted].background = ARDOUR_UI::config()->get_StereoPannerInvertedBackground();
+ colors[Inverted].rule = ARDOUR_UI::config()->get_StereoPannerRule();
}
void
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 ()
{