From 957aaf619f22465b4aa1898c925831a6270c1230 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Tue, 20 Sep 2011 17:52:04 -0700 Subject: [PATCH] Fix up printing some more MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Use the actual degree sign for temperatures (°F and °C), and make sure everything uses the proper "set_source_rgb[a]()" wrappers to set the colors. Signed-off-by: Linus Torvalds --- dive.h | 3 +++ divelist.c | 8 ++++---- profile.c | 21 ++++++++++++--------- 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/dive.h b/dive.h index 1927da7..85fdabf 100644 --- a/dive.h +++ b/dive.h @@ -242,4 +242,7 @@ extern int open_import_file_dialog(char *filterpattern, char *filtertext, const char *weekday(int wday); const char *monthname(int mon); +#define UTF8_DEGREE "\xc2\xb0" +#define UTF8_SUBSCRIPT_2 "\xe2\x82\x82" + #endif /* DIVE_H */ diff --git a/divelist.c b/divelist.c index 641e3c8..88825dd 100644 --- a/divelist.c +++ b/divelist.c @@ -364,10 +364,10 @@ void update_dive_list_units(void) switch (output_units.temperature) { case CELSIUS: - unit = "degC"; + unit = UTF8_DEGREE "C"; break; case FAHRENHEIT: - unit = "degF"; + unit = UTF8_DEGREE "F"; break; case KELVIN: unit = "Kelvin"; @@ -473,9 +473,9 @@ GtkWidget *dive_list_create(void) dive_list.depth = divelist_column(&dive_list, DIVE_DEPTH, "max/ft", depth_data_func, 1, 0); dive_list.duration = divelist_column(&dive_list, DIVE_DURATION, "min", duration_data_func, 1, 0); dive_list.location = divelist_column(&dive_list, DIVE_LOCATION, "Location", NULL, 0, 1); - dive_list.temperature = divelist_column(&dive_list, DIVE_TEMPERATURE, "degF", temperature_data_func, 1, 0); + dive_list.temperature = divelist_column(&dive_list, DIVE_TEMPERATURE, UTF8_DEGREE "F", temperature_data_func, 1, 0); dive_list.cylinder = divelist_column(&dive_list, DIVE_CYLINDER, "Cyl", NULL, 0, 0); - dive_list.nitrox = divelist_column(&dive_list, DIVE_NITROX, "O2%", nitrox_data_func, 1, 0); + dive_list.nitrox = divelist_column(&dive_list, DIVE_NITROX, "O" UTF8_SUBSCRIPT_2 "%", nitrox_data_func, 1, 0); dive_list.sac = divelist_column(&dive_list, DIVE_SAC, "SAC", sac_data_func, 1, 0); fill_dive_list(); diff --git a/profile.c b/profile.c index 7185822..5318393 100644 --- a/profile.c +++ b/profile.c @@ -65,12 +65,15 @@ static void line_to(struct graphics_context *gc, double x, double y) static void set_source_rgba(struct graphics_context *gc, double r, double g, double b, double a) { + /* + * For printers, we still honor 'a', but ignore colors + * for now. Black is white and white is black + */ if (gc->printer) { - /* Black is white and white is black */ double sum = r+g+b; - if (sum > 2) + if (sum > 0.8) r = g = b = 0; - else if (sum < 1) + else r = g = b = 1; } cairo_set_source_rgba(gc->cr, r, g, b, a); @@ -212,7 +215,7 @@ static void plot_smoothed_profile(struct graphics_context *gc, struct plot_info int i; struct plot_data *entry = pi->entry; - cairo_set_source_rgba(gc->cr, 1, 0.2, 0.2, 0.20); + set_source_rgba(gc, 1, 0.2, 0.2, 0.20); move_to(gc, entry->sec, entry->smoothed); for (i = 1; i < pi->nr; i++) { entry++; @@ -227,7 +230,7 @@ static void plot_minmax_profile_minute(struct graphics_context *gc, struct plot_ int i; struct plot_data *entry = pi->entry; - cairo_set_source_rgba(gc->cr, 1, 0.2, 1, a); + set_source_rgba(gc, 1, 0.2, 1, a); move_to(gc, entry->sec, entry->min[index]->val); for (i = 1; i < pi->nr; i++) { entry++; @@ -372,12 +375,12 @@ static void plot_single_temp_text(struct graphics_context *gc, int sec, int mkel if (output_units.temperature == FAHRENHEIT) { deg = to_F(temperature); - unit = "F"; + unit = UTF8_DEGREE "F"; } else { deg = to_C(temperature); - unit = "C"; + unit = UTF8_DEGREE "C"; } - plot_text(gc, &tro, sec, temperature.mkelvin, "%d %s", deg, unit); + plot_text(gc, &tro, sec, temperature.mkelvin, "%d%s", deg, unit); } static void plot_temperature_text(struct graphics_context *gc, struct plot_info *pi) @@ -453,7 +456,7 @@ static void plot_cylinder_pressure(struct graphics_context *gc, struct plot_info if (!get_cylinder_pressure_range(gc, pi)) return; - cairo_set_source_rgba(gc->cr, 0.2, 1.0, 0.2, 0.80); + set_source_rgba(gc, 0.2, 1.0, 0.2, 0.80); move_to(gc, 0, pi->maxpressure); for (i = 1; i < pi->nr; i++) { -- 2.43.0