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

box(win, 0, 0);<br />

mvwaddch(win, 2, 0, ACS_LTEE);<br />

mvwhline(win, 2, 1, ACS_HLINE, width – 2);<br />

mvwaddch(win, 2, width – 1, ACS_RTEE);<br />

print_in_middle(win, 1, 0, width, label, COLOR_PAIR(label_color));<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 />

16.4. Kullanıcı ˙I¸saretç<strong>ile</strong>rini Kullanmak<br />

Yukarıdaki örnekte sıralamadaki bir sonraki pencereyi bulmak için kullanıcı i¸saretç<strong>ile</strong>rini kullandım. Bir kullanıcı<br />

göstericisi tanımlayarak herhangi bir bilgiyi panele ba˘glayabilir ve saklamak istedi˘gimiz herhangi bir bilgiye<br />

i¸saret edebiliriz. Bu örnekte bir sonraki panel için kullandım. Kullanıcı i¸saretç<strong>ile</strong>ri set_panel_userptr() <strong>ile</strong><br />

tanımlanır. panel_userptr() <strong>ile</strong> parametre olarak ver<strong>ile</strong>n panele kullanıcı göstericisi döndürülür. Bir sonraki<br />

paneli bulduktan sonra i¸slem top_panel() i¸slevine geçmektedir. Bu i¸slev ver<strong>ile</strong>n paneli panel yı˘gını içerisinde<br />

en tepeye ta¸sır.<br />

16.5. Panelleri Hareket Ettirmek ve Boyutlandırmak<br />

move_panel() i¸slevi paneli istenen konuma ta¸sımak için kullanılabilir. Panelin yı˘gın içerisindeki konumunu<br />

de˘gi¸stirmez. Panele ba˘glı pencereler üzerinde mvwin() yerine move_panel() kullandı˘gınızdan emin olun.<br />

Bir paneli yeniden boyutlandırmak biraz karma¸sıktır. Do˘grudan bu i¸si yapacak bir i¸slev yoktur. Bir paneli<br />

yeniden boyutlandırmanın yolu istenen boyutlarda bir pencere olu¸sturmak ve replace_panel() <strong>ile</strong> boyutu<br />

de˘gi¸stirilmek istenen pencereyi de˘gi¸stirmektir. Eski pencereyi silmeyi unutmayın. Bir panele ba˘glı pencere<br />

panel_window() <strong>ile</strong> bulunabilir.<br />

A¸sa˘gıdaki program bahsed<strong>ile</strong>nleri basit bir ¸sekilde göstermektedir. Her zamanki gibi pencereler üzerinde sekme<br />

tu¸su <strong>ile</strong> hareket edebilirsiniz. Etkin paneli yeniden boyutlandırmak için ’r”ye ta¸sımak için ’m”ye basın. Daha<br />

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

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

Saved successfully!

Ooh no, something went wrong!