Commodore sayı 56, sayfa 25

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 25

Örnekteki alt-menü 8 elemanlı bir dikey menüdür. Alt kenar koordinatı hesaplanırken şu formül kullanılmıştır: Üst kenar (eleman sayısı*14) 4 1 Formülde eklenen ekstra piksel alt çizginin de hesaba katılması için gereklidir. Bu formül menülerde kullanabileceğiniz tek formüldür. Bunun dışında hemen her hesap için deneme yolunu seçmeniz gerekmektedir.

MENÜ TİPLERİ:

GEOS menüleri değişik tiplerde olabilirler. Bu tipler sadece görüntü değil, işletim açısından da farklılıklar yaratabilirler. Daha önce bahsettiğimiz yatay ve dikey menü tipleri yalnızca görüntü ve ekran düzenini ilgilendiren seçeneklerdir. Ana menünüz bir dikey menü olabilir ve bu menüyle bir yatay menüyü açabilirsiniz. Bu yatay menüden yapılacak bir seçenek ile de başka bir dikey menüyü açabilir ve bu işlemi istediğiniz kadar yapabilirsiniz. Yani işleyiş olarak yatay ve dikey menüler arasında fark yoktur. Oysa daha önce bahsetmediğimiz bir menü tipi vardır ki menülerin görüntüleri ile hiçbir ilgisi yoktur, fakat kullanıcıya büyük kolaylık sağlar. Normalde mouse'unuz (ok işareti) bir alt-menü sınırlarını aşarsa alt-menü otomatik olarak kapatılir ve kontrol ana menüye verilir. Ama eğer menü tipinizi $40 değeriyle OR'larsanız bir SINIRLANDI-RILMIŞ MENÜ tipiniz olur. Bu tür menülerde mouse menü sınırları içinde hapsedilmiştir ve menüyü kapatmanın tek yolu üst taraftan dışarı çıkmaktır. (Sınırlar sol, sağ ve alt kenar için geçerlidir.) Böylece çok uzun me-

| nülerde kullanıcı menü dışına çıkma korkusu olmadan, menü içinde istediği hızda dolaşabilir. Mesela yedi elemanlı, sınırlandırılmış bir dikey menü yaratmak isterseniz menü tipi baytınız $c7 (580 OR $40 OR $07) olmalıdır. Menü rutinleriniz oldukça becerikli olabilirler. Hatta kendi kendini değiştiren menüler bile yaratabilirsiniz. (Sakın en başta böyle bir şey denemeyin; çok zorlanırsınız.) Bu tür menüler geoWRITE programının karakter tipi menüsünde yer almaktadır. Menüden altı çizgili yazı türünü seçerseniz bu seçeneğin yanına bir yıldız (*) işareti konur. (veya tekrar seçilince silinir) Menü seçenekleri ya bir alt-menü açar ya da bir servis rutinine sıçrar demiştik. Oysa yapılabilecek bir işlem daha vardır. Bir DİNAMİK ALT-MENÜ çağırılabilir. Yani alt-menü açılmadan önce servis rutinine sıçranır ve bu rutinden çıkınca r0 tarafından gösterilen alt-menü açılır. Bir dinamik alt-menü aracılığıyla sistemin durumu kontrol edilebilir. ve altmenünün açılıp açılmayacağına ya da seçeneklerinin neler olacağına karar verilebilir. Dinamik alt-menü örneği geoPAINT programının fonts (karakter setleri) alt-mehüsünde bulunur. Bu menüden bir font seçtiğinizde bu fontun erişilebilir boyutları kontrol edilir ve açılan üçüncü menüde bu karakter boyutları gösterilir. (Yandaki Tablo)

MENÜ RUTİNLERİ:

1. DoMenli Adres: $C151 Fonksiyon: r0 tarafından gösterilen menü tablosu tarafından tanım-

25 lanan menüyü çizer ve aktive eder. Gerekli Hazırlık: a: Menü çizildikten sonra mouse'nin üzerine konacağı seçenek numarası. rü: Menü tablosunun adresi. Değiştirilen registerler: a, x, y, TÜ-r13 Açıklama: r0 register'inin gösterdiği menü tanım tablosunun tanımladığı menüyü ekrana çizer ve aktive eder. (Aynı ikonlar gibi menüler de aktive edildikten sonra tüm yük GE-OS Kernal'ına ve ana döngüye bırakılır. GEOS Kernal alt alta sıralanmış herhangi sayıda menüyle başa çıkabilir.) Aktive ettikten sonra da mouse'u kaçıncı seçeneğin üzerine yerleştireceği GEOS'a a registeri tarafın- 2. ReDoMenu Adres: $C193 Fonksiyon: Menü elemanlarından biri seçildikten sonra menüyü tekrar aktive eder. Hazırlık: YOK Değiştirilen registerler: a, x, y, rÜ-r13 Açıklama: Ana döngüdeki menü rutinleri ekranda görünen menülerin hepsinin yapısını ve tipini bilir. Eğer bir menü elemanı bir servis rutini çağırırsa GEOS bu rutine sıçrama yapar. Bu rutinin içinde programcı GE-OS'a o an kullanılan menüyü ne yapması gerektiğini belirtmelidir. ReDo- Menu kullanılarak bu menü tekrar kullanılır hale getirilir. 3. DoPreviaus Menü Adres: $C190 Fonksiyon: Bir alt-menüyü yok eder ve bir önceki menüyü tekrar aktive eder. Hazırlık: YOK Değiştirilen registerler: a, x, y, TÜ-r13

Klavyeyle gezinmek için ← ve → tuşları.