You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
}<br />
}<br />
}<br />
<strong>NCURSES</strong> <strong>ile</strong> Yazılım Geli¸stirme <strong>NASIL</strong><br />
for(i = 0; i < item_count(my_menu); ++i)<br />
if(item_value(items[i]) == TRUE)<br />
{ strcat(temp, item_name(items[i]));<br />
strcat(temp, " ");<br />
}<br />
move(20, 0);<br />
clrtoeol();<br />
mvprintw(20, 0, temp);<br />
refresh();<br />
}<br />
break;<br />
free_item(my_items[0]);<br />
free_item(my_items[1]);<br />
free_menu(my_menu);<br />
endwin();<br />
Vay canına, bir sürü yeni i¸slev daha. Teker teker her birini ele alalım. ˙Ilk olarak REQ_TOGGLE_ITEM <strong>ile</strong><br />
ba¸slayalım. Çok de˘gerli bir menüde kullanıcı birden fazla ö˘ge seçebilmeli veya seçimi iptal edebilmelidir.<br />
REQ_TOGGLE_ITEM iste˘gi o anki seçimi de˘gi¸stirir (etkinle¸stirme veya iptal etme). Bu durumda space tu¸suna<br />
basıldı˘gında REQ_TOGGLE_ITEM iste˘gi menu_driver’a sonucu gerçekle¸stirmek için gönderilir.<br />
˙I¸ste ¸simdi kullanıcı ’a bastı˘gında onun seçti˘gi ö˘geleri görürüz. Önce menü <strong>ile</strong> ili¸siklendirilmi¸s ö˘geleri<br />
menu_items() i¸slevini kullanarak bulduk. Daha sonra ö˘genin seçili mi de˘gil mi oldu˘gunu anlamak için ö˘geler<br />
üzerinde gezindik. E˘ger ö˘ge seçiliyse item_value() i¸slevi TRUE döndürür. item_count() i¸slevi menüdeki<br />
ö˘ge sayısını döndürür. Ayrıca ö˘ge açıklamalarını item_description() <strong>ile</strong> alabilirsiniz.<br />
17.8. Menü Seçenekleri<br />
Evet, ¸simdi artık menünüzde pekçok özellikler <strong>ile</strong> birtakım farklılıklar olu¸sturmak için can atıyorsunuzdur. Biliyorum.<br />
Renk istiyorsunuz!!! Metin kipinde çalı¸san ¸su dos oyunları (B24) gibi ho¸s menüler olu¸sturmak istiyorsunuz.<br />
set_menu_fore() ve set_menu_back() i¸slevleri seçili ö˘genin görünüm özelliklerini de˘gi¸stirmek için kullanılır.<br />
˙Isimleri yanıltıcıdır. Hiçbir i¸se yaramayacak olan menünün ön ve arka fon renklerini de˘gi¸stirmezler.<br />
set_menu_grey() i¸slevi menüdeki seç<strong>ile</strong>mez ö˘gelerinin görünüm özelliklerini de˘gi¸stirmek için kullanılır. Bu<br />
da bizi bir ö˘ge için oldukça ilginç ve tekil olan O_SELECTABLE’a getirmektedir. Bunu item_opts_off()<br />
i¸slevi <strong>ile</strong> kapatabiliriz ve bundan sonra ö˘ge seç<strong>ile</strong>mez hale gelir. Bu durum ¸su ho¸s pencere menülerindeki gri<br />
ö˘ge durumuna benzemektedir. Bütün bunları prati˘ge bir örnekle dökelim.<br />
Örnek 23. Menü Seçenekleri Ö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 />
"Choice 5",<br />
http://belgeler.org Linux Kitaplı˘gı 63 / 90