-
- 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() - 5.0;
+ float avail_width = get_width() - marker_size - 4;
+ float x = get_width() * 0.5 + visual_fraction * avail_width * 0.5;
+// cairo_set_source_rgb (cr, 0, 1, 0.0);
+ cairo_set_source (cr, pattern);
+ if (speed == 1.0) {
+ cairo_move_to( cr, x, 2.5);
+ cairo_line_to( cr, x + marker_size * .577, 2.5 + marker_size * 0.5);
+ cairo_line_to( cr, x, 2.5 + marker_size);
+ cairo_close_path(cr);
+ } else if ( speed ==0.0 )
+ rounded_rectangle (cr, x, 2.5, marker_size, marker_size, 1);
+ else
+ cairo_arc (cr, x, 2.5 + marker_size * .5, marker_size * 0.47, 0, 2.0 * M_PI);
+ cairo_set_line_width (cr, 1.75);