Deskflow 1.22.0.197
Keyboard and mouse sharing utility
Loading...
Searching...
No Matches
IClipboard.h
Go to the documentation of this file.
1/*
2 * Deskflow -- mouse and keyboard sharing utility
3 * SPDX-FileCopyrightText: (C) 2012 - 2016 Symless Ltd.
4 * SPDX-FileCopyrightText: (C) 2002 Chris Schoeneman
5 * SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
6 */
7
8#pragma once
9
10#include "base/EventTypes.h"
11#include "common/IInterface.h"
12
13#include <string>
14
16
19class IClipboard : public IInterface
20{
21public:
23
28 using Time = uint32_t;
29
31
56
58
59
61
67 virtual bool empty() = 0;
68
70
74 virtual void add(EFormat, const std::string &data) = 0;
75
77
79
81
89 virtual bool open(Time time) const = 0;
90
92
99 virtual void close() const = 0;
100
102
105 virtual Time getTime() const = 0;
106
108
112 virtual bool has(EFormat) const = 0;
113
115
120 virtual std::string get(EFormat) const = 0;
121
123
127 static std::string marshall(const IClipboard *clipboard);
128
130
134 static void unmarshall(IClipboard *clipboard, const std::string_view &data, Time time);
135
137
144 static bool copy(IClipboard *dst, const IClipboard *src);
145
147
153 static bool copy(IClipboard *dst, const IClipboard *src, Time);
154
156
157private:
158 static uint32_t readUInt32(const char *);
159 static void writeUInt32(std::string *, uint32_t);
160};
static int void FAR * data
Definition ArchNetworkWinsock.cpp:34
Clipboard interface.
Definition IClipboard.h:20
EFormat
Clipboard formats.
Definition IClipboard.h:50
@ kHTML
HTML format, HTML fragment, UTF-8, newline is LF.
Definition IClipboard.h:52
@ kBitmap
Bitmap format, BMP 24/32bpp, BI_RGB.
Definition IClipboard.h:53
@ kNumFormats
The number of clipboard formats.
Definition IClipboard.h:54
@ kText
Text format, UTF-8, newline is LF.
Definition IClipboard.h:51
static bool copy(IClipboard *dst, const IClipboard *src)
Copy clipboard.
Definition IClipboard.cpp:101
virtual bool empty()=0
Empty clipboard.
static void unmarshall(IClipboard *clipboard, const std::string_view &data, Time time)
Unmarshall clipboard data.
Definition IClipboard.cpp:16
virtual void add(EFormat, const std::string &data)=0
Add data.
virtual bool open(Time time) const =0
Open clipboard.
static std::string marshall(const IClipboard *clipboard)
Marshall clipboard data.
Definition IClipboard.cpp:54
uint32_t Time
Timestamp type.
Definition IClipboard.h:28
virtual std::string get(EFormat) const =0
Get data.
virtual void close() const =0
Close clipboard.
virtual Time getTime() const =0
Get time.
virtual bool has(EFormat) const =0
Check for data.
Base class of interfaces.
Definition IInterface.h:18