Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# [Résolu] TrayIcon.... via Prism

Envoyé par : cokinou

Date : 05/08/2008 18:04

Bonjour à tous,

Je suis entrain d'implémenter une petite appli basé sur xulrunner, et j'aimerai que mon appli se mettent dans le systemtray de windows (oui, pour l'instant ca va marcher que sur windows, une fois qu'elle marchera on verra si ca peut être multiplateforme ;-) )

Après multes recherche, j'ai trouvé que l'appli "prism" de mozilla (basé sur xulrunner 1.9) le permet.

En cherchant dans le code de l'appli, je suis tombé là-dessus :

 showTrayIcon : function() {
   var appIcon = WebAppInstall.getInstallRoot();
   appIcon.append(WebAppProperties.id);
   appIcon.append("icons");
   appIcon.append("default");
   appIcon.append(WebAppProperties.icon + ".ico");
   var ioService = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService);
   var iconUri = ioService.newFileURI(appIcon);
   var desktop = Cc["@mozilla.org/desktop-environment;1"].getService(Ci.nsIDesktopEnvironment);
   var notificationArea = desktop.QueryInterface(Ci.nsINotificationArea);
   notificationArea.showIcon(WebAppProperties.id, iconUri, this);
   notificationArea.setTitle(WebAppProperties.id, document.title);
 },

Je vous passe les détails de mes tests, mais je suis jamais arrivé à faire pareil (même depuis l'appli prism), j'arrive toujours à une exception sur le deuxième paramètre de showIcon(), à savoir iconUri qu'il n'arrive pas à convertir...

Vu que je n'ai pas trop l'habitude de travailler avec des applis aussi complexe que "prism", est-ce que quelqu'un pourrait m'expliquer comment elle fonctionne afin que je puisse me servir de son système de trayIcon ?

Merci d'avance à toute âme charitable ;-)

PS: pas sur que je sois dans la bonne catégorie, mais je ne sais pas trop où mettre mon message

# Re: TrayIcon.... via Prism

Envoyé par : cokinou

Date : 08/08/2008 17:34

Je suis arrivé à comprendre le fonctionnement, mais ca a pas l'air encore bien au point.... ou alors il y a encore des choses que j'ai pas comprise (ce qui est fort possible, je l'avoue ;-) )

Finalement, je me suis rabattu sur ce qui est utilisé dans l'extension minimizeToTray. C'est pas ce que je voulais au début, mais je suis arrivé à l'éclaircir un peu (beaucoup même) afin que je puisse l'utiliser comme j'en ai besoin...

Si jamais quelqu'un est intéressé par ce que j'ai fait pour pouvoir mettre une appli xulrunner dans le systemTray, n'hésitez pas à demander ;-)

# Re: [Résolu] TrayIcon.... via Prism

Envoyé par : mistervince

Date : 11/08/2008 09:26

bonjour,

je suis intéressé par ça ! Je vais sans doute en avoir besoin bientôt. Jusqu'à maintenant, je comptais me servir d'une autre appli pour lancer xulrunner et pouvoir le placer dans le systray (je bosse sous Linux et il existe plusieurs applis pour faire ça).

Mais ta solution me parait meilleure !

En tous cas, merci de nous faire profiter de tes recherches.

Selon la taille du code, peux-tu le mettre ici ou dans une page du wiki ? Si tu préfère me l'envoyer directement : v.bataille_at_novatice.com (en remplaçant évidemment _at_ par @)

merci

# Re: [Résolu] TrayIcon.... via Prism

Envoyé par : cokinou

Date : 11/08/2008 11:25

mistervince a écrit:

bonjour,
je suis intéressé par ça ! Je vais sans doute en
avoir besoin bientôt. Jusqu'à maintenant, je
comptais me servir d'une autre appli pour lancer
xulrunner et pouvoir le placer dans le systray (je
bosse sous Linux et il existe plusieurs applis
pour faire ça).

Mais ta solution me parait meilleure !

En tous cas, merci de nous faire profiter de tes
recherches.

Selon la taille du code, peux-tu le mettre ici ou
dans une page du wiki ? Si tu préfère me l'envoyer
directement : v.bataille_at_novatice.com (en
remplaçant évidemment _at_ par @)

merci

Je l'avais pas précisé plus haut, mais l'extension minimizeToTray sur laquelle je me suis basé ne fonctionne que sous windows.... Elle ne marchera donc pas sous linux :-(

En attendant de trouver mieux, moi je me sers de ca mais je suis toujours à la recherche d'une solution multi-os ;-)

Si ca t'intéresse quand même, je peux te l'envoyer sans problème (je peux pas la mettre ici car il y a une dll (windows oblige) a fournir)

Sinon, je pense qu'il y a moyen d'approfondir la méthode utilisé dans prism (cité au début) car c'est, apparemment, multi-plateforme. Mais, je ne sais pas ce que ca permet vraiment....

Tiens moi au courant si ma version windows t'intéresse.

A+

# Re: [Résolu] TrayIcon.... via Prism

Envoyé par : cokinou

Date : 11/08/2008 11:29

Pour infos, apparemment y a des choses en cours pour faire évoluer le toolkit afin de gérer le system tray : https://bugzilla.mozilla.org/show_bug.cg(..)

# Re: [Résolu] TrayIcon.... via Prism

Envoyé par : mistervince

Date : 12/08/2008 09:36

Ok merci pour ces infos.

Effectivement, une version windows ne m'intéresse pas trop. Je pensais que tu étais finalement arrivé à une version multi-plateforme mais j'ai du lire un peu vite, désolé.

Je regarderai du côté de Prism le moment venu. Je posterai mes résultats si j'arrive à quelque chose.

@+ vincent

# Re: [Résolu] TrayIcon.... via Prism

Envoyé par : bcaille

Date : 23/10/2008 16:11

Je serais intéressé par le code. J'ai fait exactement le même chemin en passant par Prism que d'autres devs chez Mozilla m'avaient suggérés. Mais voilà, je n'ai pas énormément de temps de développement à consacrer sur cela et ai rajouté cela sur la "Wishlist" pour que ceci soit nativement sur la prochaine version de Xulrunner.

Entretemps, j'ai modifié l'extension MinimizeToTray pour qu'elle soit fonctionnelle sous FF 3.1 et je suis justement a chercher à intégrer ceci dans nos widgets basés sur Xulrunner.

Je serais heureux de voir ton code, et cela me sauverais probablement un peu de temps ;) Merci à l'avance.

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.