/* * synergy -- mouse and keyboard sharing utility * Copyright (C) 2002 Chris Schoeneman * * This package is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * found in the file COPYING that should have accompanied this file. * * This package is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #ifndef ISCREENRECEIVER_H #define ISCREENRECEIVER_H #include "IInterface.h" #include "ClipboardTypes.h" #include "ProtocolTypes.h" #include "CString.h" //! Screen event receiver interface /*! This interface defines the methods common to most types that receive events for changes to a screen. Note that the methods in this interface are similar to the methods in IServer but have different parameters. This interface is suitable for client-side types. */ class IScreenReceiver : public IInterface { public: //! Notify of error /*! Called when the screen is unexpectedly closing. This implies that the screen is no longer usable and that the program should close the screen and probably terminate. */ virtual void onError() = 0; //! Notify of client screen change /*! Called when the client's info has changed. For example, when the screen resolution has changed. */ virtual void onInfoChanged(const CClientInfo&) = 0; //! Notify of clipboad grab /*! Called when the clipboard was grabbed by another program and, therefore, we no longer own it. Returns true if the grab was honored, false otherwise. */ virtual bool onGrabClipboard(ClipboardID) = 0; //! Notify of new clipboard data /*! Called when the data on the clipboard has changed because some other program has changed it. \c data will have marshalled clipboard data. */ virtual void onClipboardChanged(ClipboardID, const CString& data) = 0; }; #endif