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 />

}<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

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

Saved successfully!

Ooh no, something went wrong!