Pencereler Hakkında Bir Çift Söz

Bir sürü ncurses işlevine dalmadan önce pencereler hakkında bir iki şeyi açıklığa kavuşturmama müsade edin. Pencereler bölümünde ayrıntılı şekilde açıklanmıştır.

Pencere, curses sistemi tarafından tanımlanan hayali bir ekrandır. Pencere, genellikle Win9X ortamında gördüğünüz çerçeveli pencereler anlamına gelmemektedir. Curses ilklendirildiği zaman stdscr isminde sizin 80x25 boyutlarındaki (veya çalıştığınız pencerenin boyutu) ekranınızı temsil eden varsayılan bir pencere oluşturur. Bazı dizgelerin ekrana yazılması, giriş okuma v.b. gibi basit işler yapıyorsanız bu tek pencereyi tüm amaçlarınız için güvenle kullanabiliriniz. Ayrıca pencereler oluşturabilir ve belirtilen pencere üzerinde açık şekilde çalışacak işlevler çağırabilirsiniz.

Örneğin şu işlevi çağırırsanız

  printw("Selam millet !!!");
  refresh();

Dizgeyi imlecin o anki konumunda stdscr üzerinde yazacaktır. Benzer şekilde refresh() çağrısı sadece stdscr üzerinde çalışır.

Artık bir pencere oluşturduğunuzu söyleyebilirsiniz ve bundan sonra bildik C işlevlerini 'w' eklenmiş olarak çağırabilirsiniz.

  wprintw(win, "Selam millet !!!");
  wrefresh(win);

Belgenin geri kalanında göreceğiniz gibi işlevlerin isimlendirilmesi aynı öngörüye dahildir. Her işlev için genelde üç tane daha işlev vardır.

printw(dizge);
  stdscr üzerine kursorun bulunduğu konumdan itibaren yazar.
mvprintw(y, x, dizge);
  (y, x) konumuna gider ve dizgeyi oraya yazar.
wprintw(win, dizge);
  Pencere içerisinde imlecin bulunduğu yerden itibaren
  win isimli pencereye yazar
mvwprintw(win, y, x, dizge);
  pencereye göre (y, x) koordinatlarına git ve dizgeyi buraya yaz

Genelde w'siz işlevler, karşılık gelen w'li işlevlere pencere değişkeni olarak stdscr aktarılan makrolardır.