Exemple #1
0
static void
cmd_ctrl_ww(key_info_t key_info, keys_info_t *keys_info)
{
	vi->abandoned = 1;
	vle_mode_set(NORMAL_MODE, VMT_PRIMARY);
	if(curr_view->explore_mode)
	{
		go_to_other_pane();
	}

	ui_views_update_titles();
	if(curr_stats.view)
	{
		quick_view_file(curr_view);
	}
}
Exemple #2
0
void
toggle_quick_view(void)
{
	if(curr_stats.view)
	{
		curr_stats.view = 0;

		draw_dir_list(other_view);
		refresh_view_win(other_view);
	}
	else
	{
		curr_stats.view = 1;
		quick_view_file(curr_view);
	}
}
Exemple #3
0
void
leave_view_mode(void)
{
	vle_mode_set(NORMAL_MODE, VMT_PRIMARY);

	if(curr_view->explore_mode)
	{
		curr_view->explore_mode = 0;
		redraw_current_view();
	}
	else
	{
		quick_view_file(curr_view);
	}

	ui_view_title_update(curr_view);

	reset_view_info(vi);

	if(curr_view->explore_mode || other_view->explore_mode)
	{
		view_redraw();
	}
}
Exemple #4
0
void
redraw_window(void)
{
    int screen_x, screen_y;
    int x, y;
    struct winsize ws;

    curr_stats.freeze = 1;

    ioctl(0, TIOCGWINSZ, &ws);

    // changed for pdcurses
    resize_term(ws.ws_row, ws.ws_col);

    getmaxyx(stdscr, screen_y, screen_x);

    if (screen_y < 10)
        finish("Terminal is too small to run vifm\n");
    if (screen_x < 30)
        finish("Terminal is too small to run vifm\n");

    wclear(stdscr);
    wclear(lwin.title);
    wclear(lwin.win);
    wclear(rwin.title);
    wclear(rwin.win);
    wclear(stat_win);
    wclear(status_bar);
    wclear(pos_win);
    wclear(num_win);
    wclear(rborder);
    wclear(mborder);
    wclear(lborder);

    wclear(change_win);
    wclear(sort_win);

    wresize(stdscr, screen_y, screen_x);
    mvwin(sort_win, (screen_y - 14)/2, (screen_x -30)/2);
    mvwin(change_win, (screen_y - 10)/2, (screen_x -30)/2);
    wresize(menu_win, screen_y - 1, screen_x);
    wresize(error_win, (screen_y -10)/2, screen_x -2);
    mvwin(error_win, (screen_y -10)/2, 1);
    wresize(lborder, screen_y -2, 1);

    if (curr_stats.number_of_windows == 1)
    {
        wresize(lwin.title, 1, screen_x -1);
        wresize(lwin.win, screen_y -3, screen_x -2);
        getmaxyx(lwin.win, y, x);
        lwin.window_width = x -1;
        lwin.window_rows = y -1;

        wresize(rwin.title, 1, screen_x -1);
        mvwin(rwin.title, 0, 1);
        wresize(rwin.win, screen_y -3, screen_x -2);
        mvwin(rwin.win, 1, 1);
        getmaxyx(rwin.win, y, x);
        rwin.window_width = x -1;
        rwin.window_rows = y -1;
    }
    else
    {
        wresize(lwin.title, 1, screen_x/2 -2);
        wresize(lwin.win, screen_y -3, screen_x/2 -2);
        getmaxyx(lwin.win, y, x);
        lwin.window_width = x -1;
        lwin.window_rows = y -1;

        mvwin(mborder, 0, screen_x/2 -1);
        wresize(mborder, screen_y, 2);

        wresize(rwin.title, 1, screen_x/2 -2);
        mvwin(rwin.title, 0, screen_x/2 +1);

        wresize(rwin.win, screen_y -3, screen_x/2 -2);
        mvwin(rwin.win, 1, screen_x/2 +1);
        getmaxyx(rwin.win, y, x);
        rwin.window_width = x -1;
        rwin.window_rows = y -1;
    }



    /* For FreeBSD */
    keypad(lwin.win, TRUE);
    keypad(rwin.win, TRUE);

    if (screen_x % 2)
    {
        wresize(rborder, screen_y -2, 2);
        mvwin(rborder, 0, screen_x -2);
    }
    else
    {
        wresize(rborder, screen_y -2, 1);
        mvwin(rborder, 0, screen_x -1);
    }

    wresize(stat_win, 1, screen_x);
    mvwin(stat_win, screen_y -2, 0);
    wresize(status_bar, 1, screen_x -19);

    /* For FreeBSD */
    keypad(status_bar, TRUE);

    mvwin(status_bar, screen_y -1, 0);
    wresize(pos_win, 1, 13);
    mvwin(pos_win, screen_y -1, screen_x -13);

    wresize(num_win, 1, 6);
    mvwin(num_win, screen_y -1, screen_x -19);

    curs_set(0);

    change_directory(&rwin, rwin.curr_dir);
    load_dir_list(&rwin, 0);
    change_directory(&lwin, lwin.curr_dir);
    load_dir_list(&lwin, 0);

    if(curr_stats.view)
    {
        wclear(other_view->win);

        change_directory(curr_view, curr_view->curr_dir);
        load_dir_list(curr_view, 0);

        quick_view_file(curr_view);
    }
    else
        change_directory(curr_view, curr_view->curr_dir);

    update_stat_window(curr_view);

    if (curr_view->selected_files)
    {
        char status_buf[24];
        snprintf(status_buf, sizeof(status_buf), "%d %s Selected",
                 curr_view->selected_files,
                 curr_view->selected_files == 1 ? "File" : "Files");
        status_bar_message(status_buf);
    }
    else
        status_bar_message(" ");


    update_pos_window(curr_view);

    update_all_windows();

    moveto_list_pos(curr_view, curr_view->list_pos);
    wrefresh(curr_view->win);

    curr_stats.freeze = 0;
    curr_stats.need_redraw = 0;


}