Fiziksel ve Mantıksal İmleç
Önceki Ncurses'a Giriş Sonraki
Fiziksel ve Mantıksal İmleç
ncurses ile pencerelere yazmak ve pencerelerden okumak sözkonusu olduğu zaman mantıksal ve fiziksel imleç kavramlarına da değinmek gerekir. Fiziksel imleçten kasıt yanıp sönerek sürekli ekranda görünen bildiğimiz imleçtir ve bir tanedir. Mantıksal imleçler ise ncurses pencerelerine ait olan ve her pencerenin mutlaka sahip olduğu başka imleçlerdir. Birden çok pencere olabileceğine göre mantıksal imleç de birden fazla olabilir.
Mantıksal imlecin görevi pencereye bir yazı yazılacağı zaman yazma işleminin başlayacağı ya da pencereden bir bilgi okunacağı zaman bu bilginin okunacağı kareyi göstermektir. Mantıksal imleci isteğinize göre hareket ettirebilmeniz demek ekranın ya da oluşturduğunuz pencerenin istediğiniz karesine istediğiniz zaman yazı yazabilmeniz anlamına gelir. Bu, standart giriş/çıkış kütüphanesinin sağlamadığı bir avantajdır.
İmleçlerin hareket ettirilmesi işini yapan işlev move ya da hemen tahmin edeceğiniz üzere wmove işlevleridir. move işlevi wmove işlevinin stdscr için yazılmış bir makrosudur.
Bir de mantıksal imleç ile fiziksel imlecin koordinasyonunun sağlanması durumu sözkonusudur. Herhangi bir yazma işleminin ardından fiziksel imlecin bulunacağı konum, her pencerenin sahip olduğu _leave bayrağının değerine bakılarak kararlaştırılır. Eğer _leave doğruysa, mantıksal imleç yazma işleminden sonra fiziksel imlecin üzerine (son harfin yazıldığı kareye) getirilir. Eğer _leave yanlışsa, fiziksel imleç mantıksal imlecin bulunduğu kareye (ilk harfin yazıldığı kareye) geri getirilir. _leave bayrağını yöneten işlev leaveok işlevidir.
Fiziksel imlecin hareket ettirilmesini sağlayan işlev mvcur işlevidir. Diğer işlevlerden farklı olarak mvcur işlevi bir sonraki refresh'te değil, hemen etkin olur. Fiziksel imlecin ekranda görünmesini istemiyorsanız, curs_set işlevini ilgili parametreleri ile kullanabilirsiniz. Ayrıntılar için man sayfalarına bakınız.
Yukarıda bahsettiğim imleci hareket ettirme ve yazı yazma işlemlerini tek bir çağrı ile de yapabilirsiniz. Bu, işlev çağrılarını birleştiren makroların varlığı sayesinde mümkündür. Bu çağrılar da addch, addstr, printw, getch, getstr, scanw işlevlerinin man sayfalarında ayrıntılı olarak açıklanmıştır.
Önceki Üst Ana Başlık Sonraki
Pencerelere Yazma ve Pencerelerden Okuma Başlangıç Pencerelerin Temizlenmesi
Bir Linux Kitaplığı Sayfası