add meridiem for 12h format

reverse-branch
martin 18 years ago
parent 227c4f1ff8
commit f8f44a555c
  1. 140
      clock.c

@ -57,14 +57,14 @@ static const long number[10][LGNUM] = {
{1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1} /* 9 */ {1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1} /* 9 */
}; };
char *meridiem;
int SCHANGE = 19;
int hour[2]; int hour[2];
int min[2]; int min[2];
int sec[2]; int sec[2];
int defx=1; int defx=1;
int defy=1; int defy=1;
int bg = COLOR_BLACK; int bg = COLOR_BLACK;
int SCHANGE = 19;
bool enable_sec = 0; bool enable_sec = 0;
bool enable_tw = 0; bool enable_tw = 0;
struct tm *tm; struct tm *tm;
@ -83,7 +83,7 @@ start(void) {
refresh(); refresh();
if (use_default_colors() == OK); if (use_default_colors() == OK);
bg = -1; bg = -1;
init_pair(1,COLOR_GREEN, COLOR_GREEN); init_pair(1,COLOR_BLACK, COLOR_GREEN);
init_pair(2, bg, bg); init_pair(2, bg, bg);
curs_set(0); curs_set(0);
} }
@ -130,42 +130,46 @@ void
arrange_clock(int h1, int h2, arrange_clock(int h1, int h2,
int m1, int m2, int m1, int m2,
int s1, int s2) { int s1, int s2) {
int i; int i;
for(i = defy + DEPTHB; i < defy + YLENGTH - SCHANGE; ++i){ for(i = defy + DEPTHB; i < defy + YLENGTH - SCHANGE; ++i){
mvaddch(defx + DEPTHB, i, ACS_HLINE); mvaddch(defx + DEPTHB, i, ACS_HLINE);
mvaddch(defx + XLENGTH, i,ACS_HLINE); mvaddch(defx + XLENGTH, i,ACS_HLINE);
} }
for (i = defx + DEPTHB; i < defx + XLENGTH; ++i){ for (i = defx + DEPTHB; i < defx + XLENGTH; ++i){
mvaddch(i, defy + DEPTHB, ACS_VLINE); mvaddch(i, defy + DEPTHB, ACS_VLINE);
mvaddch(i, defy + YLENGTH - SCHANGE, ACS_VLINE); mvaddch(i, defy + YLENGTH - SCHANGE, ACS_VLINE);
} }
mvaddch(defx + DEPTHB, defy + DEPTHB, ACS_ULCORNER); mvaddch(defx + DEPTHB, defy + DEPTHB, ACS_ULCORNER);
mvaddch(defx + XLENGTH, defy + DEPTHB, ACS_LLCORNER); mvaddch(defx + XLENGTH, defy + DEPTHB, ACS_LLCORNER);
mvaddch(defx + DEPTHB, defy + YLENGTH - SCHANGE, ACS_URCORNER); mvaddch(defx + DEPTHB, defy + YLENGTH - SCHANGE, ACS_URCORNER);
mvaddch(defx + XLENGTH, defy + YLENGTH - SCHANGE, ACS_LRCORNER); mvaddch(defx + XLENGTH, defy + YLENGTH - SCHANGE, ACS_LRCORNER);
print_number(h1, defx, defy); print_number(h1, defx, defy);
print_number(h2, defx, defy + 7); print_number(h2, defx, defy + 7);
attron(COLOR_PAIR(1)); attron(COLOR_PAIR(1));
mvaddstr(defx + 1, defy + 15," ");
mvaddstr(defx + 3, defy + 15," "); move(defx + 1, defy + 15);
attroff(COLOR_PAIR(1)); printw("%s",meridiem);
mvaddstr(defx + 3, defy + 15," ");
print_number(m1, defx, defy + 19);
print_number(m2, defx, defy + 26); attroff(COLOR_PAIR(1));
if(enable_sec){ print_number(m1, defx, defy + 19);
attron(COLOR_PAIR(1)); print_number(m2, defx, defy + 26);
mvaddstr(defx + 1, defy + 34," ");
mvaddstr(defx + 3, defy + 34," "); if(enable_sec){
attroff(COLOR_PAIR(1));
attron(COLOR_PAIR(1));
mvaddstr(defx + 1, defy + 34," ");
mvaddstr(defx + 3, defy + 34," ");
attroff(COLOR_PAIR(1));
print_number(s1, defx, defy + 38); print_number(s1, defx, defy + 38);
print_number(s2, defx, defy + 45); print_number(s2, defx, defy + 45);
} }
} }
@ -176,44 +180,43 @@ arrange_clock(int h1, int h2,
void void
check_key(void) { check_key(void) {
int c; int c;
c = getch(); c = getch();
switch(c) {
switch(c) { case KEY_UP:
case KEY_UP: case 'k':
case 'k': case 'K':
case 'K': if(defx > 1) {
if(defx > 1) { --defx;
--defx;
clear();
}
break;
case KEY_DOWN:
case 'j':
case 'J':
++defx;
clear(); clear();
break; }
case KEY_LEFT: break;
case 'h': case KEY_DOWN:
case 'H': case 'j':
if(defy > 1) { case 'J':
--defy; ++defx;
clear(); clear();
} break;
break; case KEY_LEFT:
case KEY_RIGHT: case 'h':
case 'l': case 'H':
case 'L': if(defy > 1) {
++defy; --defy;
clear(); clear();
break; }
break;
case KEY_RIGHT:
case 'l':
case 'L':
++defy;
clear();
break;
case 'q': case 'q':
case 'Q': case 'Q':
endwin(); endwin();
exit(EXIT_SUCCESS); exit(EXIT_SUCCESS);
break; break;
} }
} }
/* ********************* */ /* ********************* */
@ -222,12 +225,19 @@ check_key(void) {
void void
get_time(void) { get_time(void) {
int i;
int ihour; int ihour;
tm = localtime(&lt); tm = localtime(&lt);
lt = time(NULL); lt = time(NULL);
ihour = tm->tm_hour; ihour = tm->tm_hour;
if (enable_tw && ihour > 12) {
meridiem = "PM";
} else if (enable_tw && ihour < 12) {
meridiem = "AM";
} else {
meridiem = " ";
}
ihour = (enable_tw && ihour > 12) ? ihour - 12 : ihour; ihour = (enable_tw && ihour > 12) ? ihour - 12 : ihour;
ihour = (enable_tw && !ihour) ? 12 : ihour; ihour = (enable_tw && !ihour) ? 12 : ihour;

Loading…
Cancel
Save