Canvas::Rect::contains() should treat its right/left coordinates as exclusive
[ardour.git] / libs / canvas / xfade_curve.cc
index 52be6c0095f8a37bad3de76d88ce03075f055353..f97cd234d2045a42076ab92ba6c65ffbdd585a43 100644 (file)
 #include <exception>
 #include <algorithm>
 
-#include "canvas/utils.h"
 #include "canvas/xfade_curve.h"
 #include "canvas/interpolated_curve.h"
+#include "canvas/utils.h"
 
 using namespace ArdourCanvas;
 using std::min;
 using std::max;
 
-XFadeCurve::XFadeCurve (Group* parent)
+XFadeCurve::XFadeCurve (Canvas* c)
+       : Item (c)
+       , points_per_segment (32)
+       , _xfadeposition (Start)
+       , _outline_color (0x000000ff)
+       , _fill_color (0x22448880)
+{
+}
+
+XFadeCurve::XFadeCurve (Canvas* c, XFadePosition pos)
+       : Item (c)
+       , points_per_segment (32)
+       , _xfadeposition (pos)
+       , _outline_color (0x000000ff)
+       , _fill_color (0x22448880)
+{
+}
+
+XFadeCurve::XFadeCurve (Item* parent)
        : Item (parent)
        , points_per_segment (32)
        , _xfadeposition (Start)
@@ -39,7 +57,7 @@ XFadeCurve::XFadeCurve (Group* parent)
 {
 }
 
-XFadeCurve::XFadeCurve (Group* parent, XFadePosition pos)
+XFadeCurve::XFadeCurve (Item* parent, XFadePosition pos)
        : Item (parent)
        , points_per_segment (32)
        , _xfadeposition (pos)
@@ -235,13 +253,13 @@ XFadeCurve::render (Rect const & area, Cairo::RefPtr<Cairo::Context> context) co
        context->begin_new_path ();
        context->append_path (IS ? *path_in : *path_out);
        close_path(draw, context, IS ? _in : _out, true);
-       //context->set_fill_rule (Cairo::FILL_RULE_EVEN_ODD);
+       context->set_fill_rule (Cairo::FILL_RULE_EVEN_ODD);
        context->clip ();
        context->begin_new_path ();
        context->append_path (IS ? *path_out: *path_in);
        close_path(draw, context, IS ? _out : _in, true);
        set_source_rgba (context, fill_shaded);
-       //context->set_fill_rule (Cairo::FILL_RULE_WINDING);
+       context->set_fill_rule (Cairo::FILL_RULE_WINDING);
        context->fill ();
        context->restore ();