mirror of
https://github.com/debauchee/barrier.git
synced 2024-12-24 11:32:43 +03:00
54 lines
1.2 KiB
C++
54 lines
1.2 KiB
C++
#ifndef CCLIPBOARD_H
|
|
#define CCLIPBOARD_H
|
|
|
|
//
|
|
// CClipboard -- stores clipboard data in a memory buffer
|
|
//
|
|
|
|
#include "IClipboard.h"
|
|
#include "CString.h"
|
|
|
|
class CClipboard : public IClipboard {
|
|
public:
|
|
CClipboard();
|
|
virtual ~CClipboard();
|
|
|
|
// manipulators
|
|
|
|
// unmarshall clipboard data
|
|
void unmarshall(const CString& data, Time);
|
|
|
|
// accessors
|
|
|
|
// marshall clipboard data
|
|
CString marshall() const;
|
|
|
|
// IClipboard overrides
|
|
virtual bool open(Time);
|
|
virtual void close();
|
|
virtual void add(EFormat, const CString& data);
|
|
virtual Time getTime() const;
|
|
virtual bool has(EFormat) const;
|
|
virtual CString get(EFormat) const;
|
|
|
|
// accessors
|
|
|
|
// transfer all the data in one clipboard to another. the
|
|
// clipboards can be of any concrete clipboard type (and
|
|
// they don't have to be the same type). this also sets
|
|
// the timestamp to time, if provided, or the time in src.
|
|
static void copy(IClipboard* dst, const IClipboard* src);
|
|
static void copy(IClipboard* dst, const IClipboard* src, Time);
|
|
|
|
private:
|
|
UInt32 readUInt32(const char*) const;
|
|
void writeUInt32(CString*, UInt32) const;
|
|
|
|
private:
|
|
Time m_time;
|
|
bool m_added[kNumFormats];
|
|
CString m_data[kNumFormats];
|
|
};
|
|
|
|
#endif
|