Olayları yakalamak

Bir kere bir fare sınıfı olayları etkin hale getirildi mi, getch() türü işlevler her fare olayı olduğunda KEY_MOUSE döndürürler. Daha sonra da fare olayı getmouse() ile alınabilir.

Kod yaklaşık olarak şuna benzer:

  MEVENT event;

  ch = getch();
  if(ch == KEY_MOUSE)
    if(getmouse(&event) == OK)
      /* Olay ile ilgili bir şeyler yap */
      .
      .

getmouse() olayı kendisine verilen göstericide döndürür. Göstericinin gösterdiği değer aşağıdakileri içeren bir yapıdır:

typedef struct
{
  short id;         /* Pekçok aygıtı tanımlamak için ID */
  int x, y, z;      /* olay koordinatları */
  mmask_t bstate;   /* tuş durumu bitleri */
}

bstate ilgilendiğimiz temel değişkendir. Farenin tuş durumu bilgisini verir.

Aşağıdakine benzer bir kodla ne olduğunu bulabiliriz.

  if(event.bstate & BUTTON1_PRESSED)
    printw("Sol Tuş Basıldı");