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

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

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

Saved successfully!

Ooh no, something went wrong!