Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
int main()<br />
{ ITEM **my_items;<br />
int c;<br />
MENU *my_menu;<br />
int n_choices, i;<br />
ITEM *cur_item;<br />
}<br />
initscr();<br />
cbreak();<br />
noecho();<br />
keypad(stdscr, TRUE);<br />
<strong>NCURSES</strong> <strong>ile</strong> Yazılım Geli¸stirme <strong>NASIL</strong><br />
n_choices = ARRAY_SIZE(choices);<br />
my_items = (ITEM **)calloc(n_choices + 1, sizeof(ITEM *));<br />
for(i = 0; i < n_choices; ++i)<br />
my_items[i] = new_item(choices[i], choices[i]);<br />
my_items[n_choices] = (ITEM *)NULL;<br />
my_menu = new_menu((ITEM **)my_items);<br />
mvprintw(LINES – 2, 0, "F1 to Exit");<br />
post_menu(my_menu);<br />
refresh();<br />
wh<strong>ile</strong>((c = getch()) != KEY_F(1))<br />
{ switch(c)<br />
{ case KEY_DOWN:<br />
menu_driver(my_menu, REQ_DOWN_ITEM);<br />
break;<br />
case KEY_UP:<br />
menu_driver(my_menu, REQ_UP_ITEM);<br />
break;<br />
}<br />
}<br />
free_item(my_items[0]);<br />
free_item(my_items[1]);<br />
free_menu(my_menu);<br />
endwin();<br />
Bu program menü kütüphanesi kullanılarak bir menü olu¸sturmanın temel adımlarını göstermektedir. Öncelikle<br />
new_item() <strong>ile</strong> ö˘geleri olu¸sturup onları daha sonra new_menu() <strong>ile</strong> menüye ekleyerek menüyü ilklendirdik.<br />
Menüyü ekrana yazdırıp ekranı tazeledikten sonra ana i¸slem döngüsü ba¸slamaktadır. Kullanıcı girdisini alarak<br />
buna kar¸sılık gelen i¸slemi gerçekle¸stirmektedir. menu_driver() i¸slevi menü sisteminin dolap beygiridir. Bu<br />
i¸slevin ikinci parametresi menü <strong>ile</strong> ilgili ne yapılaca˘gını söyler. Parametreye göre, menu_driver() kar¸sılık<br />
gelen görevi yapmaktadır. Parametre de˘geri, bir menü gezinti iste˘gi, bir ascii karakter veya bir tu¸s <strong>ile</strong> ili¸skili<br />
KEY_MOUSE özel anahtarı olabilir.<br />
menu_driver a¸sa˘gıdaki istekleri kabul eder.<br />
REQ_LEFT_ITEM Bir ö˘genin soluna hareket et<br />
REQ_RIGHT_ITEM Bir ö˘genin sa˘gına hareket et<br />
REQ_UP_ITEM Bir ö˘genin üstüne hareket et<br />
REQ_DOWN_ITEM Bir ö˘genin altına hareket et<br />
http://belgeler.org Linux Kitaplı˘gı 52 / 90