18.02.2013 Views

NCURSES ile Yazılım Geli¸stirme NASIL

NCURSES ile Yazılım Geli¸stirme NASIL

NCURSES ile Yazılım Geli¸stirme NASIL

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

}<br />

<strong>NCURSES</strong> <strong>ile</strong> Yazılım Geli¸stirme <strong>NASIL</strong><br />

printw("A¸sa˘gı gösteren ok "); addch(ACS_DARROW); printw("\n");<br />

printw("Yukarı gösteren ok "); addch(ACS_UARROW); printw("\n");<br />

printw("Diyez i¸sareti "); addch(ACS_BOARD); printw("\n");<br />

printw("˙Içi bo¸s kare "); addch(ACS_LANTERN); printw("\n");<br />

printw("˙Içi dolu kare blok "); addch(ACS_BLOCK); printw("\n");<br />

printw("Küçük/E¸sit i¸sareti "); addch(ACS_LEQUAL); printw("\n");<br />

printw("Büyük/E¸sit i¸sareti "); addch(ACS_GEQUAL); printw("\n");<br />

printw("Pi "); addch(ACS_PI); printw("\n");<br />

printw("E¸sit de˘gil "); addch(ACS_NEQUAL); printw("\n");<br />

printw("UK ound sembolü "); addch(ACS_STERLING); printw("\n");<br />

refresh();<br />

getch();<br />

endwin();<br />

return 0;<br />

15. Di ˘ger Kütüphaneler<br />

Curses kütüphanesinden ba¸ska daha fazla özellik ve i¸slevsellik sa˘glayan birkaç kütüphane daha vardır. Takip<br />

eden kısımlarda curses <strong>ile</strong> da˘gıtılan üç standart kütüphane incelenecektir.<br />

16. Panel Kütüphanesi<br />

Artık curses kullanımında yetenekli hale geldiniz ve daha büyük bir ¸seyler yapmak istiyorsunuzdur. Üst üste<br />

çalı¸san ve profosyonel bir pencere görünümü sa˘glayan bir sürü pencere olu¸sturdunuz. Ne yazık ki, bir süre<br />

sonra bunları idare etmek oldukça zor olacaktır. Çoklu tazeleme ve güncellemeler sizi bir kabusa itecektir. Üst<br />

üste çalı¸san pencereler, pencereleri do˘gru sırada tazelemeyi unuttu˘gunuzda büyük lekeler bırakır.<br />

Ümizsitli˘ge kapılmayın. Panel kütüphanesinde sunulmu¸s zekice bir çözüm bulunmaktadır. ncurses<br />

geli¸stiric<strong>ile</strong>rinin dünyasında ¸söyle denir:<br />

E˘ger arayüz tasarımınızda pencere yı˘gıtınız çok derinlere iniyorsa çalı¸sma zamanında bu<br />

pencereleri yı˘gıttan çekmek için durmadan düzenlemeler yapmak yorucu ve üstesinden gelinmez<br />

bir hal alabilir. Böylece kar¸sımıza panel kütüphanesi çıkar.<br />

E˘ger pekçok üst üste çalı¸san pencereniz varsa kullanmanız gereken panel kütüphanesidir. Seri ¸sekilde ve<br />

do˘gru sırada (yukardan a¸sa˘gı) wnoutrefresh() ve doupdate() bunun üstesinden gelir. Kütüphane,<br />

pencerelerin sıraları, üst üstelikleri hakkındaki bilg<strong>ile</strong>ri ve ekranı düzgün ¸sekilde güncelemekle ilgili i¸sleri yönetmektedir.<br />

O zaman ne duruyoruz? Panellere yakından bakalım.<br />

16.1. Temel Bilg<strong>ile</strong>r<br />

Panel nesneleri, içerisinde tüm di˘ger panel nesnelerini barındıran bir destenin parçası olarak i¸sleme örtük olarak<br />

alınan birer penceredir. Deste en üstteki panelin görünür oldu˘gu di˘gerlerinin konumlarına göre belirli veya belirsiz<br />

olab<strong>ile</strong>ce˘gi bir yı˘gın gibi davranı¸s gösterir. Dolayısiyle temel fikir üst üste çalı¸san panel yı˘gını olu¸sturmak ve panel<br />

kütüphanesini kullanarak bunları düzgün göstermektir. refresh()’e benzeyen ve ça˘grıldı˘gında panellerin<br />

düzgün gözükmesini sa˘glayan bir i¸slev vardır. Panelleri gösteren, gizleyen, hareket ettiren, boyutlarını de˘gi¸stiren,<br />

v.b. i¸slevler vardır. Üst üste çalı¸sma sorunu panel kütüphanesi tarafından tüm bu i¸slev ça˘grımları sırasında<br />

halledilir.<br />

Bir panel programının genel akı¸sı ¸suna benzer:<br />

http://belgeler.org Linux Kitaplı˘gı 38 / 90

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!