* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+#define _XOPEN_SOURCE_EXTENDED
+
#include <string.h>
#include <ncurses.h>
const float hstep = (float)COLS/7.0;
const float vstep = (float)(LINES-4)/weeks;
+ /* Clear */
+ werase(win);
+
/* Print Header */
mvwprintw(win, 0, midpt, "%s %d", name, YEAR);
for (int d = 0; d < 7; d++) {
mvwaddch(win, ROUND(2+w*vstep), ROUND(d*hstep-1), chr);
}
}
+
+ /* Draw today */
+ int col = day_of_week(YEAR, MONTH, DAY);
+ int row = (start+DAY) / 7;
+ int l = ROUND((col+0)*hstep-1);
+ int r = ROUND((col+1)*hstep-1);
+ int t = ROUND((row+0)*vstep+2);
+ int b = ROUND((row+1)*vstep+2);
+ mvwvline_set(win, t, l, WACS_T_VLINE, b-t);
+ mvwvline_set(win, t, r, WACS_T_VLINE, b-t);
+ mvwhline_set(win, t, l, WACS_T_HLINE, r-l);
+ mvwhline_set(win, b, l, WACS_T_HLINE, r-l);
+ mvwadd_wch(win, t, l, WACS_T_ULCORNER);
+ mvwadd_wch(win, t, r, WACS_T_URCORNER);
+ mvwadd_wch(win, b, l, WACS_T_LLCORNER);
+ mvwadd_wch(win, b, r, WACS_T_LRCORNER);
}
/* Month run */
int month_run(int key, mmask_t btn, int row, int col)
{
+ int days = 0, months = 0;
+ switch (key)
+ {
+ case 'h': days = -1; break;
+ case 'j': days = 7; break;
+ case 'k': days = -7; break;
+ case 'l': days = 1; break;
+ case 'i': months = -1; break;
+ case 'o': months = 1; break;
+ }
+ if (days || months) {
+ add_days(&YEAR, &MONTH, &DAY, days);
+ add_months(&YEAR, &MONTH, months);
+ month_draw();
+ wrefresh(win);
+ }
return 0;
}