İlklendirme

Artık curses sisteminin ilklendirilmesi için initscr() işlevinin çağrılması gerektiğini biliyoruz. Bu ilklendirmeden sonra curses oturumuzu özelleştirmemizi sağlayan işlevler vardır. Curses sisteminden uçbirimi ham kipe ayarlamasını veya renkendirmeyi ilklendirmesini veya fareyi etkin kılmasını v.b. isteyebiliriz. initscr()'den hemen sonra çağrılan işlevler hakkında biraz konuşalım:

raw() ve cbreak()

Normal durumda uçbirim sürücüsü satırsonu veya satırbaşı karakteri ile karşılaşana kadar kullanıcın yazdığı karakterleri ön belleğine alır. Fakat bazı programlar kullanıcı yazar yazmaz karakterlerin erişilebilir olmasını ister. Yukarıdaki iki işlev satır önbelleğini etkisizleştirir. Bu iki işlev arasındaki fark duraklatma (CTRL-Z), kesme ve çıkış (CTRL-C) için kullanılan kontrol karakterlerinin programa gönderilme şeklidir. raw() kipinde bu karakterler herhangi bir sinyal üretilmeden programa gönderilir. cbreak() kipinde ise bu karakterler herhangi bir diğer karakter gibi uçbirim sürücüsü tarafından algılanır. Kullanıcının neler yaptığı üzerinde daha fazla hakimiyet sağladığıdan kişisel olarak raw()'ı tercih ediyorum.

echo() ve noecho()

Bu işlevler kullanıcı tarafından yazılan karakterlerin uçbirim penceresine yansıtılmasını kontrol eder. noecho() bu yansıtmayı etkisizleştirir. Bunu yapmanızın sebebi yazılanı ekrana yansıtmada daha fazla kontrol sağlanması veya getch() v.b. işlevler ile kullanıcıdan girdi alınırken gereksiz karakter gösterimlerinin önüne geçmektir. Kullanıcıyla etkileşimli pek çok yazılım ilklendirme sırasında noecho() işlevin çağırır ve karakterlerin ekrana yansıtılması işlemini kontrollü bir şekilde gerçeklştirir. Bu da programcıya o anki (y,x) koordinatlarını güncellemeden karakterlerin ekrana yansıtılması esnekliğini kazandırır.

keypad()

Bu benim en sevdiğim ilklendirme işlevim. F1, F2, ok tuşları, v.b gibi tuşların okunabilirliğini sağlar. Kullanıcı ile etkileşimli hemen her program ok tuşlarının bir kullanıcı arayüzünde vazgeçilmez olmasından dolayı bunu etkinleştirmektedir. keypad(stdscr, TRUE) ile öntanımlı olarak atanmış ekran için (stdscr) bu özelliğin etkin olmasını sağlayın. Klavye yönetimi hakkında daha fazla bilgiyi bu belgenin daha sonraki bölümlerinde öğreneceksiniz.

halfdelay()

Bu işlev çok sık kullanılmasa da, bazen oldukça yararlıdır. halfdelay(), cbreak() kipine benzer şekilde basılan karakterlerin program için edinilebilir olmasını sağlayan yarım-gecikme kipini etkinleştirir. Bununla beraber girdi için saniyenin 'X' * 10 birimi kadar bekleyip herhangi bir giriş yapılmazsa ERR geri döndürür. 'X', halfdelay() işlevine gönderilen zaman aşımı süresidir. Bu işlev kullanıcıdan bir girdi istediğiniz zaman kullanışlıdır, eğer belli zaman içerisinde bu giriş gerçeklemezse bir şeyler yapabiliriz. Muhtemel bir örnek olarak parola giriş ekranındaki zaman aşımı verilebilir.

Muhtelif İlklendirme İşlevleri

Curses davranışlarını ilklendirirken çağrılan bir kaç işlev daha vardır. Yukarıda belirtilenler kadar yoğun şekilde kullanılmazlar. Gerekli oldukları yerlerde bazıları açıklanmıştır.