#pragma once
#include "brightray/browser/notification_presenter.h"
#include "brightray/browser/win/win32_desktop_notifications/desktop_notification_controller.h"

namespace brightray {

class Win32Notification;

class NotificationPresenterWin7 :
    public NotificationPresenter,
    public DesktopNotificationController {
 public:
    NotificationPresenterWin7() = default;

    Win32Notification* GetNotificationObjectByRef(
        const DesktopNotificationController::Notification& ref);

    Win32Notification* GetNotificationObjectByTag(const std::string& tag);

 private:
    brightray::Notification* CreateNotificationObject(
        NotificationDelegate* delegate) override;

    void OnNotificationClicked(Notification& notification) override;
    void OnNotificationDismissed(Notification& notification) override;

    DISALLOW_COPY_AND_ASSIGN(NotificationPresenterWin7);
};

}   // namespace brightray