+++ /dev/null
-/* Copyright (C) 2002-2005 RealVNC Ltd. All Rights Reserved.
- *
- * This is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this software; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
- * USA.
- */
-//
-// InputHandler - abstract interface for accepting keyboard &
-// pointer input and clipboard data.
-//
-
-#ifndef __RFB_INPUTHANDLER_H__
-#define __RFB_INPUTHANDLER_H__
-
-#include <stdint.h>
-
-#include <rfb/Rect.h>
-
-namespace rfb {
-
- class InputHandler {
- public:
- virtual ~InputHandler() {}
- virtual void keyEvent(uint32_t /*keysym*/, uint32_t /*keycode*/,
- bool /*down*/) { }
- virtual void pointerEvent(const Point& /*pos*/,
- int /*buttonMask*/) { }
- virtual void clientCutText(const char* /*str*/) { }
- };
-
-}
-#endif
#include <rfb/PixelBuffer.h>
#include <rfb/VNCServer.h>
-#include <rfb/InputHandler.h>
#include <rfb/screenTypes.h>
namespace network { class Socket; }
namespace rfb {
- class SDesktop : public InputHandler {
+ class SDesktop {
public:
// init() is called immediately when the VNCServer gets a reference
// to the SDesktop, so that a reverse reference can be set up.
// signalling that a good time to render new data
virtual void frameTick(uint64_t msc) { (void)msc; }
- // InputHandler interface
- // pointerEvent(), keyEvent() and clientCutText() are called in response to
- // the relevant RFB protocol messages from clients.
- // See InputHandler for method signatures.
+ // keyEvent() is called whenever a client sends an event that a
+ // key was pressed or released.
+ virtual void keyEvent(uint32_t /*keysym*/, uint32_t /*keycode*/,
+ bool /*down*/) {};
+
+ // pointerEvent() is called whenever a client sends an event that
+ // the pointer moved, or a button was pressed or released.
+ virtual void pointerEvent(const Point& /*pos*/,
+ int /*buttonMask*/) {};
// handleClipboardRequest() is called whenever a client requests
// the server to send over its clipboard data. It will only be
supportsQEMUKeyEvent();
}
+void SMsgHandler::keyEvent(uint32_t /*keysym*/, uint32_t /*keycode*/,
+ bool /*down*/)
+{
+}
+
+void SMsgHandler::pointerEvent(const Point& /*pos*/,
+ int /*buttonMask*/)
+{
+}
+
+void SMsgHandler::clientCutText(const char* /*str*/)
+{
+}
+
void SMsgHandler::handleClipboardCaps(uint32_t flags, const uint32_t* lengths)
{
int i;
#include <rfb/PixelFormat.h>
#include <rfb/ClientParams.h>
-#include <rfb/InputHandler.h>
#include <rfb/ScreenSet.h>
namespace rdr { class InStream; }
namespace rfb {
- class SMsgHandler : public InputHandler {
+ class SMsgHandler {
public:
SMsgHandler();
virtual ~SMsgHandler();
virtual void enableContinuousUpdates(bool enable,
int x, int y, int w, int h) = 0;
+ virtual void keyEvent(uint32_t keysym, uint32_t keycode,
+ bool down);
+ virtual void pointerEvent(const Point& pos,
+ int buttonMask);
+
+ virtual void clientCutText(const char* str);
+
virtual void handleClipboardCaps(uint32_t flags,
const uint32_t* lengths);
virtual void handleClipboardRequest(uint32_t flags);
const size_t* lengths,
const uint8_t* const* data);
- // InputHandler interface
- // The InputHandler methods will be called for the corresponding messages.
-
// supportsLocalCursor() is called whenever the status of
// cp.supportsLocalCursor has changed. At the moment this happens on a
// setEncodings message, but in the future this may be due to a message
#endif
}
-void XDesktop::clientCutText(const char* /*str*/) {
-}
-
ScreenSet XDesktop::computeScreenLayout()
{
ScreenSet layout;
const char* userName) override;
void pointerEvent(const rfb::Point& pos, int buttonMask) override;
void keyEvent(uint32_t keysym, uint32_t xtcode, bool down) override;
- void clientCutText(const char* str) override;
unsigned int setScreenLayout(int fb_width, int fb_height,
const rfb::ScreenSet& layout) override;