NCURSES ile Yazılım Geliştirme NASIL

Çeviren: Oğuz Yarımtepe

Yazan: Pradeep Padala

Yasal Açıklamalar

Bu belgenin, NCURSES ile Yazılım Geliştirme NASIL çevirisinin 1.0 sürümünün telif hakkı © 2005 Oğuz Yarımtepe'ye, özgün İngilizce sürümünün telif hakkı © 2001-2004 Pradeep Padala'ya aittir.

Bu yazılımın bir kopyasını ve beraberindeki belgelendirmeleri edinen herhangi birine sınırlama olmaksızın kullanma, kopyalama, değiştirme, birleştirme, yayınlama, dağıtma, değiştirerek dağıtma, alt lisanslar oluşturma ve/veya yazılımın kopyalarını satma ve bu yazılıma sahip olanlara da aynı hakları sağlayacak şekilde yazılım ile ilgilenme izni bedelsiz olarak aşağıdaki durumlar altında sağlanmıştır:

Yukarıdaki telif hakkı ve bu izin uyarısı bu belgenin tüm kopyalarında ve yazılımın esas bölümlerinde belirtilmelidir.

BU BELGE "ÜCRETSİZ" OLARAK RUHSATLANDIĞI İÇİN, İÇERDİĞİ BİLGİLER İÇİN İLGİLİ KANUNLARIN İZİN VERDİĞİ ÖLÇÜDE HERHANGİ BİR GARANTİ VERİLMEMEKTEDİR. AKSİ YAZILI OLARAK BELİRTİLMEDİĞİ MÜDDETÇE TELİF HAKKI SAHİPLERİ VE/VEYA BAŞKA ŞAHISLAR BELGEYİ "OLDUĞU GİBİ", AŞİKAR VEYA ZIMNEN, SATILABİLİRLİĞİ VEYA HERHANGİ BİR AMACA UYGUNLUĞU DA DAHİL OLMAK ÜZERE HİÇBİR GARANTİ VERMEKSİZİN DAĞITMAKTADIRLAR. BİLGİNİN KALİTESİ İLE İLGİLİ TÜM SORUNLAR SİZE AİTTİR. HERHANGİ BİR HATALI BİLGİDEN DOLAYI DOĞABİLECEK OLAN BÜTÜN SERVİS, TAMİR VEYA DÜZELTME MASRAFLARI SİZE AİTTİR.

İLGİLİ KANUNUN İCBAR ETTİĞİ DURUMLAR VEYA YAZILI ANLAŞMA HARİCİNDE HERHANGİ BİR ŞEKİLDE TELİF HAKKI SAHİBİ VEYA YUKARIDA İZİN VERİLDİĞİ ŞEKİLDE BELGEYİ DEĞİŞTİREN VEYA YENİDEN DAĞITAN HERHANGİ BİR KİŞİ, BİLGİNİN KULLANIMI VEYA KULLANILAMAMASI (VEYA VERİ KAYBI OLUŞMASI, VERİNİN YANLIŞ HALE GELMESİ, SİZİN VEYA ÜÇÜNCÜ ŞAHISLARIN ZARARA UĞRAMASI VEYA BİLGİLERİN BAŞKA BİLGİLERLE UYUMSUZ OLMASI) YÜZÜNDEN OLUŞAN GENEL, ÖZEL, DOĞRUDAN YA DA DOLAYLI HERHANGİ BİR ZARARDAN, BÖYLE BİR TAZMİNAT TALEBİ TELİF HAKKI SAHİBİ VEYA İLGİLİ KİŞİYE BİLDİRİLMİŞ OLSA DAHİ, SORUMLU DEĞİLDİR.

Tüm telif hakları aksi özellikle belirtilmediği sürece sahibine aittir. Belge içinde geçen herhangi bir terim, bir ticari isim ya da kuruma itibar kazandırma olarak algılanmamalıdır. Bir ürün ya da markanın kullanılmış olması ona onay verildiği anlamında görülmemelidir.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, distribute with modifications, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Except as contained in this notice, the name(s) of the above copyright holders shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization.

Ekim 2005

v1.9, 2005-06-20

Bu çevirinin sürüm bilgileri:

Gelişim
Sürüm 1.0Aralık 2005OY
İlk çeviri
 

Özgün belgenin sürüm bilgileri:

