From 64d46c961b6c92a4821e97c288b05d876cee53cc Mon Sep 17 00:00:00 2001 From: structix Date: Mon, 27 Nov 2017 11:26:27 +0000 Subject: [PATCH] Added colon; Added drawTime and draw --- nclock | Bin 12896 -> 13168 bytes nclock.c | 49 ++++++++++++++++++++++++++++++++++++++++++++----- nclock.h | 7 ++++++- numbers.h | 2 +- 4 files changed, 51 insertions(+), 7 deletions(-) diff --git a/nclock b/nclock index 53ac569c1c1f8060af6f646cb25a36dd3d3c82f9..e854e74f5da67b8cd48f4d39e343fccada21c440 100755 GIT binary patch literal 13168 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 diff --git a/nclock.c b/nclock.c index f915e64..3bf300e 100644 --- a/nclock.c +++ b/nclock.c @@ -5,6 +5,7 @@ #include "nclock.h" #include "numbers.h" #include +#include //sleep int main(int argc, char **argv) { /* enable ncurses standard screen */ @@ -16,10 +17,8 @@ int main(int argc, char **argv) { initState(&s); //mvprintw(s.centery, s.centerx, number[5][0]); //mvprintw(20, 30, number[0][3]); - drawNumber(10,10,4); + draw(&s); getch(); - drawNumber(10,16,2); - getch(); } void quitProgram(void) { @@ -33,12 +32,52 @@ void initState(state *s) { } void drawNumber(int starty, int startx, int num) { + int i, j, numarr[2]; + for (i = 0; i < 2; i++) { + numarr[i] = num % 10; + num /= 10; + } + + for (j = 0; j < 2; j++) { + for (i = 0; i < 5; i++) { + mvprintw(starty + i, startx + (6 * j), number[numarr[1 - j]][i]); + } + } + +} + +void drawColon(int starty, int startx) { int i; for (i = 0; i < 5; i++) { - mvprintw(starty + i, startx, number[num][i]); + mvprintw(starty + i, startx, colon[i]); } } +void drawTime(state *s, int hour, int min, int sec) { + //int countx = 0, i; + int newcenty = s->centery - 3; //start above the center + /* center X: */ + /* (3 Nuberpairs + 2 colons) / 2 */ + int newcentx = s->centerx - ((3 * NUMBERPAIR + 2 * COLONSPACE) / 2); + /* hour */ + drawNumber(newcenty, newcentx, hour); + drawColon(newcenty, newcentx + NUMBERPAIR); + /* minute */ + drawNumber(newcenty, newcentx + NUMBERPAIR + COLONSPACE, min); + drawColon(newcenty, newcentx + NUMBERPAIR * 2 + COLONSPACE); + drawNumber(newcenty, newcentx + NUMBERPAIR * 2 + COLONSPACE * 2, sec); + +} - +void draw(state *s) { + time_t timer; + struct tm *curTime; + while (1) { + time(&timer); + curTime = localtime(&timer); + drawTime(s, curTime->tm_hour, curTime->tm_min, curTime->tm_sec); + refresh(); + sleep(1); + } +} diff --git a/nclock.h b/nclock.h index d145150..c36efe8 100644 --- a/nclock.h +++ b/nclock.h @@ -1,3 +1,6 @@ +#define NUMBERPAIR 11 //one numberpair has 11 chars (direction x) +#define COLONSPACE 5 + typedef struct { int centerx; int centery; @@ -12,4 +15,6 @@ typedef struct { void quitProgram(void); void initState(state *s); void drawNumber(int starty, int startx, int num); -void drawTime(state *s); +void drawTime(state *s, int hour, int min, int sec); +void drawColon(int starty, int startx); +void draw(state *s); diff --git a/numbers.h b/numbers.h index 1bd7447..faa44c2 100644 --- a/numbers.h +++ b/numbers.h @@ -73,7 +73,7 @@ const char number[10][5][6] = \ }; -const char *colon[5] = \ +const char colon[5][6] = \ {\ " ",\ " # ",\