sessionMode: Add panelStyle property

The panel should change appearance according to the sessionMode,
so add a new panelStyle sessionMode property which allows to
specify a mode specific style class for the panel actors.

https://bugzilla.gnome.org/show_bug.cgi?id=684573
This commit is contained in:
Florian Müllner 2012-09-21 22:19:27 +02:00
parent c0f868dd56
commit 2511f60d39
2 changed files with 26 additions and 1 deletions

View File

@ -964,6 +964,8 @@ const Panel = new Lang.Class({
reactive: true }); reactive: true });
this.actor._delegate = this; this.actor._delegate = this;
this._sessionStyle = null;
this.statusArea = {}; this.statusArea = {};
this.menuManager = new PopupMenu.PopupMenuManager(this); this.menuManager = new PopupMenu.PopupMenuManager(this);
@ -1151,6 +1153,13 @@ const Panel = new Lang.Class({
this._updateBox(panel.left, this._leftBox); this._updateBox(panel.left, this._leftBox);
this._updateBox(panel.center, this._centerBox); this._updateBox(panel.center, this._centerBox);
this._updateBox(panel.right, this._rightBox); this._updateBox(panel.right, this._rightBox);
if (this._sessionStyle)
this._removeStyleClassName(this._sessionStyle);
this._sessionStyle = Main.sessionMode.panelStyle;
if (this._sessionStyle)
this._addStyleClassName(this._sessionStyle);
}, },
_initBox: function(elements, box) { _initBox: function(elements, box) {
@ -1239,5 +1248,17 @@ const Panel = new Lang.Class({
this.statusArea[role] = indicator; this.statusArea[role] = indicator;
this._addToPanelBox(role, indicator, position, boxContainer); this._addToPanelBox(role, indicator, position, boxContainer);
return indicator; return indicator;
},
_addStyleClassName: function(className) {
this.actor.add_style_class_name(className);
this._rightCorner.actor.add_style_class_name(className);
this._leftCorner.actor.add_style_class_name(className);
},
_removeStyleClassName: function(className) {
this.actor.remove_style_class_name(className);
this._rightCorner.actor.remove_style_class_name(className);
this._leftCorner.actor.remove_style_class_name(className);
} }
}); });

View File

@ -28,6 +28,7 @@ const _modes = {
center: [], center: [],
right: [] right: []
}, },
panelStyle: null
}, },
'gdm': { 'gdm': {
@ -41,7 +42,8 @@ const _modes = {
center: ['dateMenu'], center: ['dateMenu'],
right: ['a11y', 'display', 'keyboard', right: ['a11y', 'display', 'keyboard',
'volume', 'battery', 'powerMenu'] 'volume', 'battery', 'powerMenu']
} },
panelStyle: 'login-screen'
}, },
'lock-screen': { 'lock-screen': {
@ -54,6 +56,7 @@ const _modes = {
center: [], center: [],
right: ['lockScreen'] right: ['lockScreen']
}, },
panelStyle: 'lock-screen'
}, },
'unlock-dialog': { 'unlock-dialog': {
@ -65,6 +68,7 @@ const _modes = {
center: [], center: [],
right: ['a11y', 'keyboard', 'lockScreen'] right: ['a11y', 'keyboard', 'lockScreen']
}, },
panelStyle: 'unlock-screen'
}, },
'initial-setup': { 'initial-setup': {