- fill_pattern = cairo_pattern_create_linear (0.0, 0.0, 0.0, _height);
-
- if (active_state() == Gtkmm2ext::Mid) {
- start_color = ARDOUR_UI::config()->color_by_name (string_compose ("%1: fill start mid", get_name()));
- end_color = ARDOUR_UI::config()->color_by_name (string_compose ("%1: fill end mid", get_name()));
- } else if (active_state() == Gtkmm2ext::Active) {
- start_color = ARDOUR_UI::config()->color_by_name (string_compose ("%1: fill start active", get_name()));
- end_color = ARDOUR_UI::config()->color_by_name (string_compose ("%1: fill end active", get_name()));
- } else {
- start_color = ARDOUR_UI::config()->color_by_name (string_compose ("%1: fill start", get_name()));
- end_color = ARDOUR_UI::config()->color_by_name (string_compose ("%1: fill end", get_name()));
- }
+
+ active_pattern = cairo_pattern_create_linear (0.0, 0.0, 0.0, get_height());
+ start_color = ARDOUR_UI::config()->color_by_name (string_compose ("%1: fill start active", get_name()));
+ end_color = ARDOUR_UI::config()->color_by_name (string_compose ("%1: fill end active", get_name()));
+ UINT_TO_RGBA (start_color, &r, &g, &b, &a);
+
+ active_r = r/255.0;
+ active_g = g/255.0;
+ active_b = b/255.0;
+ active_a = a/255.0;
+
+ cairo_pattern_add_color_stop_rgba (active_pattern, 0, r/255.0,g/255.0,b/255.0, a/255.0);
+ UINT_TO_RGBA (end_color, &r, &g, &b, &a);
+ cairo_pattern_add_color_stop_rgba (active_pattern, 1, r/255.0,g/255.0,b/255.0, a/255.0);
+
+ inactive_pattern = cairo_pattern_create_linear (0.0, 0.0, 0.0, get_height());
+ start_color = ARDOUR_UI::config()->color_by_name (string_compose ("%1: fill start", get_name()));
+ end_color = ARDOUR_UI::config()->color_by_name (string_compose ("%1: fill end", get_name()));