Lines Matching +full:data +full:- +full:width
4 * menubox.c -- implements the menu box
6 * Copyright 2000-2019,2020 Thomas E. Dickey
37 /* the outer-window */
45 /* the inner-window */
63 print_item(ALL_DATA * data, in print_item() argument
71 int climit = (data->item_x - data->tag_x - GUTTER); in print_item()
72 int my_width = data->menu_width; in print_item()
73 int my_x = data->item_x; in print_item()
79 ? item->name in print_item()
80 : item->text); in print_item()
100 for (n = my_y - 1; n < my_y + INPUT_ROWS - 1; n++) { in print_item()
112 (void) wmove(win, my_y, data->tag_x); in print_item()
113 dlg_print_listitem(win, item->name, climit, first, selected); in print_item()
120 my_width -= 1; in print_item()
121 dlg_draw_box(win, my_y - 1, my_x, INPUT_ROWS, my_width - my_x - data->tag_x, in print_item()
124 my_width -= 1; in print_item()
130 dlg_print_listitem(win, show, my_width - my_x, first, selected); in print_item()
133 dlg_item_help(item->help); in print_item()
142 input_menu_edit(ALL_DATA * data, in input_menu_edit() argument
147 chtype save = dlg_get_attrs(data->menu); in input_menu_edit()
156 int max_len = dlg_max_input(MAX((int) strlen(items->text) + 1, MAX_LEN)); in input_menu_edit()
163 strcpy(result, items->text); in input_menu_edit()
165 print_item(data, data->menu, items, choice, Editing, TRUE); in input_menu_edit()
167 /* taken out of inputbox.c - but somewhat modified */ in input_menu_edit()
171 key = dlg_mouse_wgetch(data->menu, &fkey); in input_menu_edit()
182 dlg_show_string(data->menu, result, offset, inputbox_attr, in input_menu_edit()
184 data->item_x + 1, in input_menu_edit()
185 data->menu_width - data->item_x - 3, in input_menu_edit()
195 print_item(data, data->menu, items, choice, Selected, TRUE); in input_menu_edit()
196 dlg_attrset(data->menu, save); in input_menu_edit()
244 print_menu(ALL_DATA * data, int choice, int scrollamt, int max_choice, bool is_inputmenu) in print_menu() argument
249 print_item(data, in print_menu()
250 data->menu, in print_menu()
251 &data->items[i + scrollamt], in print_menu()
260 spare_lines = data->menu_height % INPUT_ROWS; in print_menu()
261 dlg_attrset(data->menu, menubox_attr); in print_menu()
262 for (; spare_lines; spare_lines--) { in print_menu()
263 wmove(data->menu, data->menu_height - spare_lines, 0); in print_menu()
264 for (x_count = 0; x_count < data->menu_width; in print_menu()
266 waddch(data->menu, ' '); in print_menu()
271 (void) wnoutrefresh(data->menu); in print_menu()
273 dlg_draw_scrollbar(data->dialog, in print_menu()
277 data->item_no, in print_menu()
278 data->box_x, in print_menu()
279 data->box_x + data->menu_width, in print_menu()
280 data->box_y, in print_menu()
281 data->box_y + data->menu_height + 1, in print_menu()
309 int width, in dlg_menu() argument
316 /* *INDENT-OFF* */ in dlg_menu()
328 DLG_KEYS_DATA( DLGK_ITEM_PREV, '-' ), in dlg_menu()
344 /* *INDENT-ON* */ in dlg_menu()
350 int old_width = width; in dlg_menu()
355 int button = dialog_state.visit_items ? -1 : dlg_default_button(); in dlg_menu()
371 DLG_TRACE2N("width", width); in dlg_menu()
396 dlg_auto_size(title, prompt, &height, &width, MIN_HIGH, use_width); in dlg_menu()
400 &height, &width, in dlg_menu()
403 dlg_button_layout(buttons, &width); in dlg_menu()
404 dlg_print_size(height, width); in dlg_menu()
405 dlg_ctl_size(height, width); in dlg_menu()
407 x = dlg_box_x_ordinate(width); in dlg_menu()
410 dialog = dlg_new_window(height, width, y, x); in dlg_menu()
418 dlg_draw_box2(dialog, 0, 0, height, width, dialog_attr, border_attr, border2_attr); in dlg_menu()
423 dlg_print_autowrap(dialog, prompt, height, width); in dlg_menu()
425 all.menu_width = width - 6; in dlg_menu()
428 all.box_x = (width - all.menu_width) / 2 - 1; in dlg_menu()
432 * Limit the list to avoid overwriting the ok-button. in dlg_menu()
434 all.menu_height = height - MIN_HIGH - cur_y; in dlg_menu()
463 * only if --menu was given, using --inputmenu * in dlg_menu()
474 * FIXME: the gutter width and name/list ratio should be configurable. in dlg_menu()
476 use_width = (all.menu_width - GUTTER); in dlg_menu()
493 text_width = use_width - name_width; in dlg_menu()
500 : (use_width - list_width) / 2); in dlg_menu()
508 if (choice - scrollamt >= max_choice) { in dlg_menu()
509 scrollamt = choice - (max_choice - 1); in dlg_menu()
510 choice = max_choice - 1; in dlg_menu()
520 dlg_draw_buttons(dialog, height - 2, 0, buttons, button, FALSE, width); in dlg_menu()
527 if (button < 0) /* --visit-items */ in dlg_menu()
541 * Allow a mouse-click on a box to switch selection to that box. in dlg_menu()
547 key -= DLGK_MOUSE(KEY_MAX); in dlg_menu()
556 && dlg_ok_buttoncode(key - M_EVENT) >= 0) { in dlg_menu()
557 button = (key - M_EVENT); in dlg_menu()
571 i = j - scrollamt; in dlg_menu()
579 i = j - scrollamt; in dlg_menu()
593 * A single digit (1-9) positions the selection to that line in the in dlg_menu()
599 && (key - '1' < max_choice)) { in dlg_menu()
601 i = key - '1'; in dlg_menu()
609 i = -scrollamt; in dlg_menu()
612 i = item_no - 1 - scrollamt; in dlg_menu()
619 i = -MIN(scrollamt, max_choice); in dlg_menu()
625 i = MIN(choice + max_choice, item_no - scrollamt - 1); in dlg_menu()
628 i = choice - 1; in dlg_menu()
634 if (scrollamt + choice >= item_no - 1) in dlg_menu()
651 choice = max_choice - 1; in dlg_menu()
652 scrollamt += (i - max_choice + 1); in dlg_menu()
669 dlg_draw_buttons(dialog, height - 2, 0, buttons, button, in dlg_menu()
670 FALSE, width); in dlg_menu()
675 dlg_draw_buttons(dialog, height - 2, 0, buttons, button, in dlg_menu()
676 FALSE, width); in dlg_menu()
706 * dlg_menu() can free the renamed value - we cannot. in dlg_menu()
734 dlg_draw_buttons(dialog, height - 2, 0, in dlg_menu()
735 buttons, button, FALSE, width); in dlg_menu()
742 /* reset data */ in dlg_menu()
744 resizeit(width, COLS); in dlg_menu()
775 int width, in dialog_menu() argument
802 width, in dialog_menu()