Vala ile Budgie masaüstü uygulamaları geliştirmek

Vala ile Budgie masaüstü uygulamaları geliştirmek

Giriş

Bu derste Allah nasip ederse Vala ile Budgie masaüstü için nasıl uygulama geliştirebileceğimizi öğreneceğiz.

Pencereli uygulama

Önceki Python örneğine benzer basit bir pencereli uygulama yazalım.

Uygulamayı selam.vala ismi ile kaydediniz.

using Gtk;

class Selamla : Gtk.Window
{
    public Selamla ()
    {
        Object ();
        add(new Gtk.Label("Selâmun Aleyküm"));
        show_all();
    }
}

int main (string[] secenekler)
{
    Gtk.init (ref secenekler);
    var selamla = new Selamla();
    selamla.destroy.connect(Gtk.main_quit);
    Gtk.main();
    return 0;
}

Uygulamayı derlemek için aşağıdaki komutu veriniz.

valac --pkg gtk+-3.0 selam.vala -o selam

Uygulamayı ./selam yazarak çalıştırabilirsiniz.

Uygulamayı yazalım

Şimdi asıl geliştirmek istediğimiz uygulama olan Budgie uygulamasını yazalım.

Aşağıdaki kütüğü selam.vala ismi ile kaydediniz.

using Gtk;

class Selam : GLib.Object, Budgie.Plugin
{
    Budgie.Applet get_panel_widget (string no)
    {
        return new Selamla(no);
    }
}

class Selamla : Budgie.Applet
{
    public Selamla (string no)
    {
        Object ();
        add(new Gtk.Label("Selâmun Aleyküm"));
        show_all();
    }
}

[ModuleInit]
public void peas_register_types(TypeModule birim)
{
    var anaBirim = birim as Peas.ObjectModule;
    anaBirim.register_extension_type(typeof(Budgie.Plugin), typeof(Selam));
}

Ancak bu uygulamayı müşterek kütüphane olarak derleyeceğiz.

Derlemek için aşağıdaki komutu veriniz.

valac --pkg budgie-1.0 --pkg gtk+-3.0 --library=selam -H selam.h selam.vala -X -fPIC -X -shared -o libselam.so

Uygulamanın açıklaması

Uygulamayı üç bölüme ayırabiliriz.

Selam sınıfı bir eklentidir. Budgie.Plugin sınıfından türüyor.

Dönüş değeri olarak Budgie masaüstü ortamı için bir uygulamacık döndürüyor.

Bizim örneğimizde bu Selamla sınıfıdır.

Selamla ise uygulamanın kendisidir.

Üstteki örneği sınadı iseniz basitçe etiketin üzerine selam yazıyoruz.

En alttaki [ModuleInit] den sonraki kısımda kullanılan kütüphane hakkında fazla deneyimimiz yoktur.

Geliştirici olarak bizi daha çok ilgilendiren kısım Selamla sınıfıdır.

Bir Budgie uygulaması geliştirmek için üstteki örnekteki gibi bir Gtk uygulaması ile başlayabilirsiniz.

Sonra Gtk penceresi yerine alttaki örnekte olduğu gibi, sınıfı Budgie uygulamasından devr alacak şekilde değiştirebilirsiniz.

Uygulamayı oluşturalım

Aynı dizinde Selam.plugin isimli bir kütük oluşturup içine aşağıdaki bilgileri giriniz.

[Plugin]
Module=selam.so
Name=Selam
Description=Selam ver
Authors=Erdem
Copyright=Her hakkı sebildir
Website=https://elektronik.vercel.app
Icon=firefox

Öncelikle zaten varsa aynı isimli uygulama dizinini silelim.

rm -rf ~/.local/share/budgie-desktop/plugins/selam/

Tekrar bir dizin oluşturalım.

mkdir ~/.local/share/budgie-desktop/plugins/selam

Paylaşılan kütüphane kütüğü olan libselam.so ve Selam.plugin kütüğünü uygulama dizinine kopyalayalım.

cp libselam.so Selam.plugin ~/.local/share/budgie-desktop/plugins/selam/

Budgie uygulama dizinine girelim.

cd ~/.local/share/budgie-desktop/plugins/

Eklentiyi tanıtmak için aşağıdaki komutu verelim.

budgie-panel --replace &

Eğer bir hata vermezse eklentimiz kurulacaktır.

Eklentiyi etkinleştirmek için bu bölümü okuyunuz.

Yorumlar

yorum yaz

Yorum yaz

Henüz yorum yok.