Beraldo 864 Denunciar post Postado Novembro 25, 2008 Tentei fazer com que a barra de rolagem do terminal funcionasse na NCURSES. Não obtive sucesso. Acho que não dá para faazer isso, mesmo. :( Então tentei usar as funções de rolagem da própria NCURSES. A fim de testes, fiz isyto: #include <curses.h> int main() { WINDOW *win; int i = 0, key; win = initscr(); noecho(); cbreak(); keypad(win, TRUE); scrollok(win, TRUE); while ( (key = getch()) ) { switch ( key ) { case KEY_UP: scrl(-1); break; case KEY_DOWN: scrl(1); break; default: printw("%d................................\n", i++); } } endwin(); return 0; } Se eu usar as setas UP e DOWN, a rolagem ocorre, mas o texto que estava lá (e foi "rolada" para além dos limites do terminal) somem. Há como fazer essa rolagem mostrar o conteúdo que estava lá? Algo como os comandos more ou less. É possível? Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Novembro 25, 2008 http://opengroup.org/onlinepubs/007908775/xcurses/intov.html "If scrolling is enabled, a scroll occurs. The contents of the first line of the window are lost." A não ser que você use alocação dinâmica (tanto p/ linha 0 quanto pra ultima linha visivel) e imprima você mesmo a linha desaparecida, não. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Novembro 25, 2008 Vou tentar fazer alguma coisa aqui usando alocação dinâmica, então. Obrigado, Isis. Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Novembro 25, 2008 Beraldo, faça dois char** e implemente uma pilha. Acho que dá pra você usar scanf p/ ler o conteudo da linha antes de fazer scrl e armazenar isso no char**. Compartilhar este post Link para o post Compartilhar em outros sites