]> Pileus Git - lackey/blob - src/view/week.c
Add day and week view
[lackey] / src / view / week.c
1 #include <string.h>
2 #include <ncurses.h>
3
4 #include "main.h"
5 #include "util.h"
6
7 /* Static data */
8 static WINDOW *win;
9
10 /* Week init */
11 void week_init(WINDOW *_win)
12 {
13         win = _win;
14 }
15
16 /* Week draw */
17 void week_draw(void)
18 {
19         int x = 6;
20         int y = 3;
21         const float hstep = (float)(COLS-x)/5.0;
22
23         /* Get start of week */
24         year_t  year  = YEAR;
25         month_t month = MONTH;
26         day_t   day   = DAY;
27         int shift = day_of_week(year, month, day);
28         add_days(&year, &month, &day, -shift+MON);
29
30         /* Print Header */
31         mvwprintw(win, 1, 0, "%s", month_to_str(MONTH));
32         for (int d = 0; d < 5; d++) {
33                 // FIXME..
34                 const char *str = hstep >= 10 ? day_to_string(d+MON) : day_to_str(d+MON);
35                 mvwprintw(win, 0, x+ROUND(d*hstep), "%02d/%02d", month, day);
36                 mvwprintw(win, 1, x+ROUND(d*hstep), "%s", str);
37                 add_days(&year, &month, &day, 1);
38         }
39
40         /* Print times */
41         int start = 8;
42         for (int h = 0; h < (LINES-6)/4+1; h++)
43                 mvwprintw(win, 3+h*4, 0,"%02d:%02d", (start+h)%12, 0);
44
45         /* Print lines */
46         mvwhline(win, y-1, 0, ACS_HLINE, COLS);
47         for (int d = 0; d < 5; d++)
48                 mvwvline(win, y, x+ROUND(d*hstep)-1, ACS_VLINE, LINES-y-2);
49 }
50
51 /* Week run */
52 int week_run(int key, mmask_t btn, int row, int col)
53 {
54         return 0;
55 }