18 Temmuz 2016 Pazartesi

LibreOffice İçin Eklenti Geliştirmek

Selamlar,
LibreOffice eklentileri .oxt uzantılı bir sıkıştırılmış dosya ile LibreOffice'e ekleniyor.



Eklentinin düzgün bir şekilde LibreOffice'e eklenebilmesi ve çalışabilmesi için bu .oxt uzantılı dosyanın içeriğinde mutlaka bulunması gereken birkaç dosya var:


  • description.xml (Bu dosyanın içinde eklentinin versiyonu, LibreOffice içinde hangi isimle çağırılacağı, bir simgesi varsa simgesi, eklentinin görüntülenecek olan adı, varsa bağımlılıkları, yayımcısı, ve lisansı hakkında bilgilere ulaşmak için gerekli dosyaların tam yolları yer alıyor.)

  • description/license.txt (Bu dosyada eklentinin lisansı hakkında bilgiler yer alıyor.)

  • META-INF/manifest.xml (Bu dosyanın içinde eklentinin LibreOffice içinde nasıl çağırılacağı bilgisi yer alıyor. Bu dosyada kullanılan format ve isimlendirme, eklentinin yazıldığı programlama diline göre değişebiliyor. Bu dosya hakkındaki detaylı bilgiye ulaşmak için bu linki kullanabilirsiniz.)

  • Addons.xcu (Eklenti yüklendikten sonra arayüzde nasıl bir değişiklik olacağı bu dosyada belirleniyor.)

  • TinyCopy.py (description.xml dosyasında identifier value ile belirtilen eklentinin amacını yerine getiren asıl kod bu dosyada yer alıyor. )

  • Eğer eklentinin bir simgesi varsa bu simge images dizininde bulunmalı.

  • Ayrıca eklenti yöneticisinde de eklentinin simgesi bulunacaksa bu simge de description dizininde bulunmalı.




Bu dosyaları oluşturduktan sonra şu betik yardımıyla .oxt dosyasını oluşturuyoruz:
  • build
Bu betiğin sorunsuz çalışması için extensionname.txt isimli içinde eklentiadi.oxt bulunan bir dosya da çalıştığımız dizinde bulunmalı.


TinyCopy Eklentisi

Eklenti yazmak için kullanmanız gereken dil konusunda bir kısıtlama yok ama eklentilerin çoğu python, java ya da basic ile yazılmış.

Bu eklenti işi nasıl oluyormuş diye kurcalarken temel seviyede bir iş yapan ve pythonla yazılmış bu eklenti ortaya çıktı.

LibreOffice'i açıp eklenti yöneticisi ile TinyCopy.oxt dosyasını seçerek eklentiyi eklemek istediğimizde lisans sözleşmesi karşımıza çıkıyor.






Sözleşmeyi kabul ettiğimizde eklentimiz eklenti yöneticisindeki yerini alıyor.






Calc bileşeni için yazmış olduğum bu eklentide LibreOffice kodunda hiç bir değişiklik yapmadan eklediğim simgeye tıklayarak A1 hücresinde yazılı olan veriyi B1 hücresine direk olarak kopyalayabiliyoruz.






Eklentiyi oluşturan dosyalar ve .oxt formatı github'da mevcut. Eklentinin nasıl çalıştığına dair daha detaylı bilgi sahibi olmak isterseniz bakmakta fayda var.


Hoşçakalın!