Added colon; Added drawTime and draw
This commit is contained in:
49
nclock.c
49
nclock.c
@@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
7
nclock.h
7
nclock.h
@@ -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);
|
||||||
|
Reference in New Issue
Block a user