16 { "Day", day_init, day_draw, day_run, {KEY_F(1), '1', 'd', } },
17 { "Week", week_init, week_draw, week_run, {KEY_F(2), '2', 'w', } },
18 { "Month", month_init, month_draw, month_run, {KEY_F(3), '3', 'm', } },
19 { "Year", year_init, year_draw, year_run, {KEY_F(4), '4', 'y', } },
20 { "|", NULL, NULL, NULL, { } },
21 { "Todo", todo_init, todo_draw, todo_run, {KEY_F(5), '5', 't', } },
22 { "Notes", notes_init, notes_draw, notes_run, {KEY_F(6), '6', 'n', } },
23 { "|", NULL, NULL, NULL, { } },
24 { "Settings", settings_init, settings_draw, settings_run, {KEY_F(7), '7', 's', } },
25 { "Help", help_init, help_draw, help_run, {KEY_F(8), '8', 'h', '?'} },
28 view_t *active = &views[0];
31 void draw_header(void)
34 attron(COLOR_PAIR(1));
35 for (int i = 0; i < N_ELEMENTS(views); i++) {
36 if (active == &views[i])
38 printw(" %s", views[i].name);
39 if (active == &views[i])
42 attroff(COLOR_PAIR(1));
43 mvhline(1, 0, ACS_HLINE, win_cols);
47 void screen_init(void)
49 init_pair(1, COLOR_GREEN, COLOR_BLACK);
53 void screen_draw(void)
60 int screen_run(int chr)
62 /* Check for view change */
63 for (int i = 0; i < N_ELEMENTS(views); i++) {
64 view_t *view = &views[i];
67 for (int j = 0; j < N_ELEMENTS(view->keys); j++)
68 if (view->keys[j] == chr) {
74 /* Pass key to active view */
75 return active->run(chr);