PROGRAMMING

Ncurses - zapamiętanie wyglądu okna

#c , #ncurses

Pisząc przed chwilką program miałem taką sytuację, że miałem utworzone okno z różnymi napisami, następnie tworzyłem nowe okno i chciałem jakoś żeby można było usuwać to nowe okno ale żeby nic nie znikało z tego poprzedniego… No więc służy do tego funkcja touchwin.

int touchwin(WINDOW *win);

Jeżeli chcemy “zatrzymać” okno główne, to wpisujemy stdscr, jeżeli utworzone okno to oczywiście wpisujemy jego nazwę. Poniżej mały przykład.

#include <iostream>
#include <ncurses.h>
void okienko();
char znak, znaczek;
main()
{
initscr();
cbreak();
noecho();
border(0, 0, 0, 0, 0, 0, 0, 0);
mvprintw(3, 3, "To jest napis w oknie głównym.");
mvprintw(4, 3, "Naciśnij n aby utworzyć okno.");
mvprintw(5, 3, "Naciśnij q aby wyłączyć program.");
refresh();
znak = getch();
while(znak != 'q')
{

        switch(znak)
        {
                case 'n':
		okienko();
                znak = getch();
                break;
	}
}
endwin();
return 0;
}
void okienko()
{
touchwin(stdscr);
WINDOW *okno;
okno = newwin(0, 0, 0, 0);
mvwprintw(okno, 5, 5, "To jest nowe okno.");
mvwprintw(okno, 6, 5, "Naciśnij q aby powrócić.");
wrefresh(okno);
char znaczek = wgetch(okno);
while(znaczek != 'q')
{
char znaczek = wgetch(okno);
}
delwin(okno);
refresh();
}

Ten mały programik chyba wszystko wyjaśnił ;-]