I think that HSV::opposite() is probably too strong here. HSV::darker() might be better. Experimentation needed.
void render (Rect const &, Cairo::RefPtr<Cairo::Context>) const;
void set_velocity (double fract);
+ void set_fill_color (Gtkmm2ext::Color);
private:
- static bool _show_velocity_bars;
- double _velocity;
+ static bool _show_velocity_bars;
+ double _velocity;
+ Gtkmm2ext::Color _velocity_color;
};
}
Note::Note (Canvas* c)
: Rectangle (c)
- , _velocity (0.5)
+ , _velocity (0.0)
+ , _velocity_color (0)
{
}
Note::Note (Item* parent)
: Rectangle (parent)
- , _velocity (0.5)
+ , _velocity (0.0)
+ , _velocity_color (0)
{
}
return;
}
- Gtkmm2ext::set_source_rgba (context, Gtkmm2ext::contrasting_text_color (fill_color()));
+ Gtkmm2ext::set_source_rgba (context, _velocity_color);
context->rectangle (draw.x0, draw.y0, draw.width(), draw.height());
context->fill ();
}
}
+
+void
+Note::set_fill_color (Gtkmm2ext::Color c)
+{
+ Fill::set_fill_color (c);
+ _velocity_color = Gtkmm2ext::HSV (c).opposite().color ();
+}