46 lines
1.2 KiB
C++
46 lines
1.2 KiB
C++
#ifndef ICLIPBOARD_H
|
|
#define ICLIPBOARD_H
|
|
|
|
#include "IInterface.h"
|
|
#include "BasicTypes.h"
|
|
|
|
class CString;
|
|
|
|
class IClipboard : public IInterface {
|
|
public:
|
|
enum EFormat { kText, kNumFormats };
|
|
|
|
// manipulators
|
|
|
|
// grab ownership of and clear the clipboard of all data.
|
|
// only add() may be called between an open() and its
|
|
// corresponding close(). if open() returns false then
|
|
// the clipboard could not be opened or grabbed; do not
|
|
// call close() in that case.
|
|
virtual bool open() = 0;
|
|
|
|
// close the clipboard. close() must match a preceding open().
|
|
// this signals that the clipboard has been filled with all the
|
|
// necessary data. it does not mean the clipboard ownership
|
|
// should be released.
|
|
virtual void close() = 0;
|
|
|
|
// add data in the given format to the clipboard. data is
|
|
// passed as a string but the contents are generally not
|
|
// interpreted. may only be called between an open() and
|
|
// a close().
|
|
virtual void add(EFormat, const CString& data) = 0;
|
|
|
|
// accessors
|
|
|
|
// returns true iff the clipboard contains data in the given
|
|
// format.
|
|
virtual bool has(EFormat) const = 0;
|
|
|
|
// returns data in the given format. rturns the empty string
|
|
// if there is no data in that format.
|
|
virtual CString get(EFormat) const = 0;
|
|
};
|
|
|
|
#endif
|