From aba6487d1ebb836261523ad341c1c5c41268076e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roland=20Holl=C3=B3s?= Date: Sun, 22 Nov 2020 15:48:36 +0100 Subject: [PATCH] some config possibilities and making color selection more effective --- config.h | 39 +++++++++++++++++++++++++++++++++++++++ main.c | 28 +++------------------------- 2 files changed, 42 insertions(+), 25 deletions(-) create mode 100644 config.h diff --git a/config.h b/config.h new file mode 100644 index 0000000..98d46a3 --- /dev/null +++ b/config.h @@ -0,0 +1,39 @@ + +typedef struct _color { + float red; + float green; + float blue; +} color; + + +color colors[4]={ + //base + { + .red = 0.5, + .green = 0.5, + .blue = 0.5, + }, + + //minute + { + .red = 1., + .green = 0., + .blue = 0. + }, + + //hour + { + .red = 0., + .green = 0., + .blue = 1 + }, + + //both + { + .red = 0., + .green = 1., + .blue = 0. + + } + +}; diff --git a/main.c b/main.c index 7b29ddf..7beb787 100644 --- a/main.c +++ b/main.c @@ -7,6 +7,7 @@ #include #include #include +#include "config.h" typedef struct _rectangle { int pos_x; @@ -83,32 +84,9 @@ void getFibbTime(myTime t, int* res){ } void drawRectangle(cairo_t* cr, rectangle R){ - int color[3]; - switch(R.color){ - case 0: - color[0] = 1; - color[1] = 1; - color[2] = 1; - break; - case 1: - color[0] = 1; - color[1] = 0; - color[2] = 0; - break; - case 2: - color[0] = 0; - color[1] = 0; - color[2] = 1; - break; - case 3: - color[0] = 0; - color[1] = 1; - color[2] = 0; - break; - } - + color rectColor = colors[R.color]; // colors is defined in config.h cairo_rectangle(cr, R.pos_x, R.pos_y, R.width, R.height); /* set rectangle */ - cairo_set_source_rgb(cr, color[0], color[1], color[2]); /* set fill color */ + cairo_set_source_rgb(cr, rectColor.red, rectColor.green, rectColor.blue); /* set fill color */ cairo_fill(cr); /* fill rectangle */ }