From 20efe787642b6b323dc4a85cd9a59a98bd9d8c9d Mon Sep 17 00:00:00 2001 From: XANTRONIX Development Date: Tue, 16 Jan 2024 15:38:28 -0500 Subject: [PATCH] Make dial legend radii consistent --- include/hexagram/dial.h | 1 - src/dial.c | 9 ++++++--- src/fuel.c | 4 ++-- src/speedo.c | 2 +- src/tacho.c | 2 +- src/thermo.c | 4 ++-- 6 files changed, 12 insertions(+), 10 deletions(-) diff --git a/include/hexagram/dial.h b/include/hexagram/dial.h index b758494..65c5ad7 100644 --- a/include/hexagram/dial.h +++ b/include/hexagram/dial.h @@ -42,7 +42,6 @@ double hexagram_dial_angle(hexagram_dial *dial, double value); int hexagram_dial_draw_legend(hexagram_dial *dial, cairo_t *cr, - double radius, double value, char *text); diff --git a/src/dial.c b/src/dial.c index 5c26157..35a48eb 100644 --- a/src/dial.c +++ b/src/dial.c @@ -8,8 +8,8 @@ #define DIAL_MAIN_BEZEL_WIDTH 16 -#define DIAL_MAIN_MARK_RADIUS_MIN -#define DIAL_MAIN_MARK_RADIUS_MAX +#define DIAL_LEGEND_RADIUS_MAIN 0.675 +#define DIAL_LEGEND_RADIUS_BOTTOM 0.725 static inline double _min(double a, double b) { return a < b? @@ -200,12 +200,15 @@ double hexagram_dial_angle(hexagram_dial *dial, double value) { int hexagram_dial_draw_legend(hexagram_dial *dial, cairo_t *cr, - double radius, double value, char *text) { double angle = hexagram_dial_angle(dial, value); cairo_text_extents_t extents; + double radius = dial->type == HEXAGRAM_DIAL_MAIN? + DIAL_LEGEND_RADIUS_MAIN: + DIAL_LEGEND_RADIUS_BOTTOM; + cairo_text_extents(cr, text, &extents); cairo_move_to(cr, diff --git a/src/fuel.c b/src/fuel.c index 4303f75..e112baf 100644 --- a/src/fuel.c +++ b/src/fuel.c @@ -31,10 +31,10 @@ static int draw_bg(hexagram_gauge *gauge, cairo_t *cr) { cairo_set_font_size(cr, fuel->dial.radius * 0.1); cairo_set_source_rgb(cr, 1, 0, 0); - hexagram_dial_draw_legend(&fuel->dial, cr, 0.725, 0, "0"); + hexagram_dial_draw_legend(&fuel->dial, cr, 0, "0"); cairo_set_source_rgb(cr, 1, 1, 1); - hexagram_dial_draw_legend(&fuel->dial, cr, 0.725, fuel->dial.max_value, "1"); + hexagram_dial_draw_legend(&fuel->dial, cr, fuel->dial.max_value, "1"); cairo_set_line_width(cr, 6.0); diff --git a/src/speedo.c b/src/speedo.c index 4cc6fc4..eadda48 100644 --- a/src/speedo.c +++ b/src/speedo.c @@ -67,7 +67,7 @@ static int draw_bg(hexagram_gauge *gauge, cairo_t *cr) { goto error_snprintf; } - hexagram_dial_draw_legend(&speedo->dial, cr, 0.68, speed, buf); + hexagram_dial_draw_legend(&speedo->dial, cr, speed, buf); } return 0; diff --git a/src/tacho.c b/src/tacho.c index bcf0e39..7a6f584 100644 --- a/src/tacho.c +++ b/src/tacho.c @@ -52,7 +52,7 @@ static int draw_bg(hexagram_gauge *gauge, cairo_t *cr) { snprintf(buf, sizeof(buf), "%d", (int)(rpm / TACHO_INTERVAL_LEGEND)); - hexagram_dial_draw_legend(&tacho->dial, cr, 0.675, rpm, buf); + hexagram_dial_draw_legend(&tacho->dial, cr, rpm, buf); } return 0; diff --git a/src/thermo.c b/src/thermo.c index 3b1c8eb..5a69c2b 100644 --- a/src/thermo.c +++ b/src/thermo.c @@ -31,10 +31,10 @@ static int draw_bg(hexagram_gauge *gauge, cairo_t *cr) { cairo_set_font_size(cr, thermo->dial.radius * 0.1); cairo_set_source_rgb(cr, 1, 1, 1); - hexagram_dial_draw_legend(&thermo->dial, cr, 0.725, thermo->dial.min_value, "C"); + hexagram_dial_draw_legend(&thermo->dial, cr, thermo->dial.min_value, "C"); cairo_set_source_rgb(cr, 1, 0, 0); - hexagram_dial_draw_legend(&thermo->dial, cr, 0.725, thermo->dial.max_value, "H"); + hexagram_dial_draw_legend(&thermo->dial, cr, thermo->dial.max_value, "H"); cairo_set_line_width(cr, 6.0);