summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2020-04-24 00:51:29 +0200
committerRobin Gareus <robin@gareus.org>2020-04-24 00:57:15 +0200
commit777f1ea3bef475d9442d8be2fb85a26012a3a639 (patch)
tree98c74340323b2de6773f8a1a8ef0c79d72f27ec0 /gtk2_ardour
parent37e6a701bdf1403b47464488a2461e192020c9e9 (diff)
Indicate unlinked send-panners in pan-widget #8024
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/mono_panner.cc19
-rw-r--r--gtk2_ardour/mono_panner.h2
-rw-r--r--gtk2_ardour/panner2d.cc14
-rw-r--r--gtk2_ardour/panner2d.h2
-rw-r--r--gtk2_ardour/stereo_panner.cc22
-rw-r--r--gtk2_ardour/stereo_panner.h2
6 files changed, 39 insertions, 22 deletions
diff --git a/gtk2_ardour/mono_panner.cc b/gtk2_ardour/mono_panner.cc
index e7b959fe44..6c113e122c 100644
--- a/gtk2_ardour/mono_panner.cc
+++ b/gtk2_ardour/mono_panner.cc
@@ -147,8 +147,8 @@ MonoPanner::on_expose_event (GdkEventExpose*)
o = colors.outline;
f = colors.fill;
t = colors.text;
- b = colors.background;
- pf = colors.pos_fill;
+ b = _send_mode ? colors.send_bg : colors.background;
+ pf = (_send_mode && !_panner_shell->is_linked_to_route()) ? colors.send_pan : colors.pos_fill;
po = colors.pos_outline;
if (_panner_shell->bypassed()) {
@@ -160,9 +160,6 @@ MonoPanner::on_expose_event (GdkEventExpose*)
t = 0x606060ff;
}
- if (_send_mode) {
- b = UIConfiguration::instance().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);
@@ -488,12 +485,14 @@ MonoPanner::on_key_press_event (GdkEventKey* ev)
void
MonoPanner::set_colors ()
{
- colors.fill = UIConfiguration::instance().color_mod ("mono panner fill", "panner fill");
- colors.outline = UIConfiguration::instance().color ("mono panner outline");
- colors.text = UIConfiguration::instance().color ("mono panner text");
- colors.background = UIConfiguration::instance().color ("mono panner bg");
+ colors.fill = UIConfiguration::instance().color_mod ("mono panner fill", "panner fill");
+ colors.outline = UIConfiguration::instance().color ("mono panner outline");
+ colors.text = UIConfiguration::instance().color ("mono panner text");
+ colors.background = UIConfiguration::instance().color ("mono panner bg");
colors.pos_outline = UIConfiguration::instance().color ("mono panner position outline");
- colors.pos_fill = UIConfiguration::instance().color_mod ("mono panner position fill", "mono panner position fill");
+ colors.pos_fill = UIConfiguration::instance().color_mod ("mono panner position fill", "mono panner position fill");
+ colors.send_bg = UIConfiguration::instance().color ("send bg");
+ colors.send_pan = UIConfiguration::instance().color ("send pan");
}
void
diff --git a/gtk2_ardour/mono_panner.h b/gtk2_ardour/mono_panner.h
index 78b78b40ba..e0f8cb27c8 100644
--- a/gtk2_ardour/mono_panner.h
+++ b/gtk2_ardour/mono_panner.h
@@ -84,6 +84,8 @@ private:
uint32_t background;
uint32_t pos_outline;
uint32_t pos_fill;
+ uint32_t send_bg;
+ uint32_t send_pan;
};
bool _dragging;
diff --git a/gtk2_ardour/panner2d.cc b/gtk2_ardour/panner2d.cc
index 6de3f8bdb2..f451bbfcce 100644
--- a/gtk2_ardour/panner2d.cc
+++ b/gtk2_ardour/panner2d.cc
@@ -133,6 +133,9 @@ Panner2d::set_colors ()
colors.signal_fill = 0x4884a9bf; // 0.282, 0.517, 0.662, 0.75
colors.speaker_fill = 0x4884a9ff; // 0.282, 0.517, 0.662, 1.0
colors.text = 0x84c5e1e6; // 0.517, 0.772, 0.882, 0.9
+
+ colors.send_bg = UIConfiguration::instance().color ("send bg");
+ colors.send_pan = UIConfiguration::instance().color ("send pan");
}
void
@@ -475,10 +478,7 @@ Panner2d::on_expose_event (GdkEventExpose *event)
cairo_rectangle (cr, event->area.x, event->area.y, event->area.width, event->area.height);
- uint32_t bg = colors.background;
- if (_send_mode) {
- bg = UIConfiguration::instance().color ("send bg");
- }
+ uint32_t bg = _send_mode ? colors.send_bg : colors.background;
if (!panner_shell->bypassed()) {
CSSRGBA(bg);
@@ -598,7 +598,11 @@ Panner2d::on_expose_event (GdkEventExpose *event)
cairo_new_path (cr);
cairo_arc (cr, c.x, c.y, arc_radius, 0, 2.0 * M_PI);
- CSSRGBA(colors.signal_fill);
+ if (_send_mode && !panner_shell->is_linked_to_route()) {
+ CSSRGBA(colors.send_pan);
+ } else {
+ CSSRGBA(colors.signal_fill);
+ }
cairo_fill_preserve (cr);
CSSRGBA(colors.signal_outline);
cairo_stroke (cr);
diff --git a/gtk2_ardour/panner2d.h b/gtk2_ardour/panner2d.h
index 6fc6ef69f8..a0ccb078a1 100644
--- a/gtk2_ardour/panner2d.h
+++ b/gtk2_ardour/panner2d.h
@@ -116,6 +116,8 @@ class Panner2d : public Gtk::DrawingArea
uint32_t signal_fill;
uint32_t speaker_fill;
uint32_t text;
+ uint32_t send_bg;
+ uint32_t send_pan;
};
static ColorScheme colors;
diff --git a/gtk2_ardour/stereo_panner.cc b/gtk2_ardour/stereo_panner.cc
index fdaa8400e8..671ccc98d7 100644
--- a/gtk2_ardour/stereo_panner.cc
+++ b/gtk2_ardour/stereo_panner.cc
@@ -57,7 +57,10 @@ using namespace ARDOUR_UI_UTILS;
using PBD::Controllable;
StereoPanner::ColorScheme StereoPanner::colors[3];
-bool StereoPanner::have_colors = false;
+
+uint32_t StereoPanner::colors_send_bg;
+uint32_t StereoPanner::colors_send_pan;
+bool StereoPanner::have_colors = false;
Pango::AttrList StereoPanner::panner_font_attributes;
bool StereoPanner::have_font = false;
@@ -174,6 +177,10 @@ StereoPanner::on_expose_event (GdkEventExpose*)
b = colors[state].background;
r = colors[state].rule;
+ if (_send_mode) {
+ b = colors_send_bg;
+ }
+
if (_panner_shell->bypassed()) {
b = 0x20202040;
f = 0x404040ff;
@@ -182,12 +189,6 @@ StereoPanner::on_expose_event (GdkEventExpose*)
r = 0x606060ff;
}
- if (_send_mode) {
- b = UIConfiguration::instance().color ("send bg");
- // 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));
@@ -292,6 +293,10 @@ StereoPanner::on_expose_event (GdkEventExpose*)
context->rel_line_to (0.0, -pos_box_size); /* upper left */
context->close_path ();
+ if (_send_mode && !_panner_shell->is_linked_to_route()) {
+ f = colors_send_pan;
+ }
+
context->set_source_rgba (UINT_RGBA_R_FLT(o), UINT_RGBA_G_FLT(o), UINT_RGBA_B_FLT(o), UINT_RGBA_A_FLT(o));
context->stroke_preserve ();
context->set_source_rgba (UINT_RGBA_R_FLT(f), UINT_RGBA_G_FLT(f), UINT_RGBA_B_FLT(f), UINT_RGBA_A_FLT(f));
@@ -692,6 +697,9 @@ StereoPanner::set_colors ()
colors[Inverted].text = UIConfiguration::instance().color ("stereo panner inverted text");
colors[Inverted].background = UIConfiguration::instance().color ("stereo panner inverted bg");
colors[Inverted].rule = UIConfiguration::instance().color ("stereo panner rule");
+
+ colors_send_bg = UIConfiguration::instance().color ("send bg");
+ colors_send_pan = UIConfiguration::instance().color ("send pan");
}
void
diff --git a/gtk2_ardour/stereo_panner.h b/gtk2_ardour/stereo_panner.h
index aef4caad45..e8a7b9a5bc 100644
--- a/gtk2_ardour/stereo_panner.h
+++ b/gtk2_ardour/stereo_panner.h
@@ -106,6 +106,8 @@ private:
static bool have_font;
static ColorScheme colors[3];
+ static uint32_t colors_send_bg;
+ static uint32_t colors_send_pan;
static void set_colors ();
static bool have_colors;
void color_handler ();