Deskflow 1.24.0.365
Keyboard and mouse sharing utility
Loading...
Searching...
No Matches
OSXClipboard.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) 2004 Chris Schoeneman
6 * SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
7 */
8
9#pragma once
10
11#include "deskflow/IClipboard.h"
12
13#include <Carbon/Carbon.h>
14#include <vector>
15
17
20{
21public:
23 virtual ~OSXClipboard();
24
26 static bool isOwnedByDeskflow();
27
28 // IClipboard overrides
29 bool empty() override;
30 void add(Format, const std::string &data) override;
31 bool open(Time) const override;
32 void close() const override;
33 Time getTime() const override;
34 bool has(Format) const override;
35 std::string get(Format) const override;
36
37 bool synchronize();
38
39private:
40 void clearConverters();
41
42private:
43 using ConverterList = std::vector<IOSXClipboardConverter *>;
44
45 mutable Time m_time;
46 ConverterList m_converters;
47 PasteboardRef m_pboard;
48};
49
51
55{
56public:
57 virtual ~IOSXClipboardConverter() = default;
59
60
62
65 virtual IClipboard::Format getFormat() const = 0;
66
68 virtual CFStringRef getOSXFormat() const = 0;
69
71
77 virtual std::string fromIClipboard(const std::string &) const = 0;
78
80
84 virtual std::string toIClipboard(const std::string &) const = 0;
85
87};
static int void FAR * data
Definition ArchNetworkWinsock.cpp:35
Clipboard interface.
Definition IClipboard.h:19
Format
Clipboard formats.
Definition IClipboard.h:50
uint32_t Time
Timestamp type.
Definition IClipboard.h:28
Clipboard format converter interface.
Definition OSXClipboard.h:55
virtual CFStringRef getOSXFormat() const =0
returns the scrap flavor type that this object converts from/to
virtual IClipboard::Format getFormat() const =0
Get clipboard format.
virtual std::string toIClipboard(const std::string &) const =0
Convert to IClipboard format.
virtual std::string fromIClipboard(const std::string &) const =0
Convert from IClipboard format.
virtual ~IOSXClipboardConverter()=default
Time getTime() const override
Get time.
Definition OSXClipboard.cpp:129
OSXClipboard()
Definition OSXClipboard.cpp:22
void add(Format, const std::string &data) override
Add data.
Definition OSXClipboard.cpp:78
std::string get(Format) const override
Get data.
Definition OSXClipboard.cpp:159
bool open(Time) const override
Open clipboard.
Definition OSXClipboard.cpp:113
virtual ~OSXClipboard()
Definition OSXClipboard.cpp:44
bool empty() override
Empty clipboard.
Definition OSXClipboard.cpp:49
bool has(Format) const override
Check for data.
Definition OSXClipboard.cpp:134
bool synchronize()
Definition OSXClipboard.cpp:64
void close() const override
Close clipboard.
Definition OSXClipboard.cpp:123
static bool isOwnedByDeskflow()
Test if clipboard is owned by deskflow.