KNotification için miras diyagramı
KNotification bir olayı kullanıcıya bildirmek için kullanılır.
İki çeşit bildirim tipi vardır.
* Geri bildirim olayları : Bu bildirimler ,kullanıcının pencereyi maximize etmesi gibi o anda kullanıcının gerçekleştirdiği olaylar içindir.Bildirim esnasında ses çalmasını da sağlayabilir. Anlık bildirimlerdir. Bu tip bildirimler çok kısa zaman aralığında gerçekleşir ve sonlanırlar.
* Kalıcı bildirimler : Kullanıcı yeni bir mesaj aldığında yada kullanıcının bilmesi gerektiği önemli bir olay gerçekleştiğinde verilen bildirimler bu tip bildirimlerdir. Bu bildirimlerin bir başlangıcı ve sonu vardır. Bildirim olay meydana geldiğinde başlar ve kullanıcı kabul edene yada okuyana kadar devam eder.
Örneğin anlık mesajlaşma uygulamalarındaki kalıcı bildirimler : kullanıcıya bir mesaj geldiğinde uygulama bildirim yayar.Bildirim kutusu; kullanıcının mesajı okuyup close() slotunu kullanana dek kapanmaz.
Bildirim yapmak için , bildirimin varsayılan parametrelerinin olduğu bir tanımlama dosyası yaratmamız gerekmektedir. Ardından uygulamanın kodları arasında -bildirimin gerçekleştirildiği yerde- "KNotification:event" i kullanmalıyız. Geri dönen KNotification işaretcisi signal - slot bağlamalarında kullanılabilir.
Global Config Dosyası
Bir uygulamanın config dosyası "$KDEDIR/share/apps/appname/appname.notifyrc" dizininde bulunmalıdır. Bu dosya 3 ana bölümden oluşur.
1. Global bilgi
2. İçerik bilgisi
3. Uygulamaya özel olayların tanımlamaları
Context kısmı widgetin yapılandırımıyla ilişkili bilgiler içerir.
Event kısmı ise config dosyasının en önemli bölümüdür. Uygulamanın hangi olayda hangi bildirimi vermesi gerektiği burada yer alır. Her bildirilebilir olay için varsayılan değerler bu bölümde bulunur.
Kullanıcının Config Dosyası
Uygulama detayı içeren yapılandırma dosyasıdır.
Bu yapılandırma dosyası iki kısımdan oluşur.
1)İçerik Bilgisi
2)Olay Yapılandırılması
İçerik Bilgisi: Yapılandırma penceresi hakkında bilgi içerir. Bu bölümde hem dahili "id"ler hem de kullanıcının görebileceği string ifadeler bulunur.
İki çeşit bildirim tipi vardır.
* Geri bildirim olayları : Bu bildirimler ,kullanıcının pencereyi maximize etmesi gibi o anda kullanıcının gerçekleştirdiği olaylar içindir.Bildirim esnasında ses çalmasını da sağlayabilir. Anlık bildirimlerdir. Bu tip bildirimler çok kısa zaman aralığında gerçekleşir ve sonlanırlar.
* Kalıcı bildirimler : Kullanıcı yeni bir mesaj aldığında yada kullanıcının bilmesi gerektiği önemli bir olay gerçekleştiğinde verilen bildirimler bu tip bildirimlerdir. Bu bildirimlerin bir başlangıcı ve sonu vardır. Bildirim olay meydana geldiğinde başlar ve kullanıcı kabul edene yada okuyana kadar devam eder.
Örneğin anlık mesajlaşma uygulamalarındaki kalıcı bildirimler : kullanıcıya bir mesaj geldiğinde uygulama bildirim yayar.Bildirim kutusu; kullanıcının mesajı okuyup close() slotunu kullanana dek kapanmaz.
Bildirim yapmak için , bildirimin varsayılan parametrelerinin olduğu bir tanımlama dosyası yaratmamız gerekmektedir. Ardından uygulamanın kodları arasında -bildirimin gerçekleştirildiği yerde- "KNotification:event" i kullanmalıyız. Geri dönen KNotification işaretcisi signal - slot bağlamalarında kullanılabilir.
Global Config Dosyası
Bir uygulamanın config dosyası "$KDEDIR/share/apps/appname/appname.notifyrc" dizininde bulunmalıdır. Bu dosya 3 ana bölümden oluşur.
1. Global bilgi
2. İçerik bilgisi
3. Uygulamaya özel olayların tanımlamaları
[Global]
IconName=Filename
Comment=Friendly Name of app
[Context/group]
Name=Group name
Comment=The name of the group for contacts
[Context/folder]
Name=Group name
[Event/newmail]
Name=New email
Comment=You have got a new email
Contexts=folder,group
Action=Sound|Popup
[Event/contactOnline]
Name=Contact goes online
Comment=One of your contact has been connected
Contexts=group
Sound=filetoplay.ogg
Action=None
Örneğin yakuake uygulamasının yakuake.notifyrc dosyası şu şekildedir:
[Global]
IconName=yakuake
Comment=yakuake
[Event/startup]
Name=Yakuake Started
Comment=Yakuake has just been started
Action=Popup
Global kısmındaki IconName kısmına simgenin sadece adını yazmalıyız.
[Global]
IconName=yakuake
Comment=yakuake
[Event/startup]
Name=Yakuake Started
Comment=Yakuake has just been started
Action=Popup
Global kısmındaki IconName kısmına simgenin sadece adını yazmalıyız.
Context kısmı widgetin yapılandırımıyla ilişkili bilgiler içerir.
Event kısmı ise config dosyasının en önemli bölümüdür. Uygulamanın hangi olayda hangi bildirimi vermesi gerektiği burada yer alır. Her bildirilebilir olay için varsayılan değerler bu bölümde bulunur.
Kullanıcının Config Dosyası
Uygulama detayı içeren yapılandırma dosyasıdır.
Bu yapılandırma dosyası iki kısımdan oluşur.
1)İçerik Bilgisi
2)Olay Yapılandırılması
İçerik Bilgisi: Yapılandırma penceresi hakkında bilgi içerir. Bu bölümde hem dahili "id"ler hem de kullanıcının görebileceği string ifadeler bulunur.
[Context/group]Olay Yapılandırılması : Olayların kullanıcıya özel yapılandırma bilgileri bu bölümdedir.
Values=1:Friends,2:Work,3:Family
[Event/contactOnline]
Action=Sound
Sound=/usr/share/sounds/super.ogg
[Event/contactOnline/group/1]
Action=PassivePopup|Sound
- Parametreler
-
eventId Olayın adı text Açılan popup penceredeki bildirim hakkındaki yazı pixmap Açılan popuptaki resim. widget Bildirimin yapıldığı yerdeki widge
KNotification *KNotification::event(
StandardEvent eventid , const QString& text,
const QPixmap& pixmap, QWidget *widget, const NotificationFlags &flags)
StandardEvent eventid , const QString& text,
const QPixmap& pixmap, QWidget *widget, const NotificationFlags &flags)
Bu metod tam anlamıyla (bütün parametreleri ayarlanmış) bir KNotification yaratır ve bizim ayrıca "SendEvent"i çağırmanıza gerek yoktur.
Signal - slotların iletişiminde bu işaretçi kullanılabilir ve kullanılan işaretçi otomatik olarak olay sonlandığında silinir.
Ayrıca CloseOnTimeOut ve CloseWhenWidgetActivated olarak ayarlanan bildirimlerin , kullanıcının kapatmasına gerek duymadan kapatılacağını unutmamamız gerekmektedir. Aksi takdirde kullanıcı için çok kritik bir bildirimin zaman aşımıyla yada widget aktif olduğunda otomatik olarak kaybolmasına neden olabiliriz.
Kaynak : KNotification Class Reference
Signal - slotların iletişiminde bu işaretçi kullanılabilir ve kullanılan işaretçi otomatik olarak olay sonlandığında silinir.
Ayrıca CloseOnTimeOut ve CloseWhenWidgetActivated olarak ayarlanan bildirimlerin , kullanıcının kapatmasına gerek duymadan kapatılacağını unutmamamız gerekmektedir. Aksi takdirde kullanıcı için çok kritik bir bildirimin zaman aşımıyla yada widget aktif olduğunda otomatik olarak kaybolmasına neden olabiliriz.
Kaynak : KNotification Class Reference
Hiç yorum yok:
Yorum Gönder