Lines Matching +full:1 +full:- +full:d

1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
4 * Copyright (c) 2022-2025 Alfonso Sabato Siciliano
9 * 1. Redistributions of source code must retain the above copyright
40 #define MINWCAL 36 /* 34 calendar, 1 + 1 margins */
105 dd += mm < 3 ? yy-- : yy - 2; in week_day()
106 wd = 23*mm/9 + dd + 4 + yy/4 - yy/100 + yy/400; in week_day()
121 *mm = 1; in init_date()
122 *dd = (*day == 0) ? 1 : *day; in init_date()
136 *dd -= 7; in datectl()
138 if (*mm == 1) { in datectl()
139 *yy -= 1; in datectl()
142 *mm -= 1; in datectl()
144 *dd = ndays - abs(7 - *dd); in datectl()
152 *yy += 1; in datectl()
153 *mm = 1; in datectl()
155 *mm += 1; in datectl()
156 *dd = *dd + 7 - ndays; in datectl()
160 if (*dd > 1) in datectl()
161 *dd -= 1; in datectl()
163 if (*mm == 1) { in datectl()
164 *yy -= 1; in datectl()
167 *mm -= 1; in datectl()
173 *dd += 1; in datectl()
176 *yy += 1; in datectl()
177 *mm = 1; in datectl()
179 *mm += 1; in datectl()
180 *dd = 1; in datectl()
184 if (*mm == 1) { in datectl()
186 *yy -= 1; in datectl()
188 *mm -= 1; in datectl()
195 *mm = 1; in datectl()
196 *yy += 1; in datectl()
198 *mm += 1; in datectl()
204 *yy -= 1; in datectl()
210 *yy += 1; in datectl()
219 *mm = 1; in datectl()
220 *dd = 1; in datectl()
240 mvwhline(win, 0, w/2 - l/2, UARROW(conf), l); in drawsquare()
241 mvwhline(win, h-1, w/2 - l/2, DARROW(conf), l); in drawsquare()
248 mvwprintw(win, 1, 1, fmt, m[value - 1]); in drawsquare()
250 mvwprintw(win, 1, 1, fmt, value); in drawsquare()
269 mvwhline(win, h-1, 15, DARROW(conf), 4); in print_calendar()
271 mvwvline(win, 3, w-1, RARROW(conf), 3); in print_calendar()
275 mvwaddstr(win, 1, 5, "Sun Mon Tue Wed Thu Fri Sat"); in print_calendar()
278 wd = week_day(yy, mm, 1); in print_calendar()
279 for (i = 1; i <= ndays; i++) { in print_calendar()
282 mvwprintw(win, y, x, "%2d", i); in print_calendar()
285 mvwprintw(win, y, x, "%2d", i); in print_calendar()
299 calendar_draw(struct dialog *d, bool redraw, WINDOW *yy_win, WINDOW *mm_win, in calendar_draw() argument
305 hide_dialog(d); in calendar_draw()
308 if (dialog_size_position(d, MINHCAL, MINWCAL, NULL) != 0) in calendar_draw()
310 if (draw_dialog(d) != 0) /* doupdate in main loop */ in calendar_draw()
314 TEXTPAD(d, MINHCAL + HBUTTONS); in calendar_draw()
316 ycal = d->y + d->h - 15; in calendar_draw()
317 xcal = d->x + d->w/2 - 17; in calendar_draw()
318 mvwaddstr(d->widget, d->h - 16, d->w/2 - 17, "Month"); in calendar_draw()
319 update_box(d->conf, mm_win, ycal, xcal, 3, 17, RAISED); in calendar_draw()
320 mvwaddstr(d->widget, d->h - 16, d->w/2, "Year"); in calendar_draw()
321 update_box(d->conf, yy_win, ycal, xcal + 17, 3, 17, RAISED); in calendar_draw()
322 update_box(d->conf, dd_win, ycal + 3, xcal, 9, 34, RAISED); in calendar_draw()
323 wnoutrefresh(d->widget); in calendar_draw()
336 struct dialog d; in bsddialog_calendar() local
345 if (prepare_dialog(conf, text, rows, cols, &d) != 0) in bsddialog_calendar()
347 set_buttons(&d, true, OK_LABEL, CANCEL_LABEL); in bsddialog_calendar()
348 if ((yy_win = newwin(1, 1, 1, 1)) == NULL) in bsddialog_calendar()
351 if ((mm_win = newwin(1, 1, 1, 1)) == NULL) in bsddialog_calendar()
354 if ((dd_win = newwin(1, 1, 1, 1)) == NULL) in bsddialog_calendar()
357 if (calendar_draw(&d, false, yy_win, mm_win, dd_win) != 0) in bsddialog_calendar()
360 sel = -1; in bsddialog_calendar()
364 drawsquare(conf, yy_win, RAISED, "%15d", yy, sel == 1); in bsddialog_calendar()
373 if (focusbuttons || conf->button.always_active) { in bsddialog_calendar()
374 retval = BUTTONVALUE(d.bs); in bsddialog_calendar()
379 if (conf->key.enable_esc) { in bsddialog_calendar()
386 d.bs.curr++; in bsddialog_calendar()
387 if (d.bs.curr >= (int)d.bs.nbuttons) { in bsddialog_calendar()
390 d.bs.curr = conf->button.always_active ? in bsddialog_calendar()
391 0 : -1; in bsddialog_calendar()
397 sel = -1; in bsddialog_calendar()
398 d.bs.curr = 0; in bsddialog_calendar()
401 DRAW_BUTTONS(d); in bsddialog_calendar()
406 d.bs.curr++; in bsddialog_calendar()
407 if (d.bs.curr >= (int)d.bs.nbuttons) { in bsddialog_calendar()
410 d.bs.curr = conf->button.always_active ? in bsddialog_calendar()
411 0 : -1; in bsddialog_calendar()
418 DRAW_BUTTONS(d); in bsddialog_calendar()
423 d.bs.curr--; in bsddialog_calendar()
424 if (d.bs.curr < 0) { in bsddialog_calendar()
427 d.bs.curr = conf->button.always_active ? in bsddialog_calendar()
428 0 : -1; in bsddialog_calendar()
432 } else if (sel == 1) { in bsddialog_calendar()
436 sel = -1; in bsddialog_calendar()
437 d.bs.curr = 0; in bsddialog_calendar()
439 DRAW_BUTTONS(d); in bsddialog_calendar()
445 d.bs.curr = conf->button.always_active ? 0 : -1; in bsddialog_calendar()
446 DRAW_BUTTONS(d); in bsddialog_calendar()
449 } else if (sel == 1) { in bsddialog_calendar()
460 } else if (sel == 1) { in bsddialog_calendar()
466 case '-': in bsddialog_calendar()
471 } else if (sel == 1) { in bsddialog_calendar()
482 } else if (sel == 1) { in bsddialog_calendar()
500 case KEY_F(1): in bsddialog_calendar()
501 if (conf->key.f1_file == NULL && in bsddialog_calendar()
502 conf->key.f1_message == NULL) in bsddialog_calendar()
506 if (calendar_draw(&d, true, yy_win, mm_win, dd_win) != 0) in bsddialog_calendar()
511 if (calendar_draw(&d, true, yy_win, mm_win, dd_win) != 0) in bsddialog_calendar()
515 if (shortcut_buttons(input, &d.bs)) { in bsddialog_calendar()
516 DRAW_BUTTONS(d); in bsddialog_calendar()
518 retval = BUTTONVALUE(d.bs); in bsddialog_calendar()
531 end_dialog(&d); in bsddialog_calendar()
536 static int datebox_draw(struct dialog *d, bool redraw, struct dateitem *di) in datebox_draw() argument
541 hide_dialog(d); in datebox_draw()
544 if (dialog_size_position(d, 3 /*windows*/, MINWDATE, NULL) != 0) in datebox_draw()
546 if (draw_dialog(d) != 0) in datebox_draw()
550 TEXTPAD(d, 3 /*windows*/ + HBUTTONS); in datebox_draw()
552 y = d->y + d->h - 6; in datebox_draw()
553 x = (d->x + d->w / 2) - 11; in datebox_draw()
554 update_box(d->conf, di[0].win, y, x, 3, di[0].width, LOWERED); in datebox_draw()
555 mvwaddch(d->widget, d->h - 5, x - d->x + di[0].width, '/'); in datebox_draw()
556 x += di[0].width + 1; in datebox_draw()
557 update_box(d->conf, di[1].win, y, x , 3, di[1].width, LOWERED); in datebox_draw()
558 mvwaddch(d->widget, d->h - 5, x - d->x + di[1].width, '/'); in datebox_draw()
559 x += di[1].width + 1; in datebox_draw()
560 update_box(d->conf, di[2].win, y, x, 3, di[2].width, LOWERED); in datebox_draw()
561 wnoutrefresh(d->widget); in datebox_draw()
573 {UP_YEAR, DOWN_YEAR, NULL, 6, "%4d", yy}, in build_dateitem()
575 {LEFT_DAY, RIGHT_DAY, NULL, 4, "%02d", dd}, in build_dateitem()
579 if ((init[i].win = newwin(1, 1, 1, 1)) == NULL) in build_dateitem()
580 RETURN_FMTERROR("Cannot build WINDOW dateitem[%d]", i); in build_dateitem()
586 if (format == NULL || wcscmp(wformat, L"d/m/y") == 0) { in build_dateitem()
588 dt[1] = init[1]; in build_dateitem()
590 } else if (wcscmp(wformat, L"m/d/y") == 0) { in build_dateitem()
591 dt[0] = init[1]; in build_dateitem()
592 dt[1] = init[2]; in build_dateitem()
594 } else if (wcscmp(wformat, L"y/m/d") == 0) { in build_dateitem()
596 dt[1] = init[1]; in build_dateitem()
613 struct dialog d; in bsddialog_datebox() local
622 if (prepare_dialog(conf, text, rows, cols, &d) != 0) in bsddialog_datebox()
624 set_buttons(&d, true, OK_LABEL, CANCEL_LABEL); in bsddialog_datebox()
625 if (build_dateitem(conf->date.format, &yy, &mm, &dd, di) != 0) in bsddialog_datebox()
627 if (datebox_draw(&d, false, di) != 0) in bsddialog_datebox()
630 sel = -1; in bsddialog_datebox()
643 if (focusbuttons || conf->button.always_active) { in bsddialog_datebox()
644 retval = BUTTONVALUE(d.bs); in bsddialog_datebox()
649 if (conf->key.enable_esc) { in bsddialog_datebox()
658 d.bs.curr++; in bsddialog_datebox()
659 focusbuttons = d.bs.curr < (int)d.bs.nbuttons ? in bsddialog_datebox()
663 d.bs.curr = conf->button.always_active ? in bsddialog_datebox()
664 0 : -1; in bsddialog_datebox()
670 d.bs.curr = 0; in bsddialog_datebox()
673 DRAW_BUTTONS(d); in bsddialog_datebox()
678 d.bs.curr--; in bsddialog_datebox()
679 focusbuttons = d.bs.curr < 0 ? false : true; in bsddialog_datebox()
682 d.bs.curr = conf->button.always_active ? in bsddialog_datebox()
683 0 : -1; in bsddialog_datebox()
686 sel--; in bsddialog_datebox()
689 d.bs.curr = (int)d.bs.nbuttons - 1; in bsddialog_datebox()
691 DRAW_BUTTONS(d); in bsddialog_datebox()
693 case '-': in bsddialog_datebox()
701 d.bs.curr = conf->button.always_active ? 0 : -1; in bsddialog_datebox()
702 DRAW_BUTTONS(d); in bsddialog_datebox()
713 case KEY_F(1): in bsddialog_datebox()
714 if (conf->key.f1_file == NULL && in bsddialog_datebox()
715 conf->key.f1_message == NULL) in bsddialog_datebox()
719 if (datebox_draw(&d, true, di) != 0) in bsddialog_datebox()
724 if (datebox_draw(&d, true, di) != 0) in bsddialog_datebox()
728 if (shortcut_buttons(input, &d.bs)) { in bsddialog_datebox()
729 DRAW_BUTTONS(d); in bsddialog_datebox()
731 retval = BUTTONVALUE(d.bs); in bsddialog_datebox()
743 end_dialog(&d); in bsddialog_datebox()