mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Print.c : fixes problem with line height in print_tanks
A "\n" was giving 2 lines height for the layout. Wipping it out makes unnecesary the *2 divisor. As there may be wrapped strings in tank we need to take account of this height. There is no need, really, to get the height of the gasmix or gas_consumed strings, as they are "semi-fixed" size, but under some locales and imperial units they could be wrapped too. Signed-off-by: Salvador Cuñat <salvador.cunat@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
0eb53fab52
commit
f47813546c
1 changed files with 16 additions and 4 deletions
20
print.c
20
print.c
|
@ -197,7 +197,7 @@ static void print_tanks (struct dive *dive, cairo_t *cr, PangoLayout *layout, in
|
||||||
int tank_count, int first_tank, PangoFontDescription *font,
|
int tank_count, int first_tank, PangoFontDescription *font,
|
||||||
double w_scale_factor)
|
double w_scale_factor)
|
||||||
{
|
{
|
||||||
int curwidth, n, i, counter;
|
int curwidth, n, i, counter, height_count = 0;
|
||||||
char buffer[80], dataheader1[3][80]= { N_("Cylinder"), N_("Gasmix"),
|
char buffer[80], dataheader1[3][80]= { N_("Cylinder"), N_("Gasmix"),
|
||||||
/*++GETTEXT Gas Used is amount used */
|
/*++GETTEXT Gas Used is amount used */
|
||||||
N_("Gas Used")};
|
N_("Gas Used")};
|
||||||
|
@ -247,26 +247,38 @@ static void print_tanks (struct dive *dive, cairo_t *cr, PangoLayout *layout, in
|
||||||
snprintf(buffer, sizeof(buffer), "%s", desc);
|
snprintf(buffer, sizeof(buffer), "%s", desc);
|
||||||
pango_layout_set_text(layout, buffer, -1);
|
pango_layout_set_text(layout, buffer, -1);
|
||||||
pango_cairo_show_layout(cr, layout);
|
pango_cairo_show_layout(cr, layout);
|
||||||
|
pango_layout_get_extents(layout, NULL, &logic_ext);
|
||||||
|
if (logic_ext.height > height_count)
|
||||||
|
height_count = logic_ext.height;
|
||||||
|
|
||||||
curwidth += (maxwidth/ 3);
|
curwidth += (maxwidth/ 3);
|
||||||
|
|
||||||
cairo_move_to(cr, curwidth / (double) PANGO_SCALE, 0);
|
cairo_move_to(cr, curwidth / (double) PANGO_SCALE, 0);
|
||||||
print_ean_trimix (cr, layout,
|
print_ean_trimix (cr, layout,
|
||||||
cyl->gasmix.o2.permille/10,
|
cyl->gasmix.o2.permille/10,
|
||||||
cyl->gasmix.he.permille/10);
|
cyl->gasmix.he.permille/10);
|
||||||
|
pango_layout_get_extents(layout, NULL, &logic_ext);
|
||||||
|
if (logic_ext.height > height_count)
|
||||||
|
height_count = logic_ext.height;
|
||||||
|
|
||||||
curwidth += (maxwidth/ 3);
|
curwidth += (maxwidth/ 3);
|
||||||
|
|
||||||
cairo_move_to(cr, curwidth / (double) PANGO_SCALE, 0);
|
cairo_move_to(cr, curwidth / (double) PANGO_SCALE, 0);
|
||||||
snprintf(buffer, sizeof(buffer), _("%.*f %s\n"),
|
snprintf(buffer, sizeof(buffer), _("%.*f %s"),
|
||||||
decimals,
|
decimals,
|
||||||
gas_usage,
|
gas_usage,
|
||||||
unit);
|
unit);
|
||||||
pango_layout_set_text(layout, buffer, -1);
|
pango_layout_set_text(layout, buffer, -1);
|
||||||
pango_cairo_show_layout(cr, layout);
|
pango_cairo_show_layout(cr, layout);
|
||||||
|
pango_layout_get_extents(layout, NULL, &logic_ext);
|
||||||
|
if (logic_ext.height > height_count)
|
||||||
|
height_count = logic_ext.height;
|
||||||
|
|
||||||
curwidth += (maxwidth/ 3);
|
curwidth += (maxwidth/ 3);
|
||||||
n++;
|
n++;
|
||||||
counter++;
|
counter++;
|
||||||
pango_layout_get_extents(layout, NULL, &logic_ext);
|
|
||||||
cairo_translate (cr, 0, logic_ext.height / (2*(double) PANGO_SCALE));
|
cairo_translate (cr, 0, height_count / (double) PANGO_SCALE);
|
||||||
}
|
}
|
||||||
g_object_unref (layout);
|
g_object_unref (layout);
|
||||||
cairo_restore(cr);
|
cairo_restore(cr);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue