Added colon; Added drawTime and draw

This commit is contained in:
2017-11-27 11:26:27 +00:00
parent e0aed95b7b
commit 64d46c961b
4 changed files with 51 additions and 7 deletions

BIN
nclock

Binary file not shown.

View File

@@ -5,6 +5,7 @@
#include "nclock.h" #include "nclock.h"
#include "numbers.h" #include "numbers.h"
#include <time.h> #include <time.h>
#include <unistd.h> //sleep
int main(int argc, char **argv) { int main(int argc, char **argv) {
/* enable ncurses standard screen */ /* enable ncurses standard screen */
@@ -16,10 +17,8 @@ int main(int argc, char **argv) {
initState(&s); initState(&s);
//mvprintw(s.centery, s.centerx, number[5][0]); //mvprintw(s.centery, s.centerx, number[5][0]);
//mvprintw(20, 30, number[0][3]); //mvprintw(20, 30, number[0][3]);
drawNumber(10,10,4); draw(&s);
getch(); getch();
drawNumber(10,16,2);
getch();
} }
void quitProgram(void) { void quitProgram(void) {
@@ -33,12 +32,52 @@ void initState(state *s) {
} }
void drawNumber(int starty, int startx, int num) { 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; int i;
for (i = 0; i < 5; 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);
}
}

View File

@@ -1,3 +1,6 @@
#define NUMBERPAIR 11 //one numberpair has 11 chars (direction x)
#define COLONSPACE 5
typedef struct { typedef struct {
int centerx; int centerx;
int centery; int centery;
@@ -12,4 +15,6 @@ typedef struct {
void quitProgram(void); void quitProgram(void);
void initState(state *s); void initState(state *s);
void drawNumber(int starty, int startx, int num); 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);

View File

@@ -73,7 +73,7 @@ const char number[10][5][6] = \
}; };
const char *colon[5] = \ const char colon[5][6] = \
{\ {\
" ",\ " ",\
" # ",\ " # ",\