OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/ui/cocoa/notifications/message_center_tray_bridge.h" | 5 #include "chrome/browser/ui/cocoa/notifications/message_center_tray_bridge.h" |
6 | 6 |
| 7 #include "base/i18n/number_formatting.h" |
7 #include "chrome/browser/browser_process.h" | 8 #include "chrome/browser/browser_process.h" |
| 9 #include "grit/chromium_strings.h" |
| 10 #include "grit/ui_strings.h" |
| 11 #include "ui/base/l10n/l10n_util.h" |
| 12 #import "ui/base/l10n/l10n_util_mac.h" |
8 #import "ui/message_center/cocoa/popup_collection.h" | 13 #import "ui/message_center/cocoa/popup_collection.h" |
9 #import "ui/message_center/cocoa/status_item_view.h" | 14 #import "ui/message_center/cocoa/status_item_view.h" |
10 #import "ui/message_center/cocoa/tray_controller.h" | 15 #import "ui/message_center/cocoa/tray_controller.h" |
11 #include "ui/message_center/message_center.h" | 16 #include "ui/message_center/message_center.h" |
12 #include "ui/message_center/message_center_tray.h" | 17 #include "ui/message_center/message_center_tray.h" |
13 | 18 |
14 namespace message_center { | 19 namespace message_center { |
15 | 20 |
16 MessageCenterTrayDelegate* CreateMessageCenterTray() { | 21 MessageCenterTrayDelegate* CreateMessageCenterTray() { |
17 return new MessageCenterTrayBridge(g_browser_process->message_center()); | 22 return new MessageCenterTrayBridge(g_browser_process->message_center()); |
(...skipping 17 matching lines...) Expand all Loading... |
35 tray_->HideMessageCenterBubble(); | 40 tray_->HideMessageCenterBubble(); |
36 else | 41 else |
37 tray_->ShowMessageCenterBubble(); | 42 tray_->ShowMessageCenterBubble(); |
38 }]; | 43 }]; |
39 } | 44 } |
40 | 45 |
41 MessageCenterTrayBridge::~MessageCenterTrayBridge() { | 46 MessageCenterTrayBridge::~MessageCenterTrayBridge() { |
42 } | 47 } |
43 | 48 |
44 void MessageCenterTrayBridge::OnMessageCenterTrayChanged() { | 49 void MessageCenterTrayBridge::OnMessageCenterTrayChanged() { |
45 [status_item_view_ setUnreadCount: | 50 size_t unread_count = message_center_->UnreadNotificationCount(); |
46 message_center_->UnreadNotificationCount()]; | 51 [status_item_view_ setUnreadCount:unread_count]; |
| 52 |
| 53 string16 product_name = l10n_util::GetStringUTF16(IDS_SHORT_PRODUCT_NAME); |
| 54 if (unread_count > 0) { |
| 55 string16 unread_count_string = base::FormatNumber(unread_count); |
| 56 [status_item_view_ setToolTip: |
| 57 l10n_util::GetNSStringF(IDS_MESSAGE_CENTER_TOOLTIP_UNREAD, |
| 58 product_name, unread_count_string)]; |
| 59 } else { |
| 60 [status_item_view_ setToolTip: |
| 61 l10n_util::GetNSStringF(IDS_MESSAGE_CENTER_TOOLTIP, product_name)]; |
| 62 } |
| 63 |
47 [tray_controller_ onMessageCenterTrayChanged]; | 64 [tray_controller_ onMessageCenterTrayChanged]; |
48 } | 65 } |
49 | 66 |
50 bool MessageCenterTrayBridge::ShowPopups() { | 67 bool MessageCenterTrayBridge::ShowPopups() { |
51 popup_collection_.reset( | 68 popup_collection_.reset( |
52 [[MCPopupCollection alloc] initWithMessageCenter:message_center_]); | 69 [[MCPopupCollection alloc] initWithMessageCenter:message_center_]); |
53 return true; | 70 return true; |
54 } | 71 } |
55 | 72 |
56 void MessageCenterTrayBridge::HidePopups() { | 73 void MessageCenterTrayBridge::HidePopups() { |
57 popup_collection_.reset(); | 74 popup_collection_.reset(); |
58 } | 75 } |
59 | 76 |
60 void MessageCenterTrayBridge::UpdatePopups() { | 77 void MessageCenterTrayBridge::UpdatePopups() { |
61 // Nothing to do since the popup collection observes the MessageCenter | 78 // Nothing to do since the popup collection observes the MessageCenter |
62 // directly. | 79 // directly. |
63 } | 80 } |
64 | 81 |
65 bool MessageCenterTrayBridge::ShowMessageCenter() { | 82 bool MessageCenterTrayBridge::ShowMessageCenter() { |
66 [status_item_view_ setHighlight:YES]; | 83 [status_item_view_ setHighlight:YES]; |
67 NSRect frame = [[status_item_view_ window] frame]; | 84 NSRect frame = [[status_item_view_ window] frame]; |
68 [tray_controller_ showTrayAt:NSMakePoint(NSMinX(frame), NSMinY(frame))]; | 85 [tray_controller_ showTrayAt:NSMakePoint(NSMinX(frame), NSMinY(frame))]; |
69 return true; | 86 return true; |
70 } | 87 } |
71 | 88 |
72 void MessageCenterTrayBridge::HideMessageCenter() { | 89 void MessageCenterTrayBridge::HideMessageCenter() { |
73 [status_item_view_ setHighlight:NO]; | 90 [status_item_view_ setHighlight:NO]; |
74 [tray_controller_ close]; | 91 [tray_controller_ close]; |
75 } | 92 } |
OLD | NEW |