show() widgets explicitly, one little file at a time
[ardour.git] / gtk2_ardour / crossfade_view.cc
index 261b2b3ca4070d67c8009fe82a41aa0cb8b1a7d8..22119721ffaf4fe7e3b7819c1809c24ba18167a2 100644 (file)
@@ -31,6 +31,7 @@
 #include "audio_region_view.h"
 #include "utils.h"
 #include "canvas_impl.h"
+#include "ardour_ui.h"
 
 using namespace sigc;
 using namespace ARDOUR;
@@ -61,11 +62,11 @@ CrossfadeView::CrossfadeView (ArdourCanvas::Group *parent,
        _visible = true;
 
        fade_in = new Line (*group);
-       fade_in->property_fill_color_rgba() = color_map[cCrossfadeLine];
+       fade_in->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_CrossfadeLine.get();
        fade_in->property_width_pixels() = 1;
 
        fade_out = new Line (*group);
-       fade_out->property_fill_color_rgba() = color_map[cCrossfadeLine];
+       fade_out->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_CrossfadeLine.get();
        fade_out->property_width_pixels() = 1;
        
        set_y_position_and_height (0, get_time_axis_view().height);
@@ -84,6 +85,7 @@ CrossfadeView::CrossfadeView (ArdourCanvas::Group *parent,
        crossfade_changed (Change (~0));
 
        crossfade->StateChanged.connect (mem_fun(*this, &CrossfadeView::crossfade_changed));
+       ColorsChanged.connect (mem_fun (*this, &CrossfadeView::color_handler));
 }
 
 CrossfadeView::~CrossfadeView ()
@@ -188,7 +190,7 @@ CrossfadeView::redraw_curves ()
        points = get_canvas_points ("xfade edit redraw", npoints);
        vec = new float[npoints];
 
-       crossfade->fade_in().get_vector (0, crossfade->length(), vec, npoints);
+       crossfade->fade_in().curve().get_vector (0, crossfade->length(), vec, npoints);
        for (int i = 0, pci = 0; i < npoints; ++i) {
                Art::Point &p = (*points)[pci++];
                p.set_x(i);
@@ -196,7 +198,7 @@ CrossfadeView::redraw_curves ()
        }
        fade_in->property_points() = *points;
 
-       crossfade->fade_out().get_vector (0, crossfade->length(), vec, npoints);
+       crossfade->fade_out().curve().get_vector (0, crossfade->length(), vec, npoints);
        for (int i = 0, pci = 0; i < npoints; ++i) {
                Art::Point &p = (*points)[pci++];
                p.set_x(i);
@@ -219,14 +221,20 @@ void
 CrossfadeView::active_changed ()
 {
        if (crossfade->active()) {
-               frame->property_fill_color_rgba() = color_map[cActiveCrossfade];
+               frame->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_ActiveCrossfade.get();
        } else {
-               frame->property_fill_color_rgba() = color_map[cInactiveCrossfade];
+               frame->property_fill_color_rgba() = ARDOUR_UI::config()->canvasvar_InactiveCrossfade.get();
        }
 
        redraw_curves ();
 }
 
+void
+CrossfadeView::color_handler ()
+{
+       active_changed ();
+}
+
 void
 CrossfadeView::set_valid (bool yn)
 {
@@ -262,3 +270,4 @@ CrossfadeView::fake_hide ()
 {
        group->hide();
 }
+