7 #define MAX(a,b) ((a) > (b) ? (a) : (b))
14 const static int YEAR = 2012;
15 const static int MONTH = SEP;
16 const static int DAY = 29;
18 /* Helper functions */
19 static void print_month(month_t month, int y, int x)
21 const char *name = month_to_string(month);
22 const int start = start_of_month(YEAR, month);
23 const char days = days_in_month(YEAR, month);
24 mvwprintw(win, y, x+MW/2-strlen(name)/2, "%s", name);
26 for (int d = 0; d < 7; d++)
27 wprintw(win, "%-3s", day_to_st(d));
28 for (int d = 0; d < days; d++) {
29 int row = (start + d) / 7;
30 int col = (start + d) % 7;
31 mvwprintw(win, y+2+row, x+col*3, "%d", d+1);
36 void year_init(WINDOW *_win)
49 /* Determine heights */
50 for (int m = 0; m < 12; m++) {
51 int weeks = weeks_in_month(YEAR, m);
52 h[m/3] = MAX(h[m/3], weeks+2);
54 int sum = h[0]+h[1]+h[2]+h[3];
57 mvwprintw(win, y++, COLS/2-2, "%d", YEAR);
60 for (int m = 0; m < 12; m++) {
72 mvwvline(win, y, x+(MW+3)*1-2, ACS_VLINE, sum+3);
73 mvwvline(win, y, x+(MW+3)*2-2, ACS_VLINE, sum+3);
74 for (int i = 0; i < 3; i++) {
76 mvwhline(win, y, x, ACS_HLINE, w);
77 mvwaddch(win, y, x+(MW+3)*1-2, ACS_PLUS);
78 mvwaddch(win, y, x+(MW+3)*2-2, ACS_PLUS);
84 int year_run(int key, mmask_t btn, int row, int col)