aboutsummaryrefslogtreecommitdiffstats
path: root/render.c
diff options
context:
space:
mode:
Diffstat (limited to 'render.c')
-rw-r--r--render.c40
1 files changed, 26 insertions, 14 deletions
diff --git a/render.c b/render.c
index af40688..9558d9e 100644
--- a/render.c
+++ b/render.c
@@ -1,3 +1,4 @@
+#include <stddef.h>
#include <cairo.h>
#include "render.h"
@@ -5,7 +6,8 @@
static int pad = 15;
static void render_color_bar(cairo_t *cr, int x, int y, int w, int h,
- double r, double g, double b, const char *name)
+ double r, double g, double b,
+ const char *l1, const char *l2)
{
cairo_font_extents_t ext;
cairo_pattern_t *gr;
@@ -18,17 +20,27 @@ static void render_color_bar(cairo_t *cr, int x, int y, int w, int h,
cairo_fill (cr);
cairo_pattern_destroy(gr);
- cairo_set_source_rgb(cr, r, g, b);
cairo_select_font_face(cr, "mono",
CAIRO_FONT_SLANT_NORMAL,
CAIRO_FONT_WEIGHT_NORMAL);
- cairo_set_font_size(cr, h - 2*pad);
- cairo_font_extents (cr, &ext);
- cairo_move_to(cr, x + pad, y + pad + ext.ascent);
- cairo_show_text(cr, name);
+ if (l2) {
+ cairo_set_source_rgb(cr, 1, 1, 1);
+ cairo_set_font_size(cr, h/2 - pad);
+ cairo_font_extents (cr, &ext);
+ cairo_move_to(cr, x + pad, y + pad + ext.ascent);
+ cairo_show_text(cr, l1);
+ cairo_move_to(cr, x + pad, y + pad + ext.ascent + ext.height);
+ cairo_show_text(cr, l2);
+ } else {
+ cairo_set_source_rgb(cr, r, g, b);
+ cairo_set_font_size(cr, h - 2*pad);
+ cairo_font_extents (cr, &ext);
+ cairo_move_to(cr, x + pad, y + pad + ext.ascent);
+ cairo_show_text(cr, l1);
+ }
}
-void render_test(cairo_t *cr, int width, int height, const char *info)
+void render_test(cairo_t *cr, int width, int height, const char *l1, const char *l2)
{
int bar = 120;
@@ -46,13 +58,13 @@ void render_test(cairo_t *cr, int width, int height, const char *info)
cairo_stroke (cr);
render_color_bar(cr, pad, bar * 0 + pad, width - 2*pad, bar,
- 0.8, 0.8, 0.8, info);
- render_color_bar(cr, pad, bar * 1 + pad, width - 2*pad, bar, 1, 0, 0, "red");
- render_color_bar(cr, pad, bar * 2 + pad, width - 2*pad, bar, 1, 1, 0, "yellow");
- render_color_bar(cr, pad, bar * 3 + pad, width - 2*pad, bar, 0, 1, 0, "green");
- render_color_bar(cr, pad, bar * 4 + pad, width - 2*pad, bar, 0, 1, 1, "cyan");
- render_color_bar(cr, pad, bar * 5 + pad, width - 2*pad, bar, 0, 0, 1, "blue");
- render_color_bar(cr, pad, bar * 6 + pad, width - 2*pad, bar, 1, 0, 1, "magenta");
+ 0.6, 0.6, 0.6, l1, l2);
+ render_color_bar(cr, pad, bar * 1 + pad, width - 2*pad, bar, 1, 0, 0, "red", NULL);
+ render_color_bar(cr, pad, bar * 2 + pad, width - 2*pad, bar, 1, 1, 0, "yellow", NULL);
+ render_color_bar(cr, pad, bar * 3 + pad, width - 2*pad, bar, 0, 1, 0, "green", NULL);
+ render_color_bar(cr, pad, bar * 4 + pad, width - 2*pad, bar, 0, 1, 1, "cyan", NULL);
+ render_color_bar(cr, pad, bar * 5 + pad, width - 2*pad, bar, 0, 0, 1, "blue", NULL);
+ render_color_bar(cr, pad, bar * 6 + pad, width - 2*pad, bar, 1, 0, 1, "magenta", NULL);
}