chgat() işlevleri

chgat() işlevi, curs_attr kılavuz sayfalarının sonunda listelenmiştir. Aslında faydalı bir işlevdir. Belli karakterlere hareket etmeden öznitelikleri kazandırmak için kullanılabilir. İmleci hareket ettirmeden !!! demek istedim :-). O anki imleç konumundan itibaren belirtilen sayıdaki öznitelik değiştirilebilir.

Karakter sayısı olarak -1 vererek satır sonuna kadar güncelleyebiliriz. O anki konumdan satır sonuna kadar öznitelikleri değiştirmek için sadece şunu kullanın:

chgat(-1, A_REVERSE, 0, NULL);

Bu işlev halihazırda ekranda olan karakterlerin özniteliklerini değiştirmek için faydalıdır. Değiştirmek istediğiniz karaktere konumlanın ve özniteliğini değiştirin.

wchgat(), mvchgat(), wchgat() işlevleri de belirtilen pencere üzerinde çalışmaları dışında benzerdir. mv işlevleri önce imleci hareket ettirip daha sonra kendilerine verilen işi yapar. Aslında chgat, wchgat() işlevinin pencere parametresi olarak stdscr'yi aldığı duruma bir makrodur. Pekçok "w'siz" işlev aslında birer makrodur.

Örnek 5.11. chgat() Kullanım Örneği

#include <ncurses.h>

int main(int argc, char *argv[])
{ initscr();                      /* Curses kipine başlama  */
  start_color();                  /* Renk özelliği etkin    */

  init_pair(1, COLOR_CYAN, COLOR_BLACK);
  printw("Yazmaya üsendigim oldukça uzun bir dizge ");
  mvchgat(0, 0, -1, A_BLINK, 1, NULL);
  /*
    * İlk iki parametre başlangıç konumunu
    * üçüncü parametre güncellenecek karakter sayısını belirtir.
    * -1 satır sonuna kadar demektir.
    * Dördüncü parametre karaktere kazandırmak istediğiniz özniteliktir
    * Beşincisi renk indisidir. init_pair() sırasında verilen indistir.
    * Renk istemiyorsanız 0 kullanın.
    * Altıncısı her zaman NULL değerdir.
    */
  refresh();
  getch();
  endwin();                       /* Curses kipi sonu  */
  return 0;
}

Bu örnek aynı zamanda curses dünyasının renk kullanımını da göstermektedir. Renkler konusu daha sonra ayrıntılı olarak açıklanacaktır. Renkli görüntü istemiyorsanız 0 kullanın.