-
- double visual_fraction = std::min (1.0f, speed/shuttle_max_speed);
- double x = (get_width() / 2.0) + (0.5 * (get_width() * visual_fraction));
- cairo_move_to (cr, x, 1);
- cairo_set_source_rgb (cr, 1.0, 1.0, 1.0);
- cairo_line_to (cr, x, get_height()-1);
+ float visual_fraction = std::min (1.0f, speed/shuttle_max_speed);
+ float marker_size = get_height()-4;
+ float avail_width = get_width() - marker_size;
+ float x = get_width()*0.5 + visual_fraction * avail_width*0.5;
+ float offset = x - marker_size*0.5;
+// cairo_set_source_rgb (cr, 0, 1, 0.0);
+ cairo_set_source (cr, pattern);
+ if (speed == 1.0) {
+ cairo_move_to( cr, offset-4, 2);
+ cairo_line_to( cr, offset+4, 2+marker_size*0.5);
+ cairo_line_to( cr, offset-4, 2+marker_size);
+ cairo_line_to( cr, offset-4, 2);
+ } else if ( speed ==0.0 )
+ rounded_rectangle (cr, offset, 4, marker_size-2, marker_size-2, 1);
+ else
+ cairo_arc (cr, offset + marker_size*0.5, 2 + marker_size*0.5, marker_size*0.5, 0, 360);
+ cairo_set_line_width (cr, 2);