Gelişim
Sürüm 1.92005-06-20ppadala
Lisans NCURSES tarafından kullanılan MIT-türü lisansa dönüştürüldü. Program da bunun altında tekrar lisanslandırıldı.
 
Sürüm 1.82005-06-17ppadala
Pekçok güncelleme yapıldı. Referanslar ve perl örnekleri eklendi. Pekçok dil bilgisi ve stil değişikliği içeriğe eklendi. NCURSES tarihçesinde değişiklik yapıldı.
 
Sürüm 1.7.12002-06-25ppadala
Kaynak koddan kurulum için README dosyası ve talimatlar eklendi.
 
Sürüm 1.72002-06-25ppadala
"Diğer biçimler" kısmı eklendi ve programda pekçok hoş görünümlü değişiklik yapıldı. Satır içi programlar çıkarıldı.
 
Sürüm 1.6.12002-02-24ppadala
Eski Değişiklik Kaydı (Changelog) kısmı çıkarıldı, programı oluşturmak için kullanılan dosyalar (makefiles) temizlendi.
 
Sürüm 1.62002-02-16ppadala
Pekçok yazım hatası düzeltildi, ACS değişkenleri eklendi
 
Sürüm 1.52002-01-05ppadala
Yapı şu anki uygun TOC (İçerik Tablosu) yapısına dönüştürüldü
 
Sürüm 1.3.12001-07-26ppadala
Paket yapımcılarıyla ilgili paragraf düzeltildi, kararlı sürüm numarası düzeltildi.
 
Sürüm 1.32001-07-24ppadala
Ana belgeye (LDP lisansı) ve programalara (GPL lisansı) lisans bilgisi eklendi, printw_ örneği düzeltildi.
 
Sürüm 1.22001-06-05ppadala
Ravi'nin daha çok giriş, menu, form ve sadece eğlenmek için ile ilgili değiklikleri uygulandı.
 
Sürüm 1.12001-05-22ppadala
"pencere hakkında bir çift söz" kısmı eklendi, scanw_ örneği eklendi.
 

Özet

Bu belge ncurses ve kardeş kütüphaneleriyle yazılım geliştirmek için "Herşey Dahil" bir kılavuz olmayı hedeflemektedir. Basit bir "Merhaba Dünya" programından başlayıp daha karmaşık yapılara doğru giden bir anlatım kullandık. Ncurses ile ilgili herhangi bir ön deneyim gerekli değildir.

Yorumlarınızı adresine yollayınız.


İçindekiler

5.1. Giriş
5.1.1. NCURSES nedir?
5.1.2. NCURSES ile Ne Yapabiliriz?
5.1.3. Nereden Edinilebilir?
5.1.4. Belgenin Amacı/Kapsamı
5.1.5. Programlar Hakkında
5.1.6. Belgenin Diğer Biçimleri
5.1.6.1. tldp.org sayfasındaki kolayca erişilebilir dosya biçimleri:
5.1.6.2. Kaynaktan Kurmak

5.1.7. Katkıda Bulunanlar
5.1.8. İstek Listesi

5.2. Merhaba Dünya !!!
5.2.1. NCURSES Kütüphaneleriyle Derleme
5.2.2. İnceleme
5.2.2.1. initscr() hakkında
5.2.2.2. Gizemli refresh()
5.2.2.3. endwin() hakkında

5.3. Kanlı Ayrıntılar
5.4. İlklendirme
5.4.1. raw() ve cbreak()
5.4.2. echo() ve noecho()
5.4.3. keypad()
5.4.4. halfdelay()
5.4.5. Muhtelif İlklendirme İşlevleri
5.4.6. Bir Örnek

5.5. Pencereler Hakkında Bir Çift Söz
5.6. Çıktı işlevleri
5.6.1. addch() sınıfı işlevler
5.6.2. mvaddch(), waddch() ve mvwaddch()
5.6.3. printw() sınıfı işlevler
5.6.3.1. printw() ve mvprintw()
5.6.3.2. wprintw() ve mvwprintw()
5.6.3.3. vwprintw()
5.6.3.4. Basit bir printw örneği

5.6.4. addstr() sınıfı işlevler
5.6.5. Dikkat edilmesi gereken nokta

5.7. Girdi işlevleri
5.7.1. getch() sınıfı işlevler
5.7.2. scanw() sınıfı işlevler
5.7.2.1. scanw() ve mvscanw()
5.7.2.2. wscanw() ve mvwscanw()
5.7.2.3. vwscanw()

