static void cmd_ctrl_i(key_info_t key_info, keys_info_t *keys_info) { if(!input_stat.complete_continue) draw_wild_menu(1); input_stat.reverse_completion = 0; if(input_stat.complete_continue && get_completion_count() == 2) input_stat.complete_continue = 0; do_completion(); if(cfg.wild_menu) draw_wild_menu(0); }
static void cmd_ctrl_underscore(key_info_t key_info, keys_info_t *keys_info) { if(!input_stat.complete_continue) return; rewind_completion(); if(!input_stat.complete_continue) draw_wild_menu(1); input_stat.reverse_completion = 0; do_completion(); if(cfg.wild_menu) draw_wild_menu(0); stop_completion(); }
void redraw_cmdline(void) { if(prev_mode == MENU_MODE) { menu_redraw(); } else { redraw_window(); if(prev_mode == SORT_MODE) redraw_sort_dialog(); else if(prev_mode == ATTR_MODE) redraw_attr_dialog(); } line_width = getmaxx(stdscr); curs_set(TRUE); update_cmdline_size(); update_cmdline_text(); if(cfg.wild_menu) draw_wild_menu(-1); }
void redraw_cmdline(void) { if(prev_mode == MENU_MODE) { menu_redraw(); } else { update_screen(UT_FULL); if(prev_mode == SORT_MODE) redraw_sort_dialog(); else if(prev_mode == ATTR_MODE) redraw_attr_dialog(); } line_width = getmaxx(stdscr); curs_set(TRUE); update_cmdline_size(); update_cmdline_text(); if(input_stat.complete_continue && cfg.wild_menu) draw_wild_menu(-1); }
/* * op == 0 - draw * op < 0 - redraw * op > 0 - reset */ static void draw_wild_menu(int op) { static int last_pos; const char ** list = get_completion_list(); int pos = get_completion_pos(); int count = get_completion_count() - 1; int i; int len = getmaxx(stdscr); if(sub_mode == MENU_CMD_SUBMODE || input_stat.complete == NULL) return; if(count < 2) return; if(op > 0) { last_pos = 0; return; } if(pos == 0 || pos == count) last_pos = 0; if(last_pos == 0 && pos == count - 1) last_pos = count; if(pos < last_pos) { int l = len; while(last_pos > 0 && l > 2) { last_pos--; l -= strlen(list[last_pos]); if(last_pos != 0) l -= 2; } if(l < 2) last_pos++; } werase(stat_win); wmove(stat_win, 0, 0); for(i = last_pos; i < count && len > 0; i++) { len -= strlen(list[i]); if(i != 0) len -= 2; if(i == last_pos && last_pos > 0) { wprintw(stat_win, "< "); } else if(i > last_pos) { if(len < 2) { wprintw(stat_win, " >"); break; } wprintw(stat_win, " "); } if(i == pos) { col_attr_t col; col = cfg.cs.color[STATUS_LINE_COLOR]; mix_colors(&col, &cfg.cs.color[MENU_COLOR]); init_pair(DCOLOR_BASE + MENU_COLOR, col.fg, col.bg); wbkgdset(stat_win, COLOR_PAIR(DCOLOR_BASE + MENU_COLOR) | col.attr); } wprint(stat_win, list[i]); if(i == pos) { wbkgdset(stat_win, COLOR_PAIR(DCOLOR_BASE + STATUS_LINE_COLOR) | cfg.cs.color[STATUS_LINE_COLOR].attr); pos = -pos; } } if(pos > 0 && pos != count) { last_pos = pos; draw_wild_menu(op); return; } if(op == 0 && len < 2 && i - 1 == pos) last_pos = i; wrefresh(stat_win); }