messageTray: add SystemNotificationSource, moved from overview.js

Move the overview's "System Information" source here, so it can be
used by non-overview code as well.

https://bugzilla.gnome.org/show_bug.cgi?id=635089
This commit is contained in:
Dan Winship 2010-11-30 10:47:28 -05:00
parent 870be026d8
commit 7322a4e4ef
3 changed files with 29 additions and 26 deletions

View File

@ -18,6 +18,9 @@ const BoxPointer = imports.ui.boxpointer;
const Params = imports.misc.params; const Params = imports.misc.params;
const Utils = imports.misc.utils; const Utils = imports.misc.utils;
const Gettext = imports.gettext.domain('gnome-shell');
const _ = Gettext.gettext;
const ANIMATION_TIME = 0.2; const ANIMATION_TIME = 0.2;
const NOTIFICATION_TIMEOUT = 4; const NOTIFICATION_TIMEOUT = 4;
const SUMMARY_TIMEOUT = 1; const SUMMARY_TIMEOUT = 1;
@ -1743,3 +1746,27 @@ MessageTray.prototype = {
} }
} }
}; };
function SystemNotificationSource() {
this._init();
}
SystemNotificationSource.prototype = {
__proto__: Source.prototype,
_init: function() {
Source.prototype._init.call(this, _("System Information"));
this._setSummaryIcon(this.createNotificationIcon());
},
createNotificationIcon: function() {
return new St.Icon({ icon_name: 'dialog-information',
icon_type: St.IconType.SYMBOLIC,
icon_size: this.ICON_SIZE });
},
_notificationClicked: function() {
this.destroy();
}
};

View File

@ -31,33 +31,8 @@ const ANIMATION_TIME = 0.25;
// We split the screen vertically between the dash and the view selector. // We split the screen vertically between the dash and the view selector.
const DASH_SPLIT_FRACTION = 0.1; const DASH_SPLIT_FRACTION = 0.1;
const DND_WINDOW_SWITCH_TIMEOUT = 1250; const DND_WINDOW_SWITCH_TIMEOUT = 1250;
function Source() {
this._init();
}
Source.prototype = {
__proto__: MessageTray.Source.prototype,
_init: function() {
MessageTray.Source.prototype._init.call(this,
"System Information");
this._setSummaryIcon(this.createNotificationIcon());
},
createNotificationIcon: function() {
return new St.Icon({ icon_name: 'dialog-information',
icon_type: St.IconType.SYMBOLIC,
icon_size: this.ICON_SIZE });
},
_notificationClicked: function() {
this.destroy();
}
}
function ShellInfo() { function ShellInfo() {
this._init(); this._init();
} }
@ -79,7 +54,7 @@ ShellInfo.prototype = {
setMessage: function(text, undoCallback, undoLabel) { setMessage: function(text, undoCallback, undoLabel) {
if (this._source == null) { if (this._source == null) {
this._source = new Source(); this._source = new MessageTray.SystemNotificationSource();
this._source.connect('destroy', Lang.bind(this, this._source.connect('destroy', Lang.bind(this,
function() { function() {
this._source = null; this._source = null;

View File

@ -6,6 +6,7 @@ js/ui/appFavorites.js
js/ui/dash.js js/ui/dash.js
js/ui/docDisplay.js js/ui/docDisplay.js
js/ui/lookingGlass.js js/ui/lookingGlass.js
js/ui/messageTray.js
js/ui/overview.js js/ui/overview.js
js/ui/panel.js js/ui/panel.js
js/ui/placeDisplay.js js/ui/placeDisplay.js