| OLD | NEW |
| (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_UI_METRO_DRIVER_TOAST_NOTIFICATION_HANDLER_H_ | |
| 6 #define CHROME_BROWSER_UI_METRO_DRIVER_TOAST_NOTIFICATION_HANDLER_H_ | |
| 7 | |
| 8 #include <windows.ui.notifications.h> | |
| 9 | |
| 10 #include "base/strings/string16.h" | |
| 11 #include "base/win/metro.h" | |
| 12 | |
| 13 // Provides functionality to display a metro style toast notification. | |
| 14 class ToastNotificationHandler { | |
| 15 public: | |
| 16 // Holds information about a desktop notification to be displayed. | |
| 17 struct DesktopNotification { | |
| 18 std::string origin_url; | |
| 19 std::string icon_url; | |
| 20 base::string16 title; | |
| 21 base::string16 body; | |
| 22 base::string16 display_source; | |
| 23 std::string id; | |
| 24 base::win::MetroNotificationClickedHandler notification_handler; | |
| 25 base::string16 notification_context; | |
| 26 | |
| 27 DesktopNotification(const char* notification_origin, | |
| 28 const char* notification_icon, | |
| 29 const wchar_t* notification_title, | |
| 30 const wchar_t* notification_body, | |
| 31 const wchar_t* notification_display_source, | |
| 32 const char* notification_id, | |
| 33 base::win::MetroNotificationClickedHandler handler, | |
| 34 const wchar_t* handler_context); | |
| 35 | |
| 36 DesktopNotification(); | |
| 37 }; | |
| 38 | |
| 39 ToastNotificationHandler(); | |
| 40 ~ToastNotificationHandler(); | |
| 41 | |
| 42 void DisplayNotification(const DesktopNotification& notification); | |
| 43 void CancelNotification(); | |
| 44 | |
| 45 HRESULT OnActivate(winui::Notifications::IToastNotification* notification, | |
| 46 IInspectable* inspectable); | |
| 47 | |
| 48 private: | |
| 49 mswr::ComPtr<winui::Notifications::IToastNotifier> notifier_; | |
| 50 mswr::ComPtr<winui::Notifications::IToastNotification> notification_; | |
| 51 EventRegistrationToken activated_token_; | |
| 52 DesktopNotification notification_info_; | |
| 53 }; | |
| 54 | |
| 55 #endif // CHROME_BROWSER_UI_METRO_DRIVER_TOAST_NOTIFICATION_HANDLER_H_ | |
| OLD | NEW |