Visit Mozilla.org

nsIIdleService

Un article de MDC.

Cet article traite de fonctionnalités introduites dans Firefox 3

Le service idle permet de mesurer depuis combien de temps l'utilisateur a été « inactif », c'est-à-dire qu'il n'a pas utilisé la souris ou le clavier. Le temps d'inactivité peut être obtenu directement, mais dans la plupart des cas il sera plus utile d'enregistrer un observateur pour un intervalle prédéfini.


nsIIdleService est définie dans widget/public/nsIIdleService.idl, et elle est non figée (n'a pas été modifiée depuis Mozilla 1.9a). Cette interface est scriptable.

Actuellement, des implémentations de nsIIdleService existent pour Windows, Mac OS X et Linux (via XScreenSaver).

Exemple 1 :

var idleService = Components.classes["@mozilla.org/widget/idleservice;1"]
                            .getService(Components.interfaces.nsIIdleService)
setTimeout(function() { alert(idleService.idleTime) }, 1000)
// si vous n'utilisez pas la souris ou le clavier après avoir exécuté cet extrait de code,
// vous verrez un message avec un nombre aux alentours de 1000.

Exemple 2 :

var idleService = Components.classes["@mozilla.org/widget/idleservice;1"]
                            .getService(Components.interfaces.nsIIdleService)
var idleObserver = {
  observe: function(subject, topic, data) {
    alert("sujet : " + topic + "\ndonnées : " + data);
  }
};
idleService.addIdleObserver(idleObserver, 60); // une minute
// ...
// Ne pas oublier de retirer l'observateur avec removeIdleObserver !
idleService.removeIdleObserver(idleObserver, 60);

[modifier] Méthodes

void addIdleObserver(in nsIObserver observer, in unsigned long time);
void removeIdleObserver(in nsIObserver observer, in unsigned long time);

[modifier] Attributs

readonly attribute unsigned long idleTime;