Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1714)

Unified Diff: chrome/browser/notifications/notification_ui_manager.h

Issue 342043: Connect the various pieces for notifications... hook up NotificationUIManager... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: remove stale TODO Created 11 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/notifications/notification_ui_manager.h
===================================================================
--- chrome/browser/notifications/notification_ui_manager.h (revision 0)
+++ chrome/browser/notifications/notification_ui_manager.h (revision 0)
@@ -0,0 +1,66 @@
+// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_UI_MANAGER_H_
+#define CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_UI_MANAGER_H_
+
+#include <deque>
+
+#include "base/id_map.h"
+#include "base/scoped_ptr.h"
+#include "chrome/browser/notifications/balloon.h"
+#include "chrome/browser/notifications/balloon_collection.h"
+
+class Notification;
+class Profile;
+class QueuedNotification;
+class SiteInstance;
+
+// The notification manager manages use of the desktop for notifications.
+// It maintains a queue of pending notifications when space becomes constrained.
+class NotificationUIManager :
+ public BalloonCollectionImpl::BalloonSpaceChangeListener {
+ public:
+ NotificationUIManager();
+ virtual ~NotificationUIManager();
+
+ // Creates an initialized UI manager with a new balloon collection
+ // and the listener relationship setup.
+ // Except for unit tests, this is the way to construct the object.
+ static NotificationUIManager* Create();
+
+ // Initializes the UI manager with a balloon collection; this object
+ // takes ownership of the balloon collection.
+ void Initialize(BalloonCollection* balloon_collection) {
+ DCHECK(!balloon_collection_.get());
+ DCHECK(balloon_collection);
+ balloon_collection_.reset(balloon_collection);
+ }
+
+ // Adds a notification to be displayed. Virtual for unit test override.
+ virtual void Add(const Notification& notification,
+ Profile* profile);
+
+ private:
+ // Attempts to display notifications from the show_queue if the user
+ // is active.
+ void CheckAndShowNotifications();
+
+ // Attempts to display notifications from the show_queue.
+ void ShowNotifications();
+
+ // BalloonCollectionObserver implementation.
+ virtual void OnBalloonSpaceChanged();
+
+ // An owned pointer to the collection of active balloons.
+ scoped_ptr<BalloonCollection> balloon_collection_;
+
+ // A queue of notifications which are waiting to be shown.
+ typedef std::deque<QueuedNotification*> NotificationDeque;
+ NotificationDeque show_queue_;
+
+ DISALLOW_COPY_AND_ASSIGN(NotificationUIManager);
+};
+
+#endif // CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_UI_MANAGER_H_
Property changes on: chrome\browser\notifications\notification_ui_manager.h
___________________________________________________________________
Added: svn:eol-style
+ LF

Powered by Google App Engine
This is Rietveld 408576698