/* This file is part of Telegram Desktop, the official desktop application for the Telegram messaging service. For license and copyright information please follow this link: https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #pragma once #include "platform/platform_notifications_manager.h" struct ToastActivation; namespace Platform { namespace Notifications { class Manager : public Window::Notifications::NativeManager { public: Manager(Window::Notifications::System *system); ~Manager(); bool init(); void clearNotification(NotificationId id); void handleActivation(const ToastActivation &activation); protected: void doShowNativeNotification( NotificationInfo &&info, Ui::PeerUserpicView &userpicView) override; void doClearAllFast() override; void doClearFromItem(not_null item) override; void doClearFromTopic(not_null topic) override; void doClearFromHistory(not_null history) override; void doClearFromSession(not_null session) override; void onBeforeNotificationActivated(NotificationId id) override; void onAfterNotificationActivated( NotificationId id, not_null window) override; bool doSkipToast() const override; void doMaybePlaySound(Fn playSound) override; void doMaybeFlashBounce(Fn flashBounce) override; private: class Private; const std::unique_ptr _private; }; } // namespace Notifications } // namespace Platform