| <<< 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
#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 > |
This article is issued from Wikibooks. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.