summaryrefslogtreecommitdiff
path: root/aclock.c
diff options
context:
space:
mode:
Diffstat (limited to 'aclock.c')
-rw-r--r--aclock.c39
1 files changed, 29 insertions, 10 deletions
diff --git a/aclock.c b/aclock.c
index 9ac7051..03309e3 100644
--- a/aclock.c
+++ b/aclock.c
@@ -15,6 +15,7 @@
#include <math.h>
#include <unistd.h>
#include <signal.h>
+#include <string.h>
#include <time.h>
int die = 0;
@@ -22,6 +23,7 @@ int redraw = 0;
enum {RED = 1, CYAN, BLUE};
char *strtime(char *, size_t, struct tm *);
+void sevenseg(char [3][80], size_t, char *);
void
catch(int sig)
@@ -89,7 +91,8 @@ const char INFO[] = "Copyright (c) 2002 by Antek Sawicki <tenox@tenox.tc>\n"
int
main(void)
{
- char digital_time[32], stime[80];
+ char digital_time[32], stime[80], dtime[3][80];
+ int i;
int FontHW = 2;
int sXmax, sYmax, smax, hand_max, sXcen, sYcen;
time_t t;
@@ -98,7 +101,6 @@ main(void)
struct timeval tv;
int hascolors;
-
signal(SIGWINCH, catch);
signal(SIGALRM, catch);
signal(SIGINT, catch);
@@ -135,29 +137,46 @@ main(void)
hand_max = (smax / 2) - 1;
sXcen = sXmax / 2;
- sYcen = sYmax / 2;
+ sYcen = sYmax / 2 - 1;
erase();
draw_circle(hand_max, sYcen, sXcen, FontHW);
+ attron(COLOR_PAIR(CYAN));
+ strftime(digital_time, sizeof(digital_time), "%d-%m-%y", ltime);
+#if 1
+ sevenseg(dtime, sizeof(dtime[0]), digital_time);
+ for (i = 0; i < 3; i++)
+ mvprintw(i + sYcen - sYmax / 4 - 1,
+ sXcen - strlen(dtime[i]) / 2, dtime[i]);
+#else
+ mvprintw(sYmax / 4, sXcen - strlen(digital_time) / 2, digital_time);
+#endif
+ strftime(digital_time, sizeof(digital_time), "%H:%M:%S", ltime);
+#if 1
+ sevenseg(dtime, sizeof(dtime[0]), digital_time);
+ for (i = 0; i < 3; i++)
+ mvprintw(i + sYcen + sYmax / 4 - 1,
+ sXcen - strlen(dtime[i]) / 2, dtime[i]);
+#else
+ mvprintw(3 * sYmax / 4, sXcen - strlen(digital_time) / 2, digital_time);
+#endif
+ attroff(COLOR_PAIR(CYAN));
+ strtime(stime, sizeof(stime), ltime);
+
attron(COLOR_PAIR(RED));
draw_hand((ltime->tm_hour * 5) + (ltime->tm_min / 10),
2 * hand_max / 3, '#', sXcen, sYcen, FontHW);
attroff(COLOR_PAIR(RED));
+
attron(COLOR_PAIR(CYAN));
draw_hand(ltime->tm_min, hand_max - 2, '*', sXcen, sYcen, FontHW);
attroff(COLOR_PAIR(CYAN));
+
attron(COLOR_PAIR(BLUE));
draw_hand(ltime->tm_sec, hand_max - 1, '.', sXcen, sYcen, FontHW);
attroff(COLOR_PAIR(BLUE));
- attron(COLOR_PAIR(CYAN));
- strftime(digital_time, sizeof(digital_time), "%d-%b-%y", ltime);
- mvprintw(sYmax / 4, sXcen - strlen(digital_time) / 2, digital_time);
- strftime(digital_time, sizeof(digital_time), "%H:%M:%S", ltime);
- mvprintw(3 * sYmax / 4, sXcen - strlen(digital_time) / 2, digital_time);
- attroff(COLOR_PAIR(CYAN));
- strtime(stime, sizeof(stime), ltime);
attron(COLOR_PAIR(BLUE));
mvprintw(sYmax - 1, sXcen - strlen(stime) / 2, stime);
attroff(COLOR_PAIR(BLUE));