aboutsummaryrefslogtreecommitdiffstats
path: root/render.c
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2017-04-12 13:09:44 +0200
committerGerd Hoffmann <kraxel@redhat.com>2017-04-12 13:09:44 +0200
commit4e817452368c0ca9edb0784fef8d7155c634652f (patch)
treefbce6622180ceef6d0720612a849c904ecd270f3 /render.c
parent4b29807b655e59715d0ca3256484271df63a90f9 (diff)
downloaddrminfo-4e817452368c0ca9edb0784fef8d7155c634652f.tar.gz
info rendering
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);
}