aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2020-01-23 19:58:19 +0100
committerThomas White <taw@physics.org>2020-01-23 19:58:19 +0100
commit102df3b906fd460868bdba1d474508146a5c73e6 (patch)
tree07ba8f00fa7cef9b52629fa79c3aa6de183d4a58
parentdb275d5f5503124d353393d78e899e2ecfdf03c3 (diff)
Numbering on the timing ruler
-rw-r--r--libstorycode/gtk/timing_ruler.c35
1 files changed, 25 insertions, 10 deletions
diff --git a/libstorycode/gtk/timing_ruler.c b/libstorycode/gtk/timing_ruler.c
index 6ace1b1..5d0994b 100644
--- a/libstorycode/gtk/timing_ruler.c
+++ b/libstorycode/gtk/timing_ruler.c
@@ -46,7 +46,8 @@ void draw_ruler(cairo_t *cr, GtkNarrativeView *e)
double start_item_time = 0.0;
double end_item_time = 0.0;
double t;
- double old_y;
+ PangoLayout *layout;
+ PangoFontDescription *fontdesc;
/* Background */
cairo_set_source_rgba(cr, 0.9, 0.9, 0.9, 1.0);
@@ -66,20 +67,34 @@ void draw_ruler(cairo_t *cr, GtkNarrativeView *e)
}
end_item_time = t;
- old_y = 0.0;
- for ( i=start_item_time; i<=end_item_time+1; i++ ) {
+ layout = pango_layout_new(gtk_widget_get_pango_context(GTK_WIDGET(e)));
+ fontdesc = pango_font_description_from_string("Sans 12");
+ pango_layout_set_font_description(layout, fontdesc);
+
+ for ( i=start_item_time; i<=end_item_time; i++ ) {
+
+ char tmp[64];
double y0, y1, y;
double yitem = narrative_find_time_pos(e->n, i);
y0 = narrative_get_item_y(e->n, yitem);
y1 = narrative_get_item_y(e->n, yitem+1);
+ if ( isinf(y1) ) break; /* End of narrative is visible */
y = y0 + (y1 - y0)*(yitem-trunc(yitem));
- cairo_rectangle(cr, 0.0, old_y, 100.0, y-old_y);
- old_y = y;
- if ( i % 2 ) {
- cairo_set_source_rgb(cr, 0.9, 0.9, 0.9);
- } else {
- cairo_set_source_rgb(cr, 0.8, 0.8, 0.8);
- }
+ cairo_move_to(cr, 0.0, y);
+ cairo_line_to(cr, 20.0, y);
+ cairo_set_line_width(cr, 1.0);
+ cairo_set_source_rgb(cr, 0.0, 0.0, 0.0);
+ cairo_stroke(cr);
+
+ snprintf(tmp, 63, _("%i min"), i);
+ cairo_move_to(cr, 5.0, y+2.0);
+ pango_layout_set_text(layout, tmp, -1);
+ cairo_set_source_rgb(cr, 0.0, 0.0, 0.0);
+ pango_cairo_update_layout(cr, layout);
+ pango_cairo_show_layout(cr, layout);
cairo_fill(cr);
}
+
+ g_object_unref(layout);
+ pango_font_description_free(fontdesc);
}