Yeni Pencerelerin Oluşturulması
Önceki Ncurses'a Giriş Sonraki
Yeni Pencerelerin Oluşturulması
Şimdi kendi pencerelerinizi oluşturmanızı sağlayan subwin ve newwin işlevlerindan bahsedelim. Bu iki işlev de parametre olarak oluşturmak istediğiniz pencerenin enini, boyunu, sol üst köşesinin koordinatlarını alırlar. Dönüş değerleri ise yeni pencereyi temsil eden bir WINDOW * türünde bir pencere akımıdır. Bu yeni akımı yukarıda bahsettiğim wrefresh ve daha sonra bahsedeceğim diğer işlevlerle birlikte kullanabilirsiniz.
"Madem aynı işi yapıyorlar, neden iki tane işlev var?" diye düşünebilirsiniz. Haklısınız, tam olarak aynı işi yapmıyorlar. subwin işlevi yeni oluşturulan pencereyi bir başka pencerenin alt penceresi olarak oluşturur. Bu şekilde oluşturulan pencere ana pencerenin o anki tüm özelliklerini miras alır. Bu özellikler daha sonra ana pencereden bağımsız olarak değiştirilebilir. Bu durum ana pencere ile alt pencereyi birbirine bağlayan bir durum değildir.
Bunun dışında ana ve alt pencereyi birbirine bağlayan bir özellik vardır: Pencere içeriğinin tutulduğu karakter dizisi ana ve alt pencereler için ortaktır. Diğer bir deyişle, ana pencere ile alt pencerenin kesiştiği bir noktadaki karakter her iki pencere tarafından da değiştirilebilir. Böyle bir kareye alt pencere yazarsa ana pencerenin, ana pencere yazarsa alt pencerenin o noktadaki karakterinin üzerine yazılır.
newwin ise tamamiyle yeni bir pencere oluşturur. Böyle bir pencere, kendi alt pencereleri olmadığı sürece karakter dizisini başka pencerelerle paylaşmaz. subwin işlevini kullanmanın yararı, ortak karakter dizisi kullanımı sebebiyle daha az bellek tüketilmesidir. Ancak pencerelerin birbirlerinin bilgilerinin üzerine yazmasının istenmediği durumlarda newwin kullanmak doğru harekettir.
Alt pencerelerinizi koşullar elverdiği sürece istediğiniz derinlikte oluşturabilirsiniz. Her alt pencerenin de kendi alt pencereleri olabilir, fakat bu durumda aynı karakter dizisini ikiden de fazla pencerenin paylaştığını unutmayın.
Oluşturduğunuz pencerelerle işiniz bittiğinde delwin işleviyle onları yokedebilirsiniz. İşlevlerin parametrelerini öğrenmek için man sayfalarına bakmanızı tavsiye ederim.
Önceki Üst Ana Başlık Sonraki
Ekran Görüntüsünün Tazelenmesi Başlangıç Pencerelere Yazma ve Pencerelerden Okuma
Bir Linux Kitaplığı Sayfası