Lines Matching refs:f

93     struct bsddialog_formitem *items, struct privateform *f)  in build_privateform()  argument
111 f->nitems = nitems; in build_privateform()
117 if (mbtowc(&f->securewch, conf->form.securembch, mbchsize) < 0) in build_privateform()
121 f->securewch = btowc(conf->form.securech); in build_privateform()
124 f->securewch = L' '; in build_privateform()
128 f->pritems = malloc(f->nitems * sizeof(struct privateitem)); in build_privateform()
129 if (f->pritems == NULL) in build_privateform()
131 f->hasbottomdesc = false; in build_privateform()
132 f->h = f->w = f->minviewrows = 0; in build_privateform()
133 for (i = 0; i < f->nitems; i++) { in build_privateform()
134 item = &f->pritems[i]; in build_privateform()
149 f->hasbottomdesc = true; in build_privateform()
173 item->pubwbuf[j] = f->securewch; in build_privateform()
182 f->h = MAX(f->h, item->ylabel); in build_privateform()
183 f->h = MAX(f->h, item->yfield); in build_privateform()
184 f->w = MAX(f->w, item->xlabel + strcols(item->label)); in build_privateform()
185 f->w = MAX(f->w, item->xfield + item->fieldcols); in build_privateform()
196 f->minviewrows = MAX(f->minviewrows, tmp); in build_privateform()
198 if (f->nitems > 0) { in build_privateform()
199 f->h = f->h + 1 - itemybeg; in build_privateform()
200 f->w -= itemxbeg; in build_privateform()
201 f->minviewrows += 1; in build_privateform()
203 f->wmin = f->w; in build_privateform()
204 for (i = 0; i < f->nitems; i++) { in build_privateform()
205 f->pritems[i].ylabel -= itemybeg; in build_privateform()
206 f->pritems[i].yfield -= itemybeg; in build_privateform()
207 f->pritems[i].xlabel -= itemxbeg; in build_privateform()
208 f->pritems[i].xfield -= itemxbeg; in build_privateform()
358 return_values(struct bsddialog_conf *conf, struct privateform *f, in return_values() argument
363 for (i = 0; i < f->nitems; i++) { in return_values()
365 items[i].value = (char*)wcsdup(f->pritems[i].privwbuf); in return_values()
367 items[i].value = alloc_wstomb(f->pritems[i].privwbuf); in return_values()
377 static void set_first_with_default(struct privateform *f, int *focusitem) in set_first_with_default() argument
381 f->sel = -1; in set_first_with_default()
382 if (focusitem != NULL && *focusitem >=0 && *focusitem < (int)f->nitems) in set_first_with_default()
383 if (f->pritems[*focusitem].readonly == false) { in set_first_with_default()
384 f->sel = *focusitem; in set_first_with_default()
387 for (i = 0 ; i < f->nitems; i++) in set_first_with_default()
388 if (f->pritems[i].readonly == false) { in set_first_with_default()
389 f->sel = i; in set_first_with_default()
461 drawitem(struct privateform *f, int idx, bool focus) in drawitem() argument
467 item = &f->pritems[idx]; in drawitem()
470 wattron(f->pad, t.dialog.color); in drawitem()
471 mvwaddstr(f->pad, item->ylabel, item->xlabel, item->label); in drawitem()
472 wattroff(f->pad, t.dialog.color); in drawitem()
481 wattron(f->pad, color); in drawitem()
482 mvwhline(f->pad, item->yfield, item->xfield, ' ', item->fieldcols); in drawitem()
491 mvwaddnwstr(f->pad, item->yfield, item->xfield, in drawitem()
493 wattroff(f->pad, color); in drawitem()
496 if (f->hasbottomdesc) { in drawitem()
509 wmove(f->pad, item->yfield, item->xfield + item->xcursor); in drawitem()
521 #define DRAWITEM_TRICK(f, idx, focus) do { \ argument
522 drawitem(f, idx, !focus); \
523 prefresh((f)->pad, (f)->y, 0, (f)->ys, (f)->xs, (f)->ye, (f)->xe); \
524 drawitem(f, idx, focus); \
525 prefresh((f)->pad, (f)->y, 0, (f)->ys, (f)->xs, (f)->ye, (f)->xe); \
528 static void update_formbox(struct bsddialog_conf *conf, struct privateform *f) in update_formbox() argument
532 getmaxyx(f->box, h, w); in update_formbox()
533 draw_borders(conf, f->box, LOWERED); in update_formbox()
535 if (f->viewrows < f->h) { in update_formbox()
536 wattron(f->box, t.dialog.arrowcolor); in update_formbox()
537 if (f->y > 0) in update_formbox()
538 mvwhline(f->box, 0, (w / 2) - 2, UARROW(conf), 5); in update_formbox()
540 if (f->y + f->viewrows < f->h) in update_formbox()
541 mvwhline(f->box, h-1, (w / 2) - 2, DARROW(conf), 5); in update_formbox()
542 wattroff(f->box, t.dialog.arrowcolor); in update_formbox()
546 static void curriteminview(struct privateform *f, struct privateitem *item) in curriteminview() argument
554 if (f->y > yup && f->y > 0) in curriteminview()
555 f->y = yup; in curriteminview()
556 if ((int)(f->y + f->viewrows) - 1 < (int)ydown) in curriteminview()
557 f->y = ydown - f->viewrows + 1; in curriteminview()
559 if (f->y > 0 && (f->h - f->y) < f->viewrows) in curriteminview()
560 f->y = f->h - f->viewrows; in curriteminview()
563 static int form_size_position(struct dialog *d, struct privateform *f) in form_size_position() argument
571 hform = (int) f->viewrows; in form_size_position()
572 if (f->viewrows == BSDDIALOG_AUTOSIZE) in form_size_position()
573 hform = MAX(f->h, f->minviewrows); in form_size_position()
577 d->text, &htext, &d->bs, hform, f->w + 4) != 0) in form_size_position()
580 if (d->h - BORDERS - htext - HBUTTONS < 2 + (int)f->minviewrows) { in form_size_position()
581 f->viewrows = f->minviewrows; /* for widget_checksize() */ in form_size_position()
582 } else if (f->viewrows == BSDDIALOG_AUTOSIZE) { in form_size_position()
583 f->viewrows = MIN(d->h - BORDERS - htext - HBUTTONS, hform) - 2; in form_size_position()
584 f->viewrows = MAX(f->viewrows, f->minviewrows); in form_size_position()
586 f->viewrows = MIN(d->h - BORDERS - htext - HBUTTONS, hform) - 2; in form_size_position()
590 if (f->viewrows < f->minviewrows) in form_size_position()
592 f->viewrows, f->minviewrows); in form_size_position()
594 2 /* borders */ + f->minviewrows, f->w + 4) != 0) in form_size_position()
604 form_redraw(struct dialog *d, struct privateform *f, bool focusinform) in form_redraw() argument
612 f->viewrows = f->formheight; in form_redraw()
613 f->w = f->wmin; in form_redraw()
614 if (form_size_position(d, f) != 0) in form_redraw()
620 TEXTPAD(d, 2 /* box borders */ + f->viewrows + HBUTTONS); in form_redraw()
622 update_box(d->conf, f->box, d->y + d->h - 5 - f->viewrows, d->x + 2, in form_redraw()
623 f->viewrows + 2, d->w - 4, LOWERED); in form_redraw()
625 for (i = 0; i < f->nitems; i++) { in form_redraw()
626 fieldctl(&f->pritems[i], MOVE_CURSOR_BEGIN); in form_redraw()
627 if (f->pritems[i].extendfield) { in form_redraw()
628 f->w = d->w - 6; in form_redraw()
629 f->pritems[i].fieldcols = f->w - f->pritems[i].xfield; in form_redraw()
631 if (f->pritems[i].cursorend) in form_redraw()
632 fieldctl(&f->pritems[i], MOVE_CURSOR_END); in form_redraw()
635 wresize(f->pad, f->h, f->w); in form_redraw()
636 for (i = 0; i < f->nitems; i++) in form_redraw()
637 drawitem(f, i, false); in form_redraw()
639 f->ys = d->y + d->h - 5 - f->viewrows + 1; in form_redraw()
640 f->ye = d->y + d->h - 5 ; in form_redraw()
641 if ((int)f->w >= d->w - 6) { /* left */ in form_redraw()
642 f->xs = d->x + 3; in form_redraw()
643 f->xe = f->xs + d->w - 7; in form_redraw()
645 f->xs = d->x + 3 + (d->w - 6)/2 - f->w/2; in form_redraw()
646 f->xe = f->xs + d->w - 5; in form_redraw()
649 if (f->sel != -1) { /* at least 1 writable item */ in form_redraw()
654 curriteminview(f, &f->pritems[f->sel]); in form_redraw()
655 update_formbox(d->conf, f); in form_redraw()
656 wnoutrefresh(f->box); in form_redraw()
657 DRAWITEM_TRICK(f, f->sel, focusinform); in form_redraw()
658 } else if (f->sel == -1 && f->nitems > 0) { /* all read only */ in form_redraw()
661 update_formbox(d->conf, f); in form_redraw()
662 wnoutrefresh(f->box); in form_redraw()
663 DRAWITEM_TRICK(f, 0, false); /* to refresh pad*/ in form_redraw()
665 wnoutrefresh(f->box); in form_redraw()