Ncurses: Pads
Erscheinungsbild
<<< ncurses-Startseite | ncurses | << Inhaltsverzeichnis |
< Mausunterstützung | Was fehlt > |
Ein Pad (Schreibblock) ist eine Variante des konventionellen ncurses-Fensters. In der Anwendung unterscheidet es sich deutlich von diesem. Pads können größer als der Screen selbst sein und der Programmierer entscheidet erst beim Refresh, welcher Teil des Pads wo sichtbar ist.
Ein Pad erstellen
[Bearbeiten]WINDOW *newpad(int nlines, int ncols);
Bedeutung der Parameter:
nlines, ncols
... Anzahl der Pad-Zeilen und -Spalten
Ein Pad refreshen
[Bearbeiten]int prefresh(WINDOW *pad, int pminrow, int pmincol, int sminrow, int smincol, int smaxrow, int smaxcol); int pnoutrefresh(WINDOW *pad, int pminrow, int pmincol, int sminrow, int smincol, int smaxrow, int smaxcol);
Die Pad-Refreshfunktionen haben prinzipiell dieselben Aufgaben wie ihre Window-Pendants.
Bedeutung der Parameter:
pminrow, pmincol
... Ecke links-oben im Pad (p ... pad).sminrow, smincol, smaxrow, smaxcol
... Ecke links-oben, Ecke rechts-unten. Diese Parameter bestimmen die Größe des auf dem Screen angezeigten Pad-Rechtecks, innerhalb dessen der Pad-Inhalt dargestellt wird (s ... screen).
Beispiel
[Bearbeiten]#include <curses.h> #include <stdlib.h> WINDOW *pad; void quit(void) { delwin(pad); endwin(); } int main(void) { initscr(); atexit(quit); clear(); noecho(); curs_set(0); cbreak(); keypad(stdscr, 1); start_color(); init_pair(1, COLOR_YELLOW, COLOR_BLUE); init_pair(2, COLOR_BLUE, COLOR_WHITE); pad = newpad(300, 100); bkgd(COLOR_PAIR(1)); wbkgd(pad, COLOR_PAIR(2)); waddstr(pad, "Zeile 1 \n"); waddstr(pad, "Zeile 2\n"); waddstr(pad, "Diese Zeichenkette befindet sich in Zeile 3\n"); waddstr(pad, "und diese in Zeile 4"); refresh(); prefresh(pad, 0, 0, 3, 3, 10, 30); getch(); refresh(); prefresh(pad, 2, 2, 12, 2, 20, 45); while(getch() != KEY_F(1)) { } return(0); }
Nach dem Programmstart | Nach dem ersten Tastendruck |
---|---|
<<< ncurses-Startseite | ncurses | << Inhaltsverzeichnis |
< Mausunterstützung | Was fehlt > |