X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=views%2Fweek.c;h=414c35450b4c3a0e16e7f29b00b801665fe133c6;hb=335d816efb8dd7c003e285a19e9434c4119ec13f;hp=2c5c29d3ac626f20806f13688b924a6b5f40ff7a;hpb=daded0f3fb930e7758e1009683c0cdb46eada3f6;p=lackey diff --git a/views/week.c b/views/week.c index 2c5c29d..414c354 100644 --- a/views/week.c +++ b/views/week.c @@ -45,16 +45,19 @@ void week_init(WINDOW *_win) /* Week size */ void week_size(int rows, int cols) { - wresize(head, 2, cols ); - wresize(times, rows-3, 5); - wresize(body, rows-3, cols-6); + int hdr = 3-COMPACT; + wresize(head, 2, cols ); + wresize(times, rows-hdr, 5); + wresize(body, rows-hdr, cols-6); + mvderwin(times, hdr, 0); + mvderwin(body, hdr, 6); } /* Week draw */ void week_draw(void) { int x = 6; - int y = 3; + int y = 3 - COMPACT; const float hstep = (float)(COLS-x)/7.0; /* Get start of week */ @@ -64,17 +67,28 @@ void week_draw(void) int shift = day_of_week(year, month, day); add_days(&year, &month, &day, -shift); + /* For today */ + int l = x+ROUND((shift+0)*hstep)-1; + int r = x+ROUND((shift+1)*hstep)-1; + /* Print Header */ - mvwprintw(head, 0, 0, "%s", month_to_str(MONTH)); - mvwprintw(head, 1, 0, "%04d", YEAR); + int rev = COMPACT ? A_REVERSE | A_BOLD : 0; + wattron(head, rev); + mvwprintw(head, 0, 0, "%-*s", COLS, month_to_str(MONTH)); + mvwprintw(head, 1, 0, "%-0*d", COLS, YEAR); + wattroff(head, rev); + mvwhline(head, 0, l+1, ' ', r-l-1); + mvwhline(head, 1, l+1, ' ', r-l-1); + wattron(head, rev); for (int d = 0; d < 7; d++) { const char *str = hstep >= 10 ? day_to_string(d) : day_to_str(d); - if (d == shift) wattron(head, A_BOLD); + if (d == shift) wattrset(head, A_BOLD); mvwprintw(head, 0, x+ROUND(d*hstep), "%s", str); mvwprintw(head, 1, x+ROUND(d*hstep), "%02d/%02d", month+1, day+1); - if (d == shift) wattroff(head, A_BOLD); + if (d == shift) wattrset(head, rev); add_days(&year, &month, &day, 1); } + wattroff(head, rev); /* Print times */ mvwprintw(times, 0, 0, "%02d:%02d", ((line/4)-1)%12+1, (line*15)%60); @@ -100,15 +114,14 @@ void week_draw(void) } /* Print lines */ - mvwhline(win, y-1, 0, ACS_HLINE, COLS); + if (!COMPACT) + mvwhline(win, y-1, 0, ACS_HLINE, COLS); for (int d = 0; d < 7; d++) - mvwvline(win, y, x+ROUND(d*hstep)-1, ACS_VLINE, LINES-y-2); - + mvwvline(win, y, x+ROUND(d*hstep)-1, ACS_VLINE, LINES-y-2+COMPACT); /* Draw today */ - int l = x+ROUND((shift+0)*hstep)-1; - int r = x+ROUND((shift+1)*hstep)-1; - mvwhline (win, y-1, l, ACS_BLOCK, r-l+1); + if (!COMPACT) + mvwhline(win, y-1, l, ACS_BLOCK, r-l+1); mvwvline_set(win, y, l, WACS_T_VLINE, LINES-y-2); mvwvline_set(win, y, r, WACS_T_VLINE, LINES-y-2); for (int h = (line+3)/4; h < 24; h++) { @@ -138,5 +151,5 @@ int week_run(int key, mmask_t btn, int row, int col) week_draw(); wrefresh(win); } - return 0; + return ref; }