<<< 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_EVENTSAlle möglichen Mausereignisse
REPORT_MOUSE_POSITIONMausposition melden
BUTTON1_CLICKEDMaustaste 1 geklickt
BUTTON1_DOUBLE_CLICKEDMaustaste 1 doppelgeklickt
BUTTON2_CLICKEDMaustaste 2 geklickt
BUTTON2_DOUBLE_CLICKEDMaustaste 2 doppelgeklickt
BUTTON3_CLICKEDMaustaste 3 geklickt
BUTTON3_DOUBLE_CLICKEDMaustaste 3 doppelgeklickt
BUTTON_SHIFTZusätzlich SHIFT-Taste gedrückt
BUTTON_CTRLZusätzlich STRG-Taste gedrückt
BUTTON_ALTZusä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.