]> Pileus Git - lackey/blobdiff - views/year.c
Convert YEAR/MONTH/DAY to Selection struct
[lackey] / views / year.c
index 56bc8436be1a6bffc89564d2b9c150ea888a9016..ddcf5e4618cd0bbd287db0b25855bb39c5941d8d 100644 (file)
@@ -34,8 +34,8 @@ static void print_month(month_t month, int y, int x)
 {
        event_t    *event = EVENTS;
        const char *name  = month_to_string(month);
-       const int   start = start_of_month(YEAR, month);
-       const char  days  = days_in_month(YEAR, month);
+       const int   start = start_of_month(SEL.year, month);
+       const char  days  = days_in_month(SEL.year, month);
        mvwprintw(win, y, x+MW/2-strlen(name)/2, "%s", name);
        wmove(win, y+1, x);
        for (int d = 0; d < 7; d++)
@@ -45,13 +45,13 @@ static void print_month(month_t month, int y, int x)
                int col = (start + d) % 7;
 
                int busy = 0;
-               while (event && before(&event->start, YEAR, month, d, 24, 0)) {
-                       if (!before(&event->start, YEAR, month, d, 0, 0))
+               while (event && before(&event->start, SEL.year, month, d, 24, 0)) {
+                       if (!before(&event->start, SEL.year, month, d, 0, 0))
                                busy = 1;
                        event = event->next;
                }
 
-               int today = month == MONTH && d == DAY;
+               int today = month == SEL.month && d == SEL.day;
 
                int attr  = (busy  ? A_BOLD|A_UNDERLINE : A_DIM)
                          | (today ? A_REVERSE          : 0    );
@@ -82,11 +82,11 @@ void year_draw(void)
        int h[4] = {};
 
        /* Load cal data */
-       cal_load(YEAR, 0, 0, 366);
+       cal_load(SEL.year, 0, 0, 366);
 
        /* Determine heights */
        for (int m = 0; m < 12; m++) {
-               int weeks = weeks_in_month(YEAR, m);
+               int weeks = weeks_in_month(SEL.year, m);
                h[m/3] = MAX(h[m/3], weeks+2);
        }
        int sum = h[0]+h[1]+h[2]+h[3];
@@ -94,7 +94,7 @@ void year_draw(void)
        /* Print Header */
        if (COMPACT) wattron(win, A_REVERSE | A_BOLD);
        if (COMPACT) mvwhline(win, y, 0, A_REVERSE | A_BOLD, COLS);
-       mvwprintw(win, y++, COLS/2-2, "%d", YEAR);
+       mvwprintw(win, y++, COLS/2-2, "%d", SEL.year);
        if (COMPACT) wattroff(win, A_REVERSE | A_BOLD);
 
        /* Print Months */
@@ -124,18 +124,18 @@ void year_draw(void)
 /* Year run */
 int year_run(int key, mmask_t btn, int row, int col)
 {
-       day_t d = DAY;
-       month_t m = MONTH;
-       year_t y = YEAR;
-       wday_t day = day_of_week(YEAR, MONTH, DAY);
+       day_t d = SEL.day;
+       month_t m = SEL.month;
+       year_t y = SEL.year;
+       wday_t day = day_of_week(SEL.year, SEL.month, SEL.day);
        int week = (start_of_month(y, m) + d) / 7;
        int dir = 0;
 
        /* Step years */
        if (key == 'i')
-               YEAR--;
+               SEL.year--;
        if (key == 'o')
-               YEAR++;
+               SEL.year++;
 
        /* Get direction */
        if (key == 'h' || key == 'k')
@@ -148,9 +148,9 @@ int year_run(int key, mmask_t btn, int row, int col)
                for (int i = 0; i < 90/7; i++) {
                        add_days(&y, &m, &d, dir*7);
                        if (day_of_week(y, m, d) == day &&
-                           y == YEAR && m%3 == MONTH%3) {
-                               MONTH = m;
-                               DAY = d;
+                           y == SEL.year && m%3 == SEL.month%3) {
+                               SEL.month = m;
+                               SEL.day = d;
                                break;
                        }
                }
@@ -161,19 +161,19 @@ int year_run(int key, mmask_t btn, int row, int col)
                for (int i = 0; i < 90; i++) {
                        add_days(&y, &m, &d, dir);
                        if ((start_of_month(y, m) + d) / 7 == week &&
-                           y == YEAR && m/3 == MONTH/3) {
-                               MONTH = m;
-                               DAY = d;
+                           y == SEL.year && m/3 == SEL.month/3) {
+                               SEL.month = m;
+                               SEL.day = d;
                                break;
                        }
                }
        }
 
        /* Refresh */
-       if (dir || y != YEAR) {
+       if (dir || y != SEL.year) {
                werase(win);
                year_draw();
                wrefresh(win);
        }
-       return dir || y != YEAR;
+       return dir || y != SEL.year;
 }