mirror of
https://github.com/debauchee/barrier.git
synced 2026-07-09 05:18:13 +08:00
a screen. this allows the secondary screen to set it's modifier state to match the primary screen's state. this is not strictly necessary since each keystroke should adjust the modifier state as needed to get the right result.
80 lines
2.3 KiB
C++
80 lines
2.3 KiB
C++
#ifndef ISECONDARYSCREEN_H
|
|
#define ISECONDARYSCREEN_H
|
|
|
|
#include "IInterface.h"
|
|
#include "BasicTypes.h"
|
|
#include "ClipboardTypes.h"
|
|
#include "KeyTypes.h"
|
|
#include "MouseTypes.h"
|
|
|
|
class CClient;
|
|
class IClipboard;
|
|
|
|
class ISecondaryScreen : public IInterface {
|
|
public:
|
|
// manipulators
|
|
|
|
// enter the screen's message loop. this returns when it detects
|
|
// the application should terminate or when stop() is called.
|
|
// the screen must be open()'d before run() and must not be
|
|
// close()'d until run() returns.
|
|
virtual void run() = 0;
|
|
|
|
// cause run() to return
|
|
virtual void stop() = 0;
|
|
|
|
// initialize the screen, hide the cursor, and disable the screen
|
|
// saver. start reporting certain events to the client (clipboard
|
|
// stolen and screen size changed).
|
|
virtual void open(CClient*) = 0;
|
|
|
|
// close the screen. should restore the screen saver.
|
|
virtual void close() = 0;
|
|
|
|
// called when the user navigates to the secondary screen. warp
|
|
// the cursor to the given coordinates and unhide it. prepare to
|
|
// simulate input events.
|
|
virtual void enter(SInt32 xAbsolute, SInt32 yAbsolute,
|
|
KeyModifierMask mask) = 0;
|
|
|
|
// called when the user navigates off the secondary screen. clean
|
|
// up input event simulation and hide the cursor.
|
|
virtual void leave() = 0;
|
|
|
|
// keyboard input simulation
|
|
virtual void keyDown(KeyID, KeyModifierMask) = 0;
|
|
virtual void keyRepeat(KeyID, KeyModifierMask, SInt32 count) = 0;
|
|
virtual void keyUp(KeyID, KeyModifierMask) = 0;
|
|
|
|
// mouse input simulation
|
|
virtual void mouseDown(ButtonID) = 0;
|
|
virtual void mouseUp(ButtonID) = 0;
|
|
virtual void mouseMove(SInt32 xAbsolute, SInt32 yAbsolute) = 0;
|
|
virtual void mouseWheel(SInt32 delta) = 0;
|
|
|
|
// set the screen's clipboard contents. this is usually called
|
|
// soon after an enter().
|
|
virtual void setClipboard(ClipboardID, const IClipboard*) = 0;
|
|
|
|
/*
|
|
// show or hide the screen saver
|
|
virtual void screenSaver(bool show) = 0;
|
|
*/
|
|
|
|
// take ownership of clipboard
|
|
virtual void grabClipboard(ClipboardID) = 0;
|
|
|
|
// accessors
|
|
|
|
// get the size of the screen
|
|
virtual void getSize(SInt32* width, SInt32* height) const = 0;
|
|
|
|
// get the size of jump zone
|
|
virtual SInt32 getJumpZoneSize() const = 0;
|
|
|
|
// get the screen's clipboard contents
|
|
virtual void getClipboard(ClipboardID, IClipboard*) const = 0;
|
|
};
|
|
|
|
#endif
|