BaCon/Linux GUI programlama

Vikikitap, özgür kütüphane
Gezinti kısmına atla Arama kısmına atla

BaCon ile Linux programlamaya hızlı bir giriş yapılabilir. Grafik Kullanıcı Arayüzü (GUI) oluşturmak oldukça kolaydır. hug.bac dosyasını indirip program kodunuzun başına INCLUDE "hug.bac" şeklinde bir satır ilave ederek GUI yazabilirsiniz. Aşağıdaki kodla başlığı “Merhaba dünya!” olan bir pencere oluşturabilirsiniz:
INCLUDE "hug.bac"
INIT
window = WINDOW(“Merhaba dünya!", 200, 200)
DISPLAY

HUG fonksiyonları[değiştir]


HUG İngilizce Highlevel Universal GUI ifadesinin kısaltmasıdır.

hug.bac dosyası, grafik kullanıcı arayüzü oluşturmak için kullanabileceğiniz fonksiyonları içermektedir. Bu dosyayı INCLUDE "hug.bac" şeklinde kodunuza ekleyerek kolayca grafik kullanıcı arayüzü oluşturabilirsiniz.

HUG, BaCon'un grafik kullanıcı arayüzlerini hızlı ve verimli bir şekilde ayarlamasına olanak tanıyan basit bir dizi işlevdir. Model olarak, araçlar kümesi HTML Formlarında sıkça bulunan araçlarla (widget) sınırlıdır. Ardından, güçlü kanvas aracıyla ve bazı çizim komutlarıyla ve ayrıca klavye ve fare olaylarını sorgulamak için kullanılan yöntemlerle genişletilir.

Uygulama, GTK kütüphanelerinden gerekli işlevleri almak için BaCon IMPORT deyimini kullanarak GTK'ya dayanır. Bu yaklaşımın avantajı, elde edilen yürütülebilir dosyanın GTK ile ikili düzeyde bağımlılığı bulunmamasıdır. Bu, HUG kullanan bir programın, GTK mevcut olmadığında bile yürütülebileceği anlamına gelir.

Genel kullanım
Bir kullanıcı arayüzünü kurmak için öncelikle gerekli pencere öğelerinin tanımlandığı bir pencere oluşturulur. Çoğu pencere aracı için, bir "geri çağırma" (callback) tanımlamak mümkündür. Aslında bu, pencere aracı etkinleştirildiğinde geri çağrılan kullanıcı tanımlı bir işlevdir.

ATTACH[değiştir]

ATTACH(pencere, araç, x, y)

Tür: yönerge

Bu işlev, pencereye <x>, <y> konumundaki bir pencere aracı (widget) ekler. Pencerenin sol üst köşesi referans olarak alınır (0, 0). Bu yönerge, bir pencerenin ekranda konumlandırılması için de kullanılabilir. Bu durumda pencere adı yerine 0, araç adı yerine pencere adı yazılır: ATTACH(0, pencere adı, x, y)

BUTTON[değiştir]

BUTTON('başlık', xboyut, yboyut)

Tür: fonksiyon

Bir başlığı ve <xboyut> genişliği ve <yboyut> yüksekliği olan bir düğme oluşturur. Oluşturulan düğmenin kimliğini (ID) döndürür.

CALLBACK[değiştir]

CALLBACK(araç, fonksiyon)

Tür: yönerge

<araç> için bir olay gerçekleştiğinde HUG'un atlayacağı <fonksiyon> bu yönerge ile ayarlanır.

CALLBACKX[değiştir]

CALLBACKX(araç, fonksiyon, değer)

Tür: yönerge

CALLBACK gibidir ancak farklı olarak tanımlanan <değer>, <fonksiyon> tarafından yakalanabilir.

CANVAS[değiştir]

CANVAS(xboyut, yboyut)

Tür: fonksiyon

<xboyut> genişliği ve <yboyut> yüksekliği olan bir kanvas (tuval) oluşturur. Sol üst köşe konumu (0, 0) olarak tanımlanır. En son oluşturulan tuval, çizimin yapıldığı varsayılan tuval olarak kabul edilir. Varsayılan tuval DRAW fonksiyonu ile değiştirilebilir.

Sistemde GtkGlArea kitaplığı veya GtkGlext kitaplığının bulunması koşuluyla tuval aynı zamanda bir OpenGL tuvali olarak da oluşturulabilir. Bunu yapmak için, tuvali oluşturmadan önce HUGOPTIONS'daki CANVAS seçeneğini kullanın.

CHECK[değiştir]

CHECK("başlık", xboyut, yboyut)

Tür: fonksiyon

<xboyut> genişliği ve <yboyut> yüksekliği olan etiketli bir kontrol düğmesi (check button) oluşturur.