OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 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/views/status_icons/status_icon_win.h" | 5 #include "chrome/browser/ui/views/status_icons/status_icon_win.h" |
6 | 6 |
7 #include "base/strings/string_number_conversions.h" | 7 #include "base/strings/string_number_conversions.h" |
8 #include "base/win/windows_version.h" | 8 #include "base/win/windows_version.h" |
9 #include "chrome/browser/ui/views/status_icons/status_tray_win.h" | 9 #include "chrome/browser/ui/views/status_icons/status_tray_win.h" |
10 #include "third_party/skia/include/core/SkBitmap.h" | 10 #include "third_party/skia/include/core/SkBitmap.h" |
11 #include "ui/gfx/geometry/point.h" | 11 #include "ui/gfx/geometry/point.h" |
12 #include "ui/gfx/geometry/rect.h" | 12 #include "ui/gfx/geometry/rect.h" |
13 #include "ui/gfx/icon_util.h" | 13 #include "ui/gfx/icon_util.h" |
| 14 #include "ui/message_center/notifier_settings.h" |
14 #include "ui/views/controls/menu/menu_runner.h" | 15 #include "ui/views/controls/menu/menu_runner.h" |
15 | 16 |
16 //////////////////////////////////////////////////////////////////////////////// | 17 //////////////////////////////////////////////////////////////////////////////// |
17 // StatusIconWin, public: | 18 // StatusIconWin, public: |
18 | 19 |
19 StatusIconWin::StatusIconWin(StatusTrayWin* tray, | 20 StatusIconWin::StatusIconWin(StatusTrayWin* tray, |
20 UINT id, | 21 UINT id, |
21 HWND window, | 22 HWND window, |
22 UINT message) | 23 UINT message) |
23 : tray_(tray), | 24 : tray_(tray), |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
108 // Create the icon. | 109 // Create the icon. |
109 NOTIFYICONDATA icon_data; | 110 NOTIFYICONDATA icon_data; |
110 InitIconData(&icon_data); | 111 InitIconData(&icon_data); |
111 icon_data.uFlags = NIF_TIP; | 112 icon_data.uFlags = NIF_TIP; |
112 wcscpy_s(icon_data.szTip, tool_tip.c_str()); | 113 wcscpy_s(icon_data.szTip, tool_tip.c_str()); |
113 BOOL result = Shell_NotifyIcon(NIM_MODIFY, &icon_data); | 114 BOOL result = Shell_NotifyIcon(NIM_MODIFY, &icon_data); |
114 if (!result) | 115 if (!result) |
115 LOG(WARNING) << "Unable to set tooltip for status tray icon"; | 116 LOG(WARNING) << "Unable to set tooltip for status tray icon"; |
116 } | 117 } |
117 | 118 |
118 void StatusIconWin::DisplayBalloon(const gfx::ImageSkia& icon, | 119 void StatusIconWin::DisplayBalloon( |
119 const base::string16& title, | 120 const gfx::ImageSkia& icon, |
120 const base::string16& contents) { | 121 const base::string16& title, |
| 122 const base::string16& contents, |
| 123 const message_center::NotifierId& notifier_id) { |
121 NOTIFYICONDATA icon_data; | 124 NOTIFYICONDATA icon_data; |
122 InitIconData(&icon_data); | 125 InitIconData(&icon_data); |
123 icon_data.uFlags = NIF_INFO; | 126 icon_data.uFlags = NIF_INFO; |
124 icon_data.dwInfoFlags = NIIF_INFO; | 127 icon_data.dwInfoFlags = NIIF_INFO; |
125 wcscpy_s(icon_data.szInfoTitle, title.c_str()); | 128 wcscpy_s(icon_data.szInfoTitle, title.c_str()); |
126 wcscpy_s(icon_data.szInfo, contents.c_str()); | 129 wcscpy_s(icon_data.szInfo, contents.c_str()); |
127 icon_data.uTimeout = 0; | 130 icon_data.uTimeout = 0; |
128 | 131 |
129 base::win::Version win_version = base::win::GetVersion(); | 132 base::win::Version win_version = base::win::GetVersion(); |
130 if (!icon.isNull() && win_version != base::win::VERSION_PRE_XP) { | 133 if (!icon.isNull() && win_version != base::win::VERSION_PRE_XP) { |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
164 memset(icon_data, 0, sizeof(NOTIFYICONDATA)); | 167 memset(icon_data, 0, sizeof(NOTIFYICONDATA)); |
165 icon_data->cbSize = sizeof(NOTIFYICONDATA); | 168 icon_data->cbSize = sizeof(NOTIFYICONDATA); |
166 } else { | 169 } else { |
167 memset(icon_data, 0, NOTIFYICONDATA_V3_SIZE); | 170 memset(icon_data, 0, NOTIFYICONDATA_V3_SIZE); |
168 icon_data->cbSize = NOTIFYICONDATA_V3_SIZE; | 171 icon_data->cbSize = NOTIFYICONDATA_V3_SIZE; |
169 } | 172 } |
170 | 173 |
171 icon_data->hWnd = window_; | 174 icon_data->hWnd = window_; |
172 icon_data->uID = icon_id_; | 175 icon_data->uID = icon_id_; |
173 } | 176 } |
OLD | NEW |