Vala ile Budgie masaüstü uygulamaları geliştirmek
Bu derste Allah nasip ederse Vala ile Budgie masaüstü için nasıl uygulama geliştirebileceğimizi öğreneceğiz.
Ö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.
Ş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
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.
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