+static void show_table_header(cairo_t *cr, double w, double h,
+ PangoFontDescription *font)
+{
+ int len, width, height, maxwidth, maxheight;
+ PangoLayout *layout;
+ char buffer[160];
+
+ maxwidth = w * PANGO_SCALE;
+ maxheight = h * PANGO_SCALE * 0.9;
+
+ layout = pango_cairo_create_layout(cr);
+ pango_layout_set_width(layout, maxwidth);
+ pango_layout_set_height(layout, maxheight);
+
+ len = snprintf(buffer, sizeof(buffer),
+ "Dive# - Date - Depth - Time - Master"
+ " Buddy -- Location");
+
+ set_font(layout, font, FONT_LARGE, PANGO_ALIGN_LEFT);
+ pango_layout_set_text(layout, buffer, len);
+ pango_layout_get_size(layout, &width, &height);
+
+ //cairo_move_to(cr, 0, 0);
+ pango_cairo_show_layout(cr, layout);
+}
+
+static void show_dive_table(struct dive *dive, cairo_t *cr, double w,
+ double h, PangoFontDescription *font)
+{
+ double depth;
+ const char *unit;
+ int len, decimals, width, height, maxwidth, maxheight;
+ PangoLayout *layout;
+ struct tm *tm;
+ char buffer[160], divenr[20];
+
+ maxwidth = w * PANGO_SCALE;
+ maxheight = h * PANGO_SCALE * 0.9;
+
+ layout = pango_cairo_create_layout(cr);
+ pango_layout_set_width(layout, maxwidth);
+ pango_layout_set_height(layout, maxheight);
+
+ *divenr = 0;
+ if (dive->number)
+ snprintf(divenr, sizeof(divenr), "#%d -", dive->number);
+
+ depth = get_depth_units(dive->maxdepth.mm, &decimals, &unit);
+
+ tm = gmtime(&dive->when);
+ len = snprintf(buffer, sizeof(buffer),
+ "%s %s, %s %d, %d %dh%02d - %.*f %s - %d min - %s %s -- %s",
+ divenr,
+ weekday(tm->tm_wday),
+ monthname(tm->tm_mon),
+ tm->tm_mday, tm->tm_year + 1900,
+ tm->tm_hour, tm->tm_min,
+ decimals,
+ depth,
+ unit,
+ (dive->duration.seconds+59) / 60,
+ dive->divemaster ? : " ",
+ dive->buddy ? : " ",
+ dive->location ? : " "
+ );
+
+ set_font(layout, font, FONT_NORMAL, PANGO_ALIGN_LEFT);
+ pango_layout_set_text(layout, buffer, len);
+ pango_layout_get_size(layout, &width, &height);
+
+ cairo_move_to(cr, 0, 0);
+ pango_cairo_show_layout(cr, layout);
+
+ ///*
+ //* Show the dive notes
+ //*/
+ if (dive->notes) {
+ /* Move down by the size of the location (x2) */
+ height = height * 1.3;
+ cairo_translate(cr, 20, height / (double) PANGO_SCALE);
+ maxheight -= height;
+
+ /* Use the full width and remaining height for notes */
+ pango_layout_set_height(layout, maxheight);
+ pango_layout_set_width(layout, maxwidth);
+ pango_layout_set_wrap(layout, PANGO_WRAP_WORD_CHAR);
+ pango_layout_set_justify(layout, 1);
+ pango_layout_set_text(layout, dive->notes, -1);
+
+ cairo_move_to(cr, 0, 0);
+ pango_cairo_show_layout(cr, layout);
+ }
+ g_object_unref(layout);
+}
+
+static void show_dive_profile(struct dive *dive, cairo_t *cr, double w,
+ double h)