+ cairo_move_to (cr, 0, 0);
+ cairo_rectangle (cr, 0, 0, width, height);
+ {
+ Gdk::Color c = w.get_style()->get_bg (Gtk::STATE_NORMAL);
+ cairo_set_source_rgb (cr, c.get_red_p(), c.get_green_p(), c.get_blue_p());
+ }
+ cairo_fill (cr);
+
+ for (vector<DataType>::const_iterator i = types.begin(); i != types.end(); ++i) {
+
+ Gdk::Color c;
+
+ if (types.size() > 1) {
+ /* we're overlaying more than 1 set of marks, so use different colours */
+ Gdk::Color c;
+ switch (*i) {
+ case DataType::AUDIO:
+ c = w.get_style()->get_fg (Gtk::STATE_NORMAL);
+ cairo_set_source_rgb (cr, c.get_red_p(), c.get_green_p(), c.get_blue_p());
+ break;
+ case DataType::MIDI:
+ c = w.get_style()->get_fg (Gtk::STATE_ACTIVE);
+ cairo_set_source_rgb (cr, c.get_red_p(), c.get_green_p(), c.get_blue_p());
+ break;
+ }
+ } else {
+ c = w.get_style()->get_fg (Gtk::STATE_NORMAL);
+ cairo_set_source_rgb (cr, c.get_red_p(), c.get_green_p(), c.get_blue_p());
+ }