c4c5c4fd5c
Remove the `this.actor = ...` and `this.actor._delegate = this` patterns in most of classes, by inheriting all the actor container classes. Uses interfaces when needed for making sure that multiple classes will implement some required methods or to avoid redefining the same code multiple times. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/559
27 lines
745 B
JavaScript
27 lines
745 B
JavaScript
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
|
/* exported Indicator */
|
|
|
|
const GObject = imports.gi.GObject;
|
|
|
|
const Main = imports.ui.main;
|
|
const PanelMenu = imports.ui.panelMenu;
|
|
|
|
var Indicator = GObject.registerClass({
|
|
GTypeName: 'Screencast_Indicator'
|
|
}, class Indicator extends PanelMenu.SystemIndicator {
|
|
_init() {
|
|
super._init();
|
|
|
|
this._indicator = this._addIndicator();
|
|
this._indicator.icon_name = 'media-record-symbolic';
|
|
this._indicator.add_style_class_name('screencast-indicator');
|
|
this._sync();
|
|
|
|
Main.screencastService.connect('updated', this._sync.bind(this));
|
|
}
|
|
|
|
_sync() {
|
|
this._indicator.visible = Main.screencastService.isRecording;
|
|
}
|
|
});
|