Ncurses: Mausunterstützung
<<< ncurses-Startseite | ncurses | << Inhaltsverzeichnis |
< Formulare | Pads > |
Ncurses bietet Mausunterstützung. Standardmäßig ist diese Funktionalität deaktiviert. Zur Aktivierung ist die Funktion
mmask_t mousemask(mmask_t newmask, mmask_t *oldmask);
mit der gewünschten Bitmaske aufzurufen. Vordefinierte Masken sind (auszugsweise):
ALL_MOUSE_EVENTS | Alle möglichen Mausereignisse |
REPORT_MOUSE_POSITION | Mausposition melden |
BUTTON1_CLICKED | Maustaste 1 geklickt |
BUTTON1_DOUBLE_CLICKED | Maustaste 1 doppelgeklickt |
BUTTON2_CLICKED | Maustaste 2 geklickt |
BUTTON2_DOUBLE_CLICKED | Maustaste 2 doppelgeklickt |
BUTTON3_CLICKED | Maustaste 3 geklickt |
BUTTON3_DOUBLE_CLICKED | Maustaste 3 doppelgeklickt |
BUTTON_SHIFT | Zusätzlich SHIFT-Taste gedrückt |
BUTTON_CTRL | Zusätzlich STRG-Taste gedrückt |
BUTTON_ALT | Zusätzlich ALT-Taste gedrückt |
Die Abfrage des Auftretens eines durch die Mausmaske festgelegten sichtbaren Mausereignisses kann durch
int getmouse(MEVENT *event);
erfolgen.
Beispiel
Bearbeiten#include <ncurses.h> #include <stdlib.h>
MEVENT *mev;
void quit(void)
{
free(mev);
endwin();
}
int main(void)
{
int ch;
mev = (MEVENT *)malloc(sizeof(MEVENT));
initscr();
atexit(quit);
clear();
noecho();
curs_set(0);
cbreak();
keypad(stdscr, TRUE);
start_color();
mousemask(BUTTON1_CLICKED, 0);
init_pair(1, COLOR_YELLOW, COLOR_BLUE); bkgd(COLOR_PAIR(1)); mvaddstr(5, 3, „Programm durch anklicken der Maustaste 1 beenden“); refresh();
for(;;) { ch=getch();
switch(ch) { case KEY_MOUSE: { if(getmouse(mev) == OK) { exit(0); } } } } return (0); }
<<< ncurses-Startseite | ncurses | << Inhaltsverzeichnis |
< Formulare | Pads > |