[gnome-maps/wip/notifications-jonas: 2/4] Notifications: Add static notifications
- From: Jonas Danielsson <jonasdn src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-maps/wip/notifications-jonas: 2/4] Notifications: Add static notifications
- Date: Sat, 1 Mar 2014 12:19:15 +0000 (UTC)
commit 84d88774bbe901c924c68623ed2869394f34fbd3
Author: Mattias Bengtsson <mattias jc bengtsson gmail com>
Date: Sat Feb 15 06:33:25 2014 +0100
Notifications: Add static notifications
Add support for static notifications. These are pre-defined
notifications that are cached and reused.
https://bugzilla.gnome.org/show_bug.cgi?id=723996
src/notification.js | 21 +++++++++++++++++++++
1 files changed, 21 insertions(+), 0 deletions(-)
---
diff --git a/src/notification.js b/src/notification.js
index 2d80369..e3b7af3 100644
--- a/src/notification.js
+++ b/src/notification.js
@@ -60,6 +60,8 @@ const Plain = new Lang.Class({
}
});
+const Type = { };
+
const Manager = new Lang.Class({
Name: 'Manager',
Extends: Gtk.Revealer,
@@ -82,6 +84,13 @@ const Manager = new Lang.Class({
this._revealNotification(notification);
},
+ // Shows a static (reusable) notification
+ showNotification: function(notificationType) {
+ let notification = this._getNotification(notificationType);
+ if(!notification.get_parent())
+ this._revealNotification(notification);
+ },
+
_revealNotification: function(notification) {
// only conceal the notification when it's the last one
notification.connect('dismiss', (function() {
@@ -99,5 +108,17 @@ const Manager = new Lang.Class({
this._stack.child_set_property(notification, 'position', 0);
this._stack.set_visible_child(notification);
this.set_reveal_child(true);
+ },
+
+ _getNotification: function(notificationType) {
+ if(!this._cache.hasOwnProperty(notificationType.name)) {
+ this._createNotification(notificationType);
+ }
+ return this._cache[notificationType.name];
+ },
+
+ _createNotification: function(notificationType) {
+ let notification = new notificationType.Class();
+ this._cache[notificationType.name] = notification;
}
});
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]