Deskflow 1.24.0.365
Keyboard and mouse sharing utility
Loading...
Searching...
No Matches
PrimaryClient.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
11
12namespace deskflow {
13class Screen;
14}
15
17
23{
24public:
28 PrimaryClient(const std::string &name, deskflow::Screen *screen);
29 ~PrimaryClient() override = default;
30
32
33
35
38 virtual void reconfigure(uint32_t activeSides);
39
41
45 virtual uint32_t registerHotKey(KeyID key, KeyModifierMask mask);
46
48
51 virtual void unregisterHotKey(uint32_t id);
52
54
60 void fakeInputBegin();
61
63
66 void fakeInputEnd();
67
69
71
73
77 int32_t getJumpZoneSize() const;
78
80
85 void getCursorCenter(int32_t &x, int32_t &y) const;
86
88
91 virtual KeyModifierMask getToggleMask() const;
92
94
97 bool isLockedToScreen() const;
98
100
101 // FIXME -- these probably belong on IScreen
102 virtual void enable();
103 virtual void disable();
104
105 // IScreen overrides
106 void *getEventTarget() const override;
107 bool getClipboard(ClipboardID id, IClipboard *) const override;
108 void getShape(int32_t &x, int32_t &y, int32_t &width, int32_t &height) const override;
109 void getCursorPos(int32_t &x, int32_t &y) const override;
110
111 // IClient overrides
112 void enter(int32_t xAbs, int32_t yAbs, uint32_t seqNum, KeyModifierMask mask, bool forScreensaver) override;
113 bool leave() override;
114 void setClipboard(ClipboardID, const IClipboard *) override;
115 void grabClipboard(ClipboardID) override;
116 void setClipboardDirty(ClipboardID, bool) override;
117 void keyDown(KeyID, KeyModifierMask, KeyButton, const std::string &) override;
118 void keyRepeat(KeyID, KeyModifierMask, int32_t count, KeyButton, const std::string &) override;
119 void keyUp(KeyID, KeyModifierMask, KeyButton) override;
120 void mouseDown(ButtonID) override;
121 void mouseUp(ButtonID) override;
122 void mouseMove(int32_t xAbs, int32_t yAbs) override;
123 void mouseRelativeMove(int32_t xRel, int32_t yRel) override;
124 void mouseWheel(int32_t xDelta, int32_t yDelta) override;
125 void screensaver(bool activate) override;
126 void resetOptions() override;
127 void setOptions(const OptionsList &options) override;
128 void sendDragInfo(uint32_t fileCount, const char *info, size_t size) override;
129 void fileChunkSending(uint8_t mark, char *data, size_t dataSize) override;
130 std::string getSecureInputApp() const override;
131 void secureInputNotification(const std::string &app) const override;
132
133 deskflow::IStream *getStream() const override
134 {
135 return nullptr;
136 }
137 bool isPrimary() const override
138 {
139 return true;
140 }
141
142private:
143 deskflow::Screen *m_screen;
144 bool m_clipboardDirty[kClipboardEnd] = {false, false};
145 int32_t m_fakeInputCount = 0;
146};
static const struct sockaddr FAR * name
Definition ArchNetworkWinsock.cpp:28
static int void FAR * data
Definition ArchNetworkWinsock.cpp:35
static const ClipboardID kClipboardEnd
Definition ClipboardTypes.h:30
uint8_t ClipboardID
Clipboard ID.
Definition ClipboardTypes.h:16
int key
Definition KeySequence.cpp:15
uint32_t KeyID
Key ID.
Definition KeyTypes.h:21
uint16_t KeyButton
Key Code.
Definition KeyTypes.h:34
uint32_t KeyModifierMask
Modifier key mask.
Definition KeyTypes.h:44
uint8_t ButtonID
Mouse button ID.
Definition MouseTypes.h:16
std::vector< uint32_t > OptionsList
Definition OptionTypes.h:26
int y
Definition ServerConfig.cpp:25
int x
Definition ServerConfig.cpp:24
BaseClientProxy(const std::string &name)
Definition BaseClientProxy.cpp:14
Clipboard interface.
Definition IClipboard.h:19
~PrimaryClient() override=default
void mouseMove(int32_t xAbs, int32_t yAbs) override
Notify of mouse motion.
Definition PrimaryClient.cpp:179
void keyRepeat(KeyID, KeyModifierMask, int32_t count, KeyButton, const std::string &) override
Notify of key repeat.
Definition PrimaryClient.cpp:153
void mouseWheel(int32_t xDelta, int32_t yDelta) override
Notify of mouse wheel motion.
Definition PrimaryClient.cpp:189
void setOptions(const OptionsList &options) override
Notify of options changes.
Definition PrimaryClient.cpp:224
bool getClipboard(ClipboardID id, IClipboard *) const override
Get clipboard.
Definition PrimaryClient.cpp:77
void getCursorCenter(int32_t &x, int32_t &y) const
Get cursor center position.
Definition PrimaryClient.cpp:57
virtual void unregisterHotKey(uint32_t id)
Unregister a system hotkey.
Definition PrimaryClient.cpp:33
std::string getSecureInputApp() const override
Definition PrimaryClient.cpp:209
virtual KeyModifierMask getToggleMask() const
Get toggle key state.
Definition PrimaryClient.cpp:62
void keyUp(KeyID, KeyModifierMask, KeyButton) override
Notify of key release.
Definition PrimaryClient.cpp:158
void secureInputNotification(const std::string &app) const override
Definition PrimaryClient.cpp:214
virtual void reconfigure(uint32_t activeSides)
Update configuration.
Definition PrimaryClient.cpp:23
void fileChunkSending(uint8_t mark, char *data, size_t dataSize) override
Definition PrimaryClient.cpp:204
int32_t getJumpZoneSize() const
Get jump zone size.
Definition PrimaryClient.cpp:52
void mouseRelativeMove(int32_t xRel, int32_t yRel) override
Notify of mouse motion.
Definition PrimaryClient.cpp:184
virtual void enable()
Definition PrimaryClient.cpp:92
bool isLockedToScreen() const
Get screen lock state.
Definition PrimaryClient.cpp:67
PrimaryClient(const std::string &name, deskflow::Screen *screen)
Definition PrimaryClient.cpp:16
virtual void disable()
Definition PrimaryClient.cpp:97
void setClipboardDirty(ClipboardID, bool) override
Mark clipboard dirty.
Definition PrimaryClient.cpp:137
void screensaver(bool activate) override
Notify of screen saver change.
Definition PrimaryClient.cpp:194
void sendDragInfo(uint32_t fileCount, const char *info, size_t size) override
Definition PrimaryClient.cpp:199
void getCursorPos(int32_t &x, int32_t &y) const override
Get cursor position.
Definition PrimaryClient.cpp:87
void resetOptions() override
Notify of options changes.
Definition PrimaryClient.cpp:219
void * getEventTarget() const override
Get event target.
Definition PrimaryClient.cpp:72
deskflow::IStream * getStream() const override
Definition PrimaryClient.h:133
void grabClipboard(ClipboardID) override
Grab clipboard.
Definition PrimaryClient.cpp:128
void getShape(int32_t &x, int32_t &y, int32_t &width, int32_t &height) const override
Get screen shape.
Definition PrimaryClient.cpp:82
void mouseDown(ButtonID) override
Notify of mouse press.
Definition PrimaryClient.cpp:169
void keyDown(KeyID, KeyModifierMask, KeyButton, const std::string &) override
Notify of key press.
Definition PrimaryClient.cpp:142
void fakeInputBegin()
Prepare to synthesize input on primary screen.
Definition PrimaryClient.cpp:38
void setClipboard(ClipboardID, const IClipboard *) override
Set clipboard.
Definition PrimaryClient.cpp:116
void fakeInputEnd()
Done synthesizing input on primary screen.
Definition PrimaryClient.cpp:45
virtual uint32_t registerHotKey(KeyID key, KeyModifierMask mask)
Register a system hotkey.
Definition PrimaryClient.cpp:28
void mouseUp(ButtonID) override
Notify of mouse release.
Definition PrimaryClient.cpp:174
void enter(int32_t xAbs, int32_t yAbs, uint32_t seqNum, KeyModifierMask mask, bool forScreensaver) override
Enter screen.
Definition PrimaryClient.cpp:102
bool leave() override
Leave screen.
Definition PrimaryClient.cpp:111
bool isPrimary() const override
Get cursor position.
Definition PrimaryClient.h:137
Bidirectional stream interface.
Definition IStream.h:22
Platform independent screen.
Definition Screen.h:30
Definition EventTypes.h:11