X-Git-Url: http://git.tdb.fi/?p=ext%2Fsubsurface.git;a=blobdiff_plain;f=print.c;h=bdebcfe15634fcf0bdda5fbe51e211ab42130495;hp=0346cca74bf48d3addb5f977d343f80970b29bd2;hb=ed1ce8ebc8590533291a9c5d6460f8d1c9f857dd;hpb=51486040686592965bd7a70cf52767350cfde5f6 diff --git a/print.c b/print.c index 0346cca..bdebcfe 100644 --- a/print.c +++ b/print.c @@ -31,7 +31,7 @@ static void show_dive_text(struct dive *dive, cairo_t *cr, double w, double h, P int len, decimals, width, height, maxwidth, maxheight; PangoLayout *layout; struct tm *tm; - char buffer[1024], divenr[20]; + char buffer[80], divenr[20], *people; maxwidth = w * PANGO_SCALE; maxheight = h * PANGO_SCALE * 0.9; @@ -44,7 +44,6 @@ static void show_dive_text(struct dive *dive, cairo_t *cr, double w, double h, P if (dive->number) snprintf(divenr, sizeof(divenr), "Dive #%d - ", dive->number); - tm = gmtime(&dive->when); len = snprintf(buffer, sizeof(buffer), "%s%s, %s %d, %d %d:%02d", @@ -61,11 +60,13 @@ static void show_dive_text(struct dive *dive, cairo_t *cr, double w, double h, P cairo_move_to(cr, 0, 0); pango_cairo_show_layout(cr, layout); - /* - * This is still problematic: a long dive location will clash - * with the depth/duration information. Need to mask that or - * create a box or something. - */ + people = dive->buddy; + if (!people || !*people) { + people = dive->divemaster; + if (!people) + people = ""; + } + depth = get_depth_units(dive->maxdepth.mm, &decimals, &unit); snprintf(buffer, sizeof(buffer), "Max depth: %.*f %s\n" @@ -73,7 +74,7 @@ static void show_dive_text(struct dive *dive, cairo_t *cr, double w, double h, P "%s", decimals, depth, unit, (dive->duration.seconds+59) / 60, - dive->buddy ? :""); + people); set_font(layout, font, FONT_SMALL, PANGO_ALIGN_RIGHT); pango_layout_set_text(layout, buffer, -1); @@ -126,12 +127,13 @@ static void show_dive_text(struct dive *dive, cairo_t *cr, double w, double h, P static void show_dive_profile(struct dive *dive, cairo_t *cr, double w, double h) { + cairo_rectangle_int_t drawing_area = { w/20.0, h/20.0, w, h}; struct graphics_context gc = { .printer = 1, .cr = cr }; cairo_save(cr); - plot(&gc, w, h, dive); + plot(&gc, &drawing_area, dive); cairo_restore(cr); }