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

Side by Side Diff: chrome/browser/notifications/notification_ui_manager_mac.h

Issue 224183002: mac: Remove dead NotificationUIManagerMac. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: hmm Created 6 years, 8 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_UI_MANAGER_MAC_H_
6 #define CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_UI_MANAGER_MAC_H_
7
8 #import <AppKit/AppKit.h>
9
10 #include <map>
11 #include <set>
12
13 #include "base/basictypes.h"
14 #include "base/mac/scoped_nsobject.h"
15 #include "base/memory/scoped_ptr.h"
16 #include "base/strings/string16.h"
17 #include "chrome/browser/notifications/balloon_notification_ui_manager.h"
18
19 @protocol CrUserNotification;
20 class Notification;
21 @class NotificationCenterDelegate;
22 class PrefService;
23 class Profile;
24
25 // This class is an implementation of BalloonNotificationUIManager that will
26 // send text-only (non-HTML) notifications to Notification Center on 10.8. This
27 // class is only instantiated on 10.8 and above. For HTML notifications,
28 // this class delegates to the base class.
29 class NotificationUIManagerMac : public BalloonNotificationUIManager {
30 public:
31 explicit NotificationUIManagerMac(PrefService* local_state);
32 virtual ~NotificationUIManagerMac();
33
34 // NotificationUIManager:
35 virtual void Add(const Notification& notification,
36 Profile* profile) OVERRIDE;
37 virtual std::set<std::string> GetAllIdsByProfileAndSourceOrigin(
38 Profile* profile, const GURL& source_origin) OVERRIDE;
39 virtual bool CancelById(const std::string& notification_id) OVERRIDE;
40 virtual bool CancelAllBySourceOrigin(const GURL& source_origin) OVERRIDE;
41 virtual bool CancelAllByProfile(Profile* profile) OVERRIDE;
42 virtual void CancelAll() OVERRIDE;
43
44 // Returns the corresponding C++ object for the Cocoa notification object,
45 // or NULL if it could not be found.
46 const Notification* FindNotificationWithCocoaNotification(
47 id<CrUserNotification> notification) const;
48
49 private:
50 // A ControllerNotification links the Cocoa (view) notification to the C++
51 // (model) notification. This assumes ownership (i.e. does not retain a_view)
52 // of both objects and will delete them on destruction.
53 struct ControllerNotification {
54 ControllerNotification(Profile* a_profile,
55 id<CrUserNotification> a_view,
56 Notification* a_model);
57 ~ControllerNotification();
58
59 Profile* profile;
60 id<CrUserNotification> view;
61 Notification* model;
62
63 private:
64 DISALLOW_COPY_AND_ASSIGN(ControllerNotification);
65 };
66 typedef std::map<std::string, ControllerNotification*> NotificationMap;
67
68 // Erases a Cocoa notification from both the application and Notification
69 // Center, and deletes the corresponding C++ object.
70 bool RemoveNotification(id<CrUserNotification> notification);
71
72 // Finds a notification with a given replacement id.
73 id<CrUserNotification> FindNotificationWithReplacementId(
74 const base::string16& replacement_id) const;
75
76 // Cocoa class that receives callbacks from the NSUserNotificationCenter.
77 base::scoped_nsobject<NotificationCenterDelegate> delegate_;
78
79 // Maps notification_ids to ControllerNotifications. The map owns the value,
80 // so it must be deleted when remvoed from the map. This is typically handled
81 // in RemoveNotification.
82 NotificationMap notification_map_;
83
84 DISALLOW_COPY_AND_ASSIGN(NotificationUIManagerMac);
85 };
86
87 #endif // CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_UI_MANAGER_MAC_H_
OLDNEW
« no previous file with comments | « chrome/browser/notifications/notification_ui_manager.cc ('k') | chrome/browser/notifications/notification_ui_manager_mac.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698