You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>NCURSES</strong> <strong>ile</strong> Yazılım Geli¸stirme <strong>NASIL</strong><br />
ö˘geye hareket ettirir. REQ_CLEAR_PATTERN iste˘gi örüntü belle˘gini s<strong>ile</strong>r. REQ_BACK_PATTERN iste˘gi<br />
örüntü belle˘gindeki bir önceki karakteri s<strong>ile</strong>r. Örüntünün birden fazla ö˘ge <strong>ile</strong> e¸slemesi halinde e¸sle¸sen<br />
ö˘geler REQ_NEXT_MATCH ve REQ_PREV_MATCH <strong>ile</strong> seçim üzerinden sonraki veya öncekine hareket<br />
sa˘glanabilir.<br />
Fare ˙Istekleri<br />
KEY_MOUSE istekleri durumunda farenin konumuna göre bir davranı¸s serg<strong>ile</strong>nir. Göster<strong>ile</strong>cek davranı¸s<br />
kılavuz sayfalarında açıklanmı¸stır:<br />
E˘ger ikinci parametre KEY_MOUSE özel karakteri ise bununla<br />
ili¸skili fare olayı, yukarıda önceden tanımlanmı¸s isteklere<br />
çevrilir. Sadece kullanıcı penceresindeki (örn. menü görüntü<br />
alanı veya dekor penceresi) tıklamalar i¸slenir. Menünün<br />
görüntülenebilir alanı üzerine tıklanırsa REQ_SCR_ULINE üretilir,<br />
e˘ger çift tıklarsanız REQ_SCR_UPAGE üretilir ve e˘ger üç kere<br />
tıklarsanız REQ_FIRST_ITEM üretilir. E˘ger menü görüntüleme<br />
alanı a¸sa˘gısına tıklanırsa REQ_SCR_DLINE üretilir, e˘ger iki kere<br />
tıklanırsa REQ_SCR_DPAGE üretilir ve e˘ger üç kere tıklanırsa<br />
REQ_LAST_ITEM üretilir. E˘ger menü görüntüleme alanının<br />
içerisinde bir ö˘geye tıklanırsa menü imleci bu ö˘geye konumlanır.<br />
Yukarıdaki isteklerin her biri takip eden satırlarda de˘gi¸sik örneklerle gerekli oldukça açıklanacaktır.<br />
17.4. Menü Pencereleri<br />
Olu¸sturulan her bir menü bir pencere ve bir alt menü <strong>ile</strong> ili¸siklendirilir. Menü penceresi menü <strong>ile</strong> ili¸siklendirilmi¸s<br />
herhangi bir ba¸slı˘gı veya çerçeveyi gösterir. Menü alt penceresi seçimi mümkün olan menü ö˘gelerini gösterir.<br />
Fakat basit örnekte herhangi bir pencere veya alt pencere belirtmedik. Bir pencere belirtilmedi˘gi zaman, temel<br />
pencere olarak stdscr alınır ve daha sonra menü sistemi ö˘gelerin gösterimi için pencere büyüklü˘günü ayarlar.<br />
Daha sonra ö˘geler hesaplanmı¸s alt menüde gösterilir. Öyleyse ¸simdi bu pencerelerle oynayıp bir çerçeve ve<br />
ba¸slıkla bir menü gösterelim.<br />
Örnek 19. Menü Pencereleri Kullanım örne ˘gi<br />
#include <br />
#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))<br />
#define CTRLD 4<br />
char *choices[] = {<br />
"Choice 1",<br />
"Choice 2",<br />
"Choice 3",<br />
"Choice 4",<br />
"Exit",<br />
(char *)NULL,<br />
};<br />
void print_in_middle(WINDOW *win, int starty, int startx, int width,<br />
char *string, chtype color);<br />
int main()<br />
{ ITEM **my_items;<br />
int c;<br />
http://belgeler.org Linux Kitaplı˘gı 54 / 90