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

erinde rahatça i¸slem yapabilmemizi sa˘glar. Kullanımına hayran olmak için, kabuk betiklerinden etk<strong>ile</strong>¸simli <strong>ile</strong>t<strong>ile</strong>r<br />

çıkaran "dialog" uygulamasının kaynak koduna bakmalısınız. Geli¸stiric<strong>ile</strong>r ihtiyaç olab<strong>ile</strong>cek her renk için artalan<br />

ve karakter rengi türevlerini tanımlamı¸slar ve ba¸slangıçta ilklendirmi¸slerdir. Bu da halihazırda sabit olarak<br />

tanımlanmı¸s çiftlere eri¸sip görünüm özelliklerini ayarlamada kolaylık sa˘glamaktadır.<br />

A¸sa˘gıdaki renkler curses.h ba¸slık dosyasında tanımlanmı¸stır. Bunları pekçok renk i¸slevi için parametre olarak<br />

kullanabilirsiniz.<br />

COLOR_BLACK 0<br />

COLOR_RED 1<br />

COLOR_GREEN 2<br />

COLOR_YELLOW 3<br />

COLOR_BLUE 4<br />

COLOR_MAGENTA 5<br />

COLOR_CYAN 6<br />

COLOR_WHITE 7<br />

10.2. Renk Tanımlamalarını De ˘gi¸stirmek<br />

init_color() i¸slevi curses kipi ilklendirildi˘gindeki rgb de˘gerlerini de˘gi¸stirmek için kullanılabilir. Diyelim ki<br />

kırmızı rengin yo˘gunlu˘gunu biraz açmak istiyorsunuz. O zaman bu i¸slevi ¸su ¸sekilde kullanabilirsiniz:<br />

init_color(COLOR_RED, 700, 0, 0);<br />

/* 1. parametre : renk adı<br />

* 2, 3, 4. parametreler: rgb içeri˘gi; 0 <strong>ile</strong> 1000 arasında bir de˘ger */<br />

E˘ger kullandı˘gınız uçbirim renk tanımlamalarını de˘gi¸stiremiyorsa i¸slev ERR <strong>ile</strong> geri döner.<br />

can_change_color() i¸slevi uçbirimin renk içeri˘gini de˘gi¸stirme yetene˘gi olup olmadı˘gını ö˘grenmek için<br />

kullanılabilir. RGB içeri˘gi 0 dan 1000’e kadar ölçeklenmi¸stir. Kırmızı renk 1000(r), 0(g), 0(b) <strong>ile</strong> tanımlanmı¸stır.<br />

10.3. Renk ˙Içeri ˘gi<br />

color_content() ve pair_content() i¸slevleri renk içeri˘gini bulmak ve renk çifti için ön ve art alan<br />

bilgisini almak için kullanılabilir.<br />

11. Klavye <strong>ile</strong> etk<strong>ile</strong>¸sim<br />

11.1. Temel bilg<strong>ile</strong>r<br />

Hiçbir grafik kullanıcı arabirimi güçlü bir arayüze sahip olmadan tamamlanmı¸s sayılmaz ve kullanıcı <strong>ile</strong> etk<strong>ile</strong>¸simde<br />

olabilmek için bir curses programı tu¸s basımına veya fare hareketlerine duyarlı olmalıdır. Önce tu¸slarla<br />

ilg<strong>ile</strong>nelim.<br />

Önceki hemen her örnekte gördü˘günüz gibi kullanıcıdan klavye girdisi almak çok kolaydır. Tu¸s basımlarını<br />

almanın en basit yolu getch() i¸slevidir. Satır karakterlerinin tamamı yerine (genelde satır sonu karakteri <strong>ile</strong><br />

biter) tek bir karakter okunmasıyla ilg<strong>ile</strong>nirseniz cbreak kipi etkin hale getirilmelidir. ˙I¸slev, ok v.b. tu¸slarını<br />

kullanabilmek için tu¸s takımı etkin hale getirilmelidir. Ayrıntılar için ˙Ilklendirme (sayfa: 13) bölümüne bakınız.<br />

getch() komutu basılan tu¸sa uygun olarak bir tam sayı döndürür. E˘ger normal bir karakterse tam sayı de˘geri<br />

karaktere e¸sit olacaktır. Aksi halde curses.h ba¸slık dosyasında sabit olarak tanımlanmı¸s bir sayı <strong>ile</strong> döner.<br />

Örne˘gin kullanıcı F1’e basarsa geri dönen tam sayı de˘geri 265’tir. Bu, curses.h içerisinde tanımlanmı¸s olan<br />

KEY_F() makrosu kullanılarak kontrol ed<strong>ile</strong>bilir. Bu tu¸sları okumayı ve ta¸sınabilmelerini kolay ve üzerinde i¸slem<br />

yapılabilir hale getirmektedir.<br />

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

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

Saved successfully!

Ooh no, something went wrong!