Deskflow 1.22.0.197
Keyboard and mouse sharing utility
Loading...
Searching...
No Matches
IClient.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#include "deskflow/IScreen.h"
12#include "deskflow/KeyTypes.h"
13#include "deskflow/MouseTypes.h"
15
16#include <string>
17
19
23class IClient : public IScreen
24{
25public:
27
28
30
37 virtual void enter(int32_t xAbs, int32_t yAbs, uint32_t seqNum, KeyModifierMask mask, bool forScreensaver) = 0;
38
40
44 virtual bool leave() = 0;
45
47
53 virtual void setClipboard(ClipboardID, const IClipboard *) = 0;
54
56
61 virtual void grabClipboard(ClipboardID) = 0;
62
64
68 virtual void setClipboardDirty(ClipboardID, bool dirty) = 0;
69
71
79 virtual void keyDown(KeyID id, KeyModifierMask, KeyButton, const std::string &) = 0;
80
82
86 virtual void keyRepeat(KeyID id, KeyModifierMask, int32_t count, KeyButton, const std::string &lang) = 0;
87
89
93 virtual void keyUp(KeyID id, KeyModifierMask, KeyButton) = 0;
94
96
99 virtual void mouseDown(ButtonID id) = 0;
100
102
105 virtual void mouseUp(ButtonID id) = 0;
106
108
112 virtual void mouseMove(int32_t xAbs, int32_t yAbs) = 0;
113
115
119 virtual void mouseRelativeMove(int32_t xRel, int32_t yRel) = 0;
120
122
128 virtual void mouseWheel(int32_t xDelta, int32_t yDelta) = 0;
129
131 virtual void screensaver(bool activate) = 0;
132
134
137 virtual void resetOptions() = 0;
138
140
144 virtual void setOptions(const OptionsList &options) = 0;
145
147
149
151
154 virtual std::string getName() const = 0;
155
157
158 // IScreen overrides
159 void *getEventTarget() const override = 0;
160 bool getClipboard(ClipboardID id, IClipboard *) const override = 0;
161 void getShape(int32_t &x, int32_t &y, int32_t &width, int32_t &height) const override = 0;
162 void getCursorPos(int32_t &x, int32_t &y) const override = 0;
163};
uint8_t ClipboardID
Clipboard ID.
Definition ClipboardTypes.h:16
uint32_t KeyID
Key ID.
Definition KeyTypes.h:22
uint16_t KeyButton
Key Code.
Definition KeyTypes.h:35
uint32_t KeyModifierMask
Modifier key mask.
Definition KeyTypes.h:45
uint8_t ButtonID
Mouse button ID.
Definition MouseTypes.h:16
std::vector< uint32_t > OptionsList
Definition OptionTypes.h:27
int y
Definition ServerConfig.cpp:27
int x
Definition ServerConfig.cpp:26
Client interface.
Definition IClient.h:24
virtual bool leave()=0
Leave screen.
virtual void grabClipboard(ClipboardID)=0
Grab clipboard.
virtual void mouseWheel(int32_t xDelta, int32_t yDelta)=0
Notify of mouse wheel motion.
virtual void enter(int32_t xAbs, int32_t yAbs, uint32_t seqNum, KeyModifierMask mask, bool forScreensaver)=0
Enter screen.
virtual void mouseUp(ButtonID id)=0
Notify of mouse release.
virtual void screensaver(bool activate)=0
Notify of screen saver change.
void getCursorPos(int32_t &x, int32_t &y) const override=0
Get cursor position.
bool getClipboard(ClipboardID id, IClipboard *) const override=0
Get clipboard.
virtual void keyRepeat(KeyID id, KeyModifierMask, int32_t count, KeyButton, const std::string &lang)=0
Notify of key repeat.
virtual std::string getName() const =0
Get client name.
void * getEventTarget() const override=0
Get event target.
virtual void setClipboardDirty(ClipboardID, bool dirty)=0
Mark clipboard dirty.
virtual void keyDown(KeyID id, KeyModifierMask, KeyButton, const std::string &)=0
Notify of key press.
virtual void resetOptions()=0
Notify of options changes.
virtual void setClipboard(ClipboardID, const IClipboard *)=0
Set clipboard.
virtual void mouseRelativeMove(int32_t xRel, int32_t yRel)=0
Notify of mouse motion.
virtual void mouseDown(ButtonID id)=0
Notify of mouse press.
virtual void keyUp(KeyID id, KeyModifierMask, KeyButton)=0
Notify of key release.
virtual void setOptions(const OptionsList &options)=0
Notify of options changes.
void getShape(int32_t &x, int32_t &y, int32_t &width, int32_t &height) const override=0
Get screen shape.
virtual void mouseMove(int32_t xAbs, int32_t yAbs)=0
Notify of mouse motion.
Clipboard interface.
Definition IClipboard.h:20
Screen interface.
Definition IScreen.h:22