#ifndef REMOTING_HOST_CURSOR_VISIBILITY_NOTIFIER_H_
#define REMOTING_HOST_CURSOR_VISIBILITY_NOTIFIER_H_
#include "base/memory/raw_ptr.h"
#include "remoting/protocol/input_filter.h"
namespace remoting {
class CursorVisibilityNotifier : public protocol::InputFilter {
public:
class EventHandler {
public:
virtual void OnCursorVisibilityChanged(bool visible) = 0;
};
CursorVisibilityNotifier(InputStub* input_stub, EventHandler* event_handler_);
CursorVisibilityNotifier(const CursorVisibilityNotifier&) = delete;
CursorVisibilityNotifier& operator=(const CursorVisibilityNotifier&) = delete;
~CursorVisibilityNotifier() override;
void InjectMouseEvent(const protocol::MouseEvent& event) override;
void OnLocalInput();
private:
void NotifyEventHandler(bool enabled);
raw_ptr<EventHandler> event_handler_;
bool has_triggered_ = false;
bool is_enabled_ = false;
};
}
#endif