gconf-settings/skel/.local/share/gnome-shell/extensions/unite@hardpixel.eu/module.js

83 lines
1.7 KiB
JavaScript

const Unite = imports.misc.extensionUtils.getCurrentExtension()
const Signals = Unite.imports.handlers.SignalsHandler
const Settings = Unite.imports.handlers.SettingsHandler
var BaseModule = class UniteBaseModule {
constructor() {
this._setup()
this._init()
}
_setup() {
this._enableKey = null
this._enableValue = null
this._disableValue = null
this._runCallback('_onSetup')
}
_init() {
this._signals = new Signals(this)
this._settings = new Settings(this)
this._setting = this._settings.get(this._enableKey)
this._runCallback('_onInitialize')
this._activate()
this._settings.enable(this._enableKey, 'reload')
}
get _enabled() {
if (this._enableKey == null)
return true
if (this._enableValue != null)
return this._setting == this._enableValue
if (this._disableValue != null)
return this._setting != this._disableValue
}
_hasCallback(name) {
return typeof(this[name]) === 'function'
}
_runCallback(name) {
if (this._hasCallback(name))
this[name]()
}
_activate() {
if (this._enabled)
this._runCallback('_onActivate')
}
_deactivate() {
this._runCallback('_onDeactivate')
this._settings.disconnectAll()
this._signals.disconnectAll()
}
_reload() {
let prevState = this._enabled
this._setting = this._settings.get(this._enableKey)
if (prevState == this._enabled) {
this._runCallback('_onReset')
} else {
this._deactivate()
this._activate()
this._runCallback('_onReload')
}
}
destroy() {
this._deactivate()
this._runCallback('_onDestroy')
this._settings.disable()
}
}