Visit Mozilla.org

nsIIdleService

De MDC

Este artigo cobre características introduzidas no Firefox 3

O serviço de inatividade deixa-o monitorar por quanto tempo o usuário esteve 'ausente', i.e. não usado o seu mouse ou teclado. Você pode pegar o tempo de inatividade diretamente, mas na maioria dos casos você vai querer registrar um observador para um intervalo predefinido.

Atualmente as implementações no nsIIdleService existem para Windows, Mac OS X e Linux (via XScreenSaver).

Exemplo 1:

var idleService = Components.classes["@mozilla.org/widget/idleservice;1"]
                            .getService(Components.interfaces.nsIIdleService)
setTimeout(function() { alert(idleService.idleTime) }, 1000)
// se você não usar o mouse ou o teclado depois de rodar este fragmento,
// você verá um número próximo de 1000 na caixa de alerta.

Exemplo 2:

var idleService = Components.classes["@mozilla.org/widget/idleservice;1"]
                            .getService(Components.interfaces.nsIIdleService)
var idleObserver = {
  observe: function(subject, topic, data) {
    alert("topic: " + topic + "\ndata: " + data);
  }
};
idleService.addIdleObserver(idleObserver, 60); // one minute
// ...
// Não se esqueça de remover o observador usando removeIdleObserver!
idleService.removeIdleObserver(idleObserver, 60);

[editar] Métodos

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

[editar] Atributos

readonly attribute unsigned long idleTime;