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.

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

ö˘geye hareket ettirir. REQ_CLEAR_PATTERN iste˘gi örüntü belle˘gini s<strong>ile</strong>r. REQ_BACK_PATTERN iste˘gi<br />

örüntü belle˘gindeki bir önceki karakteri s<strong>ile</strong>r. Örüntünün birden fazla ö˘ge <strong>ile</strong> e¸slemesi halinde e¸sle¸sen<br />

ö˘geler REQ_NEXT_MATCH ve REQ_PREV_MATCH <strong>ile</strong> seçim üzerinden sonraki veya öncekine hareket<br />

sa˘glanabilir.<br />

Fare ˙Istekleri<br />

KEY_MOUSE istekleri durumunda farenin konumuna göre bir davranı¸s serg<strong>ile</strong>nir. Göster<strong>ile</strong>cek davranı¸s<br />

kılavuz sayfalarında açıklanmı¸stır:<br />

E˘ger ikinci parametre KEY_MOUSE özel karakteri ise bununla<br />

ili¸skili fare olayı, yukarıda önceden tanımlanmı¸s isteklere<br />

çevrilir. Sadece kullanıcı penceresindeki (örn. menü görüntü<br />

alanı veya dekor penceresi) tıklamalar i¸slenir. Menünün<br />

görüntülenebilir alanı üzerine tıklanırsa REQ_SCR_ULINE üretilir,<br />

e˘ger çift tıklarsanız REQ_SCR_UPAGE üretilir ve e˘ger üç kere<br />

tıklarsanız REQ_FIRST_ITEM üretilir. E˘ger menü görüntüleme<br />

alanı a¸sa˘gısına tıklanırsa REQ_SCR_DLINE üretilir, e˘ger iki kere<br />

tıklanırsa REQ_SCR_DPAGE üretilir ve e˘ger üç kere tıklanırsa<br />

REQ_LAST_ITEM üretilir. E˘ger menü görüntüleme alanının<br />

içerisinde bir ö˘geye tıklanırsa menü imleci bu ö˘geye konumlanır.<br />

Yukarıdaki isteklerin her biri takip eden satırlarda de˘gi¸sik örneklerle gerekli oldukça açıklanacaktır.<br />

17.4. Menü Pencereleri<br />

Olu¸sturulan her bir menü bir pencere ve bir alt menü <strong>ile</strong> ili¸siklendirilir. Menü penceresi menü <strong>ile</strong> ili¸siklendirilmi¸s<br />

herhangi bir ba¸slı˘gı veya çerçeveyi gösterir. Menü alt penceresi seçimi mümkün olan menü ö˘gelerini gösterir.<br />

Fakat basit örnekte herhangi bir pencere veya alt pencere belirtmedik. Bir pencere belirtilmedi˘gi zaman, temel<br />

pencere olarak stdscr alınır ve daha sonra menü sistemi ö˘gelerin gösterimi için pencere büyüklü˘günü ayarlar.<br />

Daha sonra ö˘geler hesaplanmı¸s alt menüde gösterilir. Öyleyse ¸simdi bu pencerelerle oynayıp bir çerçeve ve<br />

ba¸slıkla bir menü gösterelim.<br />

Örnek 19. Menü Pencereleri Kullanım örne ˘gi<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 />

"Choice 4",<br />

"Exit",<br />

(char *)NULL,<br />

};<br />

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

char *string, chtype color);<br />

int main()<br />

{ ITEM **my_items;<br />

int c;<br />

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

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

Saved successfully!

Ooh no, something went wrong!