| <<< ncurses-Startseite | ncurses | << Inhaltsverzeichnis |
| < Farben und andere Attribute | Fenster > |
Damit Spezialtasten (z.B. Pfeiltasten, Funktionstasten, Backspace-Taste) korrekt angesprochen werden, müssen mittels
int keypad(WINDOW *win, bool bf);
deren ncurses-Escapesequenzen aktiviert werden.
Nachfolgend die Bezeichnung einiger häufig benötigter Spezialtasten. Zwecks vollständiger Auflistung wird auf die ncurses-Header-Datei curses.h hingewiesen:
| KEY_DOWN | |
| KEY_UP | |
| KEY_LEFT | |
| KEY_RIGHT | |
| KEY_BACKSPACE | |
| KEY_F(1), ... | Funktionstaste F1, ... |
| KEY_END | |
| KEY_PRINT |
Beispiel
#include <curses.h>
#include <stdlib.h>
void quit(void)
{
endwin();
}
int main(void)
{
initscr();
atexit(quit);
clear();
noecho();
curs_set(0);
cbreak();
keypad(stdscr, TRUE);
mvaddstr(5, 5, "Hallo");
mvaddstr(6, 10, "Welt!");
mvaddstr(10, 1, "Programm beenden durch Drücken der Taste F1");
refresh();
while(getch() != KEY_F(1))
{
}
return(0);
}

Damit dieses Beispiel ordnungsgemäß funktioniert, muss die Zeilenpufferung und teilweise Einzelzeichenbearbeitung für das Textterminal ausgeschaltet sein. Sicherheitshalber sollte dieser "cbreak"-Modus explizit aktiviert werden, denn es ist nicht garantiert, dass sich das Terminal automatisch in diesem Modus befindet. Testweise kann in diesem Beispiel die cbreak-Funktion durch die nocbreak-Funktion ersetzt werden. Das Programm lässt sich dann nicht mehr durch Drücken der F1-Funktionstaste beenden. nocbreak() versetzt das Terminal wieder in den sogenannten "cooked"-Modus. Zusätzlich kann das Terminal auch noch mittel raw() in den "raw"-Modus versetzt werden. Dieser unterscheidet sich vom "cbreak"-Modus dadurch, dass die Einzelzeichenbearbeitung komplett ausgeschaltet wird, dem Prozess werden alle Zeichen unverarbeitet zur Verfügung gestellt. Im "cbreak"-Modus ließe sich das Programm notfalls auch noch durch die Tastenkombination CRTL-C beenden. Im "raw"-Modus würde dieses Zeichen keinen Interrupt mehr auslösen, sondern wie jedes normale Zeichen an das Programm weitergeleitet werden.
| <<< ncurses-Startseite | ncurses | << Inhaltsverzeichnis |
| < Farben und andere Attribute | Fenster > |