From bb86fd2d3df005f5d5d7cf1d581788e90a81548d Mon Sep 17 00:00:00 2001 From: structix Date: Sat, 2 Dec 2017 16:48:24 +0100 Subject: [PATCH] Added color mode --- nclock.c | 31 +++++++++++++++++++++++++++++-- nclock.h | 2 ++ 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/nclock.c b/nclock.c index a393cf7..7eea0ad 100644 --- a/nclock.c +++ b/nclock.c @@ -28,6 +28,21 @@ int main(int argc, char **argv) { sa.sa_handler = handle_winch; sigaction(SIGWINCH, &sa, NULL); + + start_color(); //Enables multi color mode + + /* Initialize custom color pairs */ + /* Color pair index must be > 0 */ + /* init_pair(index, foreground color, background color); */ + /* Color pairs are called by attron(COLOR_PAIR(1)); */ + init_pair(1, COLOR_CYAN, COLOR_BLACK); + init_pair(2, COLOR_GREEN, COLOR_BLACK); + init_pair(3, COLOR_RED, COLOR_BLACK); + init_pair(4, COLOR_YELLOW, COLOR_BLACK); + + + + //Define the state struct state s = {0}; @@ -47,18 +62,22 @@ void initState(state *s) { } void drawNumber(int starty, int startx, int num) { + static int currentColor = 0; + if (++currentColor > 4) { + currentColor = 1; + } int i, j, numarr[2]; for (i = 0; i < 2; i++) { numarr[i] = num % 10; num /= 10; } - + enColor(currentColor); for (j = 0; j < 2; j++) { for (i = 0; i < 5; i++) { mvprintw(starty + i, startx + (6 * j), number[numarr[1 - j]][i]); } } - + disColor(currentColor); } void drawColon(int starty, int startx) { @@ -96,3 +115,11 @@ void draw(state *s) { sleep(1); } } + +void enColor(int color) { + attron(COLOR_PAIR(color)); +} + +void disColor(int color) { + attroff(COLOR_PAIR(color)); +} diff --git a/nclock.h b/nclock.h index c36efe8..1262770 100644 --- a/nclock.h +++ b/nclock.h @@ -18,3 +18,5 @@ void drawNumber(int starty, int startx, int num); void drawTime(state *s, int hour, int min, int sec); void drawColon(int starty, int startx); void draw(state *s); +void enColor(int color); +void disColor(int color);