38 lines
865 B
JavaScript
38 lines
865 B
JavaScript
import Service from 'resource:///com/github/Aylur/ags/service.js';
|
|
import * as Utils from 'resource:///com/github/Aylur/ags/utils.js';
|
|
|
|
class IndicatorService extends Service {
|
|
static {
|
|
Service.register(
|
|
this,
|
|
{ 'popup': ['double'], },
|
|
);
|
|
}
|
|
|
|
_delay = 1500;
|
|
_count = 0;
|
|
|
|
popup(value) {
|
|
this.emit('popup', value);
|
|
this._count++;
|
|
Utils.timeout(this._delay, () => {
|
|
this._count--;
|
|
|
|
if (this._count === 0)
|
|
this.emit('popup', -1);
|
|
});
|
|
}
|
|
|
|
connectWidget(widget, callback) {
|
|
connect(this, widget, callback, 'popup');
|
|
}
|
|
}
|
|
|
|
// the singleton instance
|
|
const service = new IndicatorService();
|
|
|
|
// make it global for easy use with cli
|
|
globalThis['indicator'] = service;
|
|
|
|
// export to use in other modules
|
|
export default service; |