diff options
author | sr | 2013-02-04 19:50:31 +0100 |
---|---|---|
committer | sr | 2013-02-04 19:50:31 +0100 |
commit | 1a5709501f94014d41987b956338bb6424b9f90c (patch) | |
tree | d3b93fe8dc406bca56aff147ef5cc4cbf9ed6be0 /src/client/vnc/vncwindow.h | |
parent | Test (diff) | |
download | pvs2-1a5709501f94014d41987b956338bb6424b9f90c.tar.gz pvs2-1a5709501f94014d41987b956338bb6424b9f90c.tar.xz pvs2-1a5709501f94014d41987b956338bb6424b9f90c.zip |
Initial commit
Diffstat (limited to 'src/client/vnc/vncwindow.h')
-rw-r--r-- | src/client/vnc/vncwindow.h | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/src/client/vnc/vncwindow.h b/src/client/vnc/vncwindow.h new file mode 100644 index 0000000..3a73a8e --- /dev/null +++ b/src/client/vnc/vncwindow.h @@ -0,0 +1,73 @@ +/* + # Copyright (c) 2009, 2010 - OpenSLX Project, Computer Center University of + # Freiburg + # + # This program is free software distributed under the GPL version 2. + # See http://openslx.org/COPYING + # + # If you have any feedback please consult http://openslx.org/feedback and + # send your suggestions, praise, or complaints to feedback@openslx.org + # + # General information about OpenSLX can be found at http://openslx.org/ + */ + +#ifndef CLIENTVNCVIEWER_H_ +#define CLIENTVNCVIEWER_H_ + +#include <QtGui> +#include <QMouseEvent> + +class VncThread; +class QPainter; + +// Definition of key modifier mask constants +#define KMOD_Alt_R 0x01 +#define KMOD_Alt_L 0x02 +#define KMOD_Meta_L 0x04 +#define KMOD_Control_L 0x08 +#define KMOD_Shift_L 0x10 + +class VncWindow : public QDialog +{ +Q_OBJECT + +public: + VncWindow(QWidget *parent = 0); + virtual ~VncWindow(); + +protected slots: + void onUpdateImage(const int x, const int y, const int w, const int h); + void onThreadFinished(); + void onProjectionStarted(); + + void open(const QString& host, int port, const QString& passwd, bool ro, bool fullscreen, const QString& caption, const int clientId); + +signals: + void running(const bool isRunning, const int clientId); + + +protected: + void draw(const int x, const int y, const int w, const int h); + void paintEvent(QPaintEvent *event); + void resizeEvent(QResizeEvent* event); + void closeEvent(QCloseEvent *e); + //bool event(QEvent *event); + //bool eventFilter(QObject *obj, QEvent *event); + +private: + VncThread *_vncWorker; + bool _viewOnly; + int _buttonMask; + QMap<unsigned int, bool> _modkeys; + int _clientId; + + bool eventFilter(QObject *obj, QEvent *event); + void keyPressEvent(QKeyEvent* event); + void keyEventHandler(QKeyEvent *e); + void unpressModifiers(); + void wheelEventHandler(QWheelEvent *event); + void mouseEventHandler(QMouseEvent *event); + +}; + +#endif /* CLIENTVNCVIEWER_H_ */ |