/* * Copyright 2009, Haiku, Inc. * Distributed under the terms of the MIT License. * * Authors: * Michael Lotz */ #ifndef REMOTE_EVENT_STREAM_H #define REMOTE_EVENT_STREAM_H #include "EventStream.h" #include #include class RemoteMessage; class RemoteEventStream : public EventStream { public: RemoteEventStream(); virtual ~RemoteEventStream(); virtual bool IsValid() { return true; } virtual void SendQuit() {} virtual void UpdateScreenBounds(BRect bounds); virtual bool GetNextEvent(BMessage** _event); virtual status_t InsertEvent(BMessage* event); virtual BMessage* PeekLatestMouseMoved(); bool EventReceived(RemoteMessage& message); private: BObjectList fEventList; BLocker fEventListLocker; sem_id fEventNotification; bool fWaitingOnEvent; BMessage* fLatestMouseMovedEvent; BPoint fMousePosition; uint32 fMouseButtons; uint32 fModifiers; }; #endif // REMOTE_EVENT_STREAM_H