initscr(); | - inicjalizacja - funkcję należy uruchomić jako pierwszą, |
endwin(); | - zakończenie działania biblioteki, |
okno = newwin(rozm_y, rozm_x, y, x); | - tworzenie okna (zarezerwowanie obszaru w pamięci), |
delwin(okno); | - zniszczenie okna (usunięcie z pamięci), |
wnoutrefresh(okno); | - funkcja odwzorowuje obszar pamięci okna na ekranie wirtualnym, |
doupdate(); | - funkcja wyświetla ekran wirtualny na ekranie fizycznym. |
#include <time.h> #include <curses.h> int current_getch; int doloop = 1; static WINDOW *mainwnd; static WINDOW *screen; WINDOW *my_win; int now_sec, now_min, now_hour, now_day, now_wday, now_month, now_year; time_t now; struct tm *now_tm; void screen_init(void) { mainwnd = initscr(); noecho(); cbreak(); nodelay(mainwnd, TRUE); refresh(); wrefresh(mainwnd); screen = newwin(13, 27, 1, 1); box(screen, ACS_VLINE, ACS_HLINE); } static void update_display(void) { curs_set(0); mvwprintw(screen,3,6,"TIME: %d:%d:%d", now_hour, now_min, now_sec); mvwprintw(screen,5,6,"DATE: %d-%d-%d", now_day, now_month, now_year); mvwprintw(screen,7,6,"PRESS q TO END"); wrefresh(screen); refresh(); } void screen_end(void) { endwin(); } void maketime(void) { now = time (NULL); now_tm = localtime(&now); now_sec = now_tm->tm_sec; now_min = now_tm->tm_min; now_hour = now_tm->tm_hour; now_day = now_tm->tm_mday; now_wday = now_tm->tm_wday; now_month = now_tm->tm_mon + 1; now_year = now_tm->tm_year + 1900; } int main(void) { screen_init(); while (doloop) { current_getch = getch(); if (current_getch == 113) doloop = 0; maketime(); update_display(); sleep(1); } screen_end(); return 0; } |
znak = getch(); | - odczytanie znaku z klawiatury i umieszczenie go w miejscu kursora w bierzącym oknie, |
znak = mvgetch(y, x); | - odczytanie znaku z klawiatury i umieszczenie go w pozycji (y, x), |
znak = wgetch(w); | - odczytanie znaku z klawiatury i umieszczenie go w miejscu kursora w oknie określonym przez w, |
echo(); | - wywołanie funkcji spowoduje, że wprowadzane znaki będą widoczne, |
noecho(); | - wywołanie funkcji spowoduje, że wprowadzane znaki NIE będą widoczne, |
nodelay(okno, 1); | - powyższe wywołanie funkcji powoduje, że funkcja getch NIE oczekuje na znak, |
nodelay(okno, 0); | - powyższe wywołanie funkcji powoduje, że funkcja getch oczekuje na znak (program jest wstrzymywany). |
getstr(char *buf) | - funkcja wczytuje ciąg znaków, |
getnstr(char *buf, int n) | - funkcja wczytuje co najwyżej n znaków, |
printw(...) | - odmiana funkcji printf(), która działa w oknach, |
scanw(...) | - odmiana funkcji scanf(), która działa w oknach, |