[gnome-shell/wip/fmuellner/notification-redux+sass: 112/122] messageTray: Provide a hook for customizing banners



commit 09b2726fe05987ef22ad0d038dcc18e3f12f2113
Author: Florian Müllner <fmuellner gnome org>
Date:   Tue Feb 17 03:27:11 2015 +0100

    messageTray: Provide a hook for customizing banners

 js/ui/messageTray.js |   15 ++++++++++++++-
 1 files changed, 14 insertions(+), 1 deletions(-)
---
diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js
index 56eae26..dfc6412 100644
--- a/js/ui/messageTray.js
+++ b/js/ui/messageTray.js
@@ -477,6 +477,15 @@ const Notification = new Lang.Class({
         }
     },
 
+    // Allow customizing the banner UI:
+    // the default implementation defers the creation to
+    // the source (which will create a NotificationBanner),
+    // so customization can be done by subclassing either
+    // Notification or Source
+    createBanner: function() {
+        return this.source.createBanner(this);
+    },
+
     activate: function() {
         this.emit('activated');
         if (!this.resident)
@@ -740,6 +749,10 @@ const Source = new Lang.Class({
         this.emit('muted-changed');
     },
 
+    createBanner: function(notification) {
+        return new NotificationBanner(notification);
+    },
+
     // Called to create a new icon actor.
     // Provides a sane default implementation, override if you need
     // something more fancy.
@@ -1245,7 +1258,7 @@ const MessageTray = new Lang.Class({
             this.idleMonitor.add_user_active_watch(Lang.bind(this, this._onIdleMonitorBecameActive));
         }
 
-        this._banner = new NotificationBanner(this._notification);
+        this._banner = this._notification.createBanner();
         this._bannerClickedId = this._banner.connect('done-displaying',
                                                      Lang.bind(this, this._escapeTray));
         this._bannerUnfocusedId = this._banner.connect('unfocused', Lang.bind(this, function() {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]