Deskflow 1.24.0.365
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) 2025 Deskflow Developers
4 * SPDX-FileCopyrightText: (C) 2012 - 2016 Symless Ltd.
5 * SPDX-FileCopyrightText: (C) 2002 Chris Schoeneman
6 * SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
7 */
8
9#pragma once
10
11#include <cstdint>
12#include <string>
13
15
19{
20public:
21 virtual ~IClipboard() = default;
23
28 using Time = uint32_t;
29
31
56
58
59
61
67 virtual bool empty() = 0;
68
70
74 virtual void add(Format, 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(Format) const = 0;
113
115
120 virtual std::string get(Format) 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:35
Clipboard interface.
Definition IClipboard.h:19
Format
Clipboard formats.
Definition IClipboard.h:50
@ TotalFormats
The number of clipboard formats supported.
Definition IClipboard.h:54
@ HTML
HTML format, HTML fragment, UTF-8, newline is LF.
Definition IClipboard.h:52
@ Bitmap
Bitmap format, BMP 24/32bpp, BI_RGB.
Definition IClipboard.h:53
@ Text
Text format, UTF-8, newline is LF.
Definition IClipboard.h:51
static bool copy(IClipboard *dst, const IClipboard *src)
Copy clipboard.
Definition IClipboard.cpp:102
virtual bool has(Format) const =0
Check for data.
virtual bool empty()=0
Empty clipboard.
virtual void add(Format, const std::string &data)=0
Add data.
virtual std::string get(Format) const =0
Get data.
static void unmarshall(IClipboard *clipboard, const std::string_view &data, Time time)
Unmarshall clipboard data.
Definition IClipboard.cpp:17
virtual bool open(Time time) const =0
Open clipboard.
static std::string marshall(const IClipboard *clipboard)
Marshall clipboard data.
Definition IClipboard.cpp:55
virtual ~IClipboard()=default
uint32_t Time
Timestamp type.
Definition IClipboard.h:28
virtual void close() const =0
Close clipboard.
virtual Time getTime() const =0
Get time.