Zum Inhalt springen

Ncurses: Mausunterstützung

Aus Wikibooks


<<< 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 >