Home Forums Wiki Doc Install Extras Screenshots Source Code Projects Blog Users Groups Register
Glx-Dock / Cairo-Dock List of forums Applets | Applets systray
The latest stable release is the *3.4.0* : How to install it here.
Note: We just switched from BZR to Git on Github! (only to host the code and your future pull requests)
Applets | Applets

Subjects Author Language Messages Last message
[Locked] systray
Page : 1 2 3 ...7 8 9
ctaf Français 162 inspirra [Read]
20 September 2010 à 14:55

ctaf, Monday 03 December 2007 à 06:49


Subscription date : 30 November 2007
Messages : 311
je reposte sur le nouveau forum mes deux bouts de code.

Je n'ai eut le temps de rien modifier pour l'instant.

@Fab: oui ca utilise xembed, et donc les GtkPlug/GtkSocket (qui emcapsule xembed).
Je n'ai pas vraiment repris l'implementation de gnome-panel, enfin si, mais il s'agit juste de deux povres classes. Dont une générique, et une autre qui warp les gtksocket dans un GtkBox.

la v0.0.1 marche.
http://www.ctaf.free.fr/ept/cairo-dock-systray-0.0.1.tgz

la v0.0.2 essaye l'integration dans une fenetre de notification, (ce qui engendre le meme bug que une integration direct dans le dock (via un GtkFixed transparent par exemple). Cette version ne marche pas, enfin, le gtksocket n'est pas reparenté correctement.
http://www.ctaf.free.fr/ept/cd-systray-0.0.2.tar.gz

fabounet, Monday 03 December 2007 à 16:27


Subscription date : 30 November 2007
Messages : 17118
hmm, ça embarque beaucoup de code tout ça.
surtout le problème c'est que ça implique de positionner des GtkWidget dans un GtkFixed, ce qui n'est pas très pratique.