5.7.3. getstr() sınıfı işlevler
5.7.4. Bazı örnekler

5.8. Öznitelikler
5.8.1. Özniteliklerle ilgili ayrıntılar
5.8.2. attron()'a karşı attrset()
5.8.3. attr_get()
5.8.4. attr_ işlevleri
5.8.5. wattr işlevleri
5.8.6. chgat() işlevleri

5.9. Pencereler
5.9.1. Temel bilgiler
5.9.2. Bana bir Pencere göster !!!
5.9.3. Örneğin açıklaması
5.9.4. Örnekteki diğer kısımlar
5.9.5. Diğer Çerçeve işlevleri

5.10. Renkler
5.10.1. Temel bilgiler
5.10.2. Renk Tanımlamalarını Değiştirmek
5.10.3. Renk İçeriği

5.11. Klavye ile etkileşim
5.11.1. Temel bilgiler
5.11.2. Basit bir tuş kullanım örneği

5.12. Fare ile Etkileşim
5.12.1. Temel bilgiler
5.12.2. Olayları yakalamak
5.12.3. Hepsini Bir Araya Getirelim
5.12.4. Çeşitli İşlevler

5.13. Ekran Düzenleme
5.13.1. getyx() işlevleri
5.13.2. Ekran dökümünün alınması
5.13.3. Pencere dökümünün alınması

5.14. Çeşitli Özellikler
5.14.1. curs_set()
5.14.2. Curses Kipini Geçici Olarak Terk Etmek
5.14.3. ACS_ değişkenleri

5.15. Diğer Kütüphaneler
5.16. Panel Kütüphanesi
5.16.1. Temel Bilgiler
5.16.2. Panel Kütüphanesi ile derleme
5.16.3. Panel Penceresinde Gezinmek
5.16.4. Kullanıcı İşaretçilerini Kullanmak
5.16.5. Panelleri Hareket Ettirmek ve Boyutlandırmak
5.16.6. Panelleri Gizlemek ve Göstermek
5.16.7. panel_above() ve panel_below()

5.17. Menü Kütüphanesi
5.17.1. Temel Bilgiler
5.17.2. Menü Kütüphanesi ile derleme
5.17.3. menu_driver: Menü sisteminin dolap beygiri
5.17.4. Menü Pencereleri
5.17.5. Kaydırılabilen Menüler
5.17.6. Çok Sütunlu Menüler
5.17.7. Çok Değerli Menüler
5.17.8. Menü Seçenekleri
5.17.9. Faydalı Kullanıcı Göstericisi

5.18. Form Kütüphanesi
5.18.1. Temel Bilgiler
5.18.2. Form Kütüphanesi ile derleme
5.18.3. Alanlar ile Oynamak
5.18.3.1. Alan Konumunun ve Boyutununun Alınması
5.18.3.2. Alanı taşımak
5.18.3.3. Alan Hizalama
5.18.3.4. Alan Görüntüleme Öznitelikleri
5.18.3.5. Alan Seçenek Bitleri
5.18.3.6. Alan Durumu
5.18.3.7. Alan Kullanıcı Göstericisi
5.18.3.8. Değişken Boydaki Alanlar

5.18.4. Form Pencereleri
5.18.5. Alan Doğrulama
5.18.6. form_driver: Form sisteminin dolap beygiri
5.18.6.1. Sayfada Gezinti İstekleri
5.18.6.2. Alan İçi Gezinti İstekleri
5.18.6.3. Alan İçi Dahili Gezinti İstekleri
5.18.6.4. Kaydırma İstekleri
5.18.6.5. İstekleri Düzenlemek
5.18.6.6. Emir İstekleri
5.18.6.7. Uygulama Komutları

5.19. Araçlar ve Küçük Uygulama Kütüphaneleri
5.19.1. CDK Curses Geliştirme Kiti (Curses Development Kit)
5.19.1.1. Gereç Listesi
5.19.1.2. Bazı Çekici Özellikler
5.19.1.3. Sonuç

5.19.2. dialog hakkında
5.19.3. Perl Curses Modullleri: CURSES::FORM ve CURSES::WIDGETS

5.20. Sadece Eğlence İçin !!!
5.20.1. Hayat Oyunu
5.20.2. Sihirli Kare
5.20.3. Hanoi Kuleleri
5.20.4. Vezir Yerleştirme
5.20.5. Shuffle
5.20.6. Onparmak Eğitmeni

5.21. Kaynakça