FENSTER v1.0
Retro bilgisayarFENSTER v1.0
- Tanımı : Çeşitli window ve screen'lere ait intuition parametrelerinin değiştirilmesini sağlar. - Bulunduğu disketler : Brainstorm Utilities I Bu ufak program yardımıyla istediğiniz window ya da screen'in intuition parametrelerini değiştirebilirsiniz. C veya Assembler ile intuition kullanan programlar hazırlarken bu utility bir hayli yardımcı olur. Kullanımına şöyle bir örnek verebilirim. Ben Assembler'da utility hazırlarken, program belli bir hata yüzünden çıkış rutinine gelemiyordır. Böyle bir durumda da tabii ki açtığım screen ve window'lar kapanamıyordu. Bu şekilde programı 10-15 defa ardarda çalıştırınca sistemde hafıza kalmıyordu; zira her bir screen ve window açışımda bunlara ait bitplane'ler 60 KByte götürüyordu. Geçenlerde utility disketlerimi karıştırırken bu ufak programı buldum. Artık Seka'da çalışırken 'Out of Memory Error' hatasıyla karşılaşmadan istediğim gibi utility yazabiliyorum. Nasıl, son sözlerim reklam gibi oldu, değil mi? Her neyse, dilerseniz programın açıklamasına başlayabilirim. Aslında kullanımının çok kolay olduğunu siz de göreceksiniz.
Programı çalıştırdığımda karşıma ilk çıkan şey CLI penceresi üzerinde ufak bir menü çubuğu oldu. Hemen devam etmeden önce harddisk'le çalışan okuyuculara programı Run ya da Run- Back ile çalıştırmalarını öneririm. Zira program kendisini CLI'dan ayıramıyor (herhalde CLI'ı çok sevmiş olsa gerek...). Ancak bu şekilde startup dosyanızdaki diğer komutların- da çalışmasını sağlayabilirsiniz.

Evet, nerede kalmıştık? Menü çubuğunu görünce program bu kadar mı diyenler olabilir. Hemen mouse pointer'ını bu çubuğun üzerine getirip sol, ardından da sağ tuşu klikliyoruz. Böylece programa girmiş oluruz. Program bir screen ve hemen de bunun üzerinde bir window açacaktır. Bu window fonksiyonlar itibarıyla üç bölüme ayrılmıştır. İlk bölüm, sistemde açılmış olan screen ve window listelerini görebileceğimiz 'Select screen' başlıklı bölümdür. Burada ilk açılışta açılmış olan screen isimlerinin bir kısmını ve yanlarında da boyutlarını görebiliriz. Bu screen listesinde herhangi bir screen ismi üzerine mouse ile klikleyerek o screen'e ait window listesini de görebiliriz.
Açllan window'un ikinci kısmında bütün temel işlemleri yapabileceğimiz on gadget mevcuttur. Bunlardan bazılarını kullanmak için listeden bir screen ya da window seçmemiz gerekmekte. Window seçmek için screen listesinden window listesine geçmemiz gerekmekte. Bu listede de istediğimiz window ismini kliklememiz, o window ismini kutu içine alacaktır. Bu şekilde bir window seçtikten sonra gerekli gadget'ları klikleyerek işlemlerimize devam edebiliriz. Screen seçmek için ise screen listesinde sadece istediğimiz screen ismi kliklenir.
Window'umuzuh üçüncü ve son kısmında da seçilmiş olan pencere ya da screen'in temel parametreleri bulunmakta. Bunlara
Cem GENCER az sonra geleceğiz. Ama önce gadget'ları kısaca açıklayalım:
* Change screen: Bu gadget yardımıyla screen listesine dönebiliriz. Buradan da istediğimiz screen'i klikleyerek o screen'e ait window listesini görebiliriz.
* Update list: Çeşitli parametreleri değiştirdikten sonra bu gadget kliklenîrse, screen ve window listesi, yaptığımız parametrelere göre değişecektir.
* Kill window: İstediğimiz screen'e ait dilediğimiz bir window'u kapatarak sisteme harcanan hafızayı geri verebiliriz. Bunun için de window listesinden bir window seçmemiz ve bu gadget'ı kliklememiz yetecektir.
* Window to front: Seçilen window'u ön plana getirir. Eğer window başka bir screen'de ise işlemin sonucunu görebilmek için o screen'e geçmenizi öneririm.
* Window to back: Seçilen window'u en arka plana atarak mevcut olan diğer tüm window'ların arkasına yerleştirir.
* Redraw frame: Program window'unun komple tekrar çizilmesini sağlar. Bu şekilde yapılan değişiklikler de aktif olacaktır.
* Kill screen & window: Seçilen window'u ve ait olduğu screen'i hafızadan çıkartarak yok edilmesini sağlar. Programın kendi screen'ini silmeye kalkarsanız, bilgisayar kilitlenebilir.
* Refresh gadgets: Programın gadget'larının update edilmesini sağlar.
* Modify IDCMP: İşte bu gadget, programın en önemli özelliklerinden biri. Bu fonksiyon yardımıyla istediğiniz window'a ait IDCMP tanımlama kodlarını değiştirebilirsiniz. IDCMP flag'ları yardımıyla sistem window'la ilgili bazı durumlarda o window'u yöneten programa ya da task'a mesaj gönderir. Bu mesaj, gerekli şekilde değerlendirilerek uygun altrutine dallanılır. Daha ayrıntılı bilgiyi Assembler ve C köşelerinde bulabilirsiniz. Ayrıca ROM Kernal Reference Manual: Intuition kitabında da gerekli bilgileri bulabilirsiniz. Şimdi bu IDCMP flag'larını görelim.
-SizeVerify:Window boyutlarının kontrol edilmesini sağlar. -NewSize: Window boyutları değiştirildiğinde mesaj gönderir. -Refresh Window: Window refresh edilirken bu mesajı gönderir.
-MouseButtons: Mouse tuşlarına basıldığında mesaj gönderilmesini sağlar.
-GadgetDown: Gadget kliklenip bırakılırsa mesaj gönderir. -GadgetUp: Gadget sadece kliklendiğinde (bırakılmadan!) mesaj gönderir.
-MenuPick: Menü çubuğu seçildiğinde (sağ tuşa basımda) mesaj aktarır.
-CloseWindow: Window kapama gadget'ı kliklendiğinde mesaj gönderir.
-RawKey: Herhangi bir tuşa basıldığında mesaj gönderir. -NewPrefs: Sistem parametreleri (preferences) değiştirildiğinde mesaj gönderir.
-DiskInserted: Disket takıldığında mesaj gönderir. -DiskRemoved: Disket çıkarıldığında mesaj gönderir. -WBenchMessage: WorkBench üzerinde herhangi bir sistem mesajı gözüktüğünde mesaj gönderir.
-ActiveWindow: Window kliklenerek aktif yapıldığında mesaj gönderir.
-InActiveWindow: Window'un dışında kalan kısımlar kliklenerek window deaktif edildiğinde mesaj gönderir.
-DeltaMove: Relatif mouse hareketleri (pencere taşıma) mesaj gönderilmesini sağlar.
-VanillaKey: Özel tuşlara basılmışsa mesaj gönderir.
-IntuiTicks: Bu flag seçilmişse intuition her tick'te (=1/50 saniye) bu mesajı gönderir.

Bu flag'lerden istediğinizi açıp kapayabilirsiniz. Fakat sizi bir konuda uyarayım. Window açıldığında set edilmemiş bir flag'i set ederseniz ve o flag'e ait işlem yapılırsa, bilgisayar kilitlenir. Nedeni de window'u açan programda o flag'i işleyecek altrutinin tanımlanmamış olmasıdır. Sistem, devamlı olarak beklemeye gireceğinden bilgisayarı resetlemekten başka hiçbir şey yapılamaz. Şimdi dilerseniz ufak bir örnek yapalım. Fenster programını CLI üzerinden Run ya da Runback ile çalıştırın. Screen listesinden WorkBench'i seçip AmigaDOS'u seçin. Bu bizim CLI penceresidir. Şimdi Kill window'u seçerseniz CLI penceresi kapanacaktır. Modify IDCMP için de bir örnek vereyim; Screen listesinden WorkBench'i seçtikten sonra oradaki isimlerden biri Fenster'dir. Bu, WorkBench üzerinde açılmış olan ufak menü çubuğudur. Pencerenin yüksekliği 10 olduğundan, sadece pencereme menü çubuğu gözükmektedir. Şimdi Fenster ismi kliklenerek Modify IDCMP kutucuğunu klikleyin ve burada da CloseWindow gadget'ını kapalı konuma getirin. Artık Fenster penceresinin sol üst köşesindeki kapama gadget'ını klikleyerek kapamaya kalkıştığınızda window kapanmayacaktır. Bunun nedeni de gönderilen mesajlarda CloseWindow'a izin vermeyişimizdir. Tekrar programımıza dönerek flag'i eski konumuna getirdiğimizde, pencere sorun olmadan kapanabilir. Son olarak window'un alt kısmında yer alan window parametrelerini kısaca izah edeyim. Buradaki değerler aktif olan window'a göre değişecektir. Dilerseniz bu değerlerden istediklerinizi elle değiştirebilirsiniz. X ve Y, seçilmiş olan window'un ait oldukları screen üzerindeki başlangıç koordinatlarıdır. Width ve Height de aynı şekilde window'un boyutlarıdır. MinX ve MinY window'un alabileceği en düşük boyutları, MaxX ve MaxY ise de en büyük boyutlarını temsil ederler. DPen (DrawPen), o window'un çizim rengi, BPen (BorderPen) ise window kenarlarının çizilmesinde kullanılacak olan renklerdir.
Zannedersem programda açıklanmamış bir konu kalmadı. Kullanırken doğru hareket ettiğinize dikkat edin...