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

<strong>NCURSES</strong> <strong>ile</strong> Yazılım Geli¸stirme <strong>NASIL</strong><br />

/* Menüyü ekrandan sil ve tahsis ed<strong>ile</strong>n belle˘gi geri ver */<br />

unpost_menu(my_menu);<br />

free_menu(my_menu);<br />

for(i = 0; i < n_choices; ++i)<br />

free_item(my_items[i]);<br />

endwin();<br />

void print_in_middle(WINDOW *win, int starty, int startx, int width,<br />

char *string, chtype color)<br />

{ int length, x, y;<br />

float temp;<br />

}<br />

if(win == NULL)<br />

win = stdscr;<br />

getyx(win, y, x);<br />

if(startx != 0)<br />

x = startx;<br />

if(starty != 0)<br />

y = starty;<br />

if(width == 0)<br />

width = 80;<br />

length = strlen(string);<br />

temp = (width – length)/ 2;<br />

x = startx + (int)temp;<br />

wattron(win, color);<br />

mvwprintw(win, y, x, "%s", string);<br />

wattroff(win, color);<br />

refresh();<br />

Bu örnek bir ba¸slık, çerçeve ve ö˘gelerle ba¸slı˘gı ayıran ho¸s bir çizgiye sahip bir menü olu¸sturur. Gördü˘günüz<br />

gibi, bir pencereyi bir menüye ili¸siklendirmek için set_menu_win() i¸slevi kullanılmak zorundadır. Böylece<br />

alt pencereyi de ba˘glamı¸s oluruz. Bu, ö˘geleri alt pencerede gösterir. Seç<strong>ile</strong>n ö˘genin sol tarafında gözüken<br />

i¸saretleme dizgesini set_menu_mark() <strong>ile</strong> ayarlayabilirsiniz.<br />

17.5. Kaydırılab<strong>ile</strong>n Menüler<br />

E˘ger pencere için olu¸san alt pencere tüm ö˘geler için yeterince büyük de˘gilse o zaman menü kaydırılabilir olur.<br />

O anki listedeki son ö˘gede oldu˘gunuzda e˘ger REQ_DOWN_ITEM iste˘gini gönderirseniz REQ_SCR_DLINE’e<br />

çevrilir ve menü bir adım a¸sa˘gı kayar. El <strong>ile</strong> de REQ_SCR_ isteklerini kaydırma i¸slemi için verebilirsiniz. Nasıl<br />

yapılab<strong>ile</strong>ce˘gine bakalım:<br />

Örnek 20. Kaydırılabilir Menü örne ˘gi<br />

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

http://belgeler.org Linux Kitaplı˘gı 56 / 90

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

Saved successfully!

Ooh no, something went wrong!