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.

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

1. Panellere eklenecek pencereler olu¸sturulur (newwin() <strong>ile</strong>)<br />

2. Görünme sırasına göre paneller olu¸sturulur. Görünmesi istenen sıraya göre bir yı˘gıt olu¸sturulur. Yeni panel<br />

olu¸sturmak için new_panel() i¸slevi kullanılır.<br />

3. Panelleri ekrana do˘gru görüntülenme sırasıyla yazmak için update_panels() i¸slevi kullanılır. Görüntülenmelerini<br />

sa˘glamak için ise doupdate() i¸slevi kullanılır.<br />

4. Panelleri düzenlemek için show_panel(), hide_panel(), move_panel() v.b. i¸slevler kullanılır.<br />

panel_hidden() ve panel_window() gibi yardımcı i¸slevlerden yararlanılır. Bir panelin kullanıcı<br />

göstericisini belirtmek ve bilgi almak için set_panel_userptr() ve panel_userptr()<br />

i¸slevleri kullanılır.<br />

5. Panel kullanımı bittikten sonra del_panel() <strong>ile</strong> panel silinir.<br />

Bazı programlar <strong>ile</strong> konuyu açıklı˘ga kavu¸sturalım. A¸sa˘gıda 3 tane üst üste çalı¸san panel olu¸sturup bunları<br />

ekranda gösteren bir program bulunmaktadır.<br />

16.2. Panel Kütüphanesi <strong>ile</strong> derleme<br />

Panel kütüphanesi i¸slevlerini kullanabilmek için panel.h ba¸slık dosyası programa dahil edilmeli ve programı<br />

panel kütüphanesi <strong>ile</strong> ilintili derlemek için –lpanel –lncurses seçenekleri kullanılmalıdır.<br />

#include .<br />

.<br />

.<br />

derleme ve ilint<strong>ile</strong>me: gcc program dosyası –lpanel –lncurses<br />

Örnek 14. Panellerin temelleri<br />

#include <br />

int main()<br />

{ WINDOW *my_wins[3];<br />

PANEL *my_panels[3];<br />

int lines = 10, cols = 40, y = 2, x = 4, i;<br />

initscr();<br />

cbreak();<br />

noecho();<br />

/* Paneller için pencereler olu¸sturun */<br />

my_wins[0] = newwin(lines, cols, y, x);<br />

my_wins[1] = newwin(lines, cols, y + 1, x + 5);<br />

my_wins[2] = newwin(lines, cols, y + 2, x + 10);<br />

/*<br />

* Pencereler etrafında çerçeve olu¸sturun<br />

* böylece Panel etk<strong>ile</strong>rini görebilirsiniz<br />

*/<br />

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

box(my_wins[i], 0, 0);<br />

/* Her pencereyi bir panele ba˘glayın. Sıralama alttan üste do˘gru */<br />

my_panels[0] = new_panel(my_wins[0]); /* 0’a it, sıra: stdscr–0 */<br />

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

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

Saved successfully!

Ooh no, something went wrong!