panel: Move statuses to the aggregate menu

Swap out the implementation of SystemIndicator with a dummy,
and build the aggregate menu. At the same time, remove the
poweroff and login screen menus, as those were fake aggregate
menus beforehand.

We lose some flexibility as we lose session-mode-based menu
layout, but as each component of the aggregate menu is supposed
to be "smart" in response to updating itself when session
state changes, I believe it's better than a declarative model.

https://bugzilla.gnome.org/show_bug.cgi?id=705845
This commit is contained in:
Jasper St. Pierre
2013-06-06 17:27:32 -04:00
parent 5cca26a565
commit 5c8c4e0aad
7 changed files with 42 additions and 225 deletions

View File

@ -242,14 +242,11 @@ Signals.addSignalMethods(Button.prototype);
*/
const SystemIndicator = new Lang.Class({
Name: 'SystemIndicator',
Extends: Button,
_init: function() {
this.parent(0.0);
this.actor.add_style_class_name('panel-status-button');
this.indicators = new St.BoxLayout({ style_class: 'panel-status-indicators-box' });
this.actor.add_actor(this.indicators);
this.indicators = new St.BoxLayout({ style_class: 'panel-status-indicators-box',
reactive: true });
this.menu = new PopupMenu.PopupMenuSection();
},
addIndicator: function(gicon) {
@ -259,3 +256,4 @@ const SystemIndicator = new Lang.Class({
return icon;
}
});
Signals.addSignalMethods(SystemIndicator.prototype);