YARDIMCI PROGRAMLAR
Retro bilgisayarCadToolsBox PowerWindows
Bu programlar sayesinde artık saatlerinizi bilgisayar karşısında ekran dizayn ederek harcamanız gerekmeyecek. Sizin yerinize bu işi onlar yapıyorlar.
Amiga'da C veya Assembler kullanıcılarının çoğu bir tek şeyden yakınır: Bir takım kullanıcıyla haberleşmesini sağlayacak olan ortamı (GUI: Graphics User Interface - Kullanıcı Grafik Arabirimi) hazırlamak çok zahmetli ve uzun süren bir iştir. Bazen bu iş o kadar uzun sürer ki, GUI hazırlandığı zaman programcı yaptığı işten sıkılmış olur ve başka programlarla uğraşır. Özellikle her şeyi sayısal olarak tasarlayıp programı çalıştırdıktan sonra yerine oturmayan gadget'ları not etmek, programın source'una geri dönüp bunların yerlerini değiştirmek, tekrar programı compile etmek, vb. programcıların normal şartlarda (bence) uğraşmaması gereken işlemlerdir. Hele bir de bitmiş bir grafik ortamına üç-beş gadget eklemeye kalkarsanız... Hadi sil baştan. Tabii ki bütün bu işlerle uğraşmanıza gerek yok. Gerekli programları bulursanız grafik ortamını mouse yardımıyla interaktif olarak tasarlayıp, işiniz bittiğinde bu ortamı hazırlayacak Modula, C veya Assembler source'larını elde edebilirsiniz. Hem de bu source'ları üretmek için hemen hemen hiç programcılık bilmenize gerek yok. Eh, hemen sevinmeyin canım. Sadece grafik arabirimi hazırlayarak geçinemezsiniz. Bu arabirimin süreceği programı hala sizin yazmanız gerekli. Yani gene de bir dil öğrenmek zorundasınız (hehe). Belki yakında "Bana bir IFF-RAM çeviricisi yap" dediğinizde gerekli programı Assembler, C, Modula, Fortran, vb. dillerinde, hem de hatasız olarak yazacak programlar çıkabilir(). Ama sadece arabirim tasarlayan programlarla yetinmek zorundayız. Bu yazıda interaktif grafik ortamı tasarlayan programların iki tanesini tanıtacağım: PowerWindows ve GadToolsBox. Aslında Fish 430'de Matthew Dillon tarafından yazılmış olan TPLEdİt'i de bu programlar arasına katmam gerekirdi, çünkü yaptığı iş aynı. Ama eski versiyonu olduğundan olsa gerek, ikide bir kilitlenip kaldığı için programı tanıtmamaya karar verdim. Yeterince eski olduğu için, ürettiği source 1.3'de kalabiliyor. Ama TPLEdİt ve GadToolsBox oldukça yeni programlar, ve sadece KickStart 2.0 ve üstü Amiga'lar için source üretebiliyorlar. PowerWindows, Pencere, Gadget ve Menu'leri tasarladıktan sonra C veya Assembler source'u üretebiliyor. GadToolsBox ise, pencere, Gadget ve Menu'lerden başka, istediğiniz modda bir Intuition Screen yaratılmasını da sağlıyor. Yarattığı source'lar Assembler, C ve Oberon (sanırım Modula) için. Ama GadToolsBox'da kaydedilen üzerinde oldukça büyük kontrolünüz var. Yani source'u bir dereceye kadar kendinizce şekillendirebiliyorsunuz. Şimdi, iki programı da ayrı ayrı ele alalım. Daha yaşlı olan PowerWindows'un önden gelmesi oldukça doğal sanırım:
PowerWindows: PowerWindows, tarafından 1988 yılında yazılmış. Program oldukça sade bir şekilde açılıyor - bir pencere ve üç adet menü elemanı. Ama yeni bir pencere açar açmaz insanı korkutacak kadar çok seçenek karşınıza çıkıyor. Programın mantığı oldukça mantıklı. Her şey menülerle hallediliyor. Sizin pencereniz seçiliyken kendi menülerinizi, PowerWindows penceresi seçiliyken PowerWindows kontrol menülerini görüyorsunuz. Menüsü beş ayrı bölümden oluşuyor: File, Preferences, Window, Menus ve Gadgets. Files menüsünden çalışmanızı kaydedebilir veya ASM veya C source'larını üretebilirsiniz. Preferences menüsü tasarım ve kod üretimi için seçimlerinizi ayarlamanızı sağlıyor. Diğer üç menü ile de GUI'nizi tasarlıyorsunuz. Programda sadece tek pencere üzerinde çalışabiliyorsunuz. Ama bu pencere üzerinde istediğiniz (ya da istemediğiniz) kadar gadget veya menü kurabilirsiniz. Üretilen C ya da Assembler source'u sadece gerekli olan structure'ları içeriyor. Sizin tek yapmanız gereken, bu structure'ları gerekli sistem rutinlerine göndererek tasarladığınız ortamı ekrana getirmek. Programınız birden fazla pencere açmak istiyorsa (pardon, SİZ birden fazla pencere açmak istiyorsanız), PowerWindows'la iki aynı proje yaratır iki pencereyi ayrı ayrı tasarlarsınız, olur biter. Ne yazık ki yeni programlarda bile birden fazla pencereyle aynı anda çalışamıyorsunuz. Pencerenizi açtıktan sonra, Window flaglerini ve Maximum genişlik, DetailPen gibi parametreleri Windows'un içinden ayarlayabiliyorsunuz. Pencere'nin içinde istediğiniz noktalara değişik renkli yazılar eklemek için de Window menüsünü kullanıyorsunuz.
POWER WINDOWS
Pencerenizi istediğiniz gibi tasarladıktan sonra, sıra pencereye ait menü ve gadget'lara geliyor. Gadgets menüsünü kullanarak istediğiniz sayıda gadget'i pencereye yerleştirdikten sonra, aynı menüden gadget'lerin tiplerini, özelliklerini ve flaglerini ayarlayabiliyorsunuz. Tabii ki bu arada pencerenin yerini ve boyutunu da keyfinize ya da yerleştirdiğiniz gadget'lara göre ayarlayabiliyorsunuz. Gadget'ların içine, yanına, vb. yazılarını da Gadgets menüsünü kullanarak yazdıktan sonra, sıra pencereye ait menülere geliyor. Menu menüsünü kullanarak ana menü başlıklarını ekledikten sonra, her menü başlığı için ayrı ayrı menü elemanlarını ve alt elemanlarını giriyorsunuz. Bu iş de bittikten sonra programın sizin için yapabileceği hiçbir şey kalmıyor zaten. Projenizi son bir kez daha sonra çalışacağınız dile ait source'u üretiyorsunuz, ve mutlu mutlu programınız üzerinde çalışıyorsunuz. Nasıl? Ne kadar kullandığınız yoldan kolay, değil mi?
GadToolsBox: 1991'de Jaba Development tarafından yazılmış. GadToolsBox ile karşılaştırıldığı zaman, PowerWindows oldukça ilkel kalıyor. GadToolsBox'un özelliklerini kısaca yazarsak: -Sisteminizin desteklediği tüm çözünürlüklerde ekran ve bu ekranlar üzerinde interaktif olarak çalışabiliyorsunuz. -Görünenden büyük ve scroll edebilen (kayabilen) ekranlar üzerinde çalışabiliyorsunuz.
“Tüm GadTools gadget'larını destekliyor. (2.0'cılar bilirler), ve bir tane de BOOPSI gadget'i eklenmiş. BOOPSI: Basic Object-Oriented System for Intuition - Intuition için temel nesneye yönelimli programlama (yoğurt? - Ed). Temel Intuition Gadget'larından yola çıkarak, yeni gadget türleri yaratmanızı sağlayan Intuition metodu. Eğer bir gün öğrenirsem dergide okursunuz. Menüleri tamamen desteklenmiş. Window Flag'lerinin tamamını ve çoğunu kontrol edebilme imkanı var. -Pencere için yaratabiliyor. (PowerWindows'daki Window Text). -Renklerin de interaktif olarak ayarlanabilmesi mümkün. -Source'unuz C, Assembler veya Oberon (Modula?) dillerinde olabiliyor. “Raw” Assembly source üretilebiliyor. Yani source'a hiçbir header eklemenize gerek kalmıyor. “DRİPEN'lerin (2.0'a üç boyutlu görüntüyü yaratma imkanı veren şey) değiştirilebilmesi mümkün. “Yüksek seviyeli, alçak seviyeli ya da çerçeve şeklinde BevelBox'lar yaratabilmeniz ve yerlerini değiştirebilmeniz mümkün. BevelBox: Gadget olmamasına GadTools'da bulunan, ve her yerde rastlayabileceğiniz ışıklandırılmış kutular. -Çalışmanızı, sizin tarafınızdan ayarlanabilen bir grid kullanarak yapabiliyorsunuz. Fazla pencereyle çalışabiliyorsunuz. Bir de hepsini aynı anda ekranda görebilseydik harika olurdu, ama... -Fonta duyarlı source elde edebiliyorsunuz. Yani programınızda yer alan her şey (gadget'lar, menüler, vb.) seçilen fontun boyutlarına göre boyutlarını yeniden ayarlayabiliyor. -Shift'e basarak birden fazla elemanı seçebiliyor, ve hepsini birden editleyebiliyorsunuz.
Oldukça etkileyici değil mi? Bu kadar lüksün içinde insan kendini kaybedebiliyor. Normal bir çalışma temposuyla günler sürecek bir GUI tasarımı, GTBox yardımıyla bir iki saat içinde halledilebiliyor. Üretilen source'da C için altı, assembler için ise üç ayrı parametreyi ayarlayabiliyorsunuz. Sonuç olarak size en çok uyan şekli bu programla yakalayabilirsiniz. Diyelim ki programın ürettiği source'lardan hoşlanmadınız. Problem değil. Dökümanlarda kendi source üreticinizi nasıl yazacağınız da anlatılmış. Yani, program her türlü ihtiyacınızı karşılamaya çalışıyor. Programın çalışma mantığı ise şöyle: Bu programın da beş adet menü başlığı var: Project, Gadgets, Window, Screen ve Menus. Project menüsü, hem dosya yükleme, kaydetme işlemleri yapıyor, hem kod üretme kısmına bakıyor, hem de GadToolsBox'ın çalışma ortamı ve source üretme kısmını istediğiniz gibi değiştirme imkanı sağlıyor. Diğer menüler de isimlerinden tahmin edebileceğiniz elemanları değiştirmenizi sağlıyor. İlk olarak programınıza ait Ekran (Screen) çözünürlüğünü ayarlamalısınız. Aslında bu pek de büyük bir değil, çünkü istediğiniz anda ekran modunu, diğer elemanlara zarar vermeden değiştirmeniz mümkün. Daha sonra bu ekrandaki pencereyi ve boyutu Gene Window menüsünü kullanarak bu pencerenin Flag'lerini, TAG'lerini ve IDCMP flag'lerini ayarlayabilirsiniz. Daha sonra pencerede yer alacak kısımları birbirinden ayırmak için, gerekli boyutlarda ve sayıda Bevel Box yaratın ve bunların tiplerini belirleyin. Şimdi de gerekli yerlere Window text'lerinizi yazarsanız, pencerenizin ana tasarımı ortaya çıkmış olur. Sıra, bir yandaki menü başlığında, yani gadget'larda. Eğer programınızın GUI'sinde gadget'lara ihtiyacınız olacaksa, Gadgets menü başlığı altındaki elemanları kullanarak istediğiniz tipteki gadget'ları pencerenize yerleştirin. Gadget'ı yerleştirdikten hemen sonra açılan pencerede, gadget ve TAG'lerini ayarlayın. Daha sonra bu flag'lerde değişiklik yapmak için gadget'ların üzerinde iki kere tıklamanız da mümkün. Üzerinde değişiklik yapmak istediğiniz gadget'ı, üzerinde bir kere tıklayarak seçebiliyorsunuz. Eğer SHIFT tuşuna basılı tutarken diğer gadget'lara tıklarsanız, birden fazla gadget'ı seçebilirsiniz. Daha sonra, SHIFT tuşunu bırakmadan gadget boyutu veya yeri ayarlamaya kalktığınızda, seçili olan tüm gadget'lar yapılan işlemden etkilenecektir. Yani, yirmi sekiz gadget'ı yana kaydırmak istediğinizde aynı işlemi yirmi sekiz kere yapmanıza gerek kalmıyor (PowerWindows'da gerek var). Pencerenin dış görünüşü de tamamlandıktan sonra, sıra son elemana, yani menülere geliyor. Menü editörü gerçekten de çok akıllıca düşünülmüş. Editör penceresinde yan yana üç liste var. En soldaki listede menü yer alıyor. Bu başlıklardan biri anda, yan bu menünün başlığı beliriyor. Elemanlardan birini seçtiğinizde de alt elemanlar listeleniyor. Üç listeye de yeni eleman ekleyebiliyorsunuz. Ya da, isterseniz hazır elemanların yerini değiştirebiliyorsunuz. Değişik menü flag'lerini de bu editörde kolayca yapabiliyorsunuz.
Sonuç: Her iki program da, yazıldıkları zaman göz önüne alınarak karşılaştırıldığı zaman çok iyi programlar. Bir programın geliştirme süresinin yarısının GUI'ye harcanması, interaktif kullanımda benzerlerinden hızlı ve rahat olan Amiga için oldukça komik bir şey. Özellikle GadToolsBox gibi bir programın desteğine sahip olan programcılar, artık tasarım aşamasında çıkan sorunlarla boğuşmaktan kurtulup, yapmaya çalıştıkları programlarda çok daha verimli sonuçlar elde edebilecekler. Aslında, GadToolsBox da kendine has problemlere sahip. Mesela, birden fazla pencereyle çalışabildiğini söylemesine rağmen, aynı anda iki birden ekranda görmeyi başaramadım. Evet, birden fazla pencereyi açıyorsunuz, ama ikinci pencereyi açmaya kalktığınız zaman ilk pencere kapatılıyor. İkiyle çalışabilmeniz için de ikincisinin kapatılması gerekiyor. Her iki pencereye de birer proje gözüyle bakılıyor ve her projenin kendi adı var. Kısaca, birden fazla projeyle çalışmanız mümkün olmadığı için aynı anda iki pencere üzerinde çalışamıyorsunuz. Source üretimine gelince, Windows'un sadece gerekli structure'ları hazırlamasına karşılık, GadToolsBox, ekrana çıkartacak, veya ekrandan kaldıracak olan rutinleri de programa ekliyor. Bu rutinler gerekli kullanarak tasarladığınız ortamı eksiksiz olarak ekrana getirebiliyorlar. İncelediğim kadarıyla, C ve Assembler source'ları oldukça iyi yazılmış. Oberon hakkında hiç bir bilgim olmadığı için size bu konuda yardımcı olamayacağım. Sonuç olarak, eğer sistem rutinlerini çöpe atmadan program yazmakla uğraşıyorsanız, ilk fırsatta bu iki programdan birini edinmelisiniz. Bana sorarsanız, KickStart 1.3'lü bir Amiga'nız varsa, PowerWindows'u kullanmak yerine bilgisayarınızı bir şekilde Kickstart 2.0 yapın ve GadToolsBox'u kullanın. Çünkü hem 1.3'ün programlanması çok zor (2.0 ve üstü tam bir cennet) hem de sistem rutinlerinde hatalar var. 1.3'den 2.0'a geçme işini sadece kickstart çipini değiştirerek bile yapabilirsiniz. Hatta ZKick kullanarak yazılımla bile 1.3 bilgisayarlarda 2.0 sistem kullanabilirsiniz (elveda 512K). Bana inanın, bu ikincisi gerçekten de işe yarıyor. Şu anda bile A500'ümü ZKick yardımıyla 2.0 olarak kullanıyorum ve şimdiye kadar hiç bir problemle karşılaşmadım.
Vedat Hallaç