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