je pensais qu'il est possible de créer une icône par appli dans le systray, et de les mettre dans un sous-dock.
l'autre possibilité est de faire une grosse icône avec toutes les petites icônes des applis du systray. Ca va bien avec 3-4 applis, sinon ça risque d'être lourd (ptet jusqu'a 9 ça irait (3x3 icônes de 16x16)) Et après il faudra que je mettre un signal pour gérer le survol d'une partie d'une icône ...

ctaf, Monday 03 December 2007 à 20:05


Subscription date : 30 November 2007
Messages : 311
"fabounet" :
hmm, ça embarque beaucoup de code tout ça.
surtout le problème c'est que ça implique de positionner des GtkWidget dans un GtkFixed, ce qui n'est pas très pratique.

je pensais qu'il est possible de créer une icône par appli dans le systray, et de les mettre dans un sous-dock.
l'autre possibilité est de faire une grosse icône avec toutes les petites icônes des applis du systray. Ca va bien avec 3-4 applis, sinon ça risque d'être lourd (ptet jusqu'a 9 ça irait (3x3 icônes de 16x16)) Et après il faudra que je mettre un signal pour gérer le survol d'une partie d'une icône ...

Ouais mais un sous dock, ca perd l'interet du systray qui est d'etre visible a chaque instant pour notifier l'utilisateur de changement d'etat, même si ca ne sert quasiment plus a rien, en ayant des icones ds le dock qui font la meme chose voir plus.
il est possible de creer une icone ds le dock pour chaque icone de systray, mais il faut les positionner avec des gtkfixed. Je pense qu'un mecanisme pour positionner des widgets ds le dock, serait assez pratique.
Ca embarque beaucoup de code parceque c'est sale. seul na-tray-manager est necessaire, et a la rigueur un implementation specifique de na-tray. Le reste c'est juste des dependances de compilation que j'ai pas netoyé.

nochka85, Monday 03 December 2007 à 20:12


Subscription date : 29 November 2007
Messages : 7408
Mais en mettant les éléments du systray dans un sous-dock (ou une sorte de sous-dock), on ne pourrait pas se servir des infobulles en cas de demande d'attention ? Du coup, même si le dock est en auto-hide, l'info-bulle apparaît par exemple pour prévenir d'une mise à jour !

fabounet, Tuesday 04 December 2007 à 00:04


Subscription date : 30 November 2007
Messages : 17118
remarque pertinente
le protocole du systray sous X gère effectivement des info-bulles, qui rendront vachement bien avec les info-bulles de cairo-dock. a nous d'en tirer parti.
je peux réfléchir à l'opportunité de placer des GtkWidget dans le dock.
mais ça me paraît délicat vu que toutes les icônes bougent à l'intérieur du dock.
en attendant, j'ai fais qques tests, avec gdk_add_client_message_filter() on peux récupérer les messages des applis vers le systray.

ctaf, Tuesday 04 December 2007 à 07:00


Subscription date : 30 November 2007
Messages : 311
Peut-on detecter les changements d'icones?

car mon utilisation principale du systray, c'est de verifier si j'ai eut des nouveaux messages dans (gajim/pidgin/etc..).

ctaf, Tuesday 04 December 2007 à 08:11


Subscription date : 30 November 2007
Messages : 311
A propos des cartes de visite, je comprend pas bien pourquoi utiliser malloc/free, alors qu'une struct statique en readonly, serait aussi bien. et eviterais d'avoir a faire un free.

ctaf, Tuesday 04 December 2007 à 09:50


Subscription date : 30 November 2007
Messages : 311
nouvelle release, qui supporte les cartes de visites. J'ai netoyé les dependances et reecrit le gestionnaire d'icone, ca te parait plus propre fabounet?
malheuresement ca ne marche toujours pas, le gtksocket ne veux pas "rentrer" dans la fenetre de notification. Comme avant ca marche avec un dialog normal, mais pas dans les notifs.

Les messages et les suppressions d'icone ne sont pas géré pour l'instant mais le callback est appellé.

http://www.ctaf.free.fr/ept/cd-systray-0.0.3.tar.gz

fabounet, Tuesday 04 December 2007 à 12:09


Subscription date : 30 November 2007
Messages : 17118
j'essaierai de regarder ça dans la semaine !

une struct statique en readonly

tu voudrais passer le CairoDockVisitCard* en paramètre de la fonction, et que le plug-in le remplisse ?

ctaf, Tuesday 04 December 2007 à 16:05


Subscription date : 30 November 2007
Messages : 311
non simplement retourner une struct, qui ne soit jamais free, parceque le g_free que tu appelles ,c'est un coup a avoir des plugins qui te font tout foirer, si il te retourne une struct merdique.

fabounet, Wednesday 05 December 2007 à 02:04


Subscription date : 30 November 2007
Messages : 17118
ah je vois ce que tu veux dire.
d'où l'importance d'avoir un canvas où y'a plus qu'à remplir.
de toute façon, un plug-in peut faire foirrer tout le dock assez facilement, suffit qu'il bidouille son icône dans le dos du dock par exemple ^_^

ctaf, Tuesday 11 December 2007 à 05:58


Subscription date : 30 November 2007
Messages : 311
bonne nouvelle !!!
j'ai trouvé le coupable, aprés une rapide bisection, et un suspence interminable

tada ta daaaaaaaaaaa

le coupable est:
//    cairo_dock_set_colormap_for_window (pWindow);
dans cairo_dock_build_dialog.

si on commente les icones restent dans la fenetre mais ca dessine de maniere pourri.

je chercherais le fixe plus tard

ctaf, Tuesday 11 December 2007 à 06:25


Subscription date : 30 November 2007
Messages : 311
voici le fixe.

donc deux petits commentaires: je comprend pas le fixe, mais on s'en fou, il faut utiliser un eventbox sinon ca dessine pas. (peut etre que quelqu'un pourra m'expliquer).

@Fabounet: ca serait bien que la fonction qui créer les dialog popup prenne en parametre un widget et pas un string. ca nettoierais le code du widget.

dernier poin, il y a une variable globale, pour le tray manager qui est très moche ,mais j'ai pas compris pourquoi mon hbox qui se trouve dans la fenetre de popup n'est pas supprimer entrainant la supression du traymanager. (j'avoue j'ai pas beaucoup cherché).

http://www.ctaf.free.fr/ept/cd-systray-0.0.4.tar.gz

PS: cette version est utilisable, mais pas plus, il faut implementer les fonctions de message (j'ai fait les stub dans le code) pour afficher les petites info bulle.

PPS: si tu veux mettre ca dans le cvs te gene pas, mais faudrait fignoler d'abord je pense

necropotame, Tuesday 11 December 2007 à 08:56


Subscription date : 29 November 2007
Messages : 1583
Ça fonctionne, encore que l'infobulle avec les icônes est tronqué généralement. De plus, une autre info-bulle est juste derrière avec marqué dedans "Systray", bref pas très lisible ^^

En tout cas, c'est une bonne idée, et lorsque se sera réactif, le petit plug-in s'avèrera très pratique !

Mav, Tuesday 11 December 2007 à 10:53


Subscription date : 29 November 2007
Messages : 3146
Salut ctaf !

J'ai tenté de l'installer et j'ai un pb lors du make

mav@MavUbuntu:/opt/cairo-dock_CVS/plug-ins/cd-systray-0.0.4$ autoreconf -isvf && ./configure --prefix=/usr && make clean all

Making all in .
make[3]: entrant dans le répertoire « /opt/cairo-dock_CVS/plug-ins/systray/data »
make[3]: *** Pas de règle pour fabriquer la cible « systray.conf », nécessaire pour « all-am ». Arrêt.
make[3]: quittant le répertoire « /opt/cairo-dock_CVS/plug-ins/systray/data »
make[2]: *** [all-recursive] Erreur 1
make[2]: quittant le répertoire « /opt/cairo-dock_CVS/plug-ins/systray/data »
make[1]: *** [all-recursive] Erreur 1
make[1]: quittant le répertoire « /opt/cairo-dock_CVS/plug-ins/systray »
make: *** [all] Erreur 2


Normal ?

necropotame, Tuesday 11 December 2007 à 10:57


Subscription date : 29 November 2007
Messages : 1583
J'ai eu pareil, mais j'ai continué quand même ^^

fabounet, Tuesday 11 December 2007 à 12:22


Subscription date : 30 November 2007
Messages : 17118
oui j'ai un peu changé les info-bulles y'a 2 jours, maintenant la fonction de base prend un widget.
celles qui prennent pas de widget sont celles qui sont blocantes.
dis-moi si ça te va comme ça.
finalement tu poursuis avec les GtkWidgets ? pourquoi ne pas juste récupérer l'icône ?

ctaf, Tuesday 11 December 2007 à 14:50


Subscription date : 30 November 2007
Messages : 311
parceque le systray utilise des gtkplug/gtksocket, enfin le protocole XEMBED pour etre exact, et donc j'ai aucune idée de ce que contient les gtksocket. Donc je n'ai pas de maniere simple de recuperrer les icones. Et puis d'une systray gtk a une systray qt, ca n'utilisera pas les meme widget, ca me parait vraiment compliquer de recuperrer juste l'icone.

Pour le systray.conf, je vais corriger c'est un detail. Oui ca affiche systray dans la barre c'etait pour tester, oui, ca sort de la fenetre, mais c'est plus une proof of concept, qu'un plugins fonctionnel pour l'instant.

fabounet, Tuesday 11 December 2007 à 15:49


Subscription date : 30 November 2007
Messages : 17118
justement, le protocole X des sélections est indépendant de gtk ou qt car situé en-dessous.
les applis mettent à jour des propriétés de leur fenêtre, c'est comme ça qu'elles communiquent avec le proporiétaire de la sélection.
là où j'en étais resté, j'arrivais à récupérer les demandes de mise en systray des applis, mais j'ai pas poussé plus loin. pourtant il faudrait voir si à terme ce serait pas plus simple de redescendre d'un niveau plutôt que de se traîner des gtkwidgets. surtout que du coup, l'effet de vague passe pas sur les icônes du systray non ?

Mav, Tuesday 11 December 2007 à 18:19


Subscription date : 29 November 2007
Messages : 3146
Ca marche chez moi, enfin en tout cas ca s'affiche
Mais bon ca m'a bouffé mon systray existement y a quasiment plus rien dedans
EDIT : c'est bien sur OK après redémarrage, c'était juste le temps de tester

Applets | Applets

Subjects Author Language Messages Last message
[Locked] systray
Page : 1 2 3 ...7 8 9
ctaf Français 162 inspirra [Read]
20 September 2010 à 14:55


Glx-Dock / Cairo-Dock List of forums Applets | Applets systray Top

Online users :

Powered by ElementSpeak © 2007 Adrien Pilleboue, 2009-2013 Matthieu Baerts.
Dock based on CSS Dock Menu (Ndesign) with jQuery. Icons by zgegball
Cairo-Dock is a free software under GNU-GPL3 licence. First stable version created by Fabounet.
Many thanks to TuxFamily for the web Hosting and Mav for the domain